Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/07/2014 in all areas

  1. Magnifier Functions UDF That magnify tool in Windows since Vista? Yeah, pretty nice feature eh? Well, turns out there's an API that is going unused around here! We've got to change that! MSDN Links: Magnification API Magnifier Functions Magnifier API Overview (includes examples) This UDF exposes most of the useful Magnifier API functions available since Windows Vista. The built-in Magnifier offers very easy screen magnification in the form of Magnifier controls or Full-screen magnification (since Windows 7). It also allows altering the colors of the magnifier or in face the whole screen. With the Magnify API, you can do all sorts of neat things: Create a hardware-accelerated Magnifier control in any GUI (of any size) Resize any part of the screen by any factor (as a floating point value) Alter the colors (invert, grayscale, etc) Ignore certain windows (they become like invisible windows to the magnifier) Full-screen Color Effects (Win 7+ but official as of Win 8) Full-screen Magnify (Win 7+ but official as of Win 8) Windows 7 has 2 Full-screen Magnification API functions that are considered undocumented, but are nearly identical to their Windows 8 documented API counterparts. Therefore, the UDF script takes care of calling the correct API function based on the O/S. The UDF functions are _MagnifierFullScreenSetScale() and _MagnifierFullScreenSetColorEffect(). The only difference in these functions is SetMagnificationDesktopMagnification uses a double for its 1st parameter whereas MagSetFullscreenTransform uses a float. Here's the Win7 undocumented to Win8 documented API mapping: SetMagnificationDesktopColorEffect - MagSetFullscreenColorEffect SetMagnificationDesktopMagnification - MagSetFullscreenTransform There are two examples included in the ZIP archive. The 1st, MagnifierExperiments, shows all the wacky things that can be done using the Magnifier. The 2nd is an example of Inverting screen colors via a Tray interface (both are below). Updates:: Magnifier Experiments: Various Full-screen and Window magnifier effects tests: ; =========================================================================================================== ; <MagnifierExperiments.au3> ; ; Experiments with the Built-In Windows Magnification API (since Windows Vista) ; Uses <WinMagnifier.au3> ; ; NOTE: TRY to run this at the same bit-mode your O/S is running in, as the GUI can be funky at times ; when run in an incompatible bit mode. So for 64-bit O/S's, run this as x64 only! ; ; Check out the Examples from 'Magnification API Overview', where much of the experiments thus far come from ; @ MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms692402%28v=vs.85%29.aspx ; ; Author: Ascend4nt ; =========================================================================================================== ;~ #AutoIt3Wrapper_UseX64=Y ; Use when necessary #include "WinMagnifier.au3" #include <WinAPIGdi.au3> ; _WinAPI_DwmIsCompositionEnabled() #Region MAGNIFIER_EXPERIMENTS ; ============================================================================= ; Func _MagnificationExperiments($nWidth, $nHeight, $iX1, $iY1, ; $fMagFactor = Default, $bInvertColors = 1, ; $bShowCursor = False) ; ; ; Author: Ascend4nt ; ============================================================================= Func _MagnificationExperiments($nWidth, $nHeight, $iX1, $iY1, $fMagFactor = Default, $bInvertColors = False, $bShowCursor = False) Local $aTmp, $aColorFX, $hMagnifyGUI, $hMagnifyCtrl ;~ If Not _MagnifierInit() Then Return SetError(@error, 0, 0) $aTmp = _MagnifierGUICreate($nWidth, $nHeight, $iX1, $iY1, $bInvertColors, $bShowCursor) If @error Then Return SetError(@error, 0, 0) $hMagnifyGUI = $aTmp[0] $hMagnifyCtrl = $aTmp[1] ; Optionally make the window Topmost ;~ WinSetOnTop($hMagnifyGUI, "", 0) ; ------------------------- ; -- MAGNIFICATION SCALE -- If $fMagFactor <> Default Then _MagnifierSetScale($hMagnifyCtrl, $fMagFactor) EndIf ; ------------------------- ; ------------------ ; -- SET SOURCE (on screen) -- ;~ _MagnifierSetSource($hMagnifyCtrl, 0, 0, 200, 100) ; ------------------ ; ------------------ ; Exclude Windows! _MagnifierSetWindowFilter($hMagnifyCtrl, WinGetHandle("[CLASS:SciTEWindow]")) ; ------------------ ConsoleWrite("InvertColors flag (MS_INVERTCOLORS) set? = " & _MagnifierIsInvertColorsStyle($hMagnifyCtrl) & @LF) ; ------------------ ; SHOW IT! GUISetState(@SW_SHOW, $hMagnifyGUI) MsgBox(0, "Normal Magnify", "Normal 2x scale") ; Inverted Colors Dim $aColorFX[5][5] = [ _ [-1.0, 0, 0, 0, 0], _ [ 0, -1.0, 0, 0, 0], _ [ 0, 0, -1.0, 0, 0], _ [ 0, 0, 0, 1.0, 0], _ [1.0, 1.0, 1.0, 0, 1.0] ] _MagnifierSetColorEffect($hMagnifyCtrl, $aColorFX) MsgBox(0, "Inverted Colors via ColorFX", "Inverted Colors via ColorEffects") ;~ _MagnifierSetInvertColorsStyle($hMagnifyCtrl, True) ;~ MsgBox(0, "Inverse Color Style", "Inverse Effect Color Style (control style)") ; ------------------ ;~ $aColorFX = _MagnifierGetColorEffect($hMagnifyCtrl) ;~ _ArrayDisplay($aColorFX, "Color Effects Matrix") ; ------------------ ; -- CLEAR COLOR EFFECTS -- _MagnifierClearColorEffects($hMagnifyCtrl) ; ------------------ ; Still set after Setting Color Effects to Identity Matrix (restored original colors) ;~ ConsoleWrite("InvertColors flag (MS_INVERTCOLORS) set? = " & _MagnifierIsInvertColorsStyle($hMagnifyCtrl) & @LF) ; ------------------------- ; -- SET SOURCE AGAIN -- _MagnifierSetSource($hMagnifyCtrl, $iX1 + 100, $iY1 + 100, $iX1 + $nWidth, $iY1 + $nHeight) MsgBox(0, "Source Change", "Moved Source & Cleared Effects") ; ------------------ ; -- COLOR EFFECTS -- If 1 Then _MagnifierSetColorEffect($hMagnifyCtrl, $COLOR_EFFECTS_GRAYSCALE_MATRIX) MsgBox(0, "Grayscale", "Grayscale Color Effects") EndIf ; ------------------ GUIDelete($hMagnifyGUI) Return 1 EndFunc #Region MAIN_CODE _WinMain() ; ------------------= MAIN CODE =----------------------- Func _WinMain() ; Force restart with AutoIt x64 if running on a 64-bit O/S If @OSArch = "X64" And Not @AutoItX64 And Not _IsScriptCompiledToExe() Then Exit ShellExecute(StringReplace(@AutoItExe, ".exe", "_x64.exe", -1),'/AutoIt3ExecuteScript "' & @ScriptFullPath & '"', @WorkingDir) EndIf ; Setting DWM off has these effects: ; - Full-screen Magnifier Color Effects AND Magnification do NOT work ; - Magnifier Control will not 'ignore' windows with _MagnifierSetWindowFilter() ; - Magnified images tend to look blurry - possibly software-mode magnification? ; Force DWM off so Full-screen Effect tests don't run ;_WinAPI_DwmEnableComposition(False) If Not _MagnifierInit() Then Exit @error ; Magnifier Full-screen Effects Require DWM Composition to be enabled If _WinAPI_DwmIsCompositionEnabled() Then If _MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_GRAYSCALE_MATRIX) Then MsgBox(0, "Full-screen Magnify FX", "Gray-scale Color Effects!") ;~ $aColorFX = _MagnifierFullScreenGetColorEffect() ;~ _ArrayDisplay($aColorFX, "Full-screen matrix after Grayscale Transform") _MagnifierFullScreenClearColorEffects() MsgBox(0, "Full-screen Magnify FX", "Colors back to normal! Yay?") EndIf ; Full-screen Magnifier issues: ; - Windows Vista: Not supported ($g_nWinMagnifyAPILevel = 1) ; - Windows 7: Uses negative numbers, not entirely sure of how these values are mapped just yet ; - Windows 8: Works pretty much as expected (and documented) - use positive #'s indicating top-left of scaled screen If $g_nWinMagnifyAPILevel >= 7 Then Local $bRet ; Difference in calculations for Win7 and Win8 - need a consistent mapping method! If $g_nWinMagnifyAPILevel = 7 Then _MagnifierFullScreenSetScale(2.0, -1 * @DesktopWidth / 2, -1 * @DesktopHeight / 2) Else ; $g_nWinMagnifyAPILevel >= 8 _MagnifierFullScreenSetScale(2.0, @DesktopWidth / 4, @DesktopHeight / 4) EndIf MsgBox(0, "Full-screen Scale FX", "Scaled 2x") _MagnifierFullScreenSetScale(1.0) MsgBox(0, "Full-screen Scale FX", "Back to 1x scale") EndIf ; Brightness Lowering isolated (Contrast & Saturation look bad) Dim $aColorFX[5][5] = [ _ [ 1.0, 0, 0, 0, 0], _ [ 0, 1.0, 0, 0, 0], _ [ 0, 0, 1.0, 0, 0], _ [ 0, 0, 0, 1.0, 0], _ [-0.5, -0.5, -0.5, 0, 1.0] ] ; Brightness - Lowering - Color Components Dim $aColorFX[5][5] = [ _ [0.6, 0, 0, 0, 0], _ [ 0, 0.6, 0, 0, 0], _ [ 0, 0, 0.6, 0, 0], _ [ 0, 0, 0, 1.0, 0], _ [ 0, 0, 0, 0, 1.0] ] _MagnifierFullScreenSetColorEffect($aColorFX) MsgBox(0, "Brightness Lowered Fullscreen", "Fullscreen ColorEffects - Brightness Reduced") ; Verify effects (false here): ;ConsoleWrite("Inversion Matrix Comparison Result:" & _MagnifierColorEffectIsEqual(_MagnifierFullScreenGetColorEffect(), $COLOR_EFFECTS_INVERSION_MATRIX) & @LF) _MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_INVERSION_MATRIX) MsgBox(0, "Inverted Fullscreen", "Fullscreen ColorEffects - Inversion." & @CRLF & _ "Inversion Matrix Comparison Result:" & _MagnifierColorEffectIsEqual(_MagnifierFullScreenGetColorEffect(), $COLOR_EFFECTS_INVERSION_MATRIX)) #cs ; Inverted Colors - Lowered Brightness (adding to color components, reducing brightness components) Dim $aColorFX[5][5] = [ _ [-0.7, 0, 0, 0, 0], _ [ 0, -0.7, 0, 0, 0], _ [ 0, 0, -0.7, 0, 0], _ [ 0, 0, 0, 1.0, 0], _ [0.7, 0.7, 0.7, 0, 1.0] ] _MagnifierFullScreenSetColorEffect($aColorFX) MsgBox(0, "Inverted LB Fullscreen", "Fullscreen ColorEffects - Inversion Lowered Brightness") #ce #cs ; Inverted Colors - Increased Brightness Dim $aColorFX[5][5] = [ _ [-1.3, 0, 0, 0, 0], _ [ 0, -1.3, 0, 0, 0], _ [ 0, 0, -1.3, 0, 0], _ [ 0, 0, 0, 1.0, 0], _ [1.3, 1.3, 1.3, 0, 1.0] ] _MagnifierFullScreenSetColorEffect($aColorFX) MsgBox(0, "Inverted IB Fullscreen", "Fullscreen ColorEffects - Inversion Increased Brightness") #ce ;~ _MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_BW_MATRIX) ;~ MsgBox(0, "Black & White Fullscreen", "Black & White Fullscreen ColorEffects") _MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_SEPIA_TONE_MATRIX) MsgBox(0, "Sepia FullScreen", "Sepia Fullscreen ColorEffects") _MagnifierFullScreenClearColorEffects() MsgBox(0, "Color Restored", "Restored Normal Colors") EndIf ; IMPORTANT - Magnification GUI will fail to work properly sometimes if run in x86 mode on a 64bit O/S ; For this reason, ALWAYS run the Magnification code in the SAME bit-mode as the O/S (x86 in 32-bit O/S's, x64 in 64-bit O/S's) ;~ ConsoleWrite("Title = " & WinGetTitle("[CLASS:SciTEWindow]") & @CRLF) _MagnificationExperiments(@DesktopWidth, @DesktopHeight / 2, 0, @DesktopHeight / 2, 2.0) EndFunc #EndRegion MAIN_CODE #EndRegion MAGNIFIER_EXPERIMENTS #Region MISC_FUNCTIONS ; ============================================================================= ; Func _IsScriptCompiledToExe() ; ; Returns True if the Script has been compiled to an Executable. ; Returns False for .AU3 and .A3X-compiled scripts, as well as scripts run from a different executable ; (CompiledScript.exe /AutoIt3ExecuteScript AnotherScript.exe) ; ; The common method for checking @Compiled is error-prone especially when a script is compiled to .A3X ; To deal with this annoying oversight by the devs (who could easily make @Compiled return -1 for A3X), ; this function checks the path to executable against the script path to make sure they are 1 and the same ; ; While this doesn't detect scripts run from another executable, the situation is basically the same ; - the script still does not have access to the original executable file's resources ; ; Author: Ascend4nt ; ============================================================================= Func _IsScriptCompiledToExe() Return (@Compiled And @AutoItExe = @ScriptFullPath) EndFunc #EndRegion MISC_FUNCTIONS _ Screen Inverter: Toggle full-screen Color Inversion on and off via the Tray: ; =========================================================================================================== ; <MagnifierScreenInverter.au3> ; ; Simple Full-Screen Color Inversion example. Toggle Color Inversion on/off via Tray. ; Important: Requires Win 7+ ; ; Note: May work cleaner if run in same bitness (32/64) as O/S.. it seems some transitions in DWM ; cause the Magnifier tool (magnifier.exe) to crash if used in conjunction with this script. ; ; Uses <WinMagnifier.au3> ; ; Author: Ascend4nt ; =========================================================================================================== ;~ #AutoIt3Wrapper_UseX64=Y ; Optional, may work better if in same bitness as O/S #include "WinMagnifier.au3" #include <WinAPIGdi.au3> ; _WinAPI_DwmIsCompositionEnabled() Global $g_bDwmActive = False Global $g_bInvertOn = False, $g_cTrayInvertToggle = 0 #Region MAIN_CODE Exit _WinMain() Func _WinMain() ; Singleton code: If WinExists("0bc53fe0-59c2-11e2-bcfd-0800200c_9a66") Then Return 1111 AutoItWinSetTitle("0bc53fe0-59c2-11e2-bcfd-0800200c_9a66") ; Vista Minimum for Magnifier, but Full-Screen FX requires Win7+ If Not _MagnifierInit() Or $g_nWinMagnifyAPILevel <= 1 Then Return @error Opt("TrayOnEventMode", 1) Opt("TrayMenuMode", 1+2) Opt("GUIOnEventMode", 1) If Not _WinAPI_DwmIsCompositionEnabled() Then If MsgBox(32 + 3, "Warning: DWM is OFF", _ "Desktop Composition is OFF, which makes Color Inversion Impossible" & @CRLF & _ "unless Re-Enabled!" & @CRLF & _ "Would you like to run this program anyway? ") <> 6 Then Return 2222 EndIf TraySetClick(8) $g_cTrayInvertToggle = TrayCreateItem("Invert Colors Toggle") TrayItemSetOnEvent(-1, "_ToggleInvertColors") TrayCreateItem("") TrayCreateItem("Exit") TrayItemSetOnEvent(-1, "_Exit") ; Automatically Invert on Left-Click Icon TraySetOnEvent(-7, "_ToggleInvertColors") ; $TRAY_EVENT_PRIMARYDOWN -7 TraySetToolTip("Screen Color Inverter (Left-Click Toggles, Right-Click For Menu)") #cs ; OPTIONAL: ; Create a Dummy GUI so we can receive and react to WM_DWMCOMPOSITIONCHANGED Messages Local $hDummyGUI = GUICreate("") GUIRegisterMsg(0x031E, "_DwmCompositionChange") ; WM_DWMCOMPOSITIONCHANGED 0x031E #ce ; Not necessary, but can free some memory by flushing data to disk DllCall("psapi.dll", "bool", "EmptyWorkingSet", "handle", -1) While 1 Sleep(50) WEnd EndFunc #EndRegion MAIN_CODE #Region TRAY_ONEVENT_FUNCS Func _ToggleInvertColors() If $g_bInvertOn Then TrayItemSetState($g_cTrayInvertToggle, 4) _MagnifierFullScreenClearColorEffects() ;~ ConsoleWrite("Inversion: OFF"&@LF) $g_bInvertOn = False Else ; Magnifier Full-screen Effects Require DWM Composition to be enabled If _WinAPI_DwmIsCompositionEnabled() Then TrayItemSetState($g_cTrayInvertToggle, 1) _MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_INVERSION_MATRIX) ;~ ConsoleWrite("Inversion: ON"&@LF) $g_bInvertOn = True EndIf EndIf EndFunc #cs ; OPTIONAL: Func _DwmCompositionChange($hWnd, $nMsg, $wParam, $lParam) ConsoleWrite("DwmCompositionChanged!"&@LF) If _WinAPI_DwmIsCompositionEnabled() Then $g_bDwmActive = True If $g_bInvertOn Then ; Doesn't appear to be necessary (state is recovered): ;_MagnifierFullScreenSetColorEffect($COLOR_EFFECTS_INVERSION_MATRIX) EndIf Else $g_bDwmActive = False EndIf Return 0 EndFunc #ce Func _Exit() _MagnifierUnInit() Exit EndFunc #EndRegion TRAY_ONEVENT_FUNCS WinMagnifier.zip ~prev downloads: 48
    2 points
  2. wolf9228

    ASM download project

    Hello thank you for the compliment greeting
    2 points
  3. Features: Create modern looking borderless and resizable GUIs with control buttons (Close,Maximize/Restore,Minimize, Fullscreen, Menu) True borderless, resizeable GUI with full support for aerosnap etc. Many color schemes/themes included. See MetroThemes.au3 for more details. 3 type of Windows 8/10 style buttons. Modern checkboxes, radios, toggles and progressbar. All buttons, checkboxes etc. have hover effects! Windows 10 style modern MsgBox. Windows 10/Android style menu that slides in from left. Windows 10 style right click menu Credits: @UEZ, for the function to create buttons with text using GDIPlus. @binhnx for his SSCtrlHover UDF Changelog: Download UDF with example:
    1 point
  4. mylise

    Opencv UDF

    I have not found much on OpenCV for Autoit. There is another UDF but it is not complete and it concentrated mostly on drawing stuff which is not what OpenCV was designed for. Ported about 80% of core and imgproc functions (CVcore_c.au3 and CVimgproc_c.au3). Why only 80%? I did not know how to handle functions returning a structure and I didn't really need the others There are also a few other functions found in other DLL libraries and my own functions to get every thing to work properly (OpenCVFcns.au3). You will need to download Opencv DLL libraries for this UDF to work and copy them in working directory where script will execute. I am using DLL version 2.4.5.0 . If you get current version 2.4.8.0, rename DLL file names in _OpenCV_Startup() function found in OpenCVFcns.au3 but I have not tested it with the new libraries! Any Opencv "C/C++" examples found on the web can now easily be rewritten to function with Autoit. If there are request, I can show how it is done. Start with simple examples first before trying to get Autoit to control the cursor with the movement of your eyes! Please post examples that you have tried here. Here is an example to find the contour of many shapes. I've also included it below. #include <GDIplus.au3> #include <Memory.au3> #include <GUIConstantsEx.au3> #include <OpenCVFcns.au3> ;start dll opencv _GDIPlus_Startup() _OpenCV_Startup() ;// load IPL type image ;Local $pimg = _cvLoadImage("shapes.jpg");Opencv function to load image Local $hImagep = Load_BMP_From_Mem(shapes_jpg()) ;get image from memory GDI bitmap Local $pimg = _Opencv_BMP2IPL($hImagep) ;convert GDI bitmap to IPL image ;// Create some CV and Autoit windows to show the input ;// and output images . ;// _cvNamedWindow( "Example-in" ) _cvNamedWindow( "Example-bw" ); Local $hGUI = GUICreate("GDI+", DllStructGetData(_cvGetSize( $pimg ),"width"), DllStructGetData(_cvGetSize( $pimg ),"height")) GUISetState(@SW_SHOW) Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;// show input image ;// _cvShowImage( "Example-in", $pimg); ;// Create a destination image to hold output ;// ;//smooth and converting the original image into grayscale Local $pimgGrayScale = _cvCreateImage(_cvGetSize($pimg), 8, 1); _cvSmooth($pimg, $pimg, $CV_GAUSSIAN,3,3); _cvCvtColor($pimg,$pimgGrayScale,$CV_BGR2GRAY); ;//get ride of some noise by erode and dilate and convert to black and white image Local $pimgBW = _cvCreateImage(_cvGetSize($pimg),8,1); _cvErode( $pimgGrayScale , $pimgBW , Null, 3 ) _cvThreshold($pimgBW,$pimgBW,200,255,$CV_THRESH_BINARY);// may need to adjust threshold value (200) _cvDilate( $pimgBW , $pimgBW, Null,3 ) _cvThreshold($pimgBW,$pimgBW,128,255,$CV_THRESH_BINARY_INV); ;// show black and white image _cvShowImage( "Example-bw", $pimgBW); ; //setup memory block and sequence block Local $pstorage = _cvCreateMemStorage(0); //storage area for all contours Local $pcontours = _cvCreateSeq(0, 64, DllStructGetSize(DllStructCreate($tagCvPoint)), $pstorage); ;// find all exterior and inner contours in a list format (no vertical) Local $num_found = _cvFindContours($pimgBW, $pstorage, $pcontours, DllStructGetSize(DllStructCreate($tagCvContour)), $CV_RETR_LIST, $CV_CHAIN_APPROX_SIMPLE, _cvPoint(0,0)) ;// cycle through all exterior contours "0x4299500C" or interior contours "0x4299D00C". Remove if statement for both Local $pnext = $pcontours for $t = 1 to $num_found Local $vnext = DllStructCreate($tagCvSeq,$pnext) $pnext = DllStructGetData($vnext,"h_next") If $pnext = 0 Then $pnext = $pcontours + DllStructGetData($vnext,"header_size") ; skip over first sequence which is empty ;// Check if sequence is an exterior contour "0x4299500C" If DllStructGetData(DllStructCreate($tagCvContour,$pnext),"flags") = 0x4299500C then ; // determine number of elements in sequence and create an array Local $datasize = DllStructGetData(DllStructCreate($tagCvContour,$pnext),"total") dim $apts[$datasize+2][2] $apts[0][0] = $datasize+1 ; // retrieve x,y values of each points in sequence for $itt = 0 to $datasize -1 $vpoint = DllStructCreate($tagCvPoint, _cvGetSeqElem($pnext,$itt)) $apts[$itt+1][0] = DllStructGetData($vpoint,"x") $apts[$itt+1][1] = DllStructGetData($vpoint,"y") If $itt = 0 Then $apts[$datasize+1][0] = DllStructGetData($vpoint,"x") $apts[$datasize+1][1] = DllStructGetData($vpoint,"y") EndIf $vpoint = 0 Next ; // draw it in autoit gui using gdi drawlines _GDIPlus_GraphicsDrawLines($hGraphics, $apts) $vnext = 0 EndIf sleep(1000) ;just to show that each sequence is drawn individually Next ;// Wait for the user to hit a key, then clean up the windows ;// ;_cvWaitKey( 0 ); Opencv function to wait for a key pressed Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ;// Be tidy ;// _GDIPlus_GraphicsDispose($hGraphics) GUIDelete($hGUI) _GDIPlus_ImageDispose($hImagep) _cvReleaseImage( $pimgBW ); _cvReleaseImage( $pimgGrayScale ); _cvReleaseImage( $pimg ); _cvDestroyAllWindows() _cvClearMemStorage( $pstorage ); _cvClearSeq($pcontours) _Opencv_CloseDLL() _GDIPlus_Shutdown() Exit ; #FUNCTION# ==================================================================================================================== ; Author ........: Mylise ; based on _GDIPlus_GraphicsDrawPolygon ; =============================================================================================================================== Func _GDIPlus_GraphicsDrawLines($hGraphics, $aPoints, $hPen = 0) Local $iCount = $aPoints[0][0] Local $tPoints = DllStructCreate("float[" & $iCount * 2 & "]") For $iI = 1 To $iCount DllStructSetData($tPoints, 1, $aPoints[$iI][0], (($iI - 1) * 2) + 1) DllStructSetData($tPoints, 1, $aPoints[$iI][1], (($iI - 1) * 2) + 2) Next __GDIPlus_PenDefCreate($hPen) Local $aResult = DllCall($ghGDIPDll, "int", "GdipDrawLines", "handle", $hGraphics, "handle", $hPen, "struct*", $tPoints, "int", $iCount) __GDIPlus_PenDefDispose() ; does destroyed @error, @extended If @error Then Return SetError(@error, @extended, False) If $aResult[0] Then Return SetError(10, $aResult[0], False) Return True EndFunc ;==>_GDIPlus_GraphicsDrawLines ;----------------------------------------- ; used to load images stored in memory Func Load_BMP_From_Mem($pic) ;coded by UEZ. Thanks to ProgAndy for mem allocation lines Local $memBitmap, $len, $tMem, $hImage, $hData, $pData, $hStream, $hBitmapFromStream $memBitmap = Binary($pic) ;load image saved in variable (memory) and convert it to binary $len = BinaryLen($memBitmap) ;get length of image $hData = _MemGlobalAlloc($len, 0x0002) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002) $pData = _MemGlobalLock($hData) ;translate the handle into a pointer $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE $hStream = _WinAPI_CreateStreamOnHGlobal($pData) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents $hBitmapFromStream = _GDIPlus_BitmapCreateFromStream($hStream) ;Creates a Bitmap object based on an IStream COM interface $tMem = "" Return $hBitmapFromStream EndFunc Func shapes_jpg() Local _ $FileBin = "0xFFD8FFE000104A46494600010101007800780000FFE1006845786966000049492A000800000004001A010500010000003E0000001B010500010000004600000028010300010000000200000031010200120000004E00000000000000780000000100000078000000010000005061696E742E4E45542076332E352E313000FFDB00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFDB00430101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" $FileBin &= "010101010101010101FFC00011080251023E03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101" $FileBin &= "010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00FEFE28A28A8E45DDFE1FE401451451C8BBBFC3FC8028A28A391777F87F900514514722EEFF00" $FileBin &= "0FF200A28A28E45DDFE1FE401451451C8BBBFC3FC8028A28A141269EBA7A7F9005145156014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014515C0FC41F8ABF0C3E1368CDE23F8A7F113C0FF000DFC3E8CE8DADF8EFC55A1F84F4A0F1C4F70E9F6FD76FAC6D4BA4314B314F37788E377C6D0C4454A94E8C2552AD4852A704E53A95271842115BB94E4D4629756DA474E0F058CCC715430597E1313" $FileBin &= "8EC6E26A46961B0983A157138AC45593B469D0C3D084EAD5A927A4614E12937B2677D457E5D78DFF00E0B3FF00F04D3F015D4B63A9FED3DE1DD6AEE2965876F827C29F107C796923C5F78C5AB7843C27ACE8CF11E04538D43C89BFE594AE0311E6F6BFF05E9FF8265DC4EF0CDF1AFC4D651A3ED5BABAF83FF15DE0954330F3635B2F085DDC84C286C4B6F1498603CB0C1957E6AB71B706E1EA3A55B8AF8769D44ED284B39CBD4A2FB497D63DD7DD4AC7EDB80FA2F7D24F34C2431F97F803E32E3307520A74B1347C35E309D1AD07B4E84FFB212AF17D1D2E74F5B6CEDFB1B457C11F0C3FE0A89FF04FDF8C1716F67E0AFDAAFE148BEBB481AD34EF17EB171F0D" $FileBin &= "F52BB6B85778E0B5D3FE2259F85AF6E2EC2A379B650C0F77091B668632715F76D9DF59EA36D05EE9F776D7D6773124F6D77693C5736F710C8A1A39619A1678E58A452192446656520A920E6BDAC0E6796E674FDB65B9860B30A4AD7A982C550C55357DAF3A152A455FA6BA9F98F1470471A70462D6038D384389F8471D27251C1713E419AE438A9383B4F970F9AE1309565CAF495A0F95E8ECCB545145771F2E14514500145145001451450014514500145145001451450014515E53E12F8DDF0BFC73E3FF001DFC2FF0B78B6CB56F1C7C356B25F18E870C5768FA6B5F2FCBE4DD4F6F1D9EA42D6602D3523A65C5D0D2EF992CB51FB35D4891371E2B31CBF055" $FileBin &= "B0386C66370985C466788960F2EA188C452A3571F8B861EB62A786C1D3A938CF135E385C3D7C44A951539AA346AD571E4A7292EDC2E5B98E3A863F1382C06331786CAB0D0C6E6788C361AB57A39760EA626860E18AC755A509430B879E2F1386C2C6B579429CB115E8D152752A422FD5A8A28AEC38828A28A0028A28A0028A28A0028A28A0028A28A0028AF16F8D5F1F3E1DFC03D2746D67E20DDEA76F6DAFEA52E99A6C7A569971A95C4B3DBDB35D4F23AC6638A1861408AC64995DDE68FCA8E4513345F3A7FC3C7BF66AFF009FFF00197FE1293FFF002557E63C4DE34784DC199BD6C838AFC43E13E1FCEB0D4E856C46579A67384C26368D2C4D38D6C3CEAE" $FileBin &= "1EA5455211AD4A51A94F992E684A325A4937D14F0989AB153A746A4E0EE94A316D3B6F67D4FBD28AF82FFE1E3DFB357FCFFF008CBFF0949FFF0092A8FF00878F7ECD5FF3FF00E32FFC2527FF00E4AAF03FE2647C04FF00A3BBC05FF890E07FF96F9AFBCBFA8633FE81AAFF00E027DE9457C17FF0F1EFD9ABFE7FFC65FF0084A4FF00FC9547FC3C7BF66AFF009FFF00197FE1293FFF002551FF001323E027FD1DDE02FF00C48703FF00CB7CD7DE1F50C67FD0355FFC04FBD28AF82FFE1E3DFB357FCFFF008CBFF0949FFF0092A8FF00878F7ECD5FF3FF00E32FFC2527FF00E4AA3FE2647C04FF00A3BBC05FF890E07FF96F9AFBC3EA18CFFA06ABFF00809F7A51" $FileBin &= "5F05FF00C3C7BF66AFF9FF00F197FE1293FF00F2551FF0F1EFD9ABFE7FFC65FF0084A4FF00FC9547FC4C8F809FF477780BFF00121C0FFF002DF35F787D4319FF0040D57FF013EF4A2BE0BFF878F7ECD5FF003FFE32FF00C2527FFE4AA3FE1E3DFB357FCFFF008CBFF0949FFF0092A8FF008991F013FE8EEF017FE24381FF00E5BE6BEF0FA8633FE81AAFFE027DE9457CBBF087F6C0F831F1B7C5A7C13E09D435D3AF7F65DE6AD143AC689369B05C5BD8496C9711413B4B2ABDD2A5C89C4242EE820B870D98F07EA2AFD278578C78578E32BFEDBE0FE20CAB89328FACD6C1BCC727C651C761162B0EA0EB61DD6A3294555A4AA5373836A51538B6AD246152954A" $FileBin &= "32E4AB0942564F964ACECF67E9A3FB828A28AFA4330A28A2800A28A2800A28A2800A28A2800AF0BD0FE3F782F5EFDA1FC7DFB37D9CD9F1AF803E1AF81BE24EA2448AD1CF63E30D67C4DA54FA7AC4A37C577A1C1A4F87751BC690ED9ADBC61A5F92098A7DBEE4CCA8ACEC405452CC4F002A824927B000126BF915FD9B7F6A4D5AFF00FE0ACC3F69ABBD498FC37FDA37E3278F3F679B19CB8027F08BD9E87E19F84CCF2093ECC22BCD5744F04B32A9744934AD4595DD9E395BE7B3CCEE39457C9A93B3FED0CC6187AB7B5A9E15C7D9D4ACEFB2A75AB61AEF4F75BF47F947897E24D1E01CC7C3FC14E309AE2BE2DC36538E73B7FB2E4D3A6F0B8BCC1BBFB90C2E65" $FileBin &= "8FC9D549ECA9D59DDDAE9FF5D9451457D09FAB851451400514514005145140051451400578DFC76FDA07E0EFECCFF0F355F8A7F1C3C79A27C3FF000569188E4D4F5799CDC6A17D2472CB6FA4685A5DB24FAA6BFADDE24329B3D1F47B3BDD46E56295E2B6648A564F3CFDB13F6BAF855FB157C12F107C68F8AB7CED6D64574BF0A7856C2488F88BC7BE30BC8666D1FC27E1DB693FD6DEDF3C324D7774C86D748D2EDEFB57BE296765311FC847C40F15FC65FDB5BE25A7ED07FB5A5DB5C3C324EFF0A3E064124C3C09F0A7C3B70EB25BC2FA44C766A1E21BB8D209755BED4E39350BC9E2864D5581B6D3748D03F3BE37E3DA1C30A397602953C7E7F88A5ED69616" $FileBin &= "7292C2E06849B8C719994E0D4E34E5252587C3536ABE2E50928CA9528CEBC3FB23E8BDF44CCD7C72957E32E2CCC319C23E1264D8F780C6E7986A14EA679C579B51853AD5B86B8330F894F0D571B4A8D4A53CDB3BC5C6A655C3F46BD19D7A78EC756C26578AFB97E3DFFC15FBF6B0FDA727D43C3FFB21786E3FD9AFE0DCF24B6B0FC68F1EE9B67AD7C57F14D816789AFBC2DE1A98DD687E19B6B981F746EE9AADEE163BAB0F14E977A92DA43F9CF73F00740F16F8826F1B7C67F1578EFE3C78FAF4A497FE2CF8A9E2BD67C4777348A72638EDEE6F193EC2BC241637B25FC56F12AC31158D428F78555550AAA155400AAA0055038000180001C003814B5FCF59A6" $FileBin &= "3731CFAB7D633EC7D7CD6A7339428D77CB80C3BBDD2C2E5B06B09414744A7ECE788924BDAD7A925CC7FB09C0BC35C1BE13E5AB26F09B84F2AE01C17B254311986570F6FC5D9BC395467533FE33C4C67C4199CEB34E757091C5E1727A539CE381CAB0745AA2B98D1FC13E0DF0F22C7A0F84FC37A322A8551A5E89A6D8E141C819B6B68CE377CDC9E5BE63CF35D0496B6D2A7972DBC12478DBE5C9146E9B4F51B594AE381C631C54F4573461082E5842318AD14631514976B249745F71EDD5C562ABD475ABE26BD6AB26E4EAD5AD52A54727BC9CE72949B7D5B773CD7C45F073E1678AE3923D7BC01E16BD797716BA4D22D2CF5005D83B98F52B18EDAFE22ECA0B" $FileBin &= "98EE54BF46C824537E1AD9FED01FB30DFAEB7FB217ED0DE3DF854219DAEE4F871AF6A92F8C7E13EB0C64DF25BDF78575E8F53B081AE119E197557B0D4755823666B2B8B5B83F695F4CA2B3851852AD1C5619D4C1E2E0EF4F1982A953078BA6F469C31386952AC95D26E2E6E32B5A516B43AF119AE2B1F9656C8B398E1788F87B131E4C5F0E713E0B09C47C3D8B859AE5C464B9D51C6E5F37CAE4A35561E35A9733951AB4E7692FD5DFD91FFE0B6FA0EB9E21D0FE0E7EDD3E0FD3BF67DF895A9BC761A1FC54D2E69E5F815E36BB2C234326AB7B73773F80AEE72D1E5357D4753D1213BA5D4B5BD1249ED74F7FDF5B7B882EE086E6D668AE6DAE2249A0B882449A" $FileBin &= "19E19543C72C52A164923910AB23A332BA904120827F88BF15784BC39E37D16EFC3DE2AD22CF5AD22F536CD69791EE0AE0109716F2A959AD2EE1277DBDDDB4915C40E03C52230CD7D17FB07FFC1403C79FB0078B7C39F03BE3EF88B56F1CFEC6BE28D4E1D17C11E3FD5A49B50F10FECFBA95ECC12CF4ED62EB6B4B77F0EDA47DB35AE08D1600DA8E8896F15ADDE897DFACF09789B8CC1D6A396F16578E2B055671A387CFDC214AB616726A34E9E710A718D19D0937CAB31A50A7ECA5CAF174DC653C4C7FCFBFA427D07387389B2DCCF8DBE8FD95D5C8F89F0346BE639C78474F1188C765B9EE168C255B178AF0E7138CAB5F30C3E6942119D79F0663F138DFAF" $FileBin &= "5355170EE3635E187C8EB7F5DF4553D3EFEC756B0B2D534CBCB5D474DD4AD2DEFAC2FECA78AEACEFACAEE249ED6EED2E607786E2DAE20912586689DE3963757462A41372BF7C4D349A69A6934D3BA69EA9A6B469AD99FE49CA3284A509C6509C24E3384938CA328B6A51945A4E328B4D34D269A69AB8514514C90A28A2800A28A2800A28A2800A28A2803C13F69AF8D9A67ECF5F04FC73F142FBC89AF346D2DAD7C37A74CDC6ADE2BD51858787B4EF2D59259207D4668A7BF301325BE976F7D7614A5BB63F9DFF00833E2EF137ECD3F137E1B7ED19AD5FEA7A85C6B7AEDF41F1D3CC7966BAD4B41F8817EB73AA5D5CC2399AEF4CB9962D51A22D8BAF10D9581D" $FileBin &= "EA8CD8FB17F6FEF89FFF000B9BF683F0CFC0ED22E8DD7817E092C5E2BF1DAC4FBECB51F1FEA56F9D2B4B9CAB3C333689A64A8814ED2B26A5E22B29D7CDB650BE0DAFE8B65E23D1753D0B508FCCB3D52CE6B398000B209508496227859A07D9340FD63963471CA8AFF387C76E39C771678952C470F633D950F0BB171C270BE263272A13E30C162686373ACC64A0D7B5A14B1386C2F0ED483BDE961736A69FB3C5CD4BFD3DFA3DF00E5DC1FE16C68712607DBD7F16B072C6716616504B114F8231D84C460722CB20E7193A588AF83C5E3389E94E2AEAAE3724ACD2AD81838FF489617D67A9D959EA5A75D417B61A85ADBDED95E5B4A935BDD5A5D44B3DB5CC1346" $FileBin &= "5A39619E174922911991D18329208356EBF347FE099DF1AAFBC61F0AB57F82BE2FBDF37C79F01EFE2F0D0F3A46371A9F816E3CD3E13D4A31236E960B28A19F444112B2C16165A44D3B7997C85BF4BABFBBF80B8BF03C79C2190F1665EBD9D1CDF030AD5F0D292954C063E94A587CCB2EACD69EDF2FC7D2C460EAF473A2DABC5A6FFCF5F10B82F30F0F38D388783B3297B5AF9263E7428E2E3171A598E5F5A30C4E579A504F5FABE679757C2E3A87554EBC54AD24D228A28AFAF3E3028A28A0028A28A0028A28A0028A28A00FCD1FF828DFFC7BFECF9FF65497FF0040D3EBE5DAFA8BFE0A37FF001EFF00B3E7FD9525FF00D034FAF976BFC9CF1F23197D203C4D" $FileBin &= "BC53B51E09B5D276FF008C5705DCFA2C27FB9E1FFEE27FE961451457E5FECE1FC90FFC057F9792FB8DEEFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC6DFECAFFF0027ABA77FD881AD7FE9B56BF6D6BF12BF657FF93D5D3BFEC40D6BFF004DAB5FB6B5FDD5F421D3C31E30B7FD1D7E30FF00D47C98F2734FE352FF00AF10FCE41451457F649E6051451400514514005145140051451401F13FFC1457E35FFC281FD8C3E3D7C40B6BB167AECBE0BBBF07" $FileBin &= "784E58E40974BE2AF1EC91783F45BBB25FBD35C6933EB1FDB8D1A86C5B697712BE2289D87F273E26F00EA5E13FD9C3C3D068AD269FE2CF8676DA17C44D3AEE05513E9FE26D16E8EBFABDDC65949325AFDAF57684919DD1C4194A8295FB47FF0005AEF881FF000937897F658FD97EC67F321F10F8C352F8D3E3BB3462857C3DE07B49F4CF0EC17657EFD96B5737DE2B8D637FDDFDBB49B4931E6A42C9F015DDADBDF5ADCD95D44B35ADE5BCD6B730B8CA4B6F711B45344C3BAC91BB230F426BF20E30ACF30CE7154149FB3C0612183834FE1C45751C5569C5F49454B0B1EEA54F7BE8BF803E90199BE28F10F37CAE9D56B0DC2F9161B87F0F38C9DA8E6D99D386" $FileBin &= "75996229C93D2A53856C969371B4A1570728B7CD1B47FA9BF805F1534DF8E1F04BE14FC5ED28C4B69F117C03E18F1635BC2C1D6C2F758D26D6EB52D2DC867DB3E93A8BDDE9B7285D8C7716B2C6CCCCA4D7AED7E2FF00FC111BE254FAA7ECE3E3DF807AC5EB4FAF7ECE1F15BC49E19B686570F37FC213E2EBBBBF137872F8B6164115DEB7278C21B5560CB1DA58C0B13AC5B2083F682BF4CC971DFDA394E5F8D7F1D7C3539554BECD78AF67888FFDB95E1523F23FB2FC3AE25FF5BF81B85F88E4E2F1199E4F85A98E8C6D6A799D087D5734A3A5B5A198D0C5516AC9DE1AA5B228A28AF4CFB40A28A2800A28A2800AA1AAEA9A7687A66A3AD6B17B6BA6693A458D" $FileBin &= "D6A7A9EA37D3C76D6761A7D8C125CDE5E5E5CCCC90DBDB5ADBC524D3CF2BAC71468EEECAAA4D5FAFC4CFF82E7FED09ACFC38FD97BC3DF003C0DA89B1F889FB5AF8C23F85B6F24324915D58FC39B44B7BDF893AA2142375ACB6777A3785B548DB3BB4AF155EC8837C431E3710E734387F25CCB39C4479E180C34EAC692769622BB6A9E170D07ADA789C4CE950868FDFA88FD27C1FF0DB34F17FC4EE0AF0DB28AB1C362B8B33CC2E5D5F1F383A94B29CAE0A78BCEF3AC4423694B0D92E4D86C7E6B898A6A52A183A8A3EF347E23FED01FB416B5FF050BFDA7B5AF8FBAC9BE4F803F0A753D4FC1DFB33F83EF838B2BBB5B1BC116AFF0013AFAC25DB1FF6C788EFAD" $FileBin &= "22BD47780CD671C3A5E8EF2BCBE178EE6E74EB07C2DE1CD33C21E1CD17C31A34220D3342D3AD74DB38F03718ADA25432CACA143CF3B869EE252374B349248F96724EF57F244EAE2B155F138FC7D5FAC6618FAF2C563ABEB69D7A96F729A7AC70F420A3430D4F6A5429D382DB5FFA17A180C8B21CAF25E14E12C02CA783B84B2CA19070B654ADCD85CAB08E4D6231528A8AAF9B66B889D7CDB3BC6C97B4C766D8DC5E266FDF4A2514514005145140051451400562788FC3BA378B743D4FC39E20B18751D1F57B492CEFAD261959229070E8C30D14F0B849ADAE232B35BDC471CF0BA491AB0DBA294A319C65092528C938CA3249C65192B34D3D1A69B4D3D1AD0D" $FileBin &= "28D6AB87AD4B1142AD4A35E854856A35A94E54EAD2AB4E4A74EA539C5A942709A5284A2D4A3249A69A3F473FE08A9FB5BF883C29E21D73FE09E3F1935D9F53BFF0769175E2CFD997C51AA4A0CFE22F8676ECD26A7F0FDA79363DC6A1E0E4325FE8B6ABE73C7A241AEE9F6FF67D1FC33A6249FD1E57F07BF16F59F14FC2ED47E1E7ED29F0E1DADFE23FECEFE32D27C7DA2CB1B3C6351D12DEF208FC4FA05FB46ACCFA3EA9A66F8F578C865934A1A85BE365D4A1BFB80F84DF127C3BF18FE177C3CF8B3E1199AE3C31F127C17E1AF1C68323ED131D2FC4FA45A6B1671DC2A332C77314376915CC3BB30CE9244D86422BF75F09F882AE372FC570EE32ACAA627235" $FileBin &= "46581A9524E552B64D88E68E1A3293D673C0D6A75707296AFD8470929B73A8DBFF002A7F681784381E1CE2FC83C64E1BC0D1C164BE2ACF33A3C5182C2528D2C265BE24E4AB0B5B3CC452A34E31A786C3F1665F8FC0711D2A515184B36A9C454F0F0861F0D0A70F42A28A2BF5C3FCF10A28A2800A28A2800A28A2800AF15FDA23E31E91F00FE0DF8EBE29EAC6091BC37A34CDA3584CFB06AFE23BD2B63E1ED246D65936DF6AD71690DC3C5B9EDED0DC5D15D90391ED55F871FF00050EF8A1FF000B6FE38F83FF00679D1EE0CFE10F851F67F1E7C4911B96B6BEF15DF5B2B787F42B850C6397FB374ABB59A44C9DCBAF5EC4CAB3E9FC7E57E3371E3F0F780B35CD" $FileBin &= "F09387F6EE3DD3C8F8668CECFDAE7D9A29D2C255707F1D1CBA947119B62E3A5F0980AE935271BFEBBE07F8791F127C44CA325C642A7FABF97AA99FF15D785D7B1E1DCA654EB636929A69C2BE6756586C9B072576B1B98E1DD9A4CF917E19E95ABC5A4EA1E2AF154F35F78D3E20EAD7DE33F166A1743FD2AE753D6EE25BE2B3E79564170D24B1602C7753DC85014803D268030303A0E0515FE6D60F0D1C1E1A961E339D574E3FBCAD564E75ABD69B73AD88AD395E552B622ACA75AB5493729D49CA526DB67FA8B8DC54B1B8AAD89953A745559FEEE8518A850C3518254E8616841251A787C3508D3C3D0A714A34E8D38422928A461F83BE23CDFB38FED03F0F7E" $FileBin &= "3A44F2C7E15D4274F007C55821DFB25F0A6B72C71C7AACD1C78699B46B98ADB5250DCCB3693A75A2E04CD5FD275BDC41776F0DD5B4B1DC5B5CC51CF04F0BAC914D0CA8248A58E442C92472232B2BAB1565208241AFE6C7C4BA0D978A341D5740D41775AEA9672DB3B601689D8660B88C12079B6D3AC73C44F0248D49E057E9D7FC135FE36DEFC41F83575F0AFC5B77E67C42F8137B1782F54499CBDC5F7857128F076ACACCDBA6812CADAE34359797917468AEA539BC8DA4FE93FA32719AC9789B36F0FF001B55432FE2755F88787799A50A59EE0E8C239F65D06FAE6180A74336C3D28D97B5C166D55A73AADBFE5CFA55F037F6EF0A64FE23E028F3663C26F0" $FileBin &= "FC33C4FC91F7EBF0FE36BCE5C399A55B5AEB2CCC6AE2325C4559734BD8E6192D14D428E9FA35451457F731FC00145145001451450014514500145145007E68FF00C146FF00E3DFF67CFF00B2A4BFFA069F5F2ED7D45FF051BFF8F7FD9F3FECA92FFE81A7D7CBB5FE4EF8F7FF002901E26FFD79E09FFD657047D1617FDCF0FF00F713FF004B0A28A2BF31360A28A2800A28A2800A28A2800A28A28036FF00657FF93D5D3BFEC40D6BFF004DAB5FB6B5F895FB2BFF00C9EAE9DFF6206B5FFA6D5AFDB5AFEE7FA117FC9B1E30FF00B3AFC61FFA8F931E5669FC6A5FF5E21F9C828A28AFEC93CC0A28A2800A2A96A376F61A7DF5F476379A949676973751E9BA78B6" $FileBin &= "6BFBF7B785E55B3B25BBB9B4B46BBB96410DB2DCDDDB40667412CF121675FC9CF117FC16A7F635F08788F57F07F8AAD7E367877C57A05FDCE97AE787359F851AB69DADE93A8D9B14B9B2D434DBABB8EEED6E21653BE296256030D8DA41AE2C666580CB941E3B1987C1C6A36A9CB115614A336AD75194DA4DABA6D2774B5B58F9AE23E32E15E11861AA71467F95E434B1B39D3C255CD7174F074F11520939D3A352B38C27522A49BA71939D9DED6D4FD70A2BF1EFFE1F8BFB0EFF00CFCFC5EFFC363A97FF0026D1FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936B83FD65E1EFFA1D659FF85943FF0093F3FCFB33E5FF00E234784DFF00470F84BFF0F383FF00E5" $FileBin &= "87EC2515F8F7FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936B9EF16FFC172BF63EB7F0AF89A7F0947F14F51F15C3A06B12F8674FD43E1CEA169617DAFC7A7DCBE8D677B74D7A16DAD2E7515B682E2E1B02186479091B490A5C4FC3D18CA4F39CB9A8C5C9A8E2E8CA4D257B28A9DDB7D12D5BD0CEAF8D7E1352A552ABF1078566A9C27370A79BE16A549F245CB969C2351CA7395AD0845372935149B763F31FF68EF881FF000BD7F6FF00FDA57E22C731BAF0F7C2C934BFD9F7C192316963893C1CCE3C622DA424C457FE1318B5BBC85E1014DAEB58058C924B3E6578BFC01D1750D2FE19E91A96B52CD73E22F195D6A3E38F10DE5C8C5D5EEA7E27BA6BF5BABA" $FileBin &= "C807ED32D81B1F3CB004CC1FE55FBABED15F9146B4F132AB8BA8AD531B5EB63269EF1789A92AB187FDC384A34D2E8A09743F80E18FC46715B1F9EE322E38CE21CCB30CFB13197C54E79B62AA6329D077D9616854A38484536A30A118A7648F68FF0082737C403F07FF00E0A20DE14B99FECDE19FDA8FE16DFE902367686DA4F887F0EA27D734A9989FDC34A9E1CD3F57B2855F0F35E788152361348B1DD7F5115FC587C53D7B57F86FAA7C29F8EDE1CB79EE35FF00817F153C1DE3D861B60CD35EE956BACD926AFA56C5652F6FA9EDB3B7BD52C11AC85C2CACB133B2FEE52FFC1717F61D2066E7E2F06C0C8FF8563A89C12391C5E9E87FFAD9AFB2E12CF30197" $FileBin &= "E1B1B80CC31B87C1FB2C5BC4617EB3561454E8E2E2A738D3E7694B93130AF29DBE1552374AEAFF00D13E03F89BC2DC299371070BF1671165790AC1E772CDB2579AE329612388CBF3DA4B118AA58675A51551E1F38A198D5ACA0DF22C6527249CAF2FD85A2BF1EFFE1F8BFB0EFF00CFCFC5EFFC363A97FF0026D1FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936BEB3FD65E1EFF00A1D659FF0085943FF93F3FCFB33F77FF0088D1E137FD1C3E12FF00C3CE0FFF00961FB09457E3DFFC3F17F61DFF009F9F8BDFF86C752FFE4DAED3E19FFC1603F652F8C7E39D13E1AFC31D1BE3778CBC71E21BB5B4D33C3DA37C2FBD9AF1DB23CFB9BB793528ADB4DD36CA326E" $FileBin &= "352D57529ED34DD36D524BBBFBBB7B68E4956A1C4790D49C29D3CDF2FA952A49429D3862A94A739C9A518C2319394A526D24926DB764AE6D86F183C2EC66270F83C271EF0BE27178BAD4F0F85C350CDB0B56BE22BD5928D3A34294272A956AD493518421194A526924D9FAA1452039009054900E0E32323A1C12323A1C1233D0914B5ED1FA3857F257FF000556F1ACDF13BFE0A7DA07835E499B42FD9C3F67ED39ADAD2570F0C5E36F88F7F71AA6A77D6F1F9B2A20BCF0B6A9E1FB791C456F7065D2577B4B08B723FAD4AFE2FBF69ABA6D5BFE0A81FB7FEA53AFEFED75DF829A446CC77B0B7B0F857A4E9A803ED5C2B45A4DB9D98F94054CBECDC7F25F187113" $FileBin &= "870FE53848DF931FC4383A75927A4A9E13079866504D754B1182A13B778A7D0FF423F6716514313E2E7883C43563175F84BC1DE21C5E5D271529D2C6F11712F08705569C1B69C1BC9F89736A529C6EF96AB85B96723228A28AFC24FF0056028A28A0028A28A0028A28A0028A28A00CFD5F4CB4D6B4AD4F47BF8C4D63AB69F79A6DE4449025B5BEB792DAE23C8C11BE295D723919CD7EE37FC1063E235FF8BFF608D2FC09AC5C1B8D5BE017C56F895F07AEE4937ADC79361AADBF8CF4E8E68D9576259E9FE34B6D36DC234A8B6D63146D2B4B1CA17F126BF4D3FE0805797315BFEDD7E1D4948D26C7F688B0D72D6D78D916A3E22D0EF46A93A9237E6E174AB152" $FileBin &= "A58A22DBA2C688320FD978735E787E38CB141DA38DCBF36C0D55FCD054A8E3E0DAD9F254C12B377B29CADF13BFF377D3372AC3E71F45AE39A9888A955E16E30F0FB8AB013695E9622A66198708E25424D734557C27144BDAC22D2A8E85194D374616FE8928A28AFE9E3FC300A28A2800A28A2800A28A2803C93E3B7C5AD0FE067C25F1CFC53D7D90DA784F44B8BCB4B46711BEABACCE56CF42D1A16ED3EAFAC5CD969D1BE36C46E7CD90AC71BB2FF3B1F0DAD35CBCB3D6BC7DE309DEF7C71F1375ABDF1A789EFA6044AF71ABDC4D796F6FB493E4C30C770F2C76B80B68F7325B2011C48ABF657FC1477E279F8A3F177C0FFB3468D7064F0D7808DAFC47F8A861" $FileBin &= "7CC771ABCD6E57C2FE1CB8DBB48F234DBD37D750333C73C7AFD95CA05B8D2C6DF9F80000038000007A01C0AFF3B7C7CE327C65E2355CAF0B5BDA643C011AF9461D4257A58AE28C6469CB3EC669A49E5942387C968C9A6E962239BC232B5568FF004BBE8EBC0DFEA478654B38C651F65C43E23CB0F9CD7E78DAB61384B052A91E1DC1EB770FED6C44B159ED78A6956C2CB249CA37A485A28A2BF213F6A0ACFF00871F1324FD9BBF68FF00017C62F35ADFC13E2E921F871F15D33B6DE3D17579A05D3FC41719DC14E87756D67A94D304F30DAE90D610B2B6A4FBF42B9EF167876D3C59E1DD5FC3D7C0791A9D9C902C85771B7B81FBCB4BA45C8CC96B7290DC2027" $FileBin &= "05A300E4122A3EB19865F89C067193D45433AC8B30C267393D66DA8C730CBEAAAD4A9546B7C3E2E0AA60B1707A54C2626BD392719B45FD572CCCB0D986499E5275F22E20CBB1791E774524E72CB732A4E8D6AD4AE9A58AC14DD2C7E0A76BD2C6E170F562D4A09AFE95A391258D258D95E39115D1D48657470195958120AB0208209041C8A7D7E7C7FC138FE395D7C51F8203C07E29BA67F88DF042F23F00F89629E5325D5E68D6A92C7E12D6D8905E48EE74CB497497B991E49AF2F743BDBD91B17285BF41EBFD4CE0BE2ACBF8DF85722E2BCADBFA9E7797D1C646949A7570B5DA74F1981AF6F871380C653AF83C4C6DEED7A1523D0FF23F8E784332E02E2EE2" $FileBin &= "0E0FCDD278EC8732AF81956826A96330E9AA982CC30F7D6585CCB05530F8FC24FEDE1B114A5D428A28AFA73E5028A28A0028A28A0028A28A00FCD1FF00828DFF00C7BFECF9FF0065497FF40D3EBE5DAFA8BFE0A37FF1EFFB3E7FD9525FFD034FAF976BFC9DF1EFFE5203C4DFFAF3C13FFACAE08FA2C2FF00B9E1FF00EE27FE961451457E626C145145001451450014514500145145006DFECAFF00F27ABA77FD881AD7FE9B56BF6D6BF12BF657FF0093D5D3BFEC40D6BFF4DAB5FB6B5FDCFF00422FF9363C61FF00675F8C3FF51F263CACD3F8D4BFEBC43F390514515FD927981451450015F9E3FB6F7FC13B7E167ED7FA743E2AB2B83F0BFE3F786EDC1F057C" $FileBin &= "62F0EDB08F52125BA1169A2F8CAD6DDEDCF89BC3AC711A24D326A9A4AB39D2AFA1B69F50D3F51FD0EA2B931B81C266386A984C6D08622854569426B66BE19C24AD2A7522F5854838CE0D271699E1F1170DE47C5994E2B23E21CBB0F99E598B8A5570F888DF96717CD4EBD0AB171AB86C5519DA74313879D3AF42A253A55232499FC67F8824F8A7F00BE22B7C0CFDA8FC343C0FF1010B0F0C78BADF73F807E2769B1BAC306B7E17D6FCA82C9DEE8B4624B6DB6CD05DB9D3EF6CF47D5F3A2C5E8393EA7F335FD3BFED11FB35FC1EFDA9BE1DEA3F0CBE33784ED3C49A0DDEF9F4DBE5DB6BE20F0BEADE53476FAF785F5A446BAD1F57B5DC409A12D6D796E65D3F53" $FileBin &= "B5BFD32E6EECA7FE61FF00687FD9CBE38FFC13FB5D8ECFE223EA7F15FF00668D46FD2C7C1BF1BF4EB1967D5BC1EB712F9763E1DF895A7DBF9F2D95C401A382DB51F9ECB535DADA3DCCD7064F0DE93F94E759062F2372AC9CF19955FDDC535CD88C1A6F48632314B9A9AD1471704A3A5AB460ED297F0B788DE14E79E1AD4A99852789CFF825CFF779CFB3F6B99E43194AD0A1C454E9412AB8385D469E794611A56B4731A5869F2D7AEB93EA7F33464FA9FCCD51D3B52D3F57B1B5D4F4ABDB6D474EBE852E2CEF6CE68EE2D6E6171959219A2664753C8CAB1C1054E18102ED78EB95A4D59A6934D59A69D9A69AD1AB5ACD791F9D45C27152838CA324A51946D28C" $FileBin &= "A2D5D34D5D34D6A9A766B60A28A299414B93EA7F33494502B27BA4FE42E4FA9FCCD35E411A349248111159DDDD82A22282CCCCCC405550096624000124E0562F88BC47A1F84F48BBD77C45A9DAE93A4D8C65EE2F2EDF6A0383B228900696E2E66236416B024971712111C31BBB053E99FB2EFEC53F197F6FCBAB1F16F8BBFE120F829FB220B8499350F2C597C42F8D56B1C87741E1D86749534BF0C4C10AC9AEDD433E9AFE605B083C4572B31D11D2A55F155E184C150789C5D4D634A164A11BA4EB579BF768D08E9CD5276BBB460A536A26D97E0333CF334C3E43C3D96D5CE33CC5AE6A381A0E30850A1CCA13C76638992F6597E5D45BFDEE2ABB4A4ED4A842" $FileBin &= "BE2274E8CFC87E17F83FE35FED8FE3BB9F855FB2EE9E89A3697730DB7C48F8F3ABC532F81BC056729FDF45A5DDAA32EB7E229E10FF00D976361E7DDDE3033D9C70E9C973E21D2FFA53FD8F3F61DF831FB1978425D27C056136BFE3CD7E1493C7FF00163C4914373E35F1AEA0CE2E27FB4DEE1DB4BD092ECB4BA7F876CA6FB25BE16E2F65D4F577BDD5AEFE83F84FF08BE1BFC0DF02E87F0D7E14784748F04F82FC3D00874ED1747B7F2E32EC17ED17D7F73234B79AA6AB7D22F9FA8EADA95C5D6A5A85C96B8BCBA9E66673E8F5FA6E43C2F87CA9C7178A70C5E6728BBD7E5B51C2A92B4A960A9CB582B7BB3AF2FDF5557BB841FB35FDA7E17782B957034A9E7B" $FileBin &= "9D54A39F719D4A4E32CC9D26B019342AC52AB83E1FC3544E5878357A75F31AB7CC31AAFCF3A1424B094CA28A2BEA8FDC02BF8D2FDB074993C27FF0552FDB574A9D0471F8CF4AF82BE39D2B6F49ACE3F86FE1FD37509586D5C38D66EAFA2F9778654DECE198A8FECB6BF96EFF0082D6FC3E9FE1AFEDA7FB30FED1114021F0D7C61F87FAEFC02F14DF228586DFC47E1BD5E5F127853ED8DB39BBD78F88E0B2B53B896B6F0DCC18C6B6D1ACDF95F8BF849D6E19C2636316D6539E6031755A57E5A3898627299C9EEF9612CC6139B5B462E4DA8A91FDF1FB3AB882865DE37F1170BD6A90854F107C2DE2CE1FC0466EDED733C8F1792788386A34DB693AF88A3C198A" $FileBin &= "C361E1ABAB56BC68D38CAAD4A68F8E28A28AFC0CFF005A028A28A0028A28A0028A28A0028A28A002BF52BFE0DFAD0A5BAF875FB637C4D0CE6CBC65FB51EB5E1CD31823082E6CBC17E1CD2AE62BEB6948093C730F15885A48B747E75ACA9BCB232AFE40FC46F16DBF817C09E2BF175CB22AE83A1DFDF40AFF00767BE585934FB51CA82D777EF6F6C80B28DF2AE594648FE94FFE08F3F042F7E057FC13EBE03E8FADDABDB78ABC7DA46A1F17FC52660E9732DFFC4CD467F12E922F23930F15ED9784EEBC39A65DC6C1596E2C640EA24DC2BEDFC34C24B17C6B86AA93F6795E5598636ACADA46A625D1C061A0DEEA5523571728EE9AA13BF43F97FE9B7C4187E1FF" $FileBin &= "00A31E7997D59C638CE3DE3DE0FE1BCBE8B76A95B0990C731E2DCEB1304D6B4B035F01C3F42B34EEAA66986EECFD39A28A2BFA64FF000FC28A28A0028A28A002BCCFE327C51D03E0BFC30F1AFC4FF12C8174AF07E8775A9B402458E5D46F8058349D22D9D95945DEB1AA4F67A65A6E529F68BB8CBE13711E995F8ADFF0529F8A2FF113E23780BF65DD0AE8BE89A19B6F891F16CDBC876B6C565F0BF872ECA6D29BA199B52BAB672EAFFDABA15F2057B3CD7E69E2EF1DAF0F381338CFE8FB3A99BD48D3CAB8770D52CD62B883336F0D96C2517ACE8E1AA4A58FC625AC70384C4CF689FA9F833E1F3F12FC42C93872BBA94F26A73A99BF1362E9DD4B07C3795258" $FileBin &= "ACD6A466BE0C4626946397605BD2598E37094F79A3E26F874BAFEB83C49F13FC672B5D78DFE2AEBB7BE32D7AE6456568E3D4A796E74FB18958930DA5BC13992DAD46D5B48674B35554B6403D2A9A88B1AAA22844450AAAA005555180A00E00000000E829D5FE68E0F0F2C361E14AA56A988ACDCEAE271559B956C5E2EBD4957C5E2EBC9EB3AD8AC4D4AB88AB27ACAA5493EA7FA9F8CC4C71589A95A9D0A585A16A74B0B84A1150A183C1E1E9C2860F054209250A183C2D2A386A104AD1A54A11E8145145749CA1451450033E107C4E3FB377ED35E09F89B35C7D93E1FF00C49683E1C7C51DCDB2CED12FA489743F12DCE772C6749BA86D6E6E2E42178B4DB1D4" $FileBin &= "6DE321F517DFFD1D2B0650CA415601948E410464107D08E457F341E33F0C5AF8C3C33ABF87AEF6AAEA16AE904C5771B6BC8C896CEE547526DEE52294A8C6F55284E18D7EB77FC13CBE3A5D7C60F81163E1EF12CEC7E227C1FB94F875E31867937DE5CC7A4C5E4F8775C98B16964FED3D2A05B6B8BA9599AEF57D33569412BB6BFA4FE8C1C65FD959E673E1D636AF2E0B3A588E27E175397BB4B30A6A9C78932AA57D23EDE2F0F9DE1E947E29BCE2AA5EECADFCB7F4B0E07FED7C8323F13701479B1B913C2F097167247DEAB96D57525C2D9BD6B5AFF579AC4E4189AD2BF2D3590D1BABABFDE5451457F6E9FC161451450014514500145145007E68FF00C146FF" $FileBin &= "00E3DFF67CFF00B2A4BFFA069F5F2ED7D45FF051BFF8F7FD9F3FECA92FFE81A7D7CBB5FE4EF8F7FF002901E26FFD79E09FFD657047D1617FDCF0FF00F713FF004B0A28A2BF31360A28A2800A28A2800A28A2800A28A28036FF00657FF93D5D3BFEC40D6BFF004DAB5FB6B5F895FB2BFF00C9EAE9DFF6206B5FFA6D5AFDB5AFEE7FA117FC9B1E30FF00B3AFC61FFA8F931E5669FC6A5FF5E21F9C828A28AFEC93CC0A28A2800A28A2800AC6F10F87741F16E87AB7863C51A3697E22F0E6BD6175A5EB5A16B7636DA9E93AB69B7B13417763A8585E4735ADDDA5C42EF1CD04F1491C88C55948E2B668A4D29271924E2D34D349A69AB34D3D1A6B469E8D11529C2A" $FileBin &= "C274EAC21529D48CA1529D48A9C2709271942709271946516D4A324D34DA69A67F333FB637FC137BC77FB25B789FE3AFEC9F0DDF8C7E025AC77FE24F88DF01F51BE9EE75AF0069F6E925E6ABE23F87DA8DDBCD71A9685636C92CF7BA6CED3EB3A75B43E64A3C4167FBED0BE51F07F8AB4AF1BF86B48F1568BF69FECCD66D8DCDAADE5BB5ADD47B2696DE68A7858901E29E19622F1BCB04C104D6D34D6F2452BFEE7FFC160FE2F5CFC2EFD88FC79A068F33278AFE37EAFA0FC12F0E431BFEF2E7FE1329E59BC4D6E63044924575E0BD2BC47604A82AB35EDB89032BF96FF86DE16D06DBC2DE1BD07C3769836DA1691A7E9513018F3058DAC56E666CF25E668DA5" $FileBin &= "918E599DD9989249AFC778830383CBB3AA986CBD3A542584A789AF864D3A343115EACD423875BD284A9D29549D1BBA717383A6A117CA7F9EFE2CF0D70F708F88989C9B8569CF079755C970B9C66795464A797E5999E638CC546851CAA0D73E0A857C3616AE2ABE014E786A2EB61E584A787A75254CDEA28A2BCA3E082B83F88FF1034AF869E17B9F136AB6D7B7C893C16163A7E9F0B4B737FA9DE6F16768AF831DBA4AD1B6FB89BE48D548449A7786DE6EF2BCCFE327853FE135F865E31F0FA45E6DD4FA3CF79A72004BB6A9A515D534E4420165335DDA4503150498E575C10C41CABBA8A8D5749DAA2A7370D2FEF28B6B47A36DAD2E9ABEE9EC716633C4C301" $FileBin &= "8D9E0ADF5B8616BCF0EA51E64EAC29CA505CADA4DB92495EEB99ABA92BA7FA5FFB1AFF00C12BFC47F10B57D07E3EFEDD36104E6D648B57F87DFB34249E7786FC391B059AC752F89A11DA2D6358705279BC2C5A5B500476FE259AE227B9F0AE9FFD035B5B5BD9DBC169676F0DADADAC31DBDB5B5BC4905BDBC10A08E1821862558E28638D55238E340888A155400057C8BFB01FC6BFF8682FD8F7E02FC4EB8BBFB6EB5A878134FD07C573B3979A4F17F831E6F0878A2E26572D244D7DACE8979A8C492B331B6BC8240F224892BFD835FB0F0FE5F9760B2EC3D4CBE0E51C650A3899E2AAB53C4625D5A719C6A56A96D5A8C928C22A34E9AF76108A3FD0BF0AF853" $FileBin &= "84787384B2BC5709D073A1C4197E5F9C62738C54A188CDB399633094F11471398631462EA38D3AB6A387A4A9E130916E9616851A778B28A28AF70FD2828A28A002BF3EBFE0A77FB264DFB637EC83F10FE1B681006F897E1BFB27C4BF84176244827B7F88FE0C8EE6EF4AB282E1D923B67F1269B3EAFE127B99888ACE2D7DEF32AF6C8C9FA0B4570E699761737CBB1D95E361ED3098FC2D6C2578AD1FB3AF09425283FB3385F9E9CD6B09C6325AA47D570371967BE1E71970BF1D70CE256133FE11CF72CE20CA6BC939D358DCAF174B17469E229DD2AD85AEE9FB0C5E1E4F931186A9568544E15249FF000A9F06FE201F88DE06D3B57BC824B0F1269D24DA078C" $FileBin &= "347B985ED6FB47F14E9045AEAD6779652A473594AF328BA4B69A3496186E238A455911D57D4EBEABFF0082AF7EC73AF7ECABF18F59FDB83E0EF87EEF53F815F15751807ED31E0FD16DE49E4F0378CAF2E44707C54D3AC614C2E8FE20BAB867D7DF1B6D3C43737524D2345E26B77D1BE42D1B59D2FC43A5D8EB7A25F5B6A7A56A76D1DDD8DF5A48B2DBDCDBCABB9248DD7F265387470C8EAAEACA3F9171F96E3723CC715926669FD7704D72D6B72C31F83936B0D98D0E8E9E220BF7B18B7EC3131AB8793E6A7AFF00D0F709F1A70C78A7C1B91F89FC0F28BE19E28849D6CB95555B13C25C474614E79DF06E6D6B4A963327C455FF0062A9563059AE4B572ECDB0" $FileBin &= "EA547176869514515CE7B0145145001451450014515E5BF143E233781EC74BD2B41D22F7C5BF11BC67A8DB786FE1D781747B5B8D435AF14F89B539E1B2D3AD2D74FB3592EE7845E5CDBACA214324CF243676DBAEEE6DE37CEAD5851A72A951B518AE89CA526DA5184229394E73935184229CA736A314E4D23B30181C4E658BA382C2414EBD672B734E14A953A708CAA56AF88AD5251A587C361E94275F1389AD3851C3D0A752B569C29C2525D3780FE0CDFF00EDA5FB567C21FD923485B89FC1D0EA769F14BF684D46D19C45A37C31F0ADCDADE368D757116E16F77E27BB96CF47B1DE8D25AEA9ABF87EF4C6D6DE732FF6F967696D61696B63650436B67676F0" $FileBin &= "DADADB411A4305BDB5BC6B1410C314615238A28D15238D15551142A800015F97BFF04AEFD83AE3F635F835A8F887E2535B6B5FB4AFC6DB9B4F17FC68F10A9B6B96D22631C9368BF0EB4BBCB769206D27C2115E5C477325948D677FAF5D6A77368EDA4A6930DAFEA557F46F86BC315B20CA2AE3730A5ECB37CEE74B158BA32B39E0B0B4A0E380CBE4D7DBA14E752B62126D2C5E271118B708C19FE317D363C74CB3C5BF1132FE19E0EC7ACC3C39F0BF0B8EC8B87F31A2E4B0DC4B9EE3EBD2ADC5BC6342124A4B0D9BE330B83CB7289492954E1EC8F27AF3852AF5F114D1451457E8E7F1805145140051451401E7FF00153E22E81F08FE1CF8C7E24F89E5F2B44F" $FileBin &= "06E837DADDDAAB2ACD74F6D11FB269D6BBFE56BDD4AF1ADF4FB18CF125DDCC31E406C8FE6FFC0773AFF8BEFBC5BF183C66DE6F8C7E2D6BF79E2CD449DE56CB4EBB9A47D1F4CB5F3373C7656966EAB65106C45626CED881F66503EE7FF82997C5493C6FE2EF007ECADE1EBC6364D25B7C45F8BAD6B29022D1ECA4CF863C3F74F1B1DAF793ACDAADCDB4A81E199BC317AB98E4CD7CBB1471C31C70C48B1C5122C71C68A15111142A222A80AAAAA00550000000062BFCF7FA42719FFADDE20C787F075954C8FC3F8D4C34F9257A58AE2DCC2841E635747CB3FEC6CBAA51CB69CB574F178CCD6934A54CFF0048FE8D9C0DFEA6F8712E24C6D1F679FF0088F2A78B87" $FileBin &= "3C6D5B07C1B9662271CAE8D9AE687F6EE694EBE6B563B55C160725AF1BC6A2BBE8A28AFC5CFDD428A28A0028A28A002AD7C07F89DFF0CE1FB51F853C6977726CFE1CFC615B6F875F10F2DB2CAC3569E45FF8467C47759DB0442CEF56DC4F74FCDB69875E94B6EB921AAD721E3BF0A5B78D3C2BABF87A7DAAF796CCD653B0CFD9B5083F7B6571900B0549D504A1706481A58B3873453C766593E372CCFF0025928677C3D98E1B39CA9B93842AE270726E782AD25AAC36658596232DC5A5BE1B17556E1572FCAF3BC066BC399EC5CF21E25CB31591E70A31529D2C26362953C7518B4D3C56558B861B34C1BB698BC1517B5CFE99C104023904641F5068AF887F60" $FileBin &= "2F8F375F1C3E01E9117892E19FE22FC34B96F87BE3D82E24DD7F36A1A1C491699AD5D2B3195DF5AD285BCD7772CA914BAD41AC430656D4E3EDEAFF0053F84F8972DE31E1AC938A3289B9E5F9E65D86CC30EA5A54A3EDE9A954C3578FFCBBC4E16B7B4C36269BD69D7A5520F58B3FC8BE30E16CD38278A73EE12CE69AA79970FE678ACB712E1774AB3C3D471A58AC3C9FF130B8CA3ECF1784AABDDAB86AD4AAC5B8CD30A28A2BE84F9B0A28A2800A28A2803F347FE0A37FF1EFFB3E7FD9525FFD034FAF976BEA2FF828DFFC7BFECF9FF65497FF0040D3EBE5DAFF00277C7BFF009480F137FEBCF04FFEB2B823E8B0BFEE787FFB89FF00A58514515F989B051451" $FileBin &= "400514514005145140051451401B7FB2BFFC9EAE9DFF006206B5FF00A6D5AFDB5AFC4AFD95FF00E4F574EFFB1035AFFD36AD7EDAD7F73FD08BFE4D8F187FD9D7E30FFD47C98F2B34FE352FFAF10FCE41451457F649E60514514005145140051452310A0B1380A0924F4000C927E8280DB73F9BDFF82B97C40FF858FF00B5EFECF7F022CA713E8BF063C1BACFC65F17C30B2BC43C49E27BB8F4AF0B5B5E0E5A2BED1E1D16C752B75217365E2667F9FCC061F94AB8BBAF1FB7C7AFDA3FF6A0FDA2DA7379A778EBE285F785BC1174CE2457F00780A28FC3FE1AB8B62AA1121D4347B4D2A49E38F29F6BB494EE91B74D2DEF1778C7C39E05D12E7C41E28D4E0D2F4D" $FileBin &= "B618DF29DD35CCE559A3B3B2B75CCD777736D6F2EDE0577215E460B14723AFE178DC647198ECCB319CD2A788C5D59539C9A51585A0A386C33BBB251951A31A9EB36F5BDCFF0031B89B8869F11713F17F16D6AD08E1335CF31B57095EA4D469C726CB14328CAA7CD26A30A7570180A38AB5D479F11396AE4E52E82E2E20B4826BABA9E1B6B6B68A49EE2E2E244860821894BCB34D2C8CB1C51468ACF248ECA88A0B3100135E1361FB44F81EF75F8AC5E0D66C3C297FA85CE87A17C46BFD3AE2D7C15AEF88F4E5B69755D16C7579A34804B6305FE9B2BCF2BAC7B6F229275B6B69EC2E2FFED8FD943FE09FDF15FF006DEB9D27E257C79B5F107C1FFD963CE8353F" $FileBin &= "0EF8055E5D2BE217C66B44613595F6A72A14B8F0DF846EF093A5E301757F6C14F87E074B8B2F17C3FD06F8B7F650FD9E3C6DF0423FD9CF5DF853E136F83B69A747A7693E0FB1D3934DB6D05A05945BEADA05E5898350D23C4304B3DC5D2F886CAEA2D624BCB9BABAB8BC9A5BBBA69BD4CBB86F36CDA84B174E50C050E4E6C27D6E94DD4C6CAE9A72A69C6A61B0D38DF96AB8BAB2BA9C69725B9BEDF847C1CE3AE39CAABE7B85AB86E17CBBD83AD91473CC1579E2788EB692A72AB868CA962328C9AB439952C7D4A7571D5A4E188A381961146589FE6541040208208041072083C8208E082390475A5ADFFDA6BF643F8D3FF04FBBF9B598DB5EF8D3FB244D7491" $FileBin &= "69DE3886D85DF8E3E114573308ACF4BF1CDA5AA2A5C68B0B3C7696DAF5B45169372DE4C71A6837D3D96837DC5E89AE691E24D2ECF5BD0751B5D574AD422135A5F59C825865424AB0C8C3472C6E1A39A095526826478668E3951D07915615B0D5EA6131746785C552F8E854B5DC5BB46A529AF76B519FD8AB06D3DA4A32BC57E7B8EC266593E678AC8B3ECBEBE4F9E6092789CBB1366E54A4DC618CC16222BD8E6197D669FB1C6619CE9C9DE9D454ABC6A5287E8AFF00C112FE207FC23F75FB50FECBD7D37943C11E3DB0F8AFE07B594E59BC29F106CA3B4D4AD2CB2C7369A2DD693A23DC615545EF88256566779522FDF0AFE4BBF65BF8803E067FC142BF67AF" $FileBin &= "1B4B3FD8FC39F19EC759F801E2E75648A396EBC44F05CF82D6769088DE4BAF18A786E35C957F234E6542CC1636FEB46BF48E0AC57B6C9DE124EF532DC4D5C259BD7D84AD88C33B748AA35A34A3FF005E9F54CFEC5FA38679FDA1E1FCB23AB3E6C57086718FC9395BBCFF00B3AB3866D93C927AFB2A780CC29E0A9BD9BC14E2B58C9228A28AFAF3F7F0A28A2800A28A2803235FD0343F15E87AC7867C4DA469BE20F0EF8874CBED175DD0B58B2B7D4749D6348D4EDA4B3D474CD4F4FBB8E6B5BDB1BEB49A6B6BBB5B88A482782578A54646607F944FDB3BFE0989F177F625D6BC41F183F649D035CF8BBFB2E6A17575ADF8C7E085AC977ABFC40F84066769AF75" $FileBin &= "3F04893ED17DE26F085B67CC92206EB5AD36D576EAF0DFDBC375E29B3FEB4A90804104020F04119047A107AD7CAF15708E57C5984852C629E1F1B86E7965F99E194162F0539A5CCA2E69C2B61AAF2C562309554A8D6518B6A35214EA43F7BF013E913C75F47EE20C5661C36F0D9CF0D676B0F438BB81F3A75AA70F7136130F293A13AD1A33857CB739C07B4AB2CA33FCBE74B31CBAA54AB053AF82C4633058AFE1A7E1FF00C4EF057C4DD2FF00B57C21AD5BEA0230A2FB4F90FD9F56D2E660736FA969B291736B22B0645728D6F31466B79A68F0E7BFAFDF6FDAEBFE08F3FB2EFED3DAEDF7C4AF0BC7ACFECEFF001D2E6596EDFE29FC22F27491AD6A12B9925B" $FileBin &= "8F19F8454DBE89E227B991DE4D4350B53A278875262897DAF4F6F1AC15F8D7F12BFE09AFFF000539F80D35C9F0F7877E1B7ED7BE0DB5795EDB57F06EBB65F0F7E221D3E1CAA4BAB786FC4D2E9DA6FDB1D155C58787AE3C5974EC4AFDAEE1D891FCFF009C704715E4539AAD9655CDF0916F9331C9294F17CF15B4ABE5B173CC30F51AD651A54B17463ADB10D23FD77F0EBE93DE0078AB87A0F2BE38C0F877C435A30FACF06F8A38EC2E40E8579594A9E55C6F5550E10CE308A6DC6857CC31BC3999D58F2B9E4D4DDD9E3B45795F887C59F1A3E1EB3C1F163F640FDA9BE1F4B0C8229AFAF3E137882FBC3C64650EA2D7C402DECECEFD594FDFB259D03AC9196DF1" $FileBin &= "B81CA47FB4169F70E61B2F857F1CEFEE830436767F0BB5C96E44A4ED588C64AFEF18860AB9E4AB0E315F252C453A7274EAC6BD1A89D9D2AF86C4D1AA9F674AAD28544FCB96F7BAB68CFE84C3E4B8DC6518E2701532CCCB0928A9C71B95E7792E67809425671A8B1D80CC3118474E49AB4D56E4775696A8F7FA2B9BF0A7837F6D6F8AF3C367F087F612FDA02F1AF088ED757F8A1A10F849A02B3A6F5B86D57C61F61D26E2D910862D1EAD12C8D9852612E15BEE6F84BFF0456FDAE3E334B6D7FF00B5AFC75F0EFC13F03CF22C97BF0BFE022BEB7E33D42C5B092E9DAB78E75584693A1DCBC664591AC078DB4CB84219ECE367F2A0F5B2FC9B3ECE271865591669" $FileBin &= "8BE7692AF570B5301818A7F6A78EC7C70D41C52D64A84ABD4B691A729349FC0718788DE14787342AE27C41F157813875D08B94B29C0E7D82E2EE29ACD24D51C3F0B70956CE736A75AA36A14A799D2CB303CCEF5B1B429467561F9BDABFC4CD4F5BF19E9BF07BE07F84755F8D5F1C7C473B58E87E01F07C46FCD95C0FF5B7BE25D4216FB268FA769D1E6EB5292EEE2DE3B2B54373A9DCE97605B508BFA12FF826D7FC12BD3F670D587ED1FF00B4C6A7A57C4BFDAB75EB374B16B70B79E0DF829A45E44F1BF877C0AB344A93EBCF6D34969AC78A238A2090CB71A4E88A2DA7D6358F12FDFDFB2E7EC5DFB37FEC71E146F0AFC04F86DA47851AF61B78FC41E2A9D4" $FileBin &= "EADE38F164D6E095B8F12F8B2FFCED5B521E6B4B71069E278747D3E59E65D2F4EB185FCA1F53D7ED1C21E1952CAB114337E21AD4732CD6835530984A0A6F2BCB2AADAAD355631A98DC6435E5C5D7A74A345BBE1B0F4A6BDACBFCCCFA467D37F1DE2064F9A7875E1065D99F067006674E583E22E20CD2A508F1CF1CE0B9939E031AF0356BE1386386ABB5175F8772BC5E36BE62A3C99CE73986164B0144A28A2BF593FCFB0A28A2800A28A2800AE33E2278EB41F863E05F16FC41F145CFD9740F07E83A96BFA9CA0A79AF6FA75B49702DAD95D9165BCBC9152D2CADC307B8BA9A1823CC92283D9D61789BC31E1EF19E83AA785FC59A2E99E22F0E6B56AF65AB68" $FileBin &= "9AC59C1A869BA85ABB2B186EAD2E52486550EA9226E5263951248CAC888EBC98F8E36781C6432DA987A598CB0B888E02AE2E139E169E325466B0B53110A6D549D0857709558C1A9CA9A9462D49A67665D2C0C330C0CF34A788AB96C7198696634B073A70C5D4C0C6B41E2E9E167553A50C44F0EAA4684EA274E355C5CD38A68FE5CFC2DF13F47F1A789BC7BF197C7FE2EF0BDA78DFE297892F759BDB0BAD7F4D8E6D0F478667B7D1B428D2E2E5678A0B0B28E1B6B6590090E9F6FA724C3CC80E3BFF00F858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F135FC1F87FA2E" $FileBin &= "78A54A12F6DC53C118BC4D7AD5F178DC657867EF118DC7632BCF158DC6E21AC324EBE2B155AAD7AAD2B73CE4A2ACA28FF42B13F4B5F096B548FB0E12E3CC1612850C360F0381C3BE1D587C065F81C3D2C1E0303874F1975430583A34B0D493D5C2945C9B936DFE1C7FC2C5F87FFF0043C7847FF0A3D23FF9328FF858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F135B7FC4B0F89FF00F451701FFE0BE20FFE67FEACFCAFCFFF00135FE14FFD137E20FF00E05C39E5FF00519E6FEEF33F0E3FE162FC3FFF00A1E3C23FF851E91FFC9947FC2C5F87FF00F43C7847FF000A" $FileBin &= "3D23FF00932BF71FFE189FF64EFF00A203F0D3FF0009BB3FFE268FF8627FD93BFE880FC34FFC26ECFF00F89A3FE2587C4FFF00A28B80FF00F05F107FF33FF567E573FE26BFC29FFA26FC41FF00C0B873CBFEA33CDFDDE67E1C7FC2C5F87FFF0043C7847FF0A3D23FF9328FF858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F1347FC4B0F89FFF00451701FF00E0BE20FF00E67FEACFCAE7FC4D7F853FF44DF883FF008170E797FD4679BFBBCCFC38FF00858BF0FF00FE878F08FF00E147A47FF2651FF0B17E1FFF00D0F1E11FFC28F48FFE4CAFDC7FF8627FD93BFE880F" $FileBin &= "C34FFC26ECFF00F89A3FE189FF0064EFFA203F0D3FF09BB3FF00E268FF008961F13FFE8A2E03FF00C17C41FF00CCFF00D59F95CFF89AFF000A7FE89BF107FF0002E1CF2FFA8CF37F7799F8C9FB2D7C78F0CFC11FDABF44D42C7C55A25EFC3FF8E30DA7827C6F6FA6EB163770691E251711C7E15F12DD416B72C90C69A84F1D84D773ED86D6CB56D7AEE562FE5E7FA3EEBD2BE6AD33F639FD96F47D46C356D37E047C35B5D474CBCB7BFB0B95F0D5833DB5E5A4A93DB5C2092374F3209A34950956DAEA180240AFA57A74AFE88F03BC3DE2DF0D721CDF21E24CDF26CD3075F39AD9AE4B4728863A34F2C8E3E11A999E15CB1D1849D1AF8F5531F4A9D38DA9D7C5" $FileBin &= "E2DB938CE0A3FCD3E3EF893C1BE29711649C45C2D92E7994E370F9150C9F3EAF9D4F2F757359E5D5254F29C5C6180A9562AB61B2D74B2DAB52A54BD4C3E0B049414A9D49D428A28AFDB4FC1C28A28A0028A28A00FCD1FF00828DFF00C7BFECF9FF0065497FF40D3EBE5DAFB47F6F8F86DF123C7DA07C2CBFF871E10BDF185E783FC6B2EB7A858D84B6A278A216D6E6D59ADE6B986E668A69E0314AF691CC6053BE5F2D4AB1F83FFE10BFDAB7FE8DEB5FFF00BE5FFF00922BFCA2FA446073EC1F8EFC7D8D8708F19E6381CCF0BC2353038FC9B84B3FCDF01898E178730986C47B2C665D80C461E52A35E13A5522AA7342A4650924E2D1F45837196128AF694D38" $FileBin &= "FB45252A908B579E9752927B6BB6C6FD1581FF00085FED5BFF0046F5AFFF00DF2FFF00C9147FC217FB56FF00D1BD6BFF00F7CBFF00F2457E41ED33BFFA217C48FF00C57DC5BFFCE93A2CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5" $FileBin &= "BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFDD7ECAFF00F27ABA77FD881AD7FE9B56BF6D6BF1FF00F646F83DF1C2CBF6908BE23F8FBE1B6A9E0AD12C7C21ABE9F3DD6A2D0C50C97173043696705AA3CF25CDC5C4ACEF2B8488C50C313B4B22318925FD80AFF403E85B95E6F96F85DC452CDF26CE324A9997891C5399E0F0B9DE598DCA71B570189A395428627EA78FA343111A55254AAC6139534A52A734" $FileBin &= "9BB33C7CD25175E9A8CA32E5A304DC64A493BCB4BABAECF7BEA1451457F5E1E68514514005145140057C61FF00050BF8D63F67FF00D8DBE3DFC4682F3EC5ADC5E07BEF0B78526495A3B94F16F8E648BC1FE1FB9B509FBD926D3350D6A2D5DD63C14B6D3EE2691A28619268FECFAFC3AFF82C27867E34FED1DABFECEDFB1E7C01F0ECDE22F137893C497DF187C73752AB5BF86FC23E1CF0B29F0DF85F58F1B6AD24535958786EF354D6BC4571E4DC43733EA57FE1CB7B4D32C350D49AD2CA7F1B883155B0993E3EA61A9D4AB8A9D0787C2D3A5173AB3C4E25AC3D1E48C7594A33A8A7656D22DB6926CFCF7C56CEB30C8BC3EE28C664F87C56333BAF974F2AC8F0" $FileBin &= "B81A33C4632BE719C4A195E5CB0D429FBF5674B138B8622518DB969D1A9394A1084A71FC45F0CEB96BF087C03F0E3E1B68FA1EA9E32F8A1AEE9D636DE1FF00873E18B49F51F12EBDE25D7246BBB8816CECE1B9BA8A06D52EEE2049DADE49E648592CEDAE5E178D3F6A3F627FF8255DEAEB5A2FED07FB6EC3A678C7E234261D4FC0FF0003D1A1D43E1EFC2FDCC97104DAFDBAC973A7F8A7C530158B75A992F742D3AE22335C5CF88EF96C6F34AFB0BF61FF00F8274FC30FD90ECA5F196AD767E29FED0BE23B663E32F8C1E20B6125EC0D748A2EB42F04DA5C34EDE1BF0F20510C8F1C8DAAEB0A8ADA8DD8B18B4FD274CFD15AF97E1EE0E542387C5E730854AB4A" $FileBin &= "30786CB9353C3617912509E21ABC713898DB45AD0A52BB82A92E5A91FC57C27FA3ED3CB29E599E788342862F1D82A586964FC26A70C4E57934A8461EC3139ACE37A59BE6F4F96328C2D2CB70155374238AAF0A78C8A001405501540000000000E8001C003B014B4515FA09FD58924AC9592D125B25D8A7A869F61ABD85EE95AAD95A6A5A66A56B7163A869D7F6D0DE58DF595DC4F05D59DE5A5C24905CDADCC12490CF04D1BC5344EF1C88C8C41FE787F6C4FF00825BF8CBE0CEA9AF7C75FD86F4C9756F0DDD4D3EB3F10FF661324B25B4C8374B7BAAFC25FBF2437691E648FC22AAF731ED6B7F0EB6A16A34FF0008AFF455457939BE4B82CE682A58A838D4A7" $FileBin &= "CD2C3E2A95A388C34DAB73D29B4F47A73D392952A8B49C25A5BE178F3C3BE1CF10F2C8E073BC3CA9E2F0AE7532ACEB06E34736CA31325675B05897197EEE768AC4E0EB46AE0F1708A86268544A2E3FC32FC40F1BD87C49F857A978AFC137579A478EBE156B9A4F8DA3D26F61FB1F897C1FE24F08DFFDA2E3EDD632FEFA09AC6DD35268675568649ED9A3C89A19E18BFB43F813F14B4CF8DBF063E16FC5DD1FCA5B0F88DE03F0C78B92DE193CD5B1B8D6B49B5BCBED31DCFCDE7E957D2DCE9D728F8923B8B5963701D48AFCECFDBD3FE0975E0DFDA5A4D53E2E7C17BED3FE127ED20961771CDAEDBC1F67F07FC5182681A39344F88FA6DA412896E2F623F645F1" $FileBin &= "4C169757CB0B88759B1D76D6DB4F874F83FE08F177F12FC13F003C63FB30FC6AF0E6AFE10F89FF00B367C41D53429F40D657CC98F823C70F3F8B7C2DACD8EA11BCD65AB68B7FAC4DE31B2D1751D32EAF34C9F4FD261FB0DD3C01638BE4787703996459FE23058C87B4C2E61845F57C7518B587C457C14A53829C2EDD0C43C355ADCF4E526A5EC93A529C13E5FC1BC25E19E2EF0C3C50CD786B8830FF005AC938B3234F2BE24C0D39ACAF33CCF87AB54AF85A75A8B7396599AD5CAB1B98BC560AACE51AAB030A984AF89A307EC7F5C68A28AFD10FEB30A28A2800A28A2800A28A2800A28A2801195586195587A30047EB4CF2A2FF009E51FF00DF0BFE1525140E" $FileBin &= "ED6CDAF9B0000E00C0F4145145020A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800AAA965671DE4FA847696A97F756F6B69757C9044B77736B6525D4B676D3DCAA09A682D24BEBD92D6191DA3824BBB978951A794BDAA28FD361349DAE93B3BABABD9D9ABAECECDABAE8DAEA145145030A28A2800A28AAAF6A1EF6DEF7ED174A6DED6F2D45AA4ECB6530BC9AC66371716C06D96EADBEC223B39C90D6F0DDDF46A08B96C005AAACB6768B7725FADADB2DF4B6F1" $FileBin &= "5A4B78B0C42EE4B58259A686DA4B90A267B7865B89E58A06731C724D33AA869189B345164F75B6ABC9F71349DAE93B3BABAD9D9ABAECECDABF66C28A28A06145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145" $FileBin &= "14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145795FC58F8DFF0009FE076827C49F15BC75A0F8334C6594DA2EA7745F53D524854349068BA25A25C6B1AD5CA290CD6FA558DDCC8A77BA2A02C3F2E7C7DFF054CF1478A24B8D3FF667F82B79AB59EE7483E227C5795F44F0F3ED263FB458786B4DBC86F753B56244B13B7886CEF51420B9D21199D53EAF87F82789B8997B5CAB2CAB3C1C65CB5332C54A9E0B2DA6EF6927" $FileBin &= "8DC54A9509CE3F6A951955AFDA936D27F3D9C715645913F679863E9C712D734705878CF158D9A7F0B586A0A756119749D450A7DE6926D7ECD5636B3E22F0FF00872D4DEF8875DD1F42B21D6EF59D4ECB4CB618C6733DECF04431919F9B8C8F5AFE723C57F14FF6BBF8A4F23FC40FDA3FC49E1CB09890DE1BF84B0A7822C21858A97B65D63498F4BD5AF616C1561AAFF683BAB14795A2FDD9F9F3C55F0E3E14786ED2E3C53F10AFF5DF115C0E0EA3E28F11EABA8EADA8DC7CCEB6F025B4F6925EDC48CCEFE56C68D079934C638524917F4CCBBC129549538665C4F8755EA34961725CB31399CDCE56B4156C5D5CAE9B9746E9C6AC7476725A9F098CF14D454E58" $FileBin &= "1C8AABA514DFB7CCF1D47051497DB74B0F4F1D351EB69CA9CADA3517A1FD2DEA9FB527ECD1A2C8F06ABFB417C16B2B8452CF6D37C4EF067DA9546E1936ABACBDC004AB2A8F2F2CC0A0CB7152F853F69BFD9EFC77AED97863C15F197E1DF8B3C45A8B94B1D13C3BE27D3358D52E4AE37B4565613CF70D1C40EE9A5D822853324AE880B0FC25FD9DFF00E09CDE2BFDA45F4CF1AF8C7C3517C06F82723C57BA4DA269F1CBF143C73A7B80D0DE5A1D492E57C3FA65DC44C96FA96A113A491BC52D9691ADDA4D0EA8BFBCDF05FF0067CF841FB3EF8787877E14782749F0CC1245126A5AA4711BBF10EBB244322E35DF105D99B55D4DFCC2F24715C5C9B4B4323C7636" $FileBin &= "D6B06D857E638CB87780786613C065F9FE719EE7D0BC2B50A14F2FA596E06A2BA943178C83C4AAB5E0FE3C3E12559464A54EAE228D44D2F7B8673BE2FCF651C5E2F28CB32ACA256953AD5678C9E37154DA4D4F0F869FB170A524FDDAD8854949352A74AA4757ECF451457E5E7DF051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051450083C8391EA2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A2B2F5CD6F49F0D68BAB788B5FD46D349D0F41D32FB59D6755BE992DEC74DD2F4DB596F2FEFEEE772121B5B4B5865B89E" $FileBin &= "5760A9146CC4E066BF3764FF0082C57FC13A6292489BF681919A391A3263F853F1A668D8A3152D1CB17C3B78A442465248DD91D70E8CCA41AFA5C838338BF8AE3899F0BF0AF11F1243052A51C64B21C9332CDE3849575374638996030D8854255553A8E9AAAE2E6A13714F95DBEBF85FC3FE3CE378E327C19C15C59C5B0CBE54618F9F0D70EE6F9EC3053C429BC3C7172CB3078A8E1E55D52AAE946B383A8A9CDC135095BF4DA8AFCC6FF87C77FC13A3FE8E027FFC34BF1B3FF9DCD1FF000F8EFF0082747FD1C04FFF008697E367FF003B9AFA2FF883DE2DFF00D1AFF10FFF0010CE23FF00E7779AFBCFAAFF008809E397FD19AF153FF15F716797FD4A7CD1FA" $FileBin &= "73457E637FC3E3BFE09D1FF47013FF00E1A5F8D9FF00CEE68FF87C77FC13A3FE8E027FFC34BF1B3FF9DCD1FF00107BC5BFFA35FE21FF00E219C47FFCEEF35F787FC404F1CBFE8CD78A9FF8AFB8B3CBFEA53E68FD39A2BE7EFD9F3F6A6F80DFB54787F59F13FC07F88365E3AD23C3DA9C7A3EB663D2BC41E1FD474BBF9A01736E97BA2F8A749D1359820BB84BB595E3E9E2CAF4C372B6B7133DB5C2C5F40D7C366595E659363B1395E7197E372ACCB073F658BCBF31C2D7C16370B51C63354F1185C4D3A55E8CDC251972D4A71972CA32B59A67E719BE4D9BF0FE658BC9B3ECAF31C9337C0545471D9566D82C4E5D98E0AB3846A2A58BC1632951C4E1EA384E13" $FileBin &= "50AD4A127094656B4936514515C279A1451450014514500145145002120024900004924E000392493C0007249E95F925FB4CFF00C146E7B6D7355F847FB2959E99E35F1AD933D97897E29DF05BCF87FE0A94968A44D29943DB789B5780ACA56E0B4BA3413C2120B6F11BADE59DA7997EDC5FB5A788BE2AF8B75EFD987E06EB92E93E13D11E4D3BE37FC49D2A5613DCCE1DE1BCF87DE1CBC8D804895925B3F105C44FE6EA174975A4EE8B4AB0D55358F933C35E19D17C23A4DB68BA0D94765636C01C28066B8988024BABB9880F717536D0649A424E02A20489238D7F7FE05F0DB0786C2E173EE2BC37D6B1189A74F1395E41579A346142694E8E3B3851719C95" $FileBin &= "68B5530D9727153A4E35717274E6B0F2FC738B38E7135F1188CA387EB3C3D1A13950C766F4F965527562ED570B96B69C63ECDDE15B1AD49C6A2953C3AE683AAB974F014FE21F10DC78EFE2BF88F57F8AFF00107502B25EF887C5D7126A105BB025D2D74AD36E1A4B5B4B1B427658DBF9661B24555D3EDEC220B027A28000000000000006000380001C0007000E94B505CDCDBD95B5C5E5DCD1DBDADAC12DCDCCF2B048A18204696696463C2A471AB3BB1E02826BF60A95AAE21D383B72538C6961E852846950A34D5A30A387C3D28C6951A715651A74A118AE88FCD614A9D2E79A4F9A6DCEB559CA53AB566F5954AD5A6E552ACDEADCEA4A527DCE67C69E32D2" $FileBin &= "BC0FA24BAC6A65E572EB6DA769D6F86BDD57509B22DEC6CE3E59A491B9770AC21883CAC0ED0ADF7F7EC6FF00B07DDDF5F691FB41FED43A5C5A978CA748752F87DF09B51844BA17C3DB19596E2CB51F10E9D3EF8AFBC54E9E4CD0E99771B47A24812E3534B8D7D618BC3FE67FF04FAFD9D8FC6DF191FDAAFE2569AD2F827C2DA95DE97F023C31A8C24DB5F6A1A75CB41A8FC40BDB5917CA94D85EC2D6DA3EEF348D720B99C98DBC3BA5CD3FEE5D7E47E2571DD5CA6589E13C86BBA58CE574788733A32B55A73925ED325C1D48BBD28D25EE6655E12552AD573C1C5C68D3ACAB7E8FC0DC230CC551E21CDE8A9E154954C9B01515E9D48C5FBB99E2A9BD2A39B5CD" $FileBin &= "82A334E10A7CB886A55274DD33A74A28A2BF9F0FD9828A28A0028A28A0028A28A002BF98EF8D5FF05D6F8F5E04F8FDF1E7E10F81FF0066CF875E22D27E0DFC59F1DFC358B55D57C6DAC5B6A3A8C1E0DF166B9E16B7D5EED0AD85B4736AEDA14FA81B4B58E54B0130B46B8B9312DD4FFD38D7F9F77C6DFF0093DAFDBC3FECE9FE337FEADAF88F5FA97857C3B94711E6D9861738C27D6E8D2C1C2A528FB5AD4B926EAD9C93A3520DB7156B4B9959BB2BEA7C871663B1B83595C3078AA985FACE26BC2ACE94694A728D3C3CAA452F6B4EA452E64AF68DDAD2E7EAFF00FC3FCBF6AEFF00A34FF857FF0085FEA7FF00C9B47FC3FCBF6AEFFA34FF00857FF85FEA7FFC" $FileBin &= "9B5F903457EF3FF10A781FFE850FFF000AF19FFCBFD7FA5AFCBFF68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9" $FileBin &= "FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D7DDDFF04D6FF82ACFC4FF00DB63F685F1CFC0AF88BF063C1FF0EA5F09FC26D4FE2545ABF86BC4DA9EAF3B4FA678A7C09E1F1A4DCDA5DC335ACB15F5AF8E23BF4BCB7BE8DED1F4FF00B3C96F39BB66B4FE64EBF4B3FE0849FF00291AF8E1FF0066B3E21FFD" $FileBin &= "4FFE0057C971C787BC279370C66B986032CF638BC3D0E7A355E27153F672E787BCA33ACE2DEEAD252567B5F537C0E699B4733CAE954CD3155E96231B0A15A95586179254E54AA49AFDDE1A9CD3BC16AA5A2BF5D4FEC128A28AFE613F500A28A2800A28A2800A28A2800A28A2800AE4BC77E3DF057C2FF07F883E207C46F15681E08F04784F4CB8D63C4BE2AF13EA969A3683A26996AB99AF351D4AFA582DADE1525514C920696678E1895E692346F913F6E4FF008286FECE3FB01F8063F14FC64F123DF78C35D8668FE1D7C20F0B793AA7C49F88BAA2930C36DA1E86255365A4ADD148350F136AEF65A169EEE96A6EE7D56E74FD32F7F915FDA37E39FED39FF0" $FileBin &= "522F17DA78CFF6A9BE9BE1EFC0FD1F533AB7C35FD93BC27A8DE43E1DD3555A41A6EB7F13350436D77E2AF162D9C9E5CF717D1412DBBCD751E97A7F846CEEB51D0AEBF4FE05F0C735E2D50CCB193964DC350A8E35734AF4B9AB635C1FBF86C9F0B27178DAF7F7275AF1C1619B6EBD7E751A33FD2782BC36CD38AB9730C5CE59470F426E35333AD4DCAAE31C1AE7C3E5586938CB195BECCEB371C261DFF1AB73A8D29FDB7FB6BFFC162FE33FED8D79AFFC15FD81EF35EF83BFB3FA5C5E689E36FDAAF52B3BCD1FC79E3CB6477B5BCD37E0F69B29B5D4BC2FA55CA0909F1048D65E2D9A37819A7F04CB1359EB3E29FB227FC14ABF6A0FF8271DEDA7853E2DDFF8CF" $FileBin &= "F6B0FD8D5AF0B5CDD6A378759F8E7F052DAE24792EAFF45D5351B88C78A7C350B48D34FA0EAF7B0E9902443FB2EFFC1D189A1D5FC7AC2C2C74AB2B5D374CB3B5D3B4FB1823B5B2B1B1B78AD6CED2DA150915BDB5B40890C10C4802C71C68A88A005000AB44060558065604329008208C1041E0823820F0457F49D1E18E11C3E4F2E1BA7C3982A991CD275E3888C279B62710A2A2B31A99C2847174F308EAE94F0EE96168C652A10C2FD5E75294FF00A2A970D70A61F28970F53C830753269EB5A3888C679A622BA5658FA99AC611C4D3C7C75F653A0E9E1A8C652A30C37B094E9CFF00B4FF00801FB44FC17FDA8FE19685F183E03F8FF42F88BE01F102116DAB" $FileBin &= "E8D3B79F617D1A44F75A26BDA55CA41AAF87BC41A7F9D12EA3A16B76763AA59349199ED5125899FDAABF801F86FA8FC77FD8EBE265C7C78FD893C5F0F81FC4D7B25BCDE3EF835AB179FE107C5DD3ED1E598E97AE7877ED36B67A7EA0C92DC43A7EA163369773A7497334BA36ADE1C9EE6F6F2E7FAA9FF82797FC158BE057EDDD66FE05BCB79BE0AFED3DE1BB47FF0084E3F67FF1A5E245ADB4B65089350D67E1F6A3711590F1BF86130D34925ADADB6BBA54004BAD68D6963369FA96A3FCF3C75E14E3F86E9D6CE323A9573AE1B8BE6AB59535FDA593A93F769E6D86A69AF649BE48665874F0755A5ED1616ACE340FC078DBC2FC7F0EC2B66D934EAE71C3D17C" $FileBin &= "D52B282FED1CAA326AD0CD70F4D5BD926D42398504F0955AFDE2C35492A27EAAD14515F919F95051451400514514005145140051451400514564EBDAEE93E18D0F58F126BF7F6DA5687E1FD2EFF5AD6753BC9561B4D3B4BD2ED65BDBFBEBA99BE58ADED6D609679A46E1234663C0AA84275270A74E129D4A928C210845CA739C9A8C6118A4DCA52934A3149B6DA495CBA74EA56A90A54A13A956ACE34E9D3A7173A952A4E4A30842114E529CE4D46318A6E526924DB3F1C3FE0B1DFB406A1A37C3AF06FEC99E03D48DBF8F3F68ABE31F8AE7B590FDA3C3FF0008B459D66F11DE5C88CF990C7E22B9846948AE3C9D4747B1F1459E7CC0A2BF28B4AF09F87346D3" $FileBin &= "34FD22C747D392CB4CB2B5B0B5592CEDA49041690A4117992345BA594A20324AD9791CB3B12CC49CFD47E266ADFB4FFC78F8B1FB5578823B98EC3C61AA4DE11F84DA65E8659340F85BE1AB87B2D252385B72DB5C6AAF07DB75248885FED893599E3262BE39ECABFD43E04E12FF008873C1592708C57B2CD61079C714D4A72B4AAF11E674A8CB11859CE2FDF864B85A785CA20AEE0AB617155A1678891FECCF869C0DFF00109BC3CE1DE0587EE73AA54E59F71A55A52E59D6E2DCE28D09E2F053A906B9E1C3F82A583C869ABB87B7C163311049E2A77CCFEC5D1BFE813A67FE005AFF00F1AA3FB1746FFA04E99FF8016BFF00C6AB4E8AFA8F6F5FFE7F55FF00C1" $FileBin &= "93FF0033ECFEB589FF00A08AFF00F83AA7FF0024667F62E8DFF409D33FF002D7FF008D51FD8BA37FD0274CFF00C00B5FFE355A7451EDEBFF00CFEABFF8327FE61F5AC4FF00D0457FFC1D53FF0092373F652F8C69FB21FED93E0EF185C4CBA67C1CFDA1C69DF0A3E27C4BB6DF4AD17C5265C7813C5D708BE4DADB8B4BF9059DCDD4CCB058E8D7FE2BD4262D2CB1D7F58608201041040208E841E411EC457F1D3F11BC1565F10BC19AEF852F0229D4ACDBEC372E33F62D520227D36F06017DB05DA44665421A5B733404ED9581FDFDFF00825FFED3B7BFB487ECCFA35AF8C6EDDFE2F7C1CBC3F0AFE29DB5E4BBF52B9D5BC3D0A41A3F896E83B19A66F12E8A96D7" $FileBin &= "57B7BB12DE6F10DBEBF6D6DB92C988FE65FA4F7067F6965793F89381A5CD8AC07D5B8638B3915E73A2A32FF56F37AD6579374A15B24C4D693B47EAD94D36DCEB6BFC77F4C7F0FDE6D92E43E2E65B41CF1B967D4F83B8DDC15E7568284DF08E7B5DA4E52FDCD3AFC3B8BAF3D21F54C8E9B6E78857FD1AA28A2BF8B0FF003D028A28A0028A28A002BE18FF008280FED11A9FC04F82325A7832764F8A7F153525F007C3C103AADE69F77A8C58D63C4B0024156D0B4F93167703725B6B9A8E8AF3C6F01941FB9EBF01BF6E7F15CBF10FF6D9B7F0B492F99A27C06F86FA74705A6F32C5178BBC711DBEB7797853EE452DC685A8E8B195C160DA45ACB9DC46CFD07C32" $FileBin &= "C8B0F9EF15E1638DA51AF97E5587AF9D63A8CD5E15E96079161F0F516CE96271F5B0942B27A4A9549C7A9F1BC779BD6CA787EBBC2D474B199856A596616AC5DA54A78AE675AB41EEA747094F11569B5B54845F43E77F02783ECBC0FE1BB2D0ED584F70A0DD6AB7ED932EA5AADC056BDBD95DBE76DF2011C0242CF1DB470C4CCC50B1EC68A2BFA6EB55A95EAD4AD564E752A49CE727D64DDDE8B44BA24AC924924923F06A74E14A10A74D28C211518A5D12FCDBDDB7AB776F5615E7FE29F0EEB5F147C5DF0D3E03785E7920D6FE2F78B2CF45BDBB814C92695E15B274BDF12EAB246BF3186C74E8E6BFB84E93D858DFC38705D47A057B87FC13E7C2B1F8CBF6C7" $FileBin &= "F88DE33BC884F6DF07FE1769DA1E92C5415B4D7BC73731CAB788C49C4C7474F1269ED85F9D26656602201F931D992C9329CEB3DB275327CB3118BC32925283C7CE54F099773A77528471D89C3CE516BDE8C5C7A9D384C17F6A66396654EFC99963E8E1AB357BFD562A788C659A69A6F0942B453E8E49DB43F6EBC17E10D03E1FF84BC37E08F0AD847A67873C27A2E9DA068B631018B7D3B4BB58AD2D95D82A996668E20F7170E0CB713B493CACD2C8EC7A6A28AFE31A952A56A952AD59CAA55AB3954A95272729D4A939394E7393BB94A526E52936DB6DB7A9FD3F4E9C294214A9C630A74E11A74E1149461082518C62968A318A4925A24920A28A2A0B0A28A2" $FileBin &= "800A28A2800A28A2800AFF003EEF8DBFF27B5FB787FD9D3FC66FFD5B5F11EBFD046BFCFBBE36FF00C9ED7EDE1FF674FF0019BFF56D7C47AFDB7C0FFF0091F669FF006014FF00F4F33E1B8D3E3C93FEC2F15FFA8933028A28AFEA33E6028A28A0028A28A0028A28A0028A28A002BF4B3FE0849FF291AF8E1FF66B3E21FF00D4FF00E0057E69D7E967FC1093FE5235F1C3FECD67C43FFA9FFC00AF82F133FE48BCEFFEC1BFF6F81784FF0091BE49FF00633A5FFA66B9FD82514515FC587EBA145145001451450014515C07C53F8A5F0FBE09FC3CF16FC57F8ABE2AD2FC13F0F7C0BA3DC6BDE2AF146B323C761A4E9B6E510CAEB0C735CDCDC5C4F2C36763616505" $FileBin &= "CDFEA57D716D61616D7379730412694A955AF569D0A34E75AB56A90A54695284AA54AB56A49429D3A708A729CE736A30845394A4D249B69174A954AF529D1A34E756B569C2952A54E329D4AB52A494214E9C229CA739C9A8C2314E52934926DA3BF2400493803924F403D4D7F3F1FF000508FF0082DA787FE15EBFADFECDDFB0DE99A2FC7CFDA523F3F4DF1378D1665D43E0CFC109433417775E24D6AD265B4F15F8A74D70F1AF87B4EBD5D2B4CD4A37B6D6F51B9D5AC65F086A3F99DFB66FFC1553F683FF008283CDAD7C2DFD9825F15FECDDFB1ECD2DD695E22F8A570ADA47C64F8E9A586782F2D3404864693C17E0AD4C2BC0F6F6971F6FD4EC1DD3C41A94" $FileBin &= "91DCEABE0683E47F87FF000E3C1BF0BFC3F0786BC17A2DBE91A7C415E791479B7FA95C85DAD7BAA5F383717D77273FBC998AC484416D1C16E91C29FD23C17E0FE1B2C54736E38A51C4E3572D5C370AC6A7EEE83D250A99FD7A52BF32D1FF0064E1E6AA3D238DAF4AD530B2FE88E0EF09B0F972A39A719D28E2319EED5C370D467FBAA3F6A13CF2B5295F9B67FD97426A7B2C656A769E165CDE87F0F3C45ADF8F358F8E3F1E7C77ADFC71FDA0BC5529BAF107C48F17CC6F1B4F670E174AF08E9AEA965E1ED1AC2291ACB4EB7D3AD2CA1B2B15FB1E9567A3E98C34B8BD728A2BF68AB5A759C39B9230A54E14A8D1A50851A187A34D28D3A187A14A30A5428D38A5" $FileBin &= "1852A508C2292491FB0D4AB3AAE3CDCB1853846951A54E11A54285182E5A746851A6A34A8D1A714A34E9538C6104ACA2828A28AC8CC2BC9BE237C22D13C7B75A3F892C753D63C0DF12BC29756BA9F81FE28783AF6E344F19785357D3E6FB5E997965AB69F3DA5E3C565798B98A1FB4C52DBCA5E6D3AEB4FBB7174BEB3456B46BD5C3D45528CDC26938B6ACD4A32569C27169C674E716E33A735284E2DC65169B46B46B55A1355294DC269357566A5192B4A138B4E3384D3719C269C2716E324D368FD2AFD857FE0B75E2BF865AC7873F678FF8296CB67A63DD4B0689F0F7F6C0D2ED16DFC11E2A500456567F17EDAD618ADFC2DAE6D50B75E2CB5B6B6D30074B" $FileBin &= "9F1269BA5D95BDDF8BB51FEA074DD4B4ED674EB1D5F47BFB2D5749D52CEDB50D3353D36EA0BED3F51B0BC852E2CEFAC6F2D9E5B7BBB4BAB79239EDAE6092486786449627646563FC1CF88FC37A0F8BB46BEF0F789B49B1D6F45D4A230DEE9DA842B3DBCCBD51803868A785B12DBDCC2D1DC5B4CA93412C5322BAF75FB257EDB1FB4EFF00C130AFE2D2FC2C35EFDA3BF6327BC7B9D73E08EB1A8BDC78F7E125A5CCCF3EA1AC7C24D6AE7CC61610492497D75E1AB857D16F49B837365A56A177A878CD3F25E34F0972FCFF00DAE69C234F0F94E752E6A95F21728D0CAF339BD5CB2AA936A9E5B8B9BBBFA8D5947035A4D470D530AD468D4FCAB8C7C2BC0679ED73" $FileBin &= "2E15861F2BCDE579D7C8DCA3432CCC66F594B2CAB36A9E5D8A9BBBFA9559470555BB50A9866A34AA7F733457CE5FB2BFED5DF03BF6CDF841A37C6EF801E308BC5DE0AD52E66D2AF964B7974ED73C2FE26B2B6B2BAD57C25E2BD1AE40B9D1BC47A4C5A8594B756721960B8B3BCB1D574BBBD4346D474ED46EFE8DAFE64C5E131580C5623058EC3D6C26330B567431386C4539D1AF42B53938D4A556954519C270926A51924D33F9BF1584C4E07135F078DC3D6C2E2F0D567471186C453952AD46B536E33A7569CD29427169A71924D0514515CE738514514005145140057E2D7FC163BF680D4346F875E0DFD933C07A91B7F1E7ED157C63F15CF6B21FB4787FE1" $FileBin &= "168B3ACDE23BCB9119F3218FC457308D2915C793A8E8F63E28B3CF981457EC7EBDAEE93E18D0F58F126BF7F6DA5687E1FD2EFF005AD6753BC9561B4D3B4BD2ED65BDBFBEBA99BE58ADED6D609679A46E1234663C0AFE40F51F899AB7ED3FF1E3E2C7ED55E208EE63B0F186A937847E136997A1964D03E16F86AE1ECB4948E16DCB6D71AABC1F6DD4922217FB624D6678C98AF8E7FA3FE8D5C130CFB8C2B717E654155C93812387CCE30AB1E6A38DE24AF39C787702D3D2A2A388A35B38C44358BC3E572A55125888DFFAD7E887E1D53E26E3CAFC779BE1A35B877C34861737842B414A8663C5D8A9D48F0A65CE325CB52387C550C467D8A87BD1961B26950AA9" $FileBin &= "47150BEFE8DA458681A469BA1E9502DB69BA4D8DAE9D6302E3F776D690A43106200DEE51019242374921676259893A74515FDB952A4EACE752A49CEA5494A739C9B7294E4DCA526DDDB6DB6DB7AB67FA2D52A54AD52A55AB3954AB5672A952A4DB94A739C9CA73937AB94A4DB6DEED85145150405145140056FF00ECADF1A0FEC93FB66F843C6B7D746C3E10FED15FD9FF000ABE29EF90C7A6E91E2B79BFE285F185D65A3B784DADFC82CEEAEE7610D8E8D7FE2BBF98B4B2A5605711F11BC1565F10BC19AEF852F0229D4ACDBEC372E33F62D520227D36F06017DB05DA44665421A5B733404ED958155B0196E7580CD387B3A5CD92F1165F88C9F34B454A5468" $FileBin &= "62945D1C7528BD3EB39662E187CCB0ADED88C2D3E8DA6B1196653C4396673C2BC43173E1EE2BCAF1590671CB1539D0C3E3545D0CCA845E8F1793E3A9E1336C13E98AC152E8DA7FD8B020804104100823A1079047B114B5F9CBFF0004BFFDA76F7F690FD99F46B5F18DDBBFC5EF839787E15FC53B6BC977EA573AB787A148347F12DD076334CDE25D152DAEAF6F7625BCDE21B7D7EDADB7259311FA355FE5C71570DE65C1FC479D70C66F4D53CC324CC31180C472DDD3ABEC66D52C4D093F8F0D8BA2E9E270D557BB570F5A9D48B719267F8C1C6DC239BF01716F10F06E7B4952CD787334C56598AE5BBA55DE1EA35471786934BDA6131D8774B1983ACBDDAD85" $FileBin &= "AF4AAC7DD9A6CA28A2BE7CF970A28A2800AFE6EBE2F3CB37EDA3FB5AC97259A74F11F80A18DA418716F1F849628557A6635821B654206362C673C827FA45AFE7C7F6C7F0DCBE02FDBAFC5B77321874EF8D5F0E7C2DE2CD365008866D5FC31649E16BDB446C05FB4C76DE1DBBD42E2304B2ADDC32B0C5C835FB1782F5A11CF73DC336955C5F0CE29505D672C2E679563AAC1756FEAD86AD51AFE5A527D0FCCFC51A72794E535D26E9E1B3CA2EABD6D18E23058EC2D393E897B6AD4E177FCFA6A79ED14515FBB1F91857D79FF04A9488F8FBF6C2B8214DD3788FE15C0EF9CC9F6686C3C77F674233F2A0679769C0DE41C96D836FC875F427FC137BC4717867F6AD" $FileBin &= "F8EDE05B8912DD7E23FC3AF0A78DB4C47213ED771E0BBDFEC99E2849C0927CF88F55B908016305B5CBE0885DABE7F8CE954C4702F17D1A49BA9FD9F80C4D975A583CF32BC4D7F9468C2751F4B41B7B23D9E18A90A3C57C3952A34A0F1B89A177D2A6272DC6D1A567DE55251A6BBF3F63F7328A28AFE473FA3C28A28A0028A28A0028A28A0028A28A002BFCFBBE36FF00C9ED7EDE1FF674FF0019BFF56D7C47AFF411AFF3EEF8DBFF0027B5FB787FD9D3FC66FF00D5B5F11EBF6DF03FFE47D9A7FD8053FF00D3CCF86E34F8F24FFB0BC57FEA24CC0A28A2BFA8CF980A28A2800A28A2800A28A2800A28A2800AFD2CFF0082127FCA46BE387FD9ACF887FF0053FF" $FileBin &= "008015F9A75FA59FF0424FF948D7C70FFB359F10FF00EA7FF002BE0BC4CFF922F3BFFB06FF00DBE05E13FE46F927FD8CE97FE99AE7F609451457F161FAE8514514005145140057CB7FB6D7ECFB69FB547EC97FB40FECFD731C2F75F133E19789345F0F493B2AC365E33B6B5FED7F036A92962AA63D27C65A6E87A9BAB3A2BADA152E818B0FA928AEAC16331197E37098FC24DD2C560713431986A8B7A75F0D5615A8CD79C6A4232F91D382C5D7C0633098FC2CDD3C4E0B13431787A8B7857C3D58D6A535E719C22FE47F9E77ECD3E29BBF147C1BF09AEAB0CF69E21F0AC571E06F12585D44D05E586B3E1099B4792DEF61701E2BC7B3B7B3BAB98DD51D25B965" $FileBin &= "75570C07BCD6AFED55F0A3FE1987FE0A69FB5BFC1B86D7EC1E0FF8C377A6FED4DF0D21C491412597C4491FFE13A4B48591618E1B7F1DB6BBA3D8DBDB168E2B0F0D80842C6F05AE557F794F174332A785CDB0A92C267382C266F868A6A4A14F31A10C4CA8DD7DAC3D5A9530F35BC6A52945EA99FDC4F154730A585CD30C92C2E6F83C2E6B8749DD429E3E84312E95FBE1EACEA61E6B753A528BD530A28A2B32028A28A0028A28A002B91F1F78B2D3C09E09F1578C6F76B5BF86F42D4B56F29D828B99AD2D6492D6CD4923F797B7421B488646E966450726BAEAF17F891E02D57E3FFC47FD9D7F64CF0FCB3C5A9FED21F1A3C25E13D626B5F9A6D37C05A4EA767A" $FileBin &= "AF8D75C28A7798F42D3845AD4D80375B69D72A371F94F461551F6F1A98A9AA784C3C6A62F19525F0D2C16129CF138BA927A59430F4AA4B75B1BE1951F6D19E266A9E16829E271751E8A9E130B4E588C5546FFB987A5525F23FAA0FF82177ECF775F00FFE09D1F086F75DB47B6F1BFC7ABAD67F68BF1B492A08E6BABCF89CD6B3F84E79136ABC721F86FA6F8296E21946E8AF05D2ED8F3E5A7EC0565685A2695E1AD1347F0E685616DA5689A0697A7E8BA3E996512C367A7697A5DA4565A7D8DA42802436D69690456F046A02A451A20E0015AB5FC31C439C57E20CF737CF311755B35CC7178E945BBFB3588AD3A94E8C7FB9469B8D282DA308452D123F89F3FC" $FileBin &= "DAB67D9DE6B9CE22FED733CC3158D947A5355EB4EA42947A2852838D2825A46108A5A2414514578C79014514500145145007E2D7FC163BF680D4346F875E0DFD933C07A935BF8F3F68BBE31F8AA7B590FDA3C3FF00087459D66F11DE5C04224863F115CC23494571E4EA3A458F8A2CF3E60515F965A369161A0691A6687A540B6DA6E93636DA758C0B8C476D690A43129200DEE510349211BA490B3B12CC49FD0AFF0082CAFC14BEF0E5FF00C2AFDB5FC2F697176DF0E9AD7E17FC5EB4B74799A5F86DE21D4EE9F42D616203646341F10EB17F66C41DF7177E21D25A42B6F612B57C016B736F7B6D6F7969347716B77045736D7113078A7B79E359619A271C3C" $FileBin &= "72C6EAE8C3865604706BFD20F04A864D43C1EE169643255218BC767388E24AAD255FFD6A8626346B61B12A2DA8D3C364D1CA1E02377CD85AEF116855AF5E11FF005B3E8EB86C830DE02F054F86A6AAD3C7663C4389E2EAB2518E27FD75A58C8E1F1185C5A83928D3C1F0FC721795C5C9A9E0B13F59E5857C4E269C27A28A2BF483F5C0A28A2800A28A2800A28A28037FF656F8D07F649FDB37C21E35BEBA361F087F68AFECFF00855F14F7C863D3748F15BCDFF142F8C2EB2D1DBC26D6FE416775773B086C746BFF0015DFCC5A5952BFAC004100839040208E841E41FC6BF907F865F0766FDAF3F6ABF85FFB3A240F73E01F0B5C43F15FE38DCC618C31785342" $FileBin &= "9216B1F0E4F2AE1A29BC47717769A4B22B79AB1EBF6BA8C408D3A6DBFD7BAA845545E1554281ECA001FA0AFE43FA5751C9A3C47C1F89A524B8A715C3117C434A9A8F2BCBE86265438671389927CDFDA35B2F856A3521257FECDC2E55575F6D77FC25F4DCC3E410E2CE02C5D19A5C678DE0D84B8AA8D35170795E1F173C37076331934F9966B88CAA9E22854A7349AC9F0791D7BBFAC0EA28A2BF94CFE240A28A2800AFCD9FF8297FC0DD5FE217C23D1BE2DF822CDEEBE217C02D4AEBC61656D0216B8D5FC19711C03C6BA4AA22F99318AD2C6CF5A11EE667B4D2B50B3B68A4B8D4114FE93535D55D591D55D1D4ABA300CACAC086565390558120823041C1AF6B" $FileBin &= "87B3BC570E675976778351956CBF111AAE94DB54F114649D3C4E16ADB5F658AC3CEAE1EADB5E4A927169D9AF2F3ACAB0F9DE578CCAF12DC6962E9382A91B73D1AB192A942BD3BE9ED2856853AB0E8E5049E8D9FCC9F863C45A778B342D37C41A54A24B2D4AD9664048324128CA5C5ACE070B3DACEB25BCC071E646C54B21563BD5DD7ED6FF00B37EABFB2278F353F89DE07D2AEAFF00F66DF881AC0B9D734CD3A09277F849E28D464DAE16DA20C23F0AEA370C174B9E358E2B75787409825D5A688DABF9D58DFD96A7676DA869D7505ED8DE4293DADD5B48B2C13C320CAC91C884AB29E9C1C820A9018103FAEF0B8BC066D80C2E739455F6F95E3939519369D5" $FileBin &= "C2D6493AD97E3229BF658CC2CA5C9522DDAAC392BD273A356137FCDD88C2E2F2EC5D7CB731A7EC71F847CB522AFECEBD37FC3C5E19B4B9F0D5D7BD092BF24B9A94F96A425156EB921E39BAF81DF18BE0EFED076893BD8F80FC4A9A478DE2B546966BAF02789D64D235B1E50F9667B5B3BEBEFB0C6C081A9DDD9CA06E895D3ADACED5F4AB1D774BBFD1F52845C586A56B359DD44782D0CE8518A360EC91321E2900DD1C8A922E1941AE8A5EC24EA50C5D3F6D82C5D0AF82C751EB57058CA53C3E2A9AED2951A93E47D27CB2E8633F6B1E4AB879FB3C4E1EAD1C4E1AAEFECF1386AB1AD426FC95484799758B92EA7F4A7A6EA361ACE9D61ABE97776FA8699AAD95" $FileBin &= "AEA3A75FDA4AB35ADED85EC097369776D321292DBDCDBCB1CD0C884AC91BAB0241157ABF1FFF00E09B5FB475C69626FD917E286A58F14783E09EEFE0FEB57B2154F17F80D4CD7234081E5E1F52F0D44B33D95AA4B21FEC549F4E82348FC332C93FEC057F2271570E62F8573BC5E518ABD485392AB82C5A8B54B1F97D6BCB098DA2F670AD4ADCF14DBA55A35684ED5294D2FE90E1ECEF0FC419561B31A1684A71F678AC3B779E13194D2588C3545BA9539DF95B4954A6E156378CE2D9451457CE9ED851451400514514005145140057F9F77C6DFF0093DAFDBC3FECE9FE337FEADAF88F5FE8235FE7DDF1B7FE4F6BF6F0FF00B3A7F8CDFF00AB6BE23D7EDBE07F" $FileBin &= "FC8FB34FFB00A7FF00A799F0DC69F1E49FF6178AFF00D449981451457F519F301451450014514500145145001451450015FA59FF000424FF00948D7C70FF00B359F10FFEA7FF00002BF34EBF4B3FE0849FF291AF8E1FF66B3E21FF00D4FF00E0057C17899FF245E77FF60DFF00B7C0BC27FC8DF24FFB19D2FF00D335CFEC128A28AFE2C3F5D0A28A2800A28A2800A28A2803F98FFF008388FE140F0ADEFEC7FF00B6B6976EB10F86FF0010EFFE06FC4FBC8C12F27807E27DA5C5F687A86A04FCA34FF0BEA9A6788E3B7E547F6A78BAD772BB796F07E5BFBF507A1EC47A8F6AFEB8FF00E0A2DFB38AFED63FB12FED1BF0260B317DAF78BFE1BEAD7BE0A87644CE" $FileBin &= "7E20F845A0F18F8042BC88FE524DE2FD0746B6BA923DB2FD8E7B944652F5FC597ECEFE377F881F073C0DAF5CC8F26AB16929A16BA25DDF685D6FC3EEDA3DFBDCAB00C93DDBDA2EA0C8C3704BC43D1857F5B784D9BFF6B702D2C24E7CD89E18CCAB65D24DDE4B2DCCFDA6639749FF007638A59AD18DFE18D3A715A592FEA9F0AF35FED4E0AA7849CB9B11C399856C04937792CBF31E7C7E024FAD9627FB4E947A28C2115D97B5514515FA11F7E145145001451450015F5B7FC116BE141F8DFF00F0522F8C1F1DEFAD8DCF84BF642F85565F0FFC2F70F0116E3E297C5AFED1B7D42F6CE770CB25D699E13B4F1BE87AA450E26845E696F218A19A2377F1578AFC45" $FileBin &= "63E11F0C7887C53A91C58787345D4F5BBBC1019A0D36CE6BB78D09EB24A22F2A25E4B48EAAA0B100FF0044DFF040AF8097BF08FF00E09FDE15F88DE26B4F27E207ED4BE31F14FED0DE2B9E58992E25B0F16DD47A77821566932EF617BE0CD1B48F13D9C436C314DE26BE78833CF35C4DF21E22E6FF00D87C079ED78CF93159CCB0FC3983B3B4B971CE589CCE696EE2B2DC256C34DAD23F5D8297C493F92F10735FEC5E07CEAB467C989CDE54387F09676972E35CB1198CE3D5C565D86AD869B5B7D7209FC4AFFB63451457F1B1FC8814514500145145001451450070FF0012FE1EF863E2CFC3FF00197C33F1A5826A7E15F1D787356F0C6BB66E17749A7EB167" $FileBin &= "2D9CEF03B2B982EE0597ED165748BE6DA5DC50DCC2CB2C48C3F90BF097863C4FF063C71F12FF00664F1F48F278BBE08F88EE746D3EF654684788BC0B78E2F7C27E21B3490EF36977A55CD9CF120045A585EE976F21136F55FECB2BF04BFE0B1DF036E3C27A97C35FDB6FC1FA74924DE099ECFE1B7C6CB7B18499352F87BAF5E98B40D7AE923555924D035ABC934D32CA5E69A6D5F405765B5D246CFE9FFA31F1A2CB78931BC05985750CB38D5528E56EA4AD4F0BC5B828D4FEC9716DDA1FDAF4AA62325A895BDA6231397CE6F970CADFD93F439F109653C5D9878639A62234F27F111508E4D2AD3E5A581E39CBA355E4528B93B4167B42AE2B87AAA8A4EB62B1" $FileBin &= "99554AAF9309171F8328A82D6E6DEF6DADEF2D268EE2D6EE08AE6DAE2260F14F6F3C6B2C3344E3878E58DD5D1870CAC08E0D4F5FD9528B8C9C649C6516E328B5669A7669A7AA69E8D3D99FE804A328CA519271945B8CA2D34E324ECD34F54D35669EA98514514841451450015CE78BBC4FA77833C33ADF8A3556DB63A2D84D7B2A860AF71228096D6711391E7DEDD3C3696E0F0669A30700935D1D63FC31F83F71FB5D7ED55F0C7F6738A2967F007862683E2AFC73B88B70817C25A14D6F258786AE25421924F115DDCD9696D1E7CC45D76CF53855BFB3652BA2C465F80A18ECDF38ADF57C9724C0E2B38CDEBAB73432FC05375AB4295DAE6C46264A184C242F" $FileBin &= "7AB8AC451A714E5349EB1C56579661B31CF73FACF0DC3DC3996E333FCFF131B73D3CAB2CA4EBE229D1BB4A58BC64953C06069DEF5B1D8AC3D18DE55123F633FE090BFB37EA3F0B3E025FFC6FF1DD8F95F15FF698BFB7F881ABBDC4456EB47F03959DFC05A02090799040FA75E5C7884C0363C4BAE5BE9F709BB4B8B67EB65416D6D6F656F6F67690456F6B6B0C56F6D6F022450C10428B1C30C5120548E28E355444450A8A02AA80389EBFCBDE36E2CCC38E78AF3CE2BCCED1C56738EA9895422DBA583C2C5468E072FA17DB0F97E0A961F07416EA95085EEEEDFF008CDE22F1C669E2471B71271B67168E3788332AB8B8E1A1272A397E0A2A387CB32BC35F55" $FileBin &= "84CAB2EA385CBF0B1B26A861A9DF5BB6514515F2A7C5851451400514514019BAC68DA4F8874AD4B42D7B4DB1D6745D62CAE74DD5749D4ED61BED3B51D3EF216B7BBB2BDB3B94920B9B6B881DE29A1951A391199594826BF0E3F683FD817E23FC0BD4B55F881FB2F595EF8F7E18DD5C4DA8EBDF04A7B89EEBC4BE1CDE5E5B8B9F025CCCD35CEB5648A0A47A68171AFA2882236FE2427CFB0FDD9A2BEAF8578C738E11C54EAE5D529D6C26279163F2BC5A955C063A106F97DAD2528CA9D6A69BF638AA13A788A2DB50A9C929C27F3DC43C3396711D0853C6C274B134399E0F1F8771862F09296FECE6E328CE94ECBDAD0AB19D1A8BE287328CA3FCBAF847E22786" $FileBin &= "BC6265B5B1B892C35CB46962D4BC37ABC66C35DD3AE2DDDA3BA867B0988793ECD22B24D25B996389C797318A50D1AF755FB31FB417EC49F00BF68D77D5FC5DE1993C3FE3A545FB27C46F054D1F87FC610CB1205B77BDBA8E09AC75D5B70B1AC2BAED86A325B44A63B296D0B171F98BE3EFD82FF6B9F84CD35C7C39D7BC33FB44784ADC96834ED52687C1FF0010E1B651BD918EA577FD917F244B94FB41D7B50BDBC65261D2E26923B75FE82C938FB847882108AC74787B30925CF97E755630C239BB5D61338518E1674EEFDDFAFC70353A7EF1AE67F8D66BC1FC4793B9378479C60E2DF2E2F2B839E21474B3C465ADBC44676F8BEAAF15076BFBA9A8AF9A7C6B" $FileBin &= "E119FC429A5EAFA16A973E1AF1BF856FE0D6FC1BE2BD3A696D750D1758B39A3B9B678EE6DCADC470B4F0C4ECD1B6F8658E2B9895DE2F2E4FD72FD8BBF6E1B0F8DD147F0A3E2DAD9F837F683F0F5B086F74B98C567A5FC42B4B584B3788BC28777D9DEF64B74377AA6876ECC635126A5A489B4BFB445A67E3BEBBF11352F005E2E97F183E1B7C46F84DA9190C58F16785B558B4D99C679B0D416D237D4622159927B5B3686541BE291D72473DAFEA5F0B3E22C7A7DDD8F8EB4BD1FC4DA44F15EF86BC4BA6EB31E8BE25D0F50B7916E2DAE6C9A69AC7500B0DC2C737943CB68E55135BCB6D7691DC47F43C43C2386E2DCA6960733A3539697B4A993E7F818471DF" $FileBin &= "509D4B39C155C3CE7471997579462F11868D64E32FDFE1E70AB753F1B26E23C470EE633C5606A41CAA384331CA7152961563210B28B70AD18D4C3632945B542BBA7669BA75633A7F0FF57F457E21FECF1FF0529D77E1E3E99F0FBF6B0C6B3A36E86C340F8F5E1783FB4AD6E621F2DBA78F349D36379C5DAC4A449AB6996ED7D2F96AF75A45E8FB56B927ECE785FC57E18F1BE85A7F89FC1DE20D1FC51E1CD5A0171A6EB7A0EA36BAAE977B09C8DD6F7B652CD6F26D60C92287DF148AD1C8AB22B28FE5BE28E0CCFB84712A8E6D8492C35593583CCB0FCD572EC7456AA587C4A8A8F3DB59E1EAAA589A5B55A3076BFEFF0090713E51C4741D4CBF10BDBD34BEB3" $FileBin &= "81AD6A78DC2C9F4AD41B6DC2FA42B5373A1537A7524741451457CA9F40145145001451450015FE7DDF1B7FE4F6BF6F0FFB3A7F8CDFFAB6BE23D7FA08D7F199F1FBFE097DFF000518D43F6A7FDA97E227C3CFD9CECBC61E0BF8A7F1E3E27F8E7C2DAE37C5AF837A426A1E1BF11F8F7C53E22D0AF174ED6BE22695AC594B71A76B909B9B4D4B4EB4B9B69D1E268BE5DCDFAEF83F9B65994E739957CCF1F84C0529E069C61531788A58784E4AB6B184AACA2A5249A7CA9B76D6D64CF8AE31A188ABFD9352861B13898D0C562255561B0F57112846786942329428C27249C9DAF6B1F01515F5B7FC3B23FE0A99FF004695A7FF00E1EDF813FF00CF528FF87647FC15" $FileBin &= "33FE8D2B4FFF00C3DBF027FF009EA57F44FF00AF1C21FF00451E4DFF00871C2797FD3EF3FEAEAFF29ECF17FF0042DCDBFF000D78FF00FE51E7F9F667C93457D6DFF0EC8FF82A67FD1A569FFF0087B7E04FFF003D4A3FE1D91FF054CFFA34AD3FFF000F6FC09FFE7A947FAF1C21FF00451E4DFF00871C2797FD3EF3FEAEAE7B3C5FFD0B736FFC35E3FF00F9479FE7D99F24D15F5B7FC3B23FE0A99FF4695A7FFE1EDF813FFCF528FF0087647FC1533FE8D2B4FF00FC3DBF027FF9EA51FEBC7087FD147937FE1C709E5FF4FBCFFABAB9ECF17FF42DCDBFF0D78FFF00E51E7F9F667C93457D6DFF000EC8FF0082A67FD1A569FF00F87B7E04FF00F3D4A3FE1D91FF" $FileBin &= "00054CFF00A34AD3FF00F0F6FC09FF00E7A947FAF1C21FF451E4DFF871C2797FD3EF3FEAEAE7B3C5FF00D0B736FF00C35E3FFF009479FE7D99F24D15F5B7FC3B23FE0A99FF004695A7FF00E1EDF813FF00CF528FF87647FC1533FE8D2B4FFF00C3DBF027FF009EA51FEBC7087FD147937FE1C709E5FF004FBCFF00ABAB9ECF17FF0042DCDBFF000D78FF00FE51E7F9F667C935FA59FF000424FF00948D7C70FF00B359F10FFEA7FF00002BC27FE1D91FF054CFFA34AD3FFF000F6FC09FFE7A95FA4DFF00047EFD833F6C5FD9CBF6B9F89DF19BF689F8416DF0D3C2BE24F80FAD781B4DB98FC7FF000E3C5AF77E24BDF1AFC2CD4ED2CE1B2F05F8BFC4B7D0C5FD" $FileBin &= "95E0FD52E67BBBE86D6D92410C0924924CAABF19E2071570DE63C279BE17059E65789C4D4C3DA9D0A38EC354AB51F3C34A74E156529BD768A6ED77B6A746070F8CA99AE512FECFCC69C2963E156AD4AD80C5D1A74E9AA555394AA55A508455E515ABDDD8FE9528A28AFE4C3F580A28A2800A28A2800A28A2800232083D0F06BF83CF8DBF0A0FECBBFF000507FDB27F6748ED9AC3C29AEF8CE3FDA23E155B8511D9B783BE2AA41ABEAF65A5C670C34EF0D6B7A845E138000409B43BCDC4B0F366FEF0EBF96DFF0083843E130F01FC59FD8CFF006D3D36D445629AFEABFB30FC56D4163401F43F1745A9789BE1D4D7B2A0124761A25FFF00C2C1BD9659B7C22EA6" $FileBin &= "D361478A59161BBFD9BC10CDFEA9C5589C92A4ED438972CC460A9C5FC3FDA582FF00852CBA5FE3A92C357C153EEF1AE3BB4D7EBFE0BE6BF55E27C464D5276A3C4596D7C2422FE1FED0C1FF00C2865F2FF1D4950AD83A7BEB8C6ADADD7E6CD14515FD29CB2FE597DCFF00CBCD7DE7F45F2CBF965F73FF002F35F7851451472CBF965F73FEBAAFBC3965FCB2FB9FF5D57DE1451451CB2FE597DCFF00AEABEF0E597F2CBEE7FD755F79E11F1B3C31AF7C5DD43E0F7ECCDE0F95E2F167ED2FF183C0DF0B6CA58C316B0D1F50D7B4F7D775A94AAB94B1D255EC26D4DCC6E89A6C976F2298D1C1FF00408F04F83F40F87BE0CF097807C29611E97E17F04786742F08F8" $FileBin &= "6F4C88E62D3B41F0DE976BA3E916319E331DA69F676F6E87FBB18AFE40FF00E090FF000A07C7CFF82A27887E26DEDB8BCF067EC57F08A56B3988335AC7F173E30C379A1696195BF71BD7C1F2F8C1CB7CD25AEA7E1DB47451320920FEC8EBF9FBC75CDF9B31C8786A9CBDDCA32F96678D8A7B6639E7B2AF084D77A595D0CBA51BEB1788A89249B6FF0006F1B735E6CC323E1DA73F772AC03CC71904F6C7E73ECEB46334BAD3CB6860251BEB175EA2B2BDD9451457E0C7E1C14514500145145001451450015C3FC4BF87BE18F8B3F0FF00C65F0CFC69609A9F857C75E1CD5BC31AED9B85DD269FAC59CB673BC0ECAE60BB8165FB4595D22F9B6977143730B2CB12" $FileBin &= "30EE28ADB0F88AF84C450C5616AD4A189C356A588C3D7A5270AB46BD19C6A52AB4E71B4A1529D48C6709269C6514D6A8DF0B8AC4E071586C6E0EBD5C362F075E8E2B0B89A33953AD87C4E1EA46AD0AF4AA41A953AB4AAC23529CE2D4A338A9269A47F1A7E12F0C789FE0C78E3E25FECC9E3E91E4F177C11F11DCE8DA7DECA8D08F117816F1C5EF84FC4366921DE6D2EF4AB9B39E24008B4B0BDD2EDE4226DEABE995F79FFC163BE06DC784F52F86BFB6DF83F4E9249BC133D9FC36F8D96F6309326A5F0F75EBD31681AF5D246AAB249A06B579269A6594BCD34DABE80AECB6BA48D9F035ADCC17B6D6F7969347736B77045736D710B078A7B79E359619A27190" $FileBin &= "F1CB1BA3A30E195811D457FA91C29C57438FB84722E35A3ECD62334A33C267F42924A383E27CBE34E9E6F4B91694A18D73A19BE169ED1C2E634A9ABBA72B7FB41C13C6F87F13F81786BC43C3FB28E2F3AA15303C4F86A2946380E32CAA346967D47D9C7DDA34F317570D9F60E92D2182CDA8525EF529A53514B83E87F23460FA1FC8D7B47D089452E0FA1FC8D183E87F23401CDF8BBC4FA77833C33ADF8A3556DB63A2D84D7B2A860AF71228096D6711391E7DEDD3C3696E0F0669A30700935FB2FF00F0485FD9BF51F859F012FF00E37F8EEC7CAF8AFF00B4C5FDBFC40D5DEE222B75A3F81CACEFE02D010483CC8207D3AF2E3C42601B1E25D72DF4FB84DDA5" $FileBin &= "C5B3F1CFE18FC1F9FF006BAFDAABE18FECE71452CFE00F0C4D07C54F8E77116E102F84B419ADE4B0F0D5C4A843249E22BBB9B2D2DA3CF988BAED9EA50AB7F66CA57FAF1B6B6B7B2B7B7B3B4822B7B5B5862B7B6B781122860821458E18628902A471471AAA222285450155401C7F3C7D2638D3FB1786F2AF0F7035B9730E24FABF10F12A83B4E8E4B86AB2FEC0CB2A59E9F5FC653AB9C62294AD2F6585CAAA59C2AEBFCA9F4C1F107FD5EE11C97C2CCB6BF266BC5DF55E2AE2FF00672B4E870EE12B4BFD57C9AB5B6FED3C7D2AF9FE2A8CB965EC705915657856D67A28A2BF878FF38828A28A0028A28A0028A28A0028A28A0028A28A00A97D6163A9DACD63A8" $FileBin &= "D9DA5FD95CC662B8B3BDB786EAD6789B868E6B79D1E295187051D194F706BE71F16FEC67FB2AF8DE4926F10FC03F866F73336F9AF348F0D59786AFE772BB4BDC5F7869748BB99F181BE59DDB85E46D5C7D33457760B33CCB2D9BA9976618EC04DB4DCF058BAF859B6B66E542A53775D35D0E4C5603038E8F26370785C5C7A471387A55D2F45561248FCF5D4FFE096BFB14EA0CCF6FF0BB53D219D8B9FECDF883E3F280B3066D91EA3E24D4238D49040444545562A8AA026DF55F82DFB177C1BFD9EF597D67E13DCFC42F0C1B8915F52D217E20788750F0D6B3B544606AFE1CD4AE6EF47BE956306286F24B417F6A8CDF62BAB773BC7D6B457AF8BE32E2DC7E12" $FileBin &= "A6071FC4B9E63B07562A3570B8CCD3198AA1522ACD2A94EBD6A919D9A4D7326EE93DF53CDC3F0C70EE13110C5E1323CAF0B89A6F9A9D7C360B0F42AC1F78CE942128FC98514515F347BA145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145154EFD2FE4B574D32E6CECEF4BC063B8BFB19B51B558D6E226B947B4B7D434B96479AD44D0C122DEC6B6F7124573245751C2F6B3805CAF04FDA5BF666F833FB5DFC21F107C0DF8F5E13FF0084C3E1DF892E34ABEBED322D4F53D12FED752D12FE1D4F49D534BD6B45BBB1D534CBFB1BC811927B4BA8C4F6EF7363749716177756D37BD2EE" $FileBin &= "0AA1CAB3803732A9552D8E4AA9672A09E42976207058F5A5ADF0B8AC4E0713431983C456C2E2F0B5A9E230D89C3D49D1AF87AF4A4A74AB51AB4DC674EA539C54A138494A3249A69A37C36271183C450C5E12BD6C2E2B0D5615F0F89C3D49D1AF42B52929D3AB4AAD3719D3A90925284E32528B49A699F86DFF0010EA7FC12CFF00E890F8EFFF000F2FC4AFFE6828FF0088753FE0967FF4487C77FF008797E257FF003415FB93457D7FFC44AF10BFE8B7E2AFFC3EE65FFCD27D5FFC444E3DFF00A2CB89BFF0F7987FF341F86DFF0010EA7FC12CFF00E890F8EFFF000F2FC4AFFE6828FF0088753FE0967FF4487C77FF008797E257FF003415FB93451FF112BC42" $FileBin &= "FF00A2DF8ABFF0FB997FF3487FC444E3DFFA2CB89BFF000F7987FF00341F86DFF10EA7FC12CFFE890F8EFF00F0F2FC4AFF00E6828FF88753FE0967FF004487C77FF8797E257FF3415FB93451FF00112BC42FFA2DF8ABFF000FB997FF003487FC444E3DFF00A2CB89BFF0F7987FF341F1F7EC77FB08FECCFF00B08784FC55E0DFD9B3C0D75E10D2FC6FAF5B788FC5575AA7893C41E2AD5F59D46C6C574ED3C5C6A9E22D4350B98ACB4EB4F352C74FB56B7B2825BBBEBA580DD5EDD4D37D834515F298FCC31D9A62EBE6199633138FC76264A788C6632BD4C4626BCE318C232AB5AACA752A35084609CA4DA8C6315A248F97C763B1B99E2AB63B31C5E231D8DC44" $FileBin &= "94EBE2F175AA623115A518C60A556B5594AA4DA846314E526D46292D124145145721CA14514500145145001451450014514500715F123E1F785BE2BF807C61F0D7C6FA726ABE13F1CF87755F0CEBF60D8569B4DD5ECE5B3B86B794AB9B7BC8565F3ECAEA31E75A5DC70DCC256589187E3E5BFF00C10EBE0DD8C1159E9BFB4BFED57A7D85AC6B05958DAF8DFC2F0DB59DAC436C16D0430F83628A3860882C71A471A22AA80AA0703F6E28AFB9E12F12B8EB8170F8CC2709F1263F25C2E615A96231986C3AC3D5A15B114612A74EBBA58AA15E9C6AAA7274DD4846329C146337250828FE91C0DE2F7895E1AE171F81E07E2ECCF87F059A6228E2F1F84C2AC2D6C3" $FileBin &= "6231587A72A54B10E86330F89A70AF1A52749D5A5184E74D421394A34E9A8FE26FFC3913E14FFD1D1FED65FF0085E786FF00F991A3FE1C89F0A7FE8E8FF6B2FF00C2F3C37FFCC8D7ED9515F5BFF1309E32FF00D175997FE12E55E5FF0052FF002FC5F73EE7FE26A3E901FF00472F38FF00C23C97CBFEA59E5FD595BF137FE1C89F0A7FE8E8FF006B2FFC2F3C37FF00CC8D1FF0E44F853FF4747FB597FE179E1BFF00E646BF6CA8A3FE2613C65FFA2EB32FFC25CABCBFEA5FE5F8BEE1FF001351F480FF00A3979C7FE11E4BE5FF0052CF2FEACADF14FEC77FB0AFC29FD8C6D3C732781F5CF1AF8DBC4FF116FF004DBBF14F8DBE226A5A6EAFE26BCB5D1A19E2D2" $FileBin &= "B498EEF4ED2B498A2D3ACDAEEF6E36B432DCDC5CDD3BDC5CC91C36915BFDAD4515F98E7FC419D714E6D8BCF788731C4E6D9BE3E54E58BC762E4A55AB3A3469E1E8C5F2C6308428D0A54E8D2A74E30A74E953842118C6291F8EF13F14F10F1A6798EE25E29CDB179E67B99CA94B1D99E3A6A788AFF57C3D2C2E1E2F96308429D0C350A387A34A9C214A951A50A74E1184524514515E39E0051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005" $FileBin &= "145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514537CC4DFE5EF4F336EEF2F70DFB738DDB73BB6" $FileBin &= "E78CE319E3340D26F64DD95DDBA2EFE83A8A28A04145145001451450014514500145145001451450014514500145145001457857ED33F1375FF835F023E257C4EF0B5A6917DE20F07787DB55D2ED75EB7BCBAD226B9179696E12FEDEC2FF004CBC961D93B9DB6F7F6CFB829F300041FC7BD07FE0A37FB6DF88F48B0D734CF007ECF8F61A8C3E7DB34BA3F8D6291A32C532F1B7C4ADC872ADC1EC33DC57E3DE20F8E1C13E1AE7782E1FE21867D5B33C7E59FDB1428E4D92E23348AC0FD6AA60FDA559D19254DFB7A528F2B57B72BBEA7ECDE1CF811C75E286498FE21E1A970FD1CAF2DCD2393622B6759E6172994B1F2C2431AA9518574DD55F57A919B94744EE" $FileBin &= "BA1FBF3457E0EFFC3C03F6E9FF00A27DFB3C7FE0B3C67FFCF2BFCE0FB643FF000501FDBA4027FE15F7ECF18033FF0020CF1A7E3FF352BFC7A1F6CFC47FC4D77863FF00401C75FF0088863FFF00933EF7FE2513C55FFA0EE02FFC4CB2EFFE40FDE2A2BE1CFD813F696F1E7ED4DF087C4FE3EF885A5F85349D6745F891AAF83ED6DBC1F61AB69DA6BE9963E18F08EB514D710EB3AE6BF74F7CD75AFDE4724B1DE4501B78ED916D92449659BEE3AFDD78478AB29E37E1AC9B8B3229D7A993E7B83863B2F9E2684B0D88961E729C22EAD09B72A53E684AF0936D1F81719709671C09C519DF07F1053A14B3AE1FC754CBF31A785AF0C561E189A718CA4A96220942AC" $FileBin &= "2D38DA715661451457D19F321451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451599ACEB3A4F87B49D475ED7B51B2D1F45D1ECAE751D5354D46E62B3B0D3EC2CE279EEAF2F2EA774860B7821479659657544452CC46282E9D3A95AA4295284EAD5AB38D3A74E9C653A952A4E4A30842114E539CE4D46318A72949A4936C359D6749F0EE93A96BDAF6A565A3E8BA3D95CEA5AA6ABA95CC56761A7D859C4F3DD5E5E5D4EE90C16F0428F2CB2CAEA888A5988C57C8ADFF000509FD8E54907E37E81C120E348F1530241C65597412AC38382A483D41C75FCBAFDA63F698F11FED8DE23B8F" $FileBin &= "05F82EE353F0E7ECD3E1CD4F6DE5DA89F4FD53E2C6A9A7CE192E2E1584735BF87A099164D3B4E91418D95352D4A3FED636567A1F9B41E0FF0009DB430DBC3E1AD0921822486253A4D8B958E350880B3C0CEC42A8059D9989C9624924D68B7D5FF5D9AFF83E4ACDFF0071F04FD14724A79061719E28E65C4980E24CC547151E1BE1CAF95E16AE43829C232A1473EC4E63976669E718852556B65B87A549E5749429632ACB193AD86C27EC6FFC3C2BF638FF00A2DFA0FF00E09FC57FFCA0A3FE1E15FB1C7FD16FD07FF04FE2BFFE5057E3BFFC22BE18FF00A17341FF00C13E9FFF00C8F47FC22BE18FFA17341FFC13E9FF00FC8F45D765F8FF00F25EBFD3D3EBBF" $FileBin &= "E256BC1DFF00A197895FF878E18FFE85BD7FA5AFEC47FC3C2BF638FF00A2DFA0FF00E09FC57FFCA0AF58F84FFB4CFC09F8E3A8EA5A3FC2CF891A1F8B756D26D23BFBFD2ED56FACB518AC649441F6C8ECB55B3B1B9BAB58A668E1B8B8B58E786D659EDE3B8789AE60127E0FFF00C22BE18FFA17341FFC13E9FF00FC8F5CBEA9E15D63C3DAE687F117E11EA03C0BF12BC1D38BED0754D26386CADEF420613697A9DBA462D6EAD2FA2796D678EEA19ADAE6DE79ACEFA29ECA792302E57BAB79ABE9B77959F5DEDEAAEEDCB8DFA2878638DC1E2B0D91F127196539CD5A138E578ECFF1792E619253C7249D08669432EC8B038E860AB4D7B1AD8AC3569D4C246A2C4F" $FileBin &= "D5F131A52A153FA7EA2BE2EFD8FF00F6C0F0EFED2BE1DB9D1B58B687C23F197C230243E3AF02CCCD133344C96EFE23F0EA5C3B4D77A05E4EC8248CBCD75A2DD4D1D8DF493C3369BA96A9F68D26ADFD7F5FE69E8F53F85F8AF8533FE08CFF0031E19E26CBAB6579CE575BD96270D56D28CA324A7471386AD072A38AC162A8CA188C1E330F3A987C561EA53AD46A4E134C28A28A47CE85145140051451400514514005145140051457C37FB78FEDE3F09BF60FF84C7C6FE372FE26F1E789A4B8D1BE127C24D16E13FE12BF893E2C2B1AC163630247733D8685633DCDA49E22F1149693DB6956D3C104106A1AD6A1A3E8FA97263F1F83CB30988C7E3F114F0B83C2" $FileBin &= "D3756BD7AAED0A70565D137294A4D46108A94EA4E51842329C927F43C27C27C47C73C47947097096518CCF788B3DC653C0655956029FB4C462B1152EFAB8D3A3468D38CEBE2B155E74F0D84C353AB89C4D5A542954A913F6F1FDBC7E137EC1FF00098F8DFC6E5FC4DE3CF134971A37C24F849A2DC27FC257F127C58563582C6C6048EE67B0D0AC67B9B493C45E2292D27B6D2ADA7820820D435AD4347D1F52FE476FFE2D7EDD3AAFC6C5FDBB9BE2EDE597ED4105D8BAD37E1D43338F85B65F0CD5DE71F037FB0DEECC0FA04D03B7DA2296F5966D5D9B549B526F14B9F18A5CBBBCF8B1F1EBE2C6B3FB507ED43ACC7E26F8C9E268FC9F0FF87E12E7C29F07FC27" $FileBin &= "BA6934DF05F82F4D926B886C16C21B8952EAE9259EE65B99EF6E6E2FB50D5350D6357D57D0ABF9AF89F8AB31E29C6C2B53AB8BCB32CC15555729C351AB2A18A55A9BBD3CCF173A6D7FB5DD7361E85E54F0906E2D4EACEA49FF00B65E077809C1BE0270CE2B2BC565FC3FC75C73C4B809E5FE21E7B996030F9B645532CC5412C7702F0ED0C5D269F0F59BA59C66D18D1C6E7F8A846AD29E1B0187C1515FD3DFFC13F3FE0A07F0B7F6F5F85B2788FC3919F077C57F071B7D27E30FC1ED5EE31E24F01F890078659238A64B7B9D4FC2FA95C5BDCB685AEADB44B3AC53585FC363ACD8EA1A7DAFDFB5FC1D4D0FC52F839F14B41FDA73F663D7C783BE397839717966" $FileBin &= "723C39F14BC360C4751F05F8CF4F12C16FA95AEA76F0476E925C490B168AD196EEC6FEC747D6347FEB23FE09F9FF000503F85BFB7AFC2D93C47E1C8CF83BE2BF838DBE93F187E0F6AF718F12780FC4803C32C91C5325BDCEA7E17D4AE2DEE5B42D756DA259D629AC2FE1B1D66C750D3ED7F53E06E3959D28E4D9CCA9D1CF68D36E9554953A19C50A69396230D1F8618AA71D719845F0BBD7A09D0728D1FE09FA53FD1625E194AB7893E1B51C6665E146658C853C6E0AA4E78CCD7C38CD71936A964D9CD569D5C56438AAADD3E1DE22A8AD5D72E579A4A9E6B4E9D4CC7EFDA28A2BF4C3F88828A28A0028A28A0028A28A0028A28A0028A28A0028A28A00F913F6" $FileBin &= "F4FF009341F8EFFF006263FF00E9CF4EAFC38F83DFF24D3C21FF0060B1FF00A3E6AFDC7FDBD3FE4D07E3BFFD898FFF00A73D3ABF0E3E0F7FC934F087FD82C7FE8F9ABFCF9FA4F7FC9E4E1EFF00B36F3FFD697127FA37F450FF009331C4BFF67361FF00ACB618F4AA6BFDC6FF0075BF91A7535FEE37FBADFC8D7E292D9FA3FC8FDFA3BAF55F99F697FC11C7FE4DABC7DFF65D3C47FF00A80FC35AFD68AFC97FF8238FFC9B578FBFECBA788FFF00501F86B5FAD15FE80FD1AFFE4C4F863FF64CE1FF00F523127F9C1F4A1FF9482F15FF00ECACC5FF00E99C38514515FB81F828514514005145140051451400514514005145140051451400514514005145140051" $FileBin &= "4514005145140051451400514552D4750B1D274FBED5753BB82C34CD32CEE6FF0050BDBA9121B5B3B2B485EE2EAEAE6690848A0B78239259A472AA91A3331001A37D8A8C653946108CA739C946108A7294A526946318A4DCA526D24926DB6925721D6759D27C3DA4EA3AF6BDA8D968FA2E8F6573A8EA9AA6A373159D869F616713CF757979753BA4305BC10A3CB2CB2BAA2229662315F801FB4C7ED31E23FDB1BC4771E0BF05DC6A7E1CFD9A7C39A9EDBCBB513E9FAA7C58D534F9C325C5C2B08E6B7F0F41322C9A769D22831B2A6A5A947FDAC6CACF433F698FDA63C47FB63788EE3C17E0BB9D4FC39FB357873530B7976A27D3F54F8B1AA69F3864B8B85611" $FileBin &= "CD6FE1E82645974ED3A450D1958F52D4A3FED636567A1F1D616165A5D95B69DA75B436763670A416D6B0208E28628C61511578000E49392C4966258926B6F5FEBFAF3F4F8BFD19F03BC0FA3E19D1C2719718E129623C45C453862325C9B110855A3C0B46AC54A963B1F4A57854E2EA90929E1E8494A1C3B192A9513CE1C63969616165A5D95B69DA75B436763670A416D6B0208E28628C61511578000E49392C4966258926DD14549FBBCE73A9294E7294E739394E739394A5293BCA52936DCA4DB6DB6DB6DDDB0A28A282428A28A00E0B5FD03C45A6788B45F89DF0C75A9FC23F14FC233A5E689AE59B2C4BA82C4ACAFA56AA8CAD05DD9DDC0D259CB15DC735" $FileBin &= "ADC5ACD3595EC33594D2463F693F63FF00DB03C3BFB4AF876E746D62DA1F08FC65F08C090F8EBC0B33344CCD1325BBF88FC3A970ED35DE81793B209232F35D68B75347637D24F0CDA6EA5AA7E4C5705AFE81E22D33C45A2FC4EF863AD4FE11F8A7E119D2F344D72CD9625D41625657D2B55465682EECEEE0692CE58AEE39AD6E2D669ACAF619ACA6923149DF47F27DB6F34B656D74B68FA38FC7788FE1C641E2E6414B25CE6AD1CAF88B2BA338709716CE9B94B2E949B9AC933A74E32AD8AE1BC556936ECAA62326C45496370519D29E2F098AFE9D68AF8D3F63CFDADF45FDA67C2B7D63AAE9E3C29F173C1496D69F107C1B22CA91C73396862D7F42698BC93E" $FileBin &= "85A94D149B617925BBD26E49B1BB92E217D3F52D4FECBA4D58FF003078AB8573EE09E20CCF8638972FAB9667594D7F618BC2D57192F7A11AB431142B41CA9627098BA1529627078BA139D0C561AAD2AF4673A7523265145148F9E0A28A2800A28A2800A28AF86FF6F1FDBC7E137EC1FF00098F8DFC6E5FC4DE3CF134971A37C24F849A2DC27FC257F127C58563582C6C6048EE67B0D0AC67B9B493C45E2292D27B6D2ADA7820820D435AD4347D1F52E4C7E3F0796613118FC7E229E170785A6EAD7AF55DA14E0ACBA26E52949A8C211529D49CA3084653924FE8784F84F88F8E788F28E12E12CA3199EF1167B8CA780CAB2AC053F6988C5622A5DF571A7468D1" $FileBin &= "A719D7C562ABCE9E1B0986A7571389AB4A852A95227EDE3FB78FC26FD83FE131F1BF8DCBF89BC79E2692E346F849F09345B84FF84AFE24F8B0AC6B058D8C091DCCF61A158CF73692788BC4525A4F6DA55B4F041041A86B5A868FA3EA5FC94DDDE7C58F8F5F16359FDA83F6A1D663F137C64F1347E4F87FC3F0973E14F83FE13DD349A6F82FC17A6C935C4360B610DC4A9757492CF732DCCF7B73717DA86A9A86B1ABEAA5DDE7C58F8F5F16359FDA83F6A1D663F137C64F1347E4F87FC3F0973E14F83FE13DD349A6F82FC17A6C935C4360B610DC4A9757492CF732DCCF7B73717DA86A9A86B1ABEABE855FCD5C51C518CE2DC5C67523530B93616A73E5D974F4" $FileBin &= "9D59AD239866115A4B1325774283BC3070959735694E67FB69E05F817C39F47BE1CAD84C256C1E7BE25E7B83586E34E35C32F6987C161EA724EB707F07D79C554A39251A8A30CDF368C69E2788F134D36A96554B0B856514515F3E7EB615E65343F14BE0E7C52D07F69CFD98F5F1E0EF8E5E0E5C5E599C8F0E7C52F0D8311D47C17E33D3C4B05BEA56BA9DBC11DBA4971242C5A2B465BBB1BFB1D1F58D1FD368A89C1C9D39C2A54A35A8D4856C3E228CDD3AF87AF4E5CD4EB51A91F7A9D48495D496EAF192716D3E9C3E2234A38AC3E230B83CCB2DCCB0788CB737CA332C3C31995673956320E96372CCCF05553A58AC162A9370A94E6AF17CB5694A9D6A74EA" $FileBin &= "47FA7BFF00827E7FC140FE16FEDEBF0B64F11F87233E0EF8AFE0E36FA4FC61F83DABDC63C49E03F1200F0CB24714C96F73A9F85F52B8B7B96D0B5D5B6896758A6B0BF86C759B1D434FB5FBF6BF83A9A1F8A5F073E29683FB4E7ECC7AF8F077C72F072E2F2CCE47873E29786C188EA3E0BF19E9E2582DF52B5D4EDE08EDD24B892162D15A32DDD8DFD8E8FAC68FFD647FC13F3FE0A07F0B7F6F5F85B2788FC3919F077C57F071B7D27E30FC1ED5EE31E24F01F890078659238A64B7B9D4FC2FA95C5BDCB685AEADB44B3AC53585FC363ACD8EA1A7DAFEEFC0DC72B3A51C9B39953A39ED1A6DD2AA92A74338A14D272C461A3F0C3154E3AE3308BE177AF413A0E5" $FileBin &= "1A3FE51FD29FE8B12F0CA55BC49F0DA8E3332F0A332C6429E37055273C666BE1C66B8C9B54B26CE6AB4EAE2B21C5556E9F0EF115456AEB972BCD254F35A74EA663F7ED14515FA61FC441451450014514500145145001457CEBF1A3F6B0F807FB3D6ADA3687F17BC74FE13D53C41A7CDAAE936ABE16F18EBDF6AB082E0DA4B399BC35E1FD62DE02B700C7E55CCB0CCDF796329F3578C7FC3CCFF627FF00A2C92FFE1B8F8ADFFCC3D7C2E6BE28786B9166189CA73BF10382B27CD30728C31796E67C5192E031D859CE9C2AC2388C262B1B4ABD194E954A7522AA538B9539C66AF1699F7D93F853E28710E5D86CE320F0E38F33BCA71B19CB079A651C23C4198E5D" $FileBin &= "8B8D3AB3A152586C6E0F2FAD86AF1A75A9D4A53952AB251A94EA424D4A124BEF1A2BE0EFF8799FEC4FFF0045925FFC371F15BFF987A3FE1E67FB13FF00D16497FF000DC7C56FFE61EBCEFF0088CFE107FD1D3F0EFF00F133E1DFFE78F9FE7D99E9FF00C410F1A3FE8D1789DFF881F14FFF003ABCFF003ECCEDBF6F4FF9341F8EFF00F6263FFE9CF4EAFC38F83DFF0024D3C21FF60B1FFA3E6AFD06FDADBF6F7FD947E27FECE5F163C03E07F8A326B5E2CF137865B4FD134B3E06F88DA68BDBCFB7D94DE57DBB56F095869D6DFBB8A46F32EEF208BE5DBE6062A0FE7CFC1EFF009269E10FFB058FFD1F357F12F8FDC55C31C59E2DE4B8CE17E21C9388F0986F0F" $FileBin &= "6586C462B22CD7059B61E8621F10D7ABEC2B56C0D7AF4E9D6F673854F653929F24A32E5B34DFF75FD1CF8478AF83FC22CFB05C5BC31C41C2F8CC5788D0C56170BC439366392E2713865C354293C450A19961B0D56B5155212A6EAD38CA0AA465072E68B4BD2A9AFF0071BFDD6FE469D4D7FB8DFEEB7F235F99CB67E8FF0023F5D8EEBD57E67DA5FF000471FF00936AF1F7FD974F11FF00EA03F0D6BF5A2BF007FE09ADFB5FFECF1FB3F7C10F17783BE2DF8FDFC2BE23D53E2B6B5E26B1D3D7C27E36D784FA25DF847C11A5DBDEFDAFC37E1CD62CA3F32FB47D461FB3CD72974BF6712BC2B0CD04927E86FF00C3CCFF00627FFA2C92FF00E1B8F8ADFF00CC3D7F" $FileBin &= "627D1FBC53F0CB26F063C3BCAB37F10F8232ACCF03C3D4286372FCC78A724C1637095957AEDD2C4E17138EA75E8544A516E15611924D36AC7F117D237C24F1573BF1CBC4CCDB25F0D38FF37CAF1FC4F8AC460732CB383B8871F80C650952A0A35F0B8CC2E5D570F88A3269A8D4A552706D4AD2D1DBEF1A2BE0EFF8799FEC4FFF0045925FFC371F15BFF987A3FE1E67FB13FF00D16497FF000DC7C56FFE61EBF62FF88CFE107FD1D3F0EFFF00133E1DFF00E78F9FE7D99F8A7FC410F1A3FE8D1789DFF881F14FFF003ABCFF003ECCFBC68AF923E19FEDD1FB2DFC61F1C689F0E3E1DFC4C7F1078CBC467511A368EDE0AF883A48BC3A56937FAE5F83A86B9E15D3" $FileBin &= "74BB7F234BD36F6E47DAAF6112F93E443E64F245149F5BD7D7E41C4DC37C5783A998F0C67F937116028E22783AB8DC8F33C166B84A58BA74E9569E16A623035ABD28622146BD0AB3A329AA91A75A94DC546A45BF8CE22E15E27E11C6D3CB78AF8733DE18CC6B61618DA380E20CA31F93636AE0EAD4AD469E2E9E1731C3E1ABCF0D52B61EBD28578C1D2955A15A9C64E74E6A2514515EE1E08514514005145140051451400515F9D5FB72FC58F1CF86B5EF849F0DBE1CF8C354F076ADE269BC43E20F10EA7A332477B0E8DA4DB43069F13332EE6B7BA9DF546F2D658D5E7B08449B8ECC7C7DFF000967ED05FF004717F10BFEFA8FFF00926BF9538FBE95790703" $FileBin &= "F19E7DC194782B89F89313C39570585CC731CAF179061B031C6E332DC1E68F094BFB4B33C2D7A9530D86C7E1E38892A4A10ACE74AEDC256F42965F3AB4E151D58414D37152536EC9DAFA45EF676F45DCFDD6A2BF0A7FE12CFDA0BFE8E2FE217FDF51FF00F24D1FF0967ED05FF4717F10BFEFA8FF00F926BE47FE274F2AFF00A357C6DFF874E11F2FFA9DF9FE1EB6D3FB325FF3FE97FE0353FF0091F5FE9E9FBAD457E14FFC259FB417FD1C5FC42FFBEA3FFE49A3FE12CFDA0BFE8E2FE217FDF51FFF0024D1FF0013A7957FD1ABE36FFC3A708F97FD4EFCFF000F5B1FD992FF009FF4BFF01A9FFC8FAFF4F4FDD6A2BF0A7FE12CFDA0BFE8E2FE217FDF51FF00F2" $FileBin &= "4D63F883C7DFB4668DA26A9AB59FED05E3FBCB8D36CA6BE4B59248D1265B55334AA584B29CF948E40F2DF7300BB7935957FA6CE4B86A357115FC2CE388D1A14A75AACA398F09D494695283A95251A70CE9CE6E30526A114E52694629B7642CAE6DA4ABD2BBD17BB53776FEEFF5F3D3F7BA8AF38F83FE355F88DF0B7E1FF8E77A493789FC27A26AB7DB02AAC5AA4F6308D56DF6A0080DAEA4B776CE17E5568885E057A3D7F6765399E133ACAB2DCE70153DAE0736C060F32C15556FDE6171D87A78AC3CF46D7BD4AAC25A36B5DCF32517194A2F4716E2D7669D9FE21451457A020AF27F8F5FF243BE31FF00D92DF1FF00FEA2BAAD7AC5793FC7AFF921DF18FF00" $FileBin &= "EC96F8FF00FF00515D569C775EABF33DBE19FF00928F87FF00EC77957FEA7E1CFE747E0D0C7C31F087FD83E53F9DF5D9AF4EAF32F835FF0024C7C21FF60E97FF004BAEEBD3691FEC6F10FF00C8FF003BFF00B1B663FF00A975828A28A0F1C28A28A0028A28A0028A28A00F7EFF008275003F6B1F8E580067E15F86F3EFFF00134D23AD7EDD57E22FFC13AFFE4EC7E397FD92BF0DFF00E9D348AFDBAAA97D9FF0AFD4FE01FA577FC9DFC4FF00D923C09FFAC9E5414514549FCDA1451450014515E41F1FFE25EAFF00067E087C59F8B1A0F82B57F88DAD7C39F0078A7C65A5F81341137F6BF8B2FBC3FA45D6A56FA1D89B6B4BFB959AFE4B75877DB58DF5CA2333" $FileBin &= "41657532A412675AAC2851AB5EAB6A9D1A73AB51C6329B50A71739B508294E4D4536A318B93D926F43B72DCBF159B66380CAB030854C6E678DC2E5F83A752B51C3D3A98AC657A786C3C2788C454A587A10956A908CAB57AB4E8D28B73AB52108CA4BE7AFDBC7F6F1F84DFB07FC263E37F1B97F1378F3C4D25C68DF093E1268B709FF00095FC49F16158D60B1B18123B99EC342B19EE6D24F11788A4B49EDB4AB69E08208350D6B50D1F47D4BF929BBBCF8B1F1EBE2C6B3FB507ED43ACC7E26F8C9E268FC9F0FF87E12E7C29F07FC27BA6934DF05F82F4D926B886C16C21B8952EAE9259EE65B99EF6E6E2FB50D5350D6357D5795F0CFC43F17FED77E3ED5BF6C" $FileBin &= "2F8E3E32B1F883F13BC532DCE9BA0693A79997C2BF06BC3B6B34C2CFC07E14D16E9E46D1DF4F82E59A79650F7773F6C9B5292F352BCD5F52D7358F6CAFE61E26E2BC4F1862A15BDFA191E1E7ED32BC0392E6AF25A4731C7A8B7196226AEE850BCA9E0E12B272AF2A933FDCEF04FC03C93E8E191E2F2A8FB0CD7C53CDF0DF53E3AE2E8D392865B4A7CB3AFC1BC272AD0856C3E4D46A4630CDF35E4A58AE23C4D34DAA59552C2E199451457827EAA145145001451450015E65343F14BE0E7C52D07F69CFD98F5F1E0EF8E5E0E5C5E599C8F0E7C52F0D8311D47C17E33D3C4B05BEA56BA9DBC11DBA4971242C5A2B465BBB1BFB1D1F58D1FD368A89C1C9D39C2A54" $FileBin &= "A35A8D4856C3E228CDD3AF87AF4E5CD4EB51A91F7A9D48495D496EAF192716D3E9C3E2234A38AC3E230B83CCB2DCCB0788CB737CA332C3C31995673956320E96372CCCF05553A58AC162A9370A94E6AF17CB5694A9D6A74EA47FA7BFF827E7FC140FE16FEDEBF0B64F11F87233E0EF8AFE0E36FA4FC61F83DABDC63C49E03F1200F0CB24714C96F73A9F85F52B8B7B96D0B5D5B6896758A6B0BF86C759B1D434FB5FBF6BF811F1BF8BBC55FB2EF8DB48FDB03E08F8DED3E19FC5BF034905BDF0BAF31BC39F157439E4885DF80FC57A3C0C9FDB8BAB5BDBAC31A051314B686E0DCE9F71A5E99ADE89FDB87ECB1F18F5FF00DA0BF678F845F1A3C53F0F75AF857E" $FileBin &= "20F88DE0BD2FC4BAAF80F5F120D4741B9BC570515A686DAE24D3AFD234D57469EEED2D2F27D1EFAC26BBB3B5B9796DE2FDF38078CEAF10D3AF956671B67596D0A556BD7A54DC70D8FC2CE5ECE9E3128AE5C3622534E388C34B9573A7570FCD49CA347FC96FA5B7D1AB03E0FE2F2BE3DE08AEE7E18F1B6698DC0659956618A53CEB84F3FC3508E3B1DC395255A51AF9D6514B0F5635F29CF68C6ACD61650C0E73EC731A74EB661EFD451457E8E7F1785145140051451401F83FFF000547821B9FDA6BF67182E218E7824F0B6A09243346B245229F104C0ABC6E0A3A9F460457867FC233E1CFFA0068BFF82CB2FF00E31EC3F2AF78FF0082A0FF00C9D07ECDDFF6" $FileBin &= "2C5FFF00EA433579157F95FE25D1A357C65F16DD5A34AA35C4D96A4E74E13697FAAB90BB2724DDAE7FAD7E13D5AB4FC11F07A30AB5209F0BE6EED09CA2AEF8D789F5B45A57B24AFBE88C4FF8467C39FF00400D17FF0005965FFC63D87E547FC233E1CFFA0068BFF82CB2FF00E31EC3F2ADBA2BE5FEA984FF00A06C3FFE09A7FF00C89F67F58C47FCFF00ADFF008367FF00C9189FF08CF873FE801A2FFE0B2CBFF8C7B0FCAB5A0B782D614B7B6862B78225DB1C304691451AF5DA91A05455C9E8A00A968AB850A349B74A8D2A6DAB370A70836B7B37149B57D6C4CEAD5A8929D4A9349DD29CE5249F749B7661451456A66627FC233E1CFF00A0068BFF0082CB2F" $FileBin &= "FE31EC3F2A3FE119F0E7FD00345FFC16597FF18F61F956DD15CFF54C27FD0361FF00F04D3FFE44DBEB188FF9FF005BFF0006CFFF0092313FE119F0E7FD00345FFC16597FF18F61F951FF0008CF873FE801A2FF00E0B2CBFF008C7B0FCAB6E8A3EA984FFA06C3FF00E09A7FFC887D6311FF003FEB7FE0D9FF00F2466FECCF6165A7FF00C1453F67F86C2CED6CA16F0CF8D2468AD208ADE3690FC3FF008AAAD218E25442E55514B11B885504E1463FA4AAFE703F672FF948C7ECFBFF0062B78CFF00F500F8AD5FD1FD7F607D0F2318705F8811846318C7C53CE546314A314970CF095924AC92F248FE2AFA6B394B8EBC3994A4E527E11646DCA4DB6DBE2CE35DDB" $FileBin &= "D58514515FD707F1B05145140051451400514567EADA9D9E8BA5EA5AC6A128B7B0D26C2F352BE9C8C886D2C6DE4BAB9948EE23862773EC2B3AD569E1E955AF5A71A7468D39D5AB526D4634E9D38B9CE7293B2518C62E526DA4926D8D26DA4B76D25EACFC63F8FDE21FF84E7F6B1F8897EB279FA7FC39F0EE81E00D39FF00816E5E33ABEAA106D1892DB55BCD62D242724AE09386455E6EBCFBE1EDFDE788EDFC4BE3BD4D48D4FE20F8C7C49E2DBB2C4170DA96A73B18C901728938B868F8036C995014A8AF41AFF14679CD4E27CCB3FE2DADCDED38BB88B3CE258F3DF9A384CDB31AF88CB28B4F54B0D953C0E1A0A5AA8518A7ADCFA751508C29ADA9C230F9C5" $FileBin &= "24DFCE577E7B85145154014514500151CD0C7710CB6F32078678A486543D1E3954A3A1F665620FB1A928A528C651946494A324E328B574E2D59A6BAA69D9A03EDAFF008278789E4BEF82BABF812F262D7FF0C3C75E22F0D88A439906977F7035CB2B827AF952DF5FEAD0419E025A6D402354AFBDABF247F627F10FFC22DFB45FC45F05CB279563F11FC15A6F8A6C5189D92EB1E17BAFB2490C408C09A5B4D4359BC976F2C96C0B9C2C42BF5BABFD27FA2B710BCF7C14E16C255A8EA63384AA665C158A526DCA11E1BC755C1659CCDFBDFBDC8D6578857D796B2DD599E26610E4C5547D2A28D55FF6FC537FF937320A28A2BFA28E20AF27F8F5FF00243BE31FFD" $FileBin &= "92DF1FFF00EA2BAAD7AC5793FC7AFF00921DF18FFEC96F8FFF00F515D569C775EABF33DBE19FF928F87FFEC77957FEA7E1CFE74BE0D7FC931F087FD83A5FFD2EBBAF4DAF32F835FF0024C7C21FF60E97FF004BAEEBD3691FEC6F10FF00C8FF003BFF00B1B663FF00A975828A28A0F1C28A28A0028A28A0028A28A00F7EFF008275FF00C9D8FC72FF00B257E1BFFD3A6915FB755F88BFF04EBFF93B1F8E5FF64AFC37FF00A74D22BF6EAAA5F67FC2BF53F807E95DFF00277F13FF00648F027FEB2795051451527F368514514005040208201046083C820F50477068A2803F98DFF829E7FC130FC51F09BC51E29FDB63F626F0B35F5BDF35C6B9FB477ECE3A1C0C" $FileBin &= "967E2BB34696EF54F88DF0E74BB58DC5AF89AD43DCEA1AE685A7DB3C97B235CEAFA3DADC5D5C6B3A36BBF98BF0FF00E207863E267862C3C59E13BF5BDD36F576491B854BDD36F5154DCE99A9DB06736B7F6A5D44B1166492368AE6DA59ED27B7B897FBAC20104100823041E4107A823B835FCC6FFC14F3FE0987E28F84DE28F14FEDB1FB137859AFADEF9AE35CFDA3BF671D0E064B3F15D9A34B77AA7C46F873A5DAC6E2D7C4D6A1EE750D7342D3ED9E4BD91AE757D1ED6E2EAE359D1B5DFC3B8EB8167839E2388387F0F29E1E729D7CDF28A10BCA126DCAAE6397528AD65BCF198382FDE7BD88C3C7DAFB4A757FD4DFA2AFD2AB0DC5186CA3C21F17F37A586C" $FileBin &= "EB0D4B0F957877E21E6B8850A58AA5051A380E0CE33C7D69251A514A186E1BE24C4CEF827ECB29CDAABCBDE131580FCF9A2B8BF87FF103C31F133C3161E2CF09DFADEE9B7ABB248DC2A5EE9B7A8AA6E74CD4ED8339B5BFB52EA2588B32491B45736D2CF693DBDC4BDA57E5B09C2AC23529CA3384E2A50945DE328BD534D6E99FDD78AC2E270389AF83C650AB86C561AACE8D7A15A0E15695583E594271959A69AF46ACD369A614514559CE1451450015C878EFC77E19F871E1AD43C57E2BD412C34AB04C71B5EEAFAE9D58DBE9DA75B9656BBBFBB652B040A40C079A678ADE29A68CF1DF8EFC33F0E3C35A878AFC57A82586956098E36BDD5F5D3AB1B7D3B4EB" $FileBin &= "72CAD777F76CA5608148180F34CF15BC534D1FE8BFFC1327FE0993E27F8FFE27F0B7EDA5FB68F85A4D3BC1BA74906BBFB397ECE7AEC0CD6D1DB3325CE99F123E24E99731AADD4F74A96F7DA16837D6EA6FCADBEA9AA5BC3A5C3A5E97375E5996E619E6614F29CAA9C6A62EA4554AD5A6A4F0D97E19C94658BC5C959A8A775468C5AAB89A8BD9D3D14E70F0B8D38D3843C2DE10C67883E20E36A61387F0756784CB32CC24E9ACF38C33C8D35568F0EF0F51AB753AD38B8D4CCB33A91960B24C149E2F16E53961B0D893FE0993FF0004C9F13FC7FF0013F85BF6D2FDB47C2D269DE0DD3A4835DFD9CBF673D76066B68ED9992E74CF891F1274CB98D56EA7BA54B7" $FileBin &= "BED0B41BEB7537E56DF54D52DE1D2E1D2F4B9BFA8F550A02A80AAA00000C0007000038000A154280AA02AA8000030001C0000E000296BFA5386F86F2FE18CBE382C12752AD46AAE371B5545E271D8971519D7AD2495969CB468C6D4A853B53A6924DBFF137C6CF1B38BFC73E2FA9C4FC4F529E130383A52CBF85F85F013A8B23E13C8E351CE8E5795D1A8DB94E4DAAD98E635B9B1B9B636553198CA929CA10A6514515F427E3C14514500145145007E0FF00FC151E786DBF69AFD9C67B89A38208FC2DA83C934D22C7146A3C41312CF239088A3D58815E19FF000937873FE83FA2FF00E0CECBFF008FFB8FCEBF727E347EC9FF0000FF00685D5B46D73E2F7815" $FileBin &= "FC59AA787F4F9B4AD26E97C53E31D07ECB613DC1BB96030F86BC41A3DBCE5AE0993CDB98A6997EEAC813E5AF18FF0087667EC4FF00F446E5FF00C38FF15BFF009B8AFE1BE3CFA3CF8A19DF887C6DC53C3F89E069E55C4F9AE1331C2D3CDF39CF7078FA11C3E4D96E5B3A75E8E0F86B30C3A6EA60AA4E2E9E2AA274E51BDA5789FDEBE1D7D24BC2AE1EF0DB81B84B88B09E2053CE385B2AC7E5B8CA993645C3B9865B88962B3FCDB37A7570D5F1BC5D95E25A54B318539C6AE0E9B5529CD479A3CB297E4EFF00C24DE1CFFA0FE8BFF833B2FF00E3FEE3F3A3FE126F0E7FD07F45FF00C19D97FF001FF71F9D7EB17FC3B33F627FFA2372FF00E1C7F8ADFF00CDC5" $FileBin &= "1FF0ECCFD89FFE88DCBFF871FE2B7FF3715F31FF0012D9E34FFCFCF0CFFF00124E26FF00E837FAB3F2BFD77FC4D2781FFF003E7C54FF00C45384FF00FA3FFEACFCAFF93BFF000937873FE83FA2FF00E0CECBFF008FFB8FCEB5A0B882EA14B8B69A2B88255DD1CD04892C522F4DC92216465C8EAA48AFB07F6B6FD823F651F861FB397C58F1F781FE1749A2F8B3C33E196D4344D50F8E7E236A42CAF3EDF650F9BF61D5BC5B7FA75CFEEE5917CBBBB39E2F9B779658291F9F3F07BFE49A7843FEC163FF0047CD5F96715F0BF16F0071561B8538B69F0FCB158DC81E7F86C470FE659863E82A0B1F2CBFD8D7FED0CA72AA90ABED29CE7EE53A90E5E5F7EEDA5FAD" $FileBin &= "F06F18F07F88DC2B8BE2BE0FA9C491C260388170FE2F0DC499565996E23EB12CBA398AAD87FECCCF73BA7528FB39C69BF69528CD4F9AD0714A52F4AA28A6BFDC6FF75BF91AF31BB26FB2B9EDA5769777631BFE126F0E7FD07F45FF00C19D97FF001FF71F9D1FF0937873FE83FA2FFE0CECBFF8FF00B8FCEBD57FE09ADFB207ECF1FB40FC10F1778C7E2DF801FC55E23D2FE2B6B5E19B1D417C59E36D0441A25A7847C11AA5BD97D93C37E23D1ECA4F2EFB58D466FB44D6CF74DF68113CCD0C30471FE86FFC3B33F627FF00A2372FFE1C7F8ADFFCDC57DE7047837E2BF1EF09E45C6394478030D9671060619860A8663C41C414B1B4E8CE73828E269E1B857154" $FileBin &= "2152F09371A588AD1B5AD36F43F37E3DF1C7C22F0F38C78878273A9788B8ACD386F31A996E3B119670CF0DD6C055AF4A309CA785A98AE36C1E22746D5172CAAE168CDB52BD35A5FF00277FE126F0E7FD07F45FFC19D97FF1FF0071F9D1FF000937873FE83FA2FF00E0CECBFF008FFB8FCEBF58BFE1D99FB13FFD11B97FF0E3FC56FF00E6E28FF87667EC4FFF00446E5FFC38FF0015BFF9B8AFAAFF00896CF1A7FE7E7867FF008927137FF41BFD59F95FE47FE2693C0FFF009F3E2A7FE229C27FFD1FFF00567E57FCA6FD99EFECB50FF828A7ECFF003585E5ADEC2BE19F1A46D2DA4F15C46B20F87FF1559A33244CE81C2B231527700CA48C30CFF4955F247C33" $FileBin &= "FD85FF0065BF83DE38D13E23FC3BF866FE1FF197870EA2746D61BC6BF10756166755D26FF43BF274FD73C55A969771E7E97A95EDB0FB5594C22F3BCF87CB9E38A58FEB7AFE93FA3EF869C4BE1870C711E57C5588C92BE639E71963F88E9AC87178EC660E8E17179464797C28CEB63F2ECB2B3AF1AD96579CA31C3CA9AA73A4D55949CA31FE5FFA46F8A5C2FE2BF15F0C66DC2586CFB0F96641C0F9770BD57C4583CBF038EAF8CC1E75C4199D4AF4F0F96E6B9C508E19D1CDE85383962D557529D54E9460A1399451457EF07F3E0514514005145140057CA9FB6BF8D1BC13FB367C47B882429A878934FB6F0569F1A921E793C57770E93A84519C361D7449B54B" $FileBin &= "818009F2485218861F55D7E63FFC1427C43FDA9AEFC0CF8590BF991DEF88B53F1FEB76FD96D7C396A2CF4A32FCBCC7742F75D887CC007800C17642BF89FD23389AA70AF82DC7D8FC3D5F658FC7E4EF86F2B9C5DAA4733E2AC450E1DC1D4A4B773C3D5CC962968D28D094E4B92326BAB054D54C4D24F58C65ED25FE1A6B9DFDF6B79DEDD4F93BC3BA5AE89A0E8FA4A803FB3F4DB3B572BD1A68A0459E4E3009926F32462382CC48E0D6CD1457F96B87A14F0B87A186A51E5A587A34A8D38ADA30A508D3825E918A47BEDDDB6FABBFDE1451456C20A28A2800A28A28033742F10FFC201F1C3E067C42F30C16D63E3687C2BACCF9C2268FE2F85F46BB9AE3B186CE" $FileBin &= "D2EAFEE3E6E03ED65064095FBC5D6BF9F1F89DA63EA9E08D7121DC2E6C604D5AD9D0B0923974B952F1DA32BF3090C114D1A95F9817F97E6C57EE37C1EF1A2FC45F857F0FBC6E245925F12F84743D4EF76E311EA735842355B7217E5DD6BA92DDDB385E03C4C06457F5CFD0D33FFAB679E25706549DA18B8E45C6F97536FE2A95A8CF8773B708F4F67FD99914E6E29DE58A4E567BF9D99C2F0A157B39D27F2B4E3FFA54BEEF43D228A28AFEF73C80AE7FC57E1CB1F18785FC47E12D4DE74D37C4FA16ADE1ED424B5758AE92CB58B0B8D3AE9EDE47491239D60B890C4ED1BAAC8158A381B4F41451B1AD1AD570F5A9622854952AD42AD3AD46AC1DA74EAD29A9D3" $FileBin &= "A917D2509C54A2FA348FE673C6FF000E7C6DFB22F8E6DFE11FC4CC5EF81F549AE5FE16FC4B86D8DB693ACE9E67321D335420B45A7EAD68F3A25F59CD2B49653CA92096EB49BAB1BF3D5F5E95FBCBF193E0DF80BE3BF80B58F877F113478F55D0B558F7C3326C8B53D1B53891C596B7A25E9491EC355B07919ADEE155E3911E6B4BB86E6C6E6EAD67FE7D7C7DE01F1EFEC9FE3D83E157C559E4D57C19AAC92FFC2AEF8A3E53C7A6EB7A6C6EAB1E95AB48CD22586AB60924305DD9CD33C96123C4CB2DCE9173617E6AC9ABADFAAFC3F1E9F73D6CE5FE9D783FE31607C63C0BC0E62F0F80F13B01879D6CCB2FA71851C371961A8439B119EE49463CB0A79BD38465" $FileBin &= "5F3CC968AB4D2A99A6590FABFD6B0B82E968A3AF4A2A4FD4428A28A0028A28A002B8DF1B78DB4CF04E989777692DEEA57B28B4D1344B4064D4358D4242A90DADAC28AF215323C6259446E230EAAAB24D2430CA78DBC6DA678274C4BBBB496F752BD945A689A25A0326A1AC6A1215486D6D6145790A991E312CA23711875555926921865FD12FD8A3F628D4F44D4EC7F686FDA1AC62BDF8A17B14777E08F045D46B269DF0CF4E914C96B71716B219233E2B31BEE8E36DE7412EF248F26BB24D358525D5EDFD7A5FF5F249B5E1F1871870DF86FC373E2DE2D9CA7879CAAE1F20C830F5634B33E2BCCE9453783C1B6A52C365B8694A9CB38CE254E547034651A546" $FileBin &= "35F1F5F0D86A9D67FC13FF00F660F1D7C2F5F147C6EF8B93369FF11BE29695A7D8C5E0C86358A1F07F85EDA54BCB2B3D4FEF3BEB97063B53716BBC9D2E1816DEE649B509EF56DBF4B28A293777FD7F5ABD5FE092D0FF002F38F78E33AF1178AB34E2DCFDE1E38FCCA54210C360A8AC3E072FC0E0F0F4F079765B82A29C9C30B80C150A386A2EA4EA57A91A7ED71156B57A952ACCA28A291F1C14514500145145001410082080411820F2083D411DC1A28A00FE637FE0A79FF04C3F147C26F1478A7F6D8FD89BC2CD7D6F7CD71AE7ED1DFB38E8703259F8AECD1A5BBD53E237C39D2ED63716BE26B50F73A86B9A169F6CF25EC8D73ABE8F6B717571ACE8DAEFE6" $FileBin &= "2FC3FF00881E18F899E18B0F16784EFD6F74DBD5D9246E152F74DBD455373A66A76C19CDADFDA97512C4599248DA2B9B6967B49EDEE25FEEB08041040208C1079041EA08EE0D7F31BFF053CFF8261F8A3E1378A3C53FB6C7EC4DE166BEB7BE6B8D73F68EFD9C7438192CFC57668D2DDEA9F11BE1CE976B1B8B5F135A87B9D435CD0B4FB6792F646B9D5F47B5B8BAB8D6746D77F0EE3AE059E0E788E20E1FC3CA7879CA75F37CA2842F2849B72AB98E5D4A2B596F3C660E0BF79EF6230F1F6BED29D5FF00537E8ABF4AAC371461B28F087C5FCDE961B3AC352C3E55E1DF8879AE2142962A941468E038338CF1F5A49469452861B86F893133BE09FB2CA736AAF2" $FileBin &= "F784C5603F3E68AE2FE1FF00C40F0C7C4CF0C5878B3C277EB7BA6DEAEC92370A97BA6DEA2A9B9D3353B60CE6D6FED4BA89622CC9246D15CDB4B3DA4F6F712F695F96C270AB08D4A728CE138A94251778CA2F54D35BA67F75E2B0B89C0E26BE0F1942AE1B1586AB3A35E85683855A5560F96509C65669A6BD1AB34DA6985721E3BF1DF867E1C786B50F15F8AF504B0D2AC131C6D7BABEBA75636FA769D6E595AEEFEED94AC10290301E699E2B78A69A33C77E3BF0CFC38F0D6A1E2BF15EA0961A5582638DAF757D74EAC6DF4ED3ADCB2B5DDFDDB295820520603CD33C56F14D347FA2FF00F04C9FF8264F89FE3FF89FC2DFB697EDA3E16934EF06E9D241AEFECE" $FileBin &= "5FB39EBB0335B476CCC973A67C48F893A65CC6AB753DD2A5BDF685A0DF5BA9BF2B6FAA6A96F0E970E97A5CDDD9665B986799853CA72AA71A98BA91552B569A93C365F867251962F172566A29DD51A316AAE26A2F674F4539C3E6B8D38D3843C2DE10C67883E20E36A61387F0756784CB32CC24E9ACF38C33C8D35568F0EF0F51AB753AD38B8D4CCB33A91960B24C149E2F16E53961B0D893FE0993FF0004C9F13FC7FF0013F85BF6D2FDB47C2D269DE0DD3A4835DFD9CBF673D76066B68ED9992E74CF891F1274CB98D56EA7BA54B7BED0B41BEB7537E56DF54D52DE1D2E1D2F4B9BFA8F550A02A80AAA00000C0007000038000A154280AA02AA8000030001C0" $FileBin &= "000E000296BFA5386F86F2FE18CBE382C12752AD46AAE371B5545E271D8971519D7AD2495969CB468C6D4A853B53A6924DBFF137C6CF1B38BFC73E2FA9C4FC4F529E130383A52CBF85F85F013A8B23E13C8E351CE8E5795D1A8DB94E4DAAD98E635B9B1B9B636553198CA929CA10A6514515F427E3C14514500145145001451450014514500145145007C89FB7A7FC9A0FC77FFB131FFF004E7A757E1C7C1EFF009269E10FFB058FFD1F357EE3FEDE9FF2683F1DFF00EC4C7FFD39E9D5F871F07BFE49A7843FEC163FF47CD5FE7CFD27BFE4F270F7FD9B79FF00EB4B893FD1BFA287FC998E25FF00B39B0FFD65B0C7A5535FEE37FBADFC8D3A9AFF0071BFDD6F" $FileBin &= "E46BF1496CFD1FE47EFD1DD7AAFCCFB4BFE08E3FF26D5E3EFF00B2E9E23FFD407E1AD7EB457E4BFF00C11C7FE4DABC7DFF0065D3C47FFA80FC35AFD68AFF00407E8D7FF2627C31FF00B2670FFF00A91893FCE0FA50FF00CA4178AFFF0065662FFF004CE1C28A28AFDC0FC1428A28A0028A28A0028A28A0028A28A002BF14FE3F7887FE139FDAC7E225FAC9E7E9FF000E7C3BA078034E7FE05B978CEAFAA841B4624B6D56F358B4909C92B824E19157F67356D4ECF45D2F52D6350945BD86936179A95F4E4644369636F25D5CCA47711C313B9F615FCFF7C3DBFBCF11DBF897C77A9A91A9FC41F18F893C5B765882E1B52D4E76319202E5127170D1F006D932A0" $FileBin &= "29515FC43F4CFCFAF83F0E382E9CFDECD33ECCB8AF1F4E2F5780E17C02C261A1556B6854CDF3EC0D7A7749CAA605F2B6A13B7AB96435AD55F48AA71F59BBBFFC962D7CF5DCF41A28A2BF8B4F4C28A28A0028A28A0028A28A008E6863B8865B79903C33C52432A1E8F1CAA51D0FB32B107D8D7DBDFF0004F0F13C97DF05757F025E4C5AFF00E1878EBC45E1B11487320D2EFEE06B965704F5F2A5BEBFD5A0833C04B4DA8046A95F12D7B17EC4FE21FF00845BF68BF88BE0B964F2AC7E23F82B4DF14D8A313B25D63C2F75F6492188118134B69A86B3792EDE592D8173858857E9BE05E7FF00EAC78DBC038D9CFD9E173F9671C118F95EC9D3CF704B1D96A9F46A" $FileBin &= "59EE4B95D085F69625B8EADA7862E1ED30B5975828D55FF6E4AD2FFC964FEE3F5BA8A28AFF0058CF9E0A28A2800AF2CF8C9F06FC05F1DFC05AC7C3BF889A3C7AAE85AAC7BE1993645A9E8DA9C48E2CB5BD12F4A48F61AAD83C8CD6F70AAF1C88F35A5DC3736373756B3FA9D14D369DD7F5FE69F55B33B72DCC71F93E3F079AE558CC4E5D9965D89A38CC0E3B075A787C56131587A91AB431187AD4DC6A52AB4AA463384E324D347F345E3EF00F8F7F64FF001EC1F0ABE2ACF26ABE0CD56497FE1577C51F29E3D375BD3637558F4AD5A466912C355B0492182EECE699E4B091E26596E748B9B0BF3D2F5E95FBCBF193E0DF80BE3BF80F57F877F117478F55D0B5" $FileBin &= "58F7C5326C8B53D1B52895C596B7A25EB248D61AAD8348CD6F70AAF1C88F2DA5DC3736373756B3FE6F47FF0004A4B5B78D2DECFF0069AF8B16F6B0A2C56D6E2D6C888208C04861056FD1088E35541B5114051B554600AB465AF328BEB7BEFA764FD7577E8F6727FE83705FD26B80F88F22C3D7F11330ABC2DC618671C3E6988C0E478CCC328E22B463C99D61A8E574E6F2AC7D6B496698074A3839E22D8BC04A9D3AF3C1E17E3BA2BEC7FF0087552FFD1D07C59FFC04B4FF00E58D1FF0EAA5FF00A3A0F8B3FF0080969FFCB1A3963FCF1FBA5E5E5E7F87ADBEB3FE23C781FF00F45F623FF111E24F2FFA84F37F7799F1C571BE36F1B699E09D312EEED25BDD4A" $FileBin &= "F65169A2689680C9A86B1A8485521B5B58515E42A6478C4B288DC461D555649A486197EF9FF87552FF00D1D07C59FF00C04B4FFE58D7B4FC03FF0082787C38F837E3E83E26F897C61E27F8BDE2ED220487C2973E358AD4D8F85E5DECEDA8D8D9235C79BAAA17616575713B269E5E49ED2DD2F4C77511CB15AF327DD2BDFA774AFBED75EAB5B72E37E90FE0A65783C566187E22CCF8971585A152AE1320C1E419B6575735C524961F095333CC2853C36030D52AB5F5BC53556B52C346ACB0F42B57F674E5E5FF00B147EC51A9E89A9D8FED0DFB4358C57BF142F628EEFC11E08BA8D64D3BE19E9D22992D6E2E2D6432467C56637DD1C6DBCE825DE491E4D7649A" $FileBin &= "6B0FD58A28A96EFE9D17F5D5DB5FB9592497F017885E217127899C4989E25E25C4C675E718E1B2FCBF0D1952CB325CB294A4F0B94E5385729470D82C3464ECAF2AD88AD2AB8AC555AF8BAF5AB5428A28A47C38514514005145140051451400514514005040208201046083C820F50477068A2803F98DFF00829E7FC130FC51F09BC51E29FDB63F626F0B35F5BDF35C6B9FB477ECE3A1C0C967E2BB34696EF54F88DF0E74BB58DC5AF89AD43DCEA1AE685A7DB3C97B235CEAFA3DADC5D5C6B3A36BBF92B17C7AF8652FC333F15FFB7E24F0C247B2589827F6BC5AB84DC7C38DA7090B9D7B7908B661CC6F115BF49CE98CB7A7FBDC20104100823041E4107A823B" $FileBin &= "835F933A87FC1187F62CD4BF6B94FDACE7F0A6A02E9B501E2CBEF8308FA68F835A97C4B49DA68FE21DDF85CE9E656D48CAEF7D73A2A5E27872F359C6AD71A5B4F2DF25EFE35C55E1AE2711982C7F0BCB09858E3EBFFC2960B132953C2E1AAD495EA669838D38B69B6DCF13818A842BD4B55A52A55255554FF4ABC03FA6CE4994708CF853C76A3C439ED6E11CAEFC15C4F9242962B3DCEF0581A4A184E05E23AD8AAB08FB38C5428647C5155E22BE55848CF038FA18DC2D3C0BC2FE6AFF00C1327FE0993E27F8FF00E27F0B7EDA5FB68F85A4D3BC1BA74906BBFB397ECE7AEC0CD6D1DB3325CE99F123E24E99731AADD4F74A96F7DA16837D6EA6FCADBEA9AA5B" $FileBin &= "C3A5C3A5E9737F51EAA1405501554000018000E00007000142A8501540555000006000380001C00052D7E89C37C3797F0C65F1C16093A956A35571B8DAAA2F138EC4B8A8CEBD6924ACB4E5A34636A5429DA9D34926DFF1B78D9E36717F8E7C5F5389F89EA53C2607074A597F0BF0BE02751647C2791C6A39D1CAF2BA351B729C9B55B31CC6B7363736C6CAA63319525394214CA28A2BE84FC7828A28A0028A28A0028A28A0028A28A0028A28A0028A28A00F913F6F4FF9341F8EFF00F6263FFE9CF4EAFC38F83DFF0024D3C21FF60B1FFA3E6AFE837F699F865AFF00C65F811F12BE18F85AEF48B1F1078C7C3EDA569775AF5C5E5AE910DC9BCB4B80F7F71616" $FileBin &= "1A9DE450EC81C6EB7B0B97DC5479641247E3DE83FF0004E4FDB6FC39A458687A678FFF0067C4B0D3A1F22D965D63C6B2C8B1862F8791BE1AEE73966E4F638EC2BF86FE921C19C6D9CF89B9167BC3DC1F9F711E594782259557C4E4D87C3D78D0C73CF3138BF615556C4E1DC5FB0719DD732B4E27F7A7D18B8E781722F0C788B21E25E33E1FE19CD2B71DC337C3E1B3AC462B0F2C4603FB030F8375E8BA184C4A925888CA9B5271778BEDAF014D7FB8DFEEB7F235EB1FF0EFFF00DBA7FE8A0FECF1FF00833F19FF00F3B5FF00393ED80FFC13FBF6E9208FF8583FB3C608C7FC84FC69F8FF00CD35FF000EA7DB1F893E06F139A6BFE21671D6A9FF00CCBF01FF00" $FileBin &= "CF33F7C5E2278549A7FF00115F80B46BFE66398FFF003A8F7AFF008238FF00C9B578FBFECBA788FF00F501F86B5FAD15F0E7EC09FB34F8F3F659F843E27F00FC42D53C29AB6B3AD7C48D57C616B73E0FBFD5B51D3534CBEF0C7847458A1B89B59D0F40BA4BE5BAD02F249228ECE5805BC96CEB72F23CB143F71D7F7B780F91E6DC37E0FF0087F9167B80AF95E7196641470D9865F8951588C262235ABCA54AAA84A715351945BE59496BB9FE797D20B3FC9F8A3C69F11B88387F30A19AE4B9B71262717976638573787C5E1A74A8C635A939C61370938C92E6845E9B0514515FAD9F8E051451400514514005145140051451401F2A7EDAFE346F04FECD9F11EE" $FileBin &= "2090A6A1E24D3EDBC15A7C6A4879E4F15DDC3A4EA114670D875D126D52E060027C9214862187E60F8774B5D1341D1F495007F67E9B676AE57A34D1408B3C9C601324DE648C47059891C1AFD6BFDA27E01E97FB43784347F096ABE26D67C2F1E8BE25B4F145ADEE8F1DB4EF25E59D86A5A7C51DC4172B87448F529A589E396278A7546CB2EE43F2AFFC3BB22FFA381F899FF7E6D3FF0092EBF827E90FE1578BDC71E29ACFF86B84A9679C3980E13CAB24CA6BC788724CBA50C43C7661986713A986CC71742BC675AAE2305479A3174E74B054E49DDCADEBE0ABE1A961F92757926EA4A524E137A5A318D9C53564AEFCB53E57A2BEA8FF008775C5FF004703F133" $FileBin &= "FEFCDA7FF25D1FF0EEB8BFE8E07E267FDF9B4FFE4BAFC63FE20178F3FF0046DE3FF897F0A797FD4C7CFF000F5B757D6F09FF00410BFF0005D5F2FEE79FE0FB1F2BD15F547FC3BAE2FF00A381F899FF007E6D3FF92E8FF8775C5FF4703F133FEFCDA7FF0025D1FF00100BC79FFA36F1FF00C4BF853CBFEA63E7F87AD8FADE13FE8217FE0BABE5FDCF3FC1F63E57A2BEA8FF008775C5FF004703F133FEFCDA7FF25D1FF0EEB8BFE8E07E267FDF9B4FFE4BA3FE20178F3FF46DE3FF00897F0A797FD4C7CFF0F5B1F5BC27FD042FFC1757CBFB9E7F83EC7CAF457D51FF000EEB8BFE8E07E267FDF9B4FF00E4BA3FE1DD717FD1C0FC4CFF00BF369FFC9747FC402F1E" $FileBin &= "7FE8DBC7FF0012FE14F2FF00A98F9FE1EB63EB784FFA085FF82EAF97F73CFF0007D8F95EB3742F10FF00C201F1C3E067C42F30C16D63E3687C2BACCF9C2268FE2F85F46BB9AE3B186CED2EAFEE3E6E03ED65064095F5D7FC3BAE2FFA381F899FF7E6D3FF0092EAB5DFFC137349D49238354F8E7F11750B449E1B836F35B58301242DB92489A5B899229D39314C63731390C15802A63FE2027D20A96232DC6E07C3CA587C7E539C64D9DE0311538BF85F928E3B26CD30799E1A73F67984AA287B5C2C633E48CA4E0E4945DDC43EB783B493AF7528CA2D2A756ED4A366BE15FCDDF74FB1FA63D68A6449E5471C7BDE4F2D1137C84191F6285DEE4000BB632C4000" $FileBin &= "B12401D29F5FEAF45C9C62E4B964E29CA29DD464D2BABF5B3BABF53E7828A28AA00A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A439C7CA403C724161D79E0153C8C81CF079E7182B450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450" $FileBin &= "01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014515CEF8ABC5DE16F02E857DE27F19F88F45F0A78774C8BCDD435BF106A567A4E97689D17CEBDBE9618119DB09147BFCC9642B1C6AEECAA6E9D3A95670A54A13A956A4A30A74E9C6539CE72694610845394A526D28C629B6DA49364CE70A70954A938D3A708B94E73928C2114AEE52949A518A5AB6DA496E745457E61F8DBFE0AAFF00" $FileBin &= "0074BBEBAD27E18F863E267C6ABFB590C4D7BE0EF0D49A7F86C48A42C8B26A9AECB65A96C049F2E7B7D06EAD2655F363B8684C723F9BC5FF00055BD563977EA1FB277C4886C32099EC7C51A7EA57DB31F3B0D34787ED7E71C6D8FED5F3F27729E2BEEB0FE1871E6268AAD0E1CC5D18CA2A718636BE0B2FC44A2ECD5B0B8EC561B13769A697B2BBE8B63E4AB71EF0950A8E94B39A15651972B961A8E2B17493EABDBE16856A3A757ED2CBAB3F6128AF813E147FC14A3F660F89DAA5BF87353F10EB3F097C5570E9145A0FC5AD293C2CB2CCC76EC8F5E8AEF51F0CC45E4DB1DB45A86B1617774CEAB0DAB49BE34FBE239239A3496191258A5459239636578E48DC" $FileBin &= "0647475255D1D486565255948209041AF98CDF22CE721AEB0D9CE598DCB6B49395386330F528AAB056BCE85492F675E9EA97B4A339C2FA731EF65D9BE599BD275F2CC7E171D4A2D29BC3D58D474E4F68D5827CF4A5FDDA918CBC87D14515E49E88514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514578D7C6FF008F7F0D7F676F0CE89E34F8B1AD1F0DF8475AF19787FC112788A5883E97A26A5E2692E20D32FB5E9BCC56B0D105D40B6F7DA988E5874E59D2" $FileBin &= "EEF441A7C377796D152A53A34E756ACE34E9538B94EA4E4A308456AE5293B28C52D5B6D24B56EC736331B84CBB0B5F1D8FC4D0C1E0F0D4DD5C4E2B13521470F42947E2AB5AACDC614E9C7794E72518ABB9349367B2D1505B5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041A9EAD34D5D3BA7AA6B66BB9D09A6934D34D269A774D3D534D68D35AA6B70A28A2818514514005145140051451400514514005145721E3EF1CF86BE19F82BC51F103C617E9A67867C21A35F6BBACDE361992CEC61695A2B788B29B8BCBA7096B636887CEBCBC9A0B5855A59914E94A955AF569D0A34E756B56A90A54A953" $FileBin &= "8B9D4A956A49429D384629CA539CDA8C62937293492BB22A54A7469D4AB5671A74A942552A549B51842108B94E7293B28C6314DB6F4493678B7ED45FB51780FF0065BF017FC255E2A12EB3E23D665974DF02F8174D942EB7E30D702A05B6B602399ACF4CB469A09357D59E0962B18A58A1861BCD4AEF4FD3EF3F05FC6FAA7C51FDA4FC491FC40FDA2B5C975148E66B9F0AFC2CD2E6B8B3F04F82ED65198E15D39276173A918CAC779757135CDEDCAA2C7A96A17D1AC56B689A978CFC55FB47FC4ED63F68AF88F149149A9B4961F0BFC2734A67B2F04F826DE59469B1DBAB2AA35FDD2492DCCF7AB143F6CBABABDD556345D42DE2B4EC6BFAC784384309C11848" $FileBin &= "5E14AB71456A69E65995A3525974A715CD966573D551F629BA78CC6D26AB622B7B4853A91C3463197F3B7127126278A71327CD528E454A7FEC381BCA0B1918BF771D8F8E8EABAB653C3E1AA2F67469F24A70759B71AD676567A7DB4567616B6D6369028482D6D208ADADA141FC31410A2471A8F44503DAACD1457D24A5293729372937772936DB6F76DBD5BF3678492492492495924AC92EC92D12307C41E17F0F78AAC9AC3C43A4596AB6C43041730833405860C96B72BB6E6D25C71E6DB4B1498E3760915D97C0CFDA53E2B7EC67A8D9DA5C5EEB7F147F66F79E28B56F095FDC7DB7C4FF000DECE4902BEA5E0EBBB8745FB05A86F39F469248747B90258E58" $FileBin &= "F49BB9E4D75F2E992471CB1BC52A24B14A8D1C91C8AAF1C91BA9574746055D1D495656055949041069626961331C154CAF36C2D3CCB2BAFA55C1D7BB5095ACABE12AAFDE60F174F7A788A1284D3F767CF4DCA12AA1531182C553C7E5D5E782C7D1D69E2695AF249A6E96221F06270F3B253A3554A2D6B1E595A4BFA25F01F8EFC27F137C21A078F3C0DADD9F887C29E26D3E2D4B47D5AC64DF0DC412164923910812DADE59CE9359DFD8DC24577617D05CD95DC30DCC12C69D757F3D9FB1B7C70B9FD95BE33D97C32D7EFA45F803F1AB5A8EDB48FB54A5AD3E1DFC47BC31C1672C72C8C52D346D71841A7EA1E6148922363A8C92C69A26A32DE7F4275FCB5C71" $FileBin &= "C235B84337FAAC6A4B15966369FD7328C74A294B1184949C5D3ACA294618CC2544E862E9AB255231AB08AA55A937FD01C29C474F88F2DF6F2846863F0B3586CCB0B16DAA388515255295DB94B0D888355B0F2777CB274E4FDA539A4514515F187D3851451400514514005145140051451400515C978B3C7FE05F01592EA5E3AF1A784FC17A73B2A25FF8B3C45A47876CD9DDD62555BAD62F2CE02CF23AC6A0392CECAA32CC0565783BE2DFC29F888CE9F0FF00E26FC3EF1CBC409917C1FE33F0E7899E31B04A4BAE8BA95EB20F2CAC84B003610FF74835B2C3D774DD5542B3A4B7AAA9CDD35BEF351E55B3EBD1F621D482972B9C14BF95C9737DD7BFE07A1514" $FileBin &= "5158961451450014515C078CBE2C7C2CF875E5FF00C2C0F895E00F02F9C3317FC263E31F0EF867CD1B1E5CC7FDB5A8D96F1E5A3C9F2E7E4477FBAAC45D3A752AC9429539D49BDA14E129C9FA4629B7BAE9D4529462AF2928AEF2692FBDD91DFD15C8F84BE20780FC7D68F7FE04F1B7847C69611B32C97BE13F1268DE23B4464731B2B5CE8F7B790AB2C80A3067055C1420302075D4A709D3938CE128496F19C5C64BD5349AFB81352574D34F669A6BEF414514548C28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002BF1DFFE0B9512CDFB0BDF42F9D92FC5AF86913E0E0ED9" $FileBin &= "350BE46C7A1C138F435FB115F8F7FF0005C4FF00931DB9FF00B2BDF0C7FF004E57B5E1F136BC3D9D7FD8B719FF00A6667E61E3524FC25F1113D53E12CE535DD3C2544D7CD687C1FF00B07FEDE1E22FD8EFC45A07ECDFFB486BF79AE7ECE7AE5E47A57C20F8BFAAC8F3DC7C2CB89DF169E0BF1A5D9CEDF082E76585FBE13C3483CD8B6F8616E2DFC2BFD36DB5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041AFE3F3C49E1CD17C59A36A1E1FF10D841A9E93A942D05D5ACE090467292C4E08920B88240B2DBDC44E93413224B13ABA861F4B7EC1FF00B78788BF63BF11681FB37FED21AFDE6B9FB39E" $FileBin &= "B9791E95F083E2FEAB23CF71F0B2E277C5A782FC697673B7C20B9D9617EF84F0D20F362DBE185B8B7F0AFC470D7124B2C74B2DCCEA39E5D371860F1951B72C14A5651C36266F7C336D46856936E8E94EA3F67CB28FF3BF83DE3055E129E0B83B8C7193ABC315654B0BC3FC418AA929D4C82A4F929E1F28CDEBD46E53CA27292A797665564DE5EDC3098C9FD51D1AD87FE9D28A82DAE6DEF2DE0BBB49E1BAB5BA863B8B6B9B79126B7B8826412433C33465A39619236578E44628E8C1958820D4F5FA9A69ABA774F54D6CD773FB5934D269A69A4D34EE9A7AA69AD1A6B54D6E145145030A28A2800A28A2800A28A2800AFC67FF0082A2FC4FB9F157887E18FECA" $FileBin &= "BA15E3C767AF327C4BF8AC6DA4656FF845F48BA961F0D68B3C91B36D8F51D4ED2FEFE686455921BDB2F0DDDA9F2A424FECC74AFE63F5AF183FC5FF00DA13F684F8CB3486EACF57F1DDE782BC2533312A9E12F05AC3A3E9925B2F091C5A8D8D9E95793A479437AB70E4BCAD2C8FFADF83D944317C438ACEEBC14E8F0DE0BEB941495E2F35C554585CB5B56F8A8396231D4DF4A983833F38F12F32961F27C3E574A5CB533AC57B0AD6766B2FC347EB18D4ADADAADA8E165D1C311246E450C56F1450411A430411A430C31A848E28A25091C71A280AA888A15554055500000002A4A28AFDF9B6DB6DB6DBBB6F56DBDDB7D5B3F1D492492D12564BB2414514521851" $FileBin &= "451401C7F8F7C256DE36F0A6ADE1EB808B2DD5B9934FB861CDA6A76F996C2E4301B955270A936C219EDA49A2C8121AFDADFD817E3B5EFC78FD9D3C31A9F88EE1E6F1F7816E2E3E1CF8FC5C36EBC975FF000CC56F15BEA777B9B7BDCEB5A2CDA66A77B2ED589B549F528611B6D980FC82AF78FF00827678C1FC03FB577C50F85F2CA61D0FE31F81AD3C79A4C05898FF00E12BF095DC90DEC5021F9527BFD3EFFC43A85E3A6D674B1B35943AA4453E4FC40CA219D706665EEA9633209473BC0CADEF2A0A54F0F9B504FA539E1670C5CE3D678083D35BFD1F06E632CAF89F02EED61B374F2AC546FEEFB4929D6CBEB34B7943111961D37B47172F2B7EEC514515FC" $FileBin &= "A67F428514514005145140051451401E0FFB4B7ED2FF00057F643F833E31F8F9FB4078DB4EF01FC34F0459ADC6A7AB5E892E2F350BEB8630E97E1EF0F6956CB25FEBDE25D72ECA5968DA269B0CF797B70F90890453CF17F187FB4AFF00C15FFF00E0A15FB7D6A1A8DB7C02F11EB1FB047ECA5792C91F872FFC3EB0CDFB4CFC4AD0CB37D9B5CD53C5D04C927802DF538562BCB2B6F045DE873E99E7983FB7FC75A73477EF83FF00055BFDA5753FF8287FFC141FC6FF000B9EFE4BEFD923F60DF13DE7C3FD0BC28B2B3F87FE24FED156426B1F881E2ED76D14FD9B544F096A115FF8474C86E1AEEDA0D2B498A7B354B5F1B788ADAE3C800000000000000030001C" $FileBin &= "0000E000380074AFEBFF000E7C34C9F86F29CBF3ACF72EC366BC4F9961A86614B0F98D186270390613154E15F054E381AD1950C466D5684E9E26BD5C5D3A91C0FB4A74285186229D5AD2FCEF39CEB118DC456C3616B4E86068CE54652A32953AB8BA94E4E3564EAC5A9470F192708460D3ABCB29CA4E128C4F95A7FD8E7E0FEBFAADCF897E25CDE3EF8C7E30BF632EA7E31F89FF0010BC57AFF887529D8B34935F5EDB6A5A68BB67924965FF004A8E76592467DC5F0C22BCFD89FF0067792782FF0045F08EA9E10D66CE54B8B0D77C29E2FF0015E99AA69D731B9922B9B169757BBB482E2190EF8A61685E3214290AAA07D5F457EC6B38CD6294639862E108C5" $FileBin &= "4634A15A70A3182DA11A306A92A692B7B35050B69CB6D0F9D787A0DB6E8D36DBBB93845C9BEEE4D39397F79BBF99D17C04FDB8FF00E0A75FB08DDD95DFC26F8F5AD7ED77F06F4B312EA5FB3F7ED39AA5DF89F5E1A2C0C035AF80FE284D38F12E8D7F6D66658749B18750B2F0DD8911193C2BAFF936FA71FEB93FE09C5FF054AFD9CBFE0A4BE04D4F53F86771A8F813E30781E2820F8BDFB3EF8E9E2B2F88DF0E752322DACF71F66296E3C4DE1196FF0036DA6F8BB4BB78EDDE4786C75CB0F0F6BED3E876FF00C7CD78AF8A34FF008A9F083E26F84BF6BAFD9575E97C0DFB4C7C229C6ABA5DD5946CDA5FC4BF0F5BA6358F87FE34D2E296DE2D7F4CD774C5974B" $FileBin &= "6B5BA71F6EB593FB2A59E0274ED4348FCEB8BFC39E1DE37C3D5E5C260722E256A52C167783A14F0785C5E22DEE61B3CC261A10C3D5A55E5EE3CCA95286370D392AB5A58AA319517EC65D9C6332C9C6F52AE2B0574AAE1AA4E55274E1A5E7859CDB9C6514AEA8CA4E9CD5E3154E4D497FA4D57E71FF00C1457FE0A7DFB37FFC136FE1F69FE20F8B37DA878BBE2878D12E2DBE117C05F03F93A87C4BF89BAB238B68CD9587EF0685E17B6BD9218358F176A711B1B42FF62D2EDB5CF104D61A0DF7CDD63FF05BAFD9C2E3FE09633FFC14A2E228E192C74D3E09BFF82A35455F1227ED34B1258AFC0F8AE0DB35D97B9D6658B5A875CFECB79E3F8652FF00C27D71A4" $FileBin &= "A5A41716717F229A143F15BE3A7C57F16FED91FB576B1378C7F68FF8B3336A3E45E232E8DF093C233061A07C3BF04E912BCB1E8365A1695247A698A366B8B487CEB3927B9BFB9D7B56D77F14F0F3C23C466F98E658BE30A18BCB726C8331AB95E2B0317EC31D9B6718669D7CAF0F55A92A187C345C2A6618E829F253AB4296179AAE223568FD3671C410C3D1A14F2E9D3AD88C5D18D78556B9A950C34FE1AF38E9CD39DA51A349DAF28CA53B460D4BE91F8FDFB78FFC14F7F6F0BABFB9F895F1CF58FD8DBE0AEAAEFF00D95F00FF00669D4EE3C3FE2D6D1A563E5DBF8EFE2C43247E29D5351BAB3648757B1FB73786AFCF9A1BC17A17993D857C4F67FB147ECF" $FileBin &= "2B713EA3AE785357F196B7792B5C6A1AF78B7C61E2AD5355D46E647124B737CD0EAD676771733380659DACC48F9605B0EE1BEAFA2BFA8B2E951C970F1C1E4184C2641838A518E1B27A31C12928DACF1188A7FED78CABA272AF8CAF5EB4DDDCA6DB3E1AB736267ED71752A62EABD79F112756DE508BFDDD38F68D38422BA247CA91FEC6FF0006B44D52DBC47F0E7FE13AF843E2FB0712E99E30F867F107C57A0F8874C9D5408E6D3EF2E752D492CDD5951CB5B430B33A062DB8B337E8F7ECDBFF000573FF0082897EC077FA745F1A7C4FACFEDF9FB2B58CB1278923F1598E3FDA5FE1E684A42DCEB5A0F8DAE2696E7C74BA6C27ED9756BE36BBD7CEA4B6ED6EBA" $FileBin &= "8F81AC5A7D620F0CA38208201041041E460FF9FF001E2B2CD68E0788B0F2C171365F85CFF0938B838E614D54C5D14EFEFE0B324963F035A376E1530F5E0AFA4E1383941D61E7570735570556784A8ADAD17CB4E5669DAA51FE1558BB59A9C1BECD3B35FDD7FECC1FB50FC10FDB1BE0B7847E3F7ECF9E36B1F1D7C38F18DBC8D697F6CAF6BA9E8FAADA6C8F56F0CF89F479C2DFE81E27D0EE185B6ABA3DFC693C2C61B9B76B9D3EEECAF2E7E81AFE073FE097FF00B4A6A1FF0004E6FF008283F80FC2B0EA1269FF00B257EDD7E2AD33E17F8F3C26F3345E1CF877F1E3517FB27C38F1F68B6AE56CB481AE6AB730787B5AF29ED6CFFE11ED4759BBD43CDB7F0AF8" $FileBin &= "66DAC3FBE3AFE33F12B81DF03E7D0C2E1AB55C5E4B99E1D6639262EB28AAF2C2CAA4E8D5C262F912A7F5DC06229CF0F5DC14615A2A962A10A70C4429C7F48C9734FED4C2B9CE31A789A13F6389A71BF22A8A2A51A94EFAFB3AB0929C136DC5B9536E4E0DB28A28AFCF0F5C28A28A0028A28A0028A28A0028AF947E267EDD7FB17FC1AF18EA7F0F7E2BFED53F007E1DF8EF445B57D67C1FE30F8A9E0DD0BC49A40BEB58EF6C9753D1EFF5786FB4F92EACA782F208AEE08A596CEE2DEE510C1710C8FC1FFC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EABD9A5C3BC415E953AD4322CE6B51AB08D4A55696578DA94AAD39A5284E9D4850709C249A71945B8" $FileBin &= "C934D369A3D7A59067B5E9C2B51C9337AD46AC23529D5A596E32A53A9092BC6709C28B8CE124D38CA2DA69DD368FBAA8AF857FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EAB4FF55F897FE89DCF7FF0D38FFF00E67F35F797FEADF117FD0833AFFC35E3BFF941F75515F0AFFC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EA8FF00879EFF00C13A7FE8F7FF0065DFFC3D5E03FF00E5D51FEABF12FF00D13B9EFF00E1A71FFF00CCFE6BEF0FF56F88BFE8419D7FE1AF1DFF00CA0FBAA8AF857FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FC3CF7FE09D3FF0047BFFB2EFF00E1" $FileBin &= "EAF01FFF002EA8FF0055F897FE89DCF7FF000D38FF00FE67F35F787FAB7C45FF00420CEBFF000D78EFFE507DD5457C2BFF000F3DFF008274FF00D1EFFECBBFF87ABC07FF00CBAA3FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FAAFC4BFF44EE7BFF869C7FF00F33F9AFBC3FD5BE22FFA10675FF86BC77FF283EEAA2BE15FF879EFFC13A7FE8F7FF65DFF00C3D5E03FFE5D57DABA16B9A2789F44D1FC4BE1AD5F4CF107877C43A5E9FAE681AF6897F6BAAE8DADE8BAB5A437FA5EAFA4EA9632CF65A8E99A958DC4179617F693CD6B776B345716F2C91488E7871B95669972A72CC32DC7E02355C95296370788C2AA8E29392A6EBD3A6A6E2A49C946" $FileBin &= "ED269BDD1C78CCAF33CBE30963F2EC7606355CA34E58CC26230D1A928A4E4A0EB53829B8A69C946ED269BDCD5AFCE5FDBDBF6FF7FD89357F82BA15A7C19D53E30EADF19DBE20269B65A578BADBC2D3E992780D3C1D24C98B9F0FEBA2FDB518FC59BD76B59FD9574E7CF9FF00685F27F46ABF9F2FF82D6FFC96FF00F827E7FD7FFED1BFFA6AF8495F23C4F8DC565F9262F1783ABEC7134EA60A14EAF253A9C8ABE3F0B426F92AC674E4DD3AB34B9A2D26EEB5499F8EF8D3C479D70A78739DE79C3D8D59766D87C670EE1B0D8CFABE1B17EC2399712E5196E264B0F8CA55F0D5252C2E2EBC23ED694D4652538A528C5AD3FF0087D9FC40FF00A310F1D7FE1DAD27" $FileBin &= "FF00983A3FE1F67F103FE8C43C75FF00876B49FF00E60EBE09A2BF3BFF0058788BFE87153FF08B2EF2FF00A84F2FC7D6FF00C8DFF116BC5CFF00A2FB11FF0088EF0AF97FD49BC9FDFE47DEDFF0FB3F881FF4621E3AFF00C3B5A4FF00F30747FC3ECFE207FD18878EBFF0ED693FFCC1D7C13451FEB0F117FD0E2A7FE1165DE5FF00509E5F8FADCFF88B5E2E7FD17D88FF00C477857CBFEA4DE4FEFF0023EF6FF87D9FC40FFA310F1D7FE1DAD27FF983AF8E3F6E7FF82827C49FDB37E069F82F6BFB24F8C7E1E493F8D7C27E276F11DDF8EF4EF1243147E1EBC96792D4E9B0F86746918DC2CF8130BC022D9931499C0E428AC3159BE798CC357C262335A9528626" $FileBin &= "94E8D682C265F172A7523CB38A9470AA71BC5B578C9357BA77577E5E77E20F897C45946639166FC6F89C56579B612B6071F878E45C3541D7C2E221ECEB5355A86534EB52738392E7A5384E37BC649A4C53C927D49AC3F11F87345F1668B7FE1FF105841A9693A94260BAB59D72083CA4B13A9124171038596DEE21649A09912589D5D430DBA2BCF718CA2E124A516B95C64934D5ACD34F469F53E5674E9D5A72A55611A94E71709C2715284E0D5A519C649A9464AE9A6ACD33DF3F60FF00DBC3C45FB1DF88B40FD9BFF690D7EF35CFD9CF5CBC8F4AF841F17F5591E7B8F859713BE2D3C17E34BB39DBE105CECB0BF7C27869079B16DF0C2DC5BF857FA6DB6B9B" $FileBin &= "7BCB782EED2786EAD6EA18EE2DAE6DE449ADEE20990490CF0CD1968E58648D95E39118A3A3065620835FC7DF88FC39A2F8B345BFF0FF00882C20D4B49D4A1305D5ACEB9041E52589D48920B881C2CB6F710B24D04C892C4EAEA187D2FF00B07FEDE1E22FD8EFC45A07ECDFFB486BF79AE7ECE7AE5E47A57C20F8BFAAC8F3DC7C2CB89DF169E0BF1A5D9CEDF082E76585FBE13C3483CD8B6F8616E2DFC2BF51C37C472CAE54B2CCCAACA79749C69E0F1951B94B0526D2861B1537BE19B6A342B49DE8E94EA3F67CB28FEEBE0FF8C15784AAE0F83B8C7173ABC315674F0BC3F9FE2AA4A75387E7371A787CA337AF51B94F289CA4A9E5D98D593797B70C262E7F54" $FileBin &= "F635B0FF00D3A51505B5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041A9EBF524D3574EE9EA9AD9AEE7F6AA69A4D34D349A69DD34F54D35A34D6A9ADC28A28A061451450014514500798FC6BF1749E00F839F15BC730CA619FC1DF0E7C6BE26B791402CB75A2786F52D4AD820390D234F6F1AC6A47CCECABDEBF9A7F823A60D2FE187856320896F2D6E355998FDE91F53BDB8BC8DD8F73F66960404F25117249AFDEDFDBCEFE6D3BF63EF8FF710332BC9E02BDB062A704C3AA5E5969970A7FD9682EE4561DD4915F87DE05856DBC13E0FB75C110F85B408C11DF669568A5BDCB10493D49249AFE8DF" $FileBin &= "07E8C69F0AE77884AD3C667F85C3CE5D650C065F3AB08F7B46598CDF6D5763F12F12AAB9F1065941FC386CA2BD68AE8A58BC646126BCDAC1C53F248EAA8A28AFD2CF840A28A2800A28A2800AA9E03D6DFC17FB587ECA5E33864F21A7F895FF00080DDCDF36D7B6F8836EBE1658A52A47C8A9AB5E91BBE4532348E36A1AB75E69F10AEA4D3357F83FAD42424FA1FC6DF875AA452104846B5D4E5752C1487651208D8AC64392A304004D6B4E8C7150C660E6B9A18ECB734C0D48DAFCD0C5E5F89A1256BABE9534EB7B5B5B113AB2C3CF0D898BB4F0B8DC062A0EF6B4B0F8CA1593BF9387F9E973FA9BA2907207D052D7F111FD56B549F70A28A2800A28A2800AE2" $FileBin &= "7E25F8BE3F87DF0E7C7FE3D96137117827C13E2AF17490282CD3A786F42BFD65E155054932AD9140032E4B6323A8EDAB96F1CF85ACBC73E0AF18782B52FF0090778C3C2FE20F0BDFF19FF43F1069377A4DD71DFF007176FC77E95AD1E455A93ABFC25569FB4FF073AE7FFC96E4CF9B925CBF172CB97FC5676FC6C7F9A4FEC5B15E5D7C06D1BC5FAC5D49A8F89BE23789BC6FE3CF15EAB398DAEB57D7F58F156A96B73A95DBC691ABDCDD5B69D68F310AA03E555555428FABEBE54FD8D62D4B45F82E9F0F75F84DB78A3E13F8E7E20FC37F14D931F9EC75DD0BC57A95D5D59B82A92036D1EA70423CD8A29195016404E4FD575FE8E66ED3CD31EE2E2E9BC55595" $FileBin &= "270B723A1293950F676D3D9FB170F67CBA72592D0FC6F0FF00C0A5BDFD9C79AFF1735973F37F7B9AFCDE770A28A2BCE360A28A2803E2F9BF664D79FE397F6D2789A55FD9FAE3C5B07C67BDF855FDABA8FF00634DF1BECF4CB8D12DFC467C35E51D1DA430DD4BA9B6AED29BC6F32E7446B71A6C88B5F68514575E2F1D88C6AA0ABCA2FEAF4A3461CB08C39946C9D4A9CA97B4AD34A2AA569DEA545182949F2AB674E9429F372A7EFC9C9DDDEDE4AFB456BCB1D95DDB70A28A2B90D028A28A00F953F6D2B09A6FD9EFC59ADD85CCD61ADF82F53F0A78CBC3DA9DB48D0DD699AC68FE26D2D63BEB49D0ABC17715A5D5E25BCC843C72C8ACBC8C57FA497C1AF1ACFF" $FileBin &= "00127E107C2AF8897300B6B9F1EFC37F03F8D2E2D86DC5BCFE28F0C697AE4D00DAA8B88A4BE68C6D455C2F0AA381FE6DBFB674F7D3FC07D6BC27A35BB5EF88FE237893C15E00F0C69E9B7CDD4B5BD73C4FA6CB169F00664067B9B3B1BC48BE6015F0EDF2A9AFF49FF85BE0A83E1B7C32F875F0EEDA77BAB7F017813C23E0BB7B990A992E20F0BE81A7E8914D2145442F2A58AC8C55114B312A8A0ED1F887D201D2FEC1E098CEDF58799F13CA8EDCEB0BF57E1F552FADFD9CABA5C9A72F3C6ADB54EFF4FC25CDF5BCC9ABF27B0C12976E7E7C538DBCD46F7F271BE9CA779451457F2F1F72145145001451450015F277EDC1FB57783BF628FD983E2B7ED15E3236" $FileBin &= "D731F823C3F32F85BC3F35C0B797C61E3BD59BFB33C17E13B521BCF2758D7AE2CE3D427B68E7934CD1A3D53589216B5D3AE197EB1AFE387FE0B01FB4A7FC362FEDADA1FECBFE14D47EDFF00BF630BF4F11FC506B59449A578CFF00687BF8A5B6B5D0AE31BE1BC87E1DD87DA34631B2A183569BE20E957C8E1F4F907DEF871C26B8BB89B0D83C4C66B27C045E679E558B71E5CB70D3873E1E335F0D7C7D69D1C061EDEF2A988552CE34E6D7DC787BC2CB8AF88F0F84C429ACAB03079967356375CB97E1A70E6A119AF86B63AB4A960A875552BA9DB969C9AFCD0F87FF000A22F1DDA6BDF167F685D0343F887F1A3E3278A35AF8A1E3FD6BC5DA1E9DAB5EDAEB3E" $FileBin &= "2EBA6D4DF49B64BFB79FFB3ADECA399449A75BEC82CAEA49ECE055B4B6B58E3EFF00FE144FC14FFA249F0DFF00F08BF0EFFF002BEBD5A8AFEC9A9996325393A55EB61A92B46961F0F56A52A187A504A14A851A5094614E952A71853A718A49462B43FAF6A6618B94DBA75AAE1E9E91A542855A94A850A504A34A8D1A71928C2952A718D384524A318A4794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD454FF6863FFE83B19FF8535BFF0093F25F711F5EC6FF00D0662BFF000A2AFF00F26794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD451F" $FileBin &= "DA18FF00FA0EC67FE14D6FFE4FC97DC1F5EC6FFD0662BFF0A2AFFF0026794FFC289F829FF4493E1BFF00E117E1DFFE57D1FF000A27E0A7FD124F86FF00F845F877FF0095F5EAD451FDA18FFF00A0EC67FE14D6FF00E4FC97DC1F5EC6FF00D0662BFF000A2AFF00F26794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD5CBF8DBC5FA3F80BC27AFF008C75E9BC9D2BC3DA6DC6A375B4A8966312E20B3B70C42BDDDF5CB436769192049733C4848DD9154F1B99559C29D3C663653A928C2118E22BB72949A8C62929EADBB24BD0A862F30A93853862B1729CE5184231AF59B94A4D28C5253BB6DB49247927" $FileBin &= "837F63EF077ED6DFB55FC14FD8DBE16FC3FF0009786E6F146A517C40F8DDE37F0CF85B43B1D57C01F05FC317114DAF5D41A8DB586ED3F53D6F747A4E92D26D57D6B50F0ED8DCA358EB6E4FFA0C7843C27E1CF00F84BC2FE06F0869367E1FF097833C3DA2F853C2FA158218EC345F0F78774DB6D2345D26CA36662969A769B676D696E8598AC30A024919AFC36FF820C7EC7FAC7C29F809E22FDAEBE2D695F67F8E9FB61CF63E33586EE27179E0DF82D6DE649F0D7C2D68274F3ACE2D6AC661E2DBA58A45377A55DF846D352885F680367EF657F2F78D1C613CFF003FA59161B173C5655C2CAB60A155D69D5863336A8E1FDAD8D8CA52929538D6A50C0E1A49B8" $FileBin &= "BC3E123560D7B795FF009A3C60E2D9E7B9ED3C970F8A9E232CE1A55B071ABED655618BCD2A4A3FDA98B8C9CA4A508D5A70C161E49B8CA861635616F6F2B95FCF97FC16B7FE4B7FFC13F3FEBFFF0068DFFD357C24AFE836BF9F2FF82D6FFC96FF00F827E7FD7FFED1BFFA6AF8495FCE5C67FF0024E63BFEBF659FFAB5C09FC69F48AFF9349C41FF00634E0DFF00D6D7878F8728A28AFCBCFE250A28A2800A28A2800A28A2800AC4F11F87345F1668B7FE1FF105841A9693A94260BAB59D72083CA4B13A9124171038596DEE21649A09912589D5D430DBA424282CC42AA8259890000064924F0001C92780294A319C5C6494A324D4A3249A69EE9A7A34C8A94E9D" $FileBin &= "5A73A75611A94EA45C2709A5284E125694671926A5192BA69AB34CF7DFD83FF6F0F117EC77E22D03F66FFDA435FBCD73F673D72F23D2BE107C5FD56479EE3E165C4EF8B4F05F8D2ECE76F84173B2C2FDF09E1A41E6C5B7C30B716FE15FE9B6DAE6DEF2DE0BBB49E1BAB5BA863B8B6B9B79126B7B8826412433C33465A39619236578E44628E8C1958820D7F1E3F06BE0278FBFE0A1FF00116EBE147C3A69341F807E11D52C9BE33FC677B28AEAD5DADA68EEE2F08F819AE637B5D47C4577E5A4904D1EF86D90A6AB7ACBA4A5A5BF88BFAD8F85DF0DBC2BF07BE1DF833E17781ED6EACBC23E03F0F69BE19F0F5B5F6A179AA5E43A66976E96D6CB73A85FCB3DDD" $FileBin &= "D4C554B3C92C8465B6C4B1C21234FBEE07C4665570B5E95652AB955071865D8AACDFB6934DAAB87A6DA6EBE1685B969D7935CAEF460EAC617A7FD63F46BCE38BF30C8B31C1E610A98CE0ACB274B0DC259DE3AA4FEBB55D394E9E372AC239A94F32C9B2D708D3C2665567074AA73E5F4678CA58753C377B451457DD9FD3414514500145145007C8FF00B79D84DA97EC7DF1FEDE056778FC037B7EC14648874ABBB2D4EE58FF00B296F692BB9EC8AD5F87BE05985CF827C1F70BD26F0B787E4FA17D26D188C76209208EC4115FD177C68F08BF8FFE0FFC54F02C51F9D3F8C7E1CF8D7C316F18C066B8D73C39A8E996FB18E76C8B3DCC6D1BF5570AC395AFE693E0" $FileBin &= "86A6354F861E1672C4CB656D73A54CAC72D1BE9B7B73691AB67904DB47048A0F212450403C57F46F83F5A3538573BC3A7EFE133FC262271B6D0C7E5F529424DF44E597CD2DF55D2FAFE25E255274F8832BAEFE1C4E515E945F472C263213946FDD4719176EC7ABD14515FA59F08145145001451450015E6BF106D64D5358F83BA1C203CFAEFC6EF873A54719C8121BAD4E58D412BF3AAF9A625250871B863A9AF4AAABE01D11BC6BFB597ECA5E0C8504E60F88EDE3EBB8893B12DBE1FDA8F1524B22A839529A45E850E36398CC4D9121AD69D78E1618CC64DB8D3C0E5B9A63AA495FDD86132EC4D772BADADC8ACFBDADAD9112A52C44F0D8682BCF158EC06160" $FileBin &= "B5BB96231B42924ADD7DF6FB77D2E7F4B23803E82968A2BF888FEAB5A24BB0514514005145140051451401FC0BFF00C146BE05DC7EC5FF00F055FF008DDE1B368DA7FC24FDB86D9FF695F8537A62F2B4E4F8937535CC7F193C311DC0D96CDABDCF8AC6B7E269ED9023DAE8FAB7846DBCA692F639AE3CDEBFAB6FF82D17FC13CEF3F6FF00FD932E6C7E1BAC1A77ED37F017567F8BDFB3778843416D75278C347B759358F00497F3EC4834CF88BA5DA47A5AADC4F069D6FE2AB0F08EB5AA3BD8E8B34527F1D3F04FE2A47F157C206FEFF4EB8F0E78DFC377F75E15F88FE0CD46DEE2C357F0878DB4691ACF5BD2350D36F563BDB2C5DC32C96F15D46B3C685AD2E4" $FileBin &= "25F5A5E410FF00707877C4F4F8BF83B2FC53A8A79BE41430B91E7B479AF55C70D4950CA33369EAE963B054A142AD47BE3F0989E6FE253E6FCC338C13CBF31AB4D47970F8B954C4E16566A379C94B11413DB9A9559B9462B6A552165EEBB7B0514515F6079C14514500145145001451450014515E43F1B7E2B5A7C23F045C6BA9653EB9E28D5AEADFC3BE03F09D8C33DDEA9E2CF196AADF67D1745B0B2B4492F2E8C970CB2DD25AC725C7D9A3923B68E5BC96D6DE6D6851A988AD4E8528F354AB35082BA4AEFACA4ECA318ABCA526D46314E526926C9949422E527651577FF016EDBD925AB7A2D4FA53F603F81973FB69FF00C1563F67EF87A96B2DF7C29FD8DA" $FileBin &= "483F6A5F8C97B1A97B05F186813DA49F087C2D732306B67D427F1749E1ED464D3A4DCF7FE1B9BC51B6371A75D793FDFD57E387FC1137FE09E3A9FEC17FB2A35EFC54862BBFDA9BF68DD5ADFE2EFED17ACBF9525EE9BAE6A104F37863E19ADD425A37B2F873A66A57769751DBCB3D89F17EAFE2FBCD2E77D2AF2C122FD8FAFE3FF17F8B70FC51C54E8E5B5957C9387B0CB26CB2B41FEEF192A556A56CC332877863B1D56B4A84F7960A9E1399269A3F44E1ECBE781C073568F2E27173FACD68BDE9A94631A545F674A9462A6BA54752DA0514515F951EF05145140051451D3AD007E78FFC1507F6D5B1FD853F646F1E7C59B1682EFE287884C7F0E3E077879E31" $FileBin &= "732EBBF15FC596D770787DD6C086FB759786ADADF50F176AD6A446B7BA768371A6C72C779A85A07FE3DBE08FC3DBDF879E0782DF5FBD9F58F1CF89AFEFBC63F10FC417B70F7BA8EB9E34F10CA6FB59BBBDBF959E6BE9219641662EE572F77F676BC93F7F75316FA93FE0A15FB49FFC379FEDF5ACCBA15F8D4FF66FFD8AEF355F879F0E1A091A5D1FC6BF19A79ADFFE16078DA16567B6BD874AD42C2DB4AD1EEE0925B6934FF0FF008735AD3E4F2B5CBC593CEABFB2BC3EE18FF54784F0D87AF4F9338CF961F38CE2EAD3C3D095372CA32C9758BC3E1AACB198883B38E2B192A5357C346DFD79C05C39FEAAF0BE1E856A7C99BE79EC335CDB995AA51A32A6E595" $FileBin &= "65D2BA4E2F0F87AB2C55783B3589C5CA9CD37878D8A28A2BEB8FAC0A28A2800A28A2800A28A2800A83F677FD9D6E3FE0A03FB6E7C37FD989A09EE7E097C25934FF008D3FB4FDFC2B27D8EEB41D1EE6DE5F0C7C359E753120BAF19EA17165A75D5AA4E2ED74AD5350D72C55A7F0B5CA0F3FF8B5F1174DF853E00F1178DB51093369769B34BB16621B54D6EEDBECDA4E9B184FDE37DAAF64884ED106782D12E6E88D90391FD42FFC117FF626D47F645FD942CBC4DF122C1D3F68AFDA4AFADFE31FC6DBCBE87CAD5B4BBBD6A196EBC23E01B9565592D8782F44D41C6A3A71DD1D978B759F152DBBB5A3DB2A7CDF1AF132E0FE16C666D4A6A19B660EAE519024ED52" $FileBin &= "18BAB497D773282DED95E12A73D39D9A8E3B1182BE9CD6F9DE32E235C25C338BCD295450CD71CEA65591C535CF0C555A5FED998453D7972DC2CF9E9CD26A38DAF83BE9CD6FD73B5B5B7B2B6B7B2B3821B4B3B4822B5B5B5B68921B7B7B782358A1820863558E18618D1638A28D5523450AA028004F4515FC56DB6DB6EEDEADBDDBEECFE396DB6DB776F56DEEDF7615FCF97FC16B7FE4B7FF00C13F3FEBFF00F68DFF00D357C24AFE836BF153FE0AD9FB337ED2FF001DFC69FB2778C3F676F854BF14A4F84B37C66B8F155949E33F03F83E3B16F16DBFC35B6D091E6F18F88F417BA17CBA26B4E1B4C8EFBECC6C76DE0B7FB4DB79DF37C5D46B62387F1B4B0F46" $FileBin &= "B622ABA9809468E1E94EB569AA799612A4F929538CA73E5A7094DA8C5DA316DE899F8E78FB97E6199F8599FE132BCBF1F9AE3658FE16AF4F039660B139863AB53C2716E478BC4CA860F094AB626B7B1C350AD5EA2A54E6E34E9CE6D72C5B5F9754574DFF000CA1FF00053AFF00A330D3FF00F0FBFC17FF00E6EE8FF8650FF829D7FD19869FFF0087DFE0BFFF003775F987D5730FFA14673FF869CC3FF99CFE27FEC6E28FFA2238FF00FF00105E2BFF00E747F567E57E668AE9BFE1943FE0A75FF4661A7FFE1F7F82FF00FCDDD1FF000CA1FF00053AFF00A330D3FF00F0FBFC17FF00E6EE8FAAE61FF428CE7FF0D3987FF3387F637147FD111C7FFF00882F15FF" $FileBin &= "00F3A3FAB3F2BF334574DFF0CA1FF053AFFA330D3FFF000FBFC17FFE6EEBC8FE35F82BF6DEFD9CBC18BF11BE367ECBFA77823C0E35BD27C3F36BC7E2D7C3BF11F95A96B53343616E34DF0A788F5CD598CEF1C804AB626DE3DBFBF9A20C09CEAD2C650A73AD5B2CCDA8D2A5173A956AE578EA74E9C22AF29CE73A0A308C56AE526925AB673633059E65D84C463F30E12E36C0607094A75F158CC6706713E1B0985A14D7354AD88C456CAA146851A71BCAA55AB38C2114E52924AE76D45078247A5212141662155412CC4800003249278000E493C014B733BE97E9B812141662155412CC4800003249278000E493C01589F043E087C49FF82807C49BDF85DF0BAF" $FileBin &= "6F7C2BF01FC2B7B0C1F1AFE35C10E609A03B6497C13E099645F2353D6F5383284A192D92DA43A8EA27FB1BECD6DE233E087C10F893FF000500F8937BF0BBE175EDEF857E03F856F6183E35FC6B821CC134076C92F827C132C8BE46A7ADEA7065094325B25B48751D44FF00637D9ADBC47FD5C7C16F82DF0DFF0067CF86FE1AF851F0A3C3567E17F05F85ECD6DAC6C6D977DC5DDC3FCF7BABEAF7AF9B8D5359D52E0BDDEA7A9DDBCB7579752BC923E36AAFB390E43533DA8ABD652A793D393539A6E33CC67176950A12569470D09271AF5E2D3A8D3A345FC738FE93E16F85B8BF137171CCF338D7C1F0060EBCA15EBC253A388E2CC4519F2D4CBB2EA91E5A94B2" $FileBin &= "6A55232A7996654DA96264A781C0CD3588C4503E0B7C16F86FFB3E7C37F0D7C28F851E1AB3F0BF82FC2F66B6D63636CBBEE2EEE1FE7BDD5F57BD7CDC6A9ACEA9705EEF53D4EEDE5BABCBA95E491F1B557D528A2BF5CA54A9D1A70A54610A54A9C630A74E9C5461084528C6318C52518C6292492B24AC7F7B60F0785CBF0B86C0E070D430782C1D0A586C2E170D4A1470F87C3D182A74A8D1A54D4614E9538463084211518C52495828A28AB3A428A28A0028A28A003AD7F325AFF83DFE107ED13FB427C1B96236D65A6F8E6EFC75E11858611FC27E3558758B08ED9BEECB0E99677BA5D8CCE9F28BDFB5215495248D7FA6DAFC6CFF0082A37C2EB9F0CEB7F0CB" $FileBin &= "F6ABD0ACE492DBC34F17C37F8AAB6D1B3B3784B59BC9A4F0EEB33246A032697AB5EDFD8CB248CD24F7BA9787EDC6228095FD6BC1ECDE184E22C4E495E6A14789305F52A0E4ED159AE1AA471596DDBD39ABCA35F034D75A98C8AD15D9F9CF89796CB139350CD2945CAA64B8AFACD5514DC9E02BC7D86376FB3493A58A974E5C337E4FE42A2A282686E6186E2DE549A0B88A39A09A260F1CB0CA8248A58DD495749119591812194820E0D4B5FBFB4D369A69A7669E8D35BA6BA347E3A9A6AE9DD3D535B35DC28A28A401451450015EF5FF0004E9F07BF8F7F6AAF8A7F14E584CDA1FC20F0459FC3FD1E720AC5FF094F8AAF24B8D42481C9DB24FA7D8E9FAF69F78" $FileBin &= "A8498E3D42CDA52A248437CA7E3FF16DBF827C27AB6BF31569E084C1A65B93F35E6AB720C5616CAA3E670D31124C10164B68A7970421AFDB4FD82FE045E7C03FD9D3C2DA2F8860687C79E349EE7E227C4033A05BB8FC47E268EDE58F4CBB2543ADCE87A341A5E9179197922FED2B4BF9E1212E2BE4BC41CDE392F0666369F2E333F94724C0C6FEF3C3F3D2C4E6D5D2BA6E9D3C3429E0E52D94F1F0B5DA76FA4E0DCBA59A71360BDDBE1B288BCD3152B5E2AAA53A397D26FA4E75E53C4455AFCB8493EC7D9D451457F2A1FD0814514500145145001451450015FC8AFF00C171BFE099DE2DF845E3EF127FC1503F640F094DABC1716A6EBF6D7F821E1EB6DBFF00" $FileBin &= "096F87ECC34971F1DBC33A6DBA103C43A241E65CFC40FB242D2C91C6DE3796168E5F1F5D6A5FD75535D12456475574756474750CAE8C086565208656048652082090462BEB782F8C332E09CF28E7197F2D6A6E2F0D9965F564D61734CBAACA2F1182C45AEE2A7C91A946B453A986C4D3A588A5EFD349F06659750CCF0D2C3D6BC5A7CF46B47E3A15A29F254877B5DA9C5FBB3839425A33FCE8BC07E3BF0BFC4AF0AE91E33F076A70EABA16B36EB3DBCF19026825000B8B0BE80333D9EA3652EEB7BDB497124132329CAED66EBEBEF6FF0082A9FF00C11FBC7BFB1DF8C7C6BFB6E7FC13FBC1977E2BF813E21BABBF147ED2BFB25787A077B8F049C9B9D5BE28FC" $FileBin &= "14D2EDD5D8E8312FDA2F35EF07D85BBCDE128C493E916B79E0726C3C05F99BF0DFE25F837E2C7856C7C61E07D5E1D5B48BC1E5C8A3115F6997A888F71A66AD6658CB61A8DB6F4F36DE5CABA3C5736D24F693DBDC4BFDAD9466F94712E55473EE1FC43C4E5B59C69D7A351C7EBD94E2E51E69E5F99D28B7ECABC1F37B1AC97B0C6D24ABE1E524E7087E6588C3E23055E584C5C392B415E328DFD957A7B2AD424FE283D14A2FDFA72F76693B37DE514515DA661451450014515C47C43F88DE0FF859E16BFF001878DF588347D1AC1768693E7BABFBB7476834DD32D14F9D7FA8DD146105AC0A58AAC934AD15B4334D1DD3A752B54852A50954AB524A10A708B94E" $FileBin &= "7293B28C62AEDB6FA214A4A29CA4D46295DB6EC925D5B65CF1BF8DBC33F0EFC2FABF8C7C5FAA41A4683A2DB35CDE5D4CC373B7DD86D2D21C87BABFBC98A5BD959C21A6B9B89238A352CD5FAB9FF043EFF826978B3E3BFC45F0BFFC14F3F6BBF085CE89E1CD193EDBFB11FC10F125B066D2B4F95D66B5FDA03C55A55CC655757BD11C379F0E8DC46259A610F8DEDA35B0D3BE1FEA2FE63FF04B2FF824378F3F6DFF00167833F6D2FDBDBC177FE0FF00D9B7C3F796DE26FD9CBF652F125ACB05F7C502ACD3695F143E32E977023913C23709E4DDE81E16BDB70DE35B5749EE2183C0331FF8589FDA5451450451C30C690C30C691451448A91C5146A1238E345015" $FileBin &= "111405445015540000000AFC4FC56F1330F94E1719C1FC338A857CD3154E785E22CE70B514E8E030F35CB5F24CB6BC1B8D5C4D657A59AE3694BD9D3A6E780C3CA72962671FA6C8724962274B31C6D371A14DAA983C3548B52AB35670C4D68BF86106B9A85392BB76AB34AD04DF451457F2C1F76145145001451450015F90DFF059FF00DB6B52FD90FF00651BCF0DFC36BF923FDA2BF690BF9FE0EFC11B4B198C7AB69779ACC30DB78BBC7D6C54892D8782B44D410E9DA82EE4B3F16EB3E156B88DED1EE4A7EB95D5D5B58DB5C5EDE5C436B696904B737575732A416F6D6D046D2CF3CF34ACB1C50C31A3492CB232A468ACCCC14135FC23FED11FB455CFFC1407" $FileBin &= "F6DCF891FB4D89E5B9F825F08A4D47E0AFECC1632337D8AF342D22E6E22F137C4A82122346B9F196A13DEEA36B76D08B94D2B54D3F43BD66B8F0BC0EBFAA784BC274F88B88FF00B4330A2AAE47C390A79966109ABD3C5E2BDA5B2CCB1DF492C66260E788875C0E1B16F4695FF4EF0AF85A9F107107D7B1F47DA64BC3F1A79863A325FBBC56279DACB72D77D24B1789873D7875C161F14F4695FCFF00E12FC3AD3BE157C3FF000EF8274E2933697681F54BF5521B55D6EED8DCEADA948CE3CC6FB55EC92981652CF05A2DB5B03B20403D1E8A2BFAA2B55A95EAD4AF564E756ACE552A49EF29CDB949FDEF45B25A2D0FE9EAB5675AAD4AD564E552ACE552727BCA" $FileBin &= "536E527F36F65A2D9681451456666145145001451450014515E41F1BBE215EFC3CF03CF71A0594FAC78E7C4D7F65E0EF879E1FB2B76BDD435BF1A78865FB0E8D6B656118696FA486590DE1B48919EEFECEB671FEFAE61075A146788AD4A853B73D59C6116DDA2AEF594E4F48C20AF29C9E918A726D24CD68519E22B53A34EDCF526A09B69455DEB2949E918455E5393B28C539369267D4BFF04F5FD9B7FE1BCFF6FAD1A1D72C06A7FB37FEC5779A57C44F88EB3C465D1BC69F19A69AE3FE15FF0082675757B6BD874AD42C2E755D5ECE78E5B7974FD03C49A2EA11F93AE59B3FF6E5D3A57E797FC12FBF62BB1FD857F646F01FC27BE482EBE287888C9F11FE38" $FileBin &= "F8823916EA5D77E2C78B2DAD27F10A1BE46617B63E1AB7B7D3FC23A4DD2944BDD3B41B7D4A4892EEFEE8BFE86D7F2578A3C5B0E2AE25A8B0351CF23C969BCAB265B46B50A5393C4E62E3B7B4CCB14EA62799A53587786A32FE0A3F953C4BE2A8713F1154FA9D473C9B28A6F2CCA3A46B51A536F118F6B45CF98E25D4C45DA52541E1E8CAFEC50514515F9B9F9E851451400514514005145140057E3DFF00C1713FE4C76E7FECAF7C31FF00D395ED7EC257E3D7FC171982FEC3974588007C5DF862493C0006A37A4927B000124D787C4DFF0024F675FF0062DC5FFE9999F98F8D3FF269BC43F2E13CE5BF4584A977F23F251C85DCCC42AAEE2CC4800019249278" $FileBin &= "000E493C01587F043E087C49FF0082807C49BDF85DF0BAF6F7C2BF01FC2B7B0C1F1AFE35C10E609A03B6497C13E099645F2353D6F5383284A192D92DA43A8EA27FB1BECD6DE235F823F047E24FFC1407E255F7C2EF85B7B7BE15F80FE16BD8A0F8D7F1AE087304D0315925F04F8265917C8D4F5BD4E0CA12864B64B690EA3A89FEC6FB35B788FF00AB7F82DF05BE1BFECF9F0DFC35F0A3E14786ACFC2FE0BF0BD9ADB58D8DB2EFB8BBB87F9EF757D5EF5F371AA6B3AA5C17BBD4F53BB796EAF2EA579247C6D55FCF320C86A67B38D6ACA54F27A52B4E69B8CF319C5DA5428497BD1C34649AAF5E2FF78D3A345DB9EA47F937C2BF0B717E26E26199E671AF83E0" $FileBin &= "0C1D670AF5E129D1C47166228CB96A65D97548F2D4A593529C654F32CCA9C94B13253C0E0669AC462281F05BE0B7C37FD9F3E1BF86BE147C28F0D59F85FC17E17B35B6B1B1B65DF717770FF3DEEAFABDEBE6E354D6754B82F77A9EA776F2DD5E5D4AF248F8DAABEA94515FAE52A54E8D3852A30852A54E31853A74E2A308422946318C62928C63149249592563FBDF0783C2E5F85C36070386A183C160E852C36170B86A50A387C3E1E8C153A5468D2A6A30A74A9C231842108A8C62924AC14514559D214514500145145001451450015C9F8EFC13E1BF891E0DF13780BC5FA7C7AAF867C5BA35FE85AD58C87699ACB5081A091A19305ADEEA02C2E2CEEE2DB3" $FileBin &= "5A5DC50DCC0C93448EBD6515A52AB52855A75E8D49D2AD46A42AD2AB4E4E1529D4A7253A752128B4E33849294649A69A4D3BA22A53A75A9CE955846A52AB0953A94E694A1384D38CA128BD1C6516D34F469B47F303AC781FC53FB357C50D5BF677F8892CB34366F26A3F0A3C5F3C7E4D9F8D3C177134A74F48E427CB8F54B30B25A5C58877FB35EDBDE69B133C36DA7CD7FD757EE07ED39FB31F807F6A2F00B7847C5CB2E95AE6952C9A97823C71A6C6BFDBDE0CD7B6A6CBEB17DF0B5D585CB430C7ABE9124D141A8C1144E92DA6A369A6EA363F825E3DD13E2B7ECCBE228FC0BFB446873DBD84B3B5AF853E2DE8F6D757DE0BF17DB207F24CD7D1C01ACF5511" $FileBin &= "47BAEECEE62835184113DFD8436E5351BBFEB0E10E30C271B6129C5D4A5438A28D24B31CB5B8D3799CA9C57366595C5B4AB4AB24EA633054FF007D42AFB4A94A9CB0F25287F3B71270D62785B133B42A55C86A49BC1639734D60A32768E071D2B374D536F930F899BF67569F242738D64D4BADA2AA58EA163A9DAC57BA6DEDA6A1673AEE86EECAE22BAB6957D639E0778DC73FC2C6ADD7D2CA328C9C65171945B4E324D4935BA69D9A6BAA67849A92528B4D3574D34D34F669AD1A7DD053259638239269A44861851E596595D638E28E352F249248E42A22282CEEC42AA82490013581E23F167873C2566D7DE22D5ECB4B802B346B3CA0DCDC95EA96967187BA" $FileBin &= "BB93FD8B786460324800123BEF815FB307C56FDB22FEC752D5ECB5CF855FB36ACF1DC5FF00882F61165E2DF8996D1481CD8F856D278E411697701446DACCF1CDA3C1979636D6EEE07D2ED9626B60F2DC154CD737C553CB72BA3F1E2EBEF564B5587C151FE2637175126A9E1E8464EFEF5474E946738DE1E96271B8A86032EC3CF1B8FAB6E4C3D3DA116D275B1352CE187C3C2F79D5AAE31FB31E69B8C5F4DFB17FC0DBAFDA97E32597C58F11E9F2FF00C284F831ACACFE1C8AF2165B4F88BF11ACDA39ED99619502DD68BA03F93A85EF99BA3629A7E9AF148BAAEB105A7F41D5CAF81FC11E14F86FE12D03C0BE08D12CBC3BE14F0CE9F0E97A2E8F60856DED6D" $FileBin &= "610492EEE5E6B9BAB895A4BABEBEBA926BCBFBD9A7BDBD9E7BAB89A57EAABF9678E38B6B717E70F171A52C2E5983A7F53CA30329293C360E327273ACE3EE4F178AA92962317523A3A9254E0FD952A497EFFC29C394F8732DFABCA71AF8FC4CD62331C5A56F6D88715154E9DD73470D87825470F076B422E725ED2A4DB28A28AF8D3E9C28A28A0028A28A0028A28A0028A28A002BF972FF00829DFF00C109756D5BC5DE28FDB0FF00E09A31687F0FBE396A0F73ADFC57FD9A677B5D17E12FC7D9448F77797DE1B8649EC746F027C43BD692EA49236934EF0CF88751B8FB7ADF784B5AB8D6756F10FF0051B457D3F0A717E79C1999C734C8F14A94E5154B1984AD" $FileBin &= "1F6D80CCB0BCCA53C2661856D4311424D5D3BC2B519DAB61AAD1AF18548F0E3F2FC2E6541D0C4C2E93E6A7522F96AD19F4A94A766E125D778C97BB38CA2DA7FE6D1F0E3E32D8F8C75AF107C3EF1778735FF853F1AFC0F7B73A47C40F839E3EB0BAD07C69E17D62C1BCBBF80E9BA9DBD8DE5E5AC120CB4A2D21BAB78DE17D42CACBCF804BECF5FD6D7FC147BFE0911FB327FC14634683C41E29B7BEF847FB46F862CD53E1CFED2FF0E2086C3E20F876E2D159B4CD3FC4F1C52D943E3DF095BCFB77687AC5D5BEA5A7DB49789E14F10F85EEAFAEAF64FE3D7F68AF851FB5C7FC1373C636BE00FDB9BC10FAB7C37D4F523A57C3BFDAEFE1C69D7DABFC29F19A12C6" $FileBin &= "C6DBC602D6CE39FC15E2B9A0476B9D1B54B2D3B517920BB9EC74CD5345B493C4F75FD7FC1DC75C3DC794E34F2D9472BE2051BE2386B17594AAD59249CEA6478A9F2ACCE86F2FAABE4CCA8C5494A857A707899FE7998E558CCA9B9574EBE12FEE6369C1A8C55D24B154D5FD84EEEDED15E849DAD2837C8BB0A2B093C53E197F0FFF00C25A9E21D15BC2C6C4EA63C46354B23A17F6705DC6F8EABE7FD845A0504B5C19FCA1820B039C637ECF7F0DBF6B0FF828DF8D6EFE1BFEC23E0631781F4AD48693F11BF6B4F887617BA47C20F00A808D796FE1E9EE6C6697C5FE298E096292CF45D2EC754D4DFCEB7BA93458743B8FF8492D3EB6AC69E1B0D89C763EBD0CB7" $FileBin &= "2FC12E6C6E619854586C26115ED6AB566AEEAC9FBB4B0F4E33C4569DA9D2A539B48E08F34E70A54A13AD5AABB53A34A3CF52A79C62BECA5ACA6DA8456B2925A9C87C4AF8CDA5F81F55D07C0FE1DD0B5DF89BF18BC6D7B69A3FC3EF83FE04B1B9D77C6FE2CD675297ECDA65ADBE97A6DBDEDEDBDBDDDCE228E7FB24F71705655D3ACEFE6864857F7D7FE0995FF0424D75FC5BE17FDB03FE0A7169A2F8D7E2DE9CF6DAE7C23FD95A092DB58F859F039CB25D5A6A5E388E2B8BDD1BC79E3EB775B771A5F9BAA786344BCB75BCBEBFF15EA71E90DE17FD3DFF00826EFF00C11FFF00669FF827569B71E2CD156FBE33FED33E28B329F10FF697F88F6D0DE78DF569AE" $FileBin &= "A255D4B4BF065A4D35FC3F0FFC277126F53A56977979ACEA76C2DA0F147893C442C74F369FAC75FCE3C7DE33BC551C4E43C0F2C460F2FAD09E1F1FC45562F0F9A6694A4B96A50C0534F9F29CBAAABA9BE6FED0C5D36A35E786A53A9847F6394F0DAA72862B3351A95A2D4E960E2F9A85092B38CAB3DB115A2D5D69EC69BD62A724AA20000600C01C003A01E9451457F3D1F5E145145001451450014515CE78C3C5BE1BF00784FC4FE3AF18EB167E1EF08F837C3FAC78ABC51AF6A32793A7E8BE1FD034FB8D5759D56F65C1F2ED2C34FB4B8BBB870AC56389C804F155084EA4E14E9C653A9394610841394E7393518C63149B94A52694524DB6D24AE54213A938" $FileBin &= "53A7194E7394610845394A7393518C631576E526D2496ADB491F871FF05E6FDB0B5AF84DF017C3BFB23FC24D585B7C75FDB0E6D43C1665B490FDAFC1DF05E0090FC4BF155D1898CB651EB36139F0A5A492223DCE9777E2DBED2E61A8787C18FF00023C13E10D1FC03E13D03C1DA0C3E4E95E1ED36DF4EB5C8512CE625CDC5E5C15015EEEFAE5A6BDBB900024B99E57C0DD8AC9D6FE32F897F6D7FDA6BE30FEDC3E3482F6D74DF1ADF4FE02F807E1BD487EFBC19F04BC2B7D7367A2429096923B6BFD6E559F53D5FECCC237D7AFBC4D796CED67ACAA8EFEBFB6F85786E1C1DC3780C81C62B306FF00B4B3FA91B373CDF134E29E15C97C54F2AC3AA78182BB8FD6" $FileBin &= "238CAD0B2AECFECCE17E1E8F0970EE07226A3F5F95B30CF2A46CDCF36C4538A9619C95F9A9E59414305049B8FB68E2AAC7F8CC28A28AF6CF6828A28A0028A28A0028A28A002BE99FF823FF00ECD67F6C5FDB5B5CFDA83C57A77F687C01FD8C2FDBC3BF0BD6E62F3349F19FED117F1477373AEDB655E1BD8BE1DD8791AC8903A1B7D5A7F87DAAD83C8AFA8463F3F7E33EB7E319ECFC29F09FE14D85C6B5F19FE3AF8A74CF85DF0C346B16D97926B5E24BBB7D327D5564C7FA2C1A5477D117D41CAC3A75CDD59DEDD14B482E248FFB70FD883F651F077EC51FB307C29FD9D7C1A2DAE63F03F87E26F14F8821B716F2F8BFC79AB31D4BC67E2CBA0419C9D635EB8B" $FileBin &= "C92C20B9926934CD1A3D33468E56B5D3ADD53E1BC4CE27FF0055B852AD0C354E4CE78A215F2DC172BB54C2E511B4337C72B6B09622328E5787969CCAB63A507CF8776F89F123893FD5AE17A9430F539337E258D7CBF07CAED530D9546D0CD71A9AD612C44651CB684B4728D6C64A0F9A81F58D14515FC807F2685145140051451400514514005145140057C5DFB76FECA775FB657C17D2BE0AA78961F08E9379F123C19E22F146B9E4B5CEA16FE17F0FCF7973AB43A15B18A4B79B5CBD4923B3D38DF14B1B592737B722E63B636575F68D1586270D471987AD85C443DA50C453952AD4DB694E9CD38CE2DA69A528B69B4D3D7469EA7979DE4D9771165198E459" $FileBin &= "BD0FAD6579AE16AE071F86E79D3588C2578F256A329D3946A463560DC24E128CB964F9651766BCAFE0B7C16F86FF00B3E7C37F0D7C28F851E1AB3F0BF82FC2F66B6D63636CBBEE2EEE1FE7BDD5F57BD7CDC6A9ACEA9705EEF53D4EEDE5BABCBA95E491F1B557D528A2B4A54A9D1A70A54610A54A9C630A74E9C5461084528C6318C52518C6292492B24AC75E0F0785CBF0B86C0E070D430782C1D0A586C2E170D4A1470F87C3D182A74A8D1A54D4614E9538463084211518C52495828A28AB3A428A28A0028A28A0028A28A0028A28A0028A28A002B0BC49E18F0DF8CB45BFF0E78B740D1FC4DE1FD4E136FA8E89AF69B67AB6957D0920F9775617D14F6D3A86" $FileBin &= "0197CC8895701970C01ADDA2AA139D39C2A539CA9D484A3384E12719C27169C650945A946516938C934D349A7726708548CA152319C271719C271528CA2D59C651926A516B469A69AD19F99BE39FF82567ECEBAE5FDCEB1F0EF59F88FF0005B53B96795A0F01F8AA59342799F967974BD7E0D56E922DE72B69A76ABA75A46A4C514291ED55F3587FE09425E609A97ED51F166E34DDC99B7B0D334ED36FCC58FDEA1D48EA57819DCFDC76B32B18CAB472E735FAF9457DD61FC4EE3CC2D15461C498DAB18C54633C5C30B8EAF14AD6E5C4E370F88C426AD64D55BA5A267C9D6E03E12AF55D5964986A7293E69470F531184A5277BB6E861AB51A2EFD7DCB3EA7C2" $FileBin &= "1F097FE09C5FB2E7C29D4E1F10CBE13D4BE26F8AADDE39A2F11FC57D4D7C5D711CF1E184F1E8C2D2C3C31E7A4AAB35BDD49A1CB7B6D22AB5BDCC6CB93F76A22C6A91A2AA2228554450AAAAA005545180AAA38000C018029D457CC66D9E6719EE2162B39CCF1B99D78A71854C6622A57F65076F728C67270A34F45FBBA518415B489EF65D94E5B94517432CC0E170349BBCA386A30A7CF2FE6A924B9EA4BFBD52529798514515E51E805145140051451400514514005145140051451400514514005727E3AF01F823E27F8475FF0087FF00123C23E1BF1EF81BC57A74DA4789BC1FE30D134EF11F86B5FD32E00F3AC357D1756B6BBD3AFED5CAAB795756F22891" $FileBin &= "12450244561D6515509CE94E1529CE54EA5394674EA424E1384E0D4A1384A2D4A328C929465169C5A4D34D09A524E3249C5A69A6934D35669A7A34D68D3D1A3F9CC9FF00E0D8CFF827ACDF1CCF8F9356F8D96FF0224D4D7C5137EC89078FF504F8392F8B96527ED2BA9F3E3A87C34D013BBC3E9E215D492E0F970789E1D1153415FE80BE1FFC3CF01FC27F06787BE1D7C31F06F863E1F780BC27A745A4F867C1DE0DD134EF0E786B41D360C98ECF4AD1B49B7B4B0B280333C8CB0409E64AF24D216964776EC68AFA1CF78BF8A389A9E0E8F1067D99E6F4B014D53C253C6E2AA56852D395D4E56F96A622714A35715554F135528AA9566A2ADC785CBB03829549" $FileBin &= "61309430F2AAEF3952A718B96B7E5BAD6304FE1A71B423AF2C55C28A28AF9C3B428A28A0028A28A0028A28A002BE4EFDB7FF0065A8FF006D0FD99BE23FECDD71F127C4DF0A2C7E23C3A1DAEA3E2EF0A5A5A6A1A8C7A7E91E22D2B5DBAD26E2C2F26B54BDD275B8F4C3A66AB6897B64F7165732C4F3B40F35BCFF0058D15D581C6E272DC6E1331C155F638CC0E2686330B5B92153D96230D5235A8D450AB19D39B8548464A3384A0ED6945ABA3AB058CC4E5D8CC2E3F0753D8E2F0588A38BC2D6E584DD2C461EA46AD1A8A15233A7270A908C94670945DAD28B5747F30FA5FF00C1B8BABE8BA6D868FA47FC143BE32E9DA5E97696D61A7585A7C31F0D436D6565" $FileBin &= "6912416D6D0449E2E0B1C30C31A2222F01540E4E6AFF00FC43B1E27FFA48DFC6EFFC36DE1DFF00E6BBDBF9FA9AFE9A68AFD15F8C9E244A4E52E228CA4DF34A4F26C85B6DB4DB6DE5776DB576FAB6CFBF7E2EF884DB6F3F4DB6DB6F29C95B6DEADB6F2EBB6DEADBDCFE65BFE21D8F13FF00D246FE377FE1B6F0EFFF0035DEDFCFD4D1FF0010EC789FFE9237F1BBFF000DB7877FF9AEF6FE7EA6BFA69A297FC463F11BFE8A1874FF00993641D2DFF52BFEEAFC45FF001173C41FFA1F47FF000D3927FF003B4FE65BFE21D8F13FFD246FE377FE1B6F0EFF00F35DEDFCFD4D1FF10EC789FF00E9237F1BBFF0DB7877FF009AEF6FE7EA6BFA69A28FF88C7E237FD143" $FileBin &= "0E9FF326C83A5BFEA57FDD5F887FC45CF107FE87D1FF00C34E49FF00CED3F996FF0088763C4FFF00491BF8DDFF0086DBC3BFFCD77B7F3F5347FC43B1E27FFA48DFC6EFFC36DE1DFF00E6BBDBF9FA9AFE9A68A3FE231F88DFF450C3A7FCC9B20E96FF00A95FF757E21FF1173C41FF00A1F47FF0D3927FF3B4FE65BFE21D8F13FF00D246FE377FE1B6F0EFFF0035DEDFCFD4D1FF0010EC789FFE9237F1BBFF000DB7877FF9AEF6FE7EA6BFA69A28FF0088C7E237FD1430E9FF00326C83A5BFEA57FDD5F887FC45CF107FE87D1FFC34E49FFCED3F117F621FF82297817F64BFDA1B4EFDA57C77F1FBC79FB48F8FBC23E16D5FC39F0D62F1BF86F47D074BF01DD788" $FileBin &= "924B3D73C49630D9EA3ABCF79AE4FA2CF7DA1D8CDE7D9DBD9D86B1ABB4D05F5D4BA74FA67EDD51457C667FC479DF1463A398E7D8FA9986321429E169D49D3A14614B0F49CA54E8D1A186A5470F469A94EA4DC695282954A93A92BCE7293F90CF788738E25C6ACC33BC74F1D8B8D1A786854953A34634E8527270A54A8E1E9D2A14A0A539CDC69D38A9549CEA4AF39CA4CA28A2BC43C60A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28" $FileBin &= "A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2803FFFD9" Return Binary($FileBin) EndFunc CVimgproc_c.au3 OpenCV contour_example.au3 OpenCVFcns.au3 CVTag.au3 CVConstants.au3 CVcore_c.au3
    1 point
  5. Spotlight + Focus GUI's This is the latest experiment dealing with screen-dimming and focus. The spotlight effect works by dimming the entire screen except the small 'spotlight' area where the mouse is, so that you can focus on and read/work on that area with less eyestrain. Its a work in progress, however I've added some tweaks to it to make it a bit more interesting (and potentially useful!). In my experiments, the Spotlight and Focus GUI's are pretty nice when used in combination with RedShiftGUI (portable version here), an eyestrain-relieving color temperature shifter, or my >Windows Dimmer project. Also, a previous, separate, version of the Focus-GUI can be located within the Windows Dimmer zip file. Currently the spotlight + focus script has these features: Spotlight-GUI effect: A circular, rounded-square or rounded-rectangle area of the screen is set to 'full-brightness', while everything around it is dimmed. Locked-Spotlight GUI: Press CTRL+SHIFT+DOWN-ARROW when your have the spotlight area positioned, and it will remain locked in that position until released via the same key (or the Tray menu). Focus-GUI effect: The currently Active window is set to 'full-brightness', while everything around it is dimmed. Locked-Focus GUI: Press CTRL+SHIFT+SPACEBAR to keep the currently active window highlighted. Note this only keeps the rectangle visible, so any other windows overlapping the Focused GUI will have partial highlighting. Crosshair Mouse Cursor: All mouse cursors (save for resize-window cursors) are replaced with a simple crosshair. This provides a nice aesthetic compliment to the spotlight effect. (An optional diagonal X-hair is available, as well as no mouse icons at all - see source) Tweaks via the Tray that are persistent on NTFS systems (see below). Much more can be done here with tweaks - dimming percentages, focus-area sizes, etc Current control-focus following is not implemented: The Spotlight GUI only tracks mouse movement at the moment. Tracking the 'active' control focus (using mouse or keyboard) like Windows Magnifier does requires a bit more work; initial experiments indicate that GetGUIThreadInfo on 'Active' window can often make this possible but some apps don't report info correctly and need something like MSAA or UIAutomation (see >IUIAutomation MS framework by junkew). In the extreme, one can also hook the Mouse and Keyboard events but it still won't give the accurate keyboard focus information for different programs. Settings as adjusted in the tray will be persisted only on NTFS file systems. This can easily be changed, but its there to show one use of NTFS's Alternate Data Streams. The INI idea was inspired by nullscrhitt's '>Save INI data to exe. (while open)' thread. Also check out trancexx's '>Alternate Data Streams Viewer' if you'd like to see 'what lies beneath', or install a shell extension such as 'AltStreamOverlay' which lets you view it in the Windows properties dialog. For a list of ADS info on all files in a folder, check out AlternateStreamView @ Nirsoft. Things to note with this code: Certain windows will fight for topmost status. This is an annoying problem with Windows which there isn't any easy workaround. Its only temporary though; it will restore itself within another iteration of the Main loop. CTRL+SHIFT+DOWN-ARROW will toggle locking the Spotlight GUI in place. Also available in the Tray menu. CTRL+SHIFT+SPACEBAR will toggle locking the Focus GUI to a specific Window. Also available in the Tray menu. CTRL+ALT+Q will exit the program. 'Exit' in the Tray menu will do the same. Anyway, here's the codes! Changelog: #include <WinAPI.au3> #include <WinAPIGdi.au3> #include <WinAPISys.au3> ;#include <_MouseFunctions.au3> ; (Functions embedded) ; =============================================================================================================================== ; <WindowsSpotlightFocusGUI.au3> ; ; Spotlight/Focus GUI: Choose from 2 different styles of GUI 'focus': ; 1. 'Spotlight' GUI: Everything but a circular (or rounded-rect) 'hole' is dimmed, creating a spotlight effect on ; the screen where the mouse is focused. (created using a GUI 2x the size of the screen with a 'hole' Region) ; 2. 'Focus' GUI: Everything except the Active Window is dimmed. This is like a dynamically sized version of ; a 'Rect' Spotlight GUI which resizes/moves itself to the current Active window. ; ; Note the Spotlight GUI doesn't take into account keyboard focus, which would actually round out this script! ; ; To DO: ; - Make spotlight also follow keyboard focus when appropriate (when typing) ; ; To lock/unlock Spotlight GUI: ; - Ctrl+Shift+DOWN hotkey (Ctrl+Alt+Down won't work for some reason) ; To lock/unlock Focus GUI (to a specific window): ; - Ctrl+Shift+SPACE hotkey ; ; To Exit: ; - Use Tray menu or Ctrl+Alt+Q hotkey code ; ; Tweakables: ; - STYLE / COLOR / TRANSPARENCY Settings ; $nSpotlightStyle: 0 = Circle Spotlight, 1 = Rounded-Rect, 2 = Wide-Rect ; $nSpotlightDiameter: the size of the circular spotlight 'hole' surrounding the mouse (mouse is centered in this area) ; $nSpotlightSqDiameter: Rounded-rect width/height ; $nSpotlightRectWidth/Height: Wide-Rect width/height ; $nShadeColor: color of the 'shade' GUI. Seems anything grayscale works well (RGB: 0x000000, 0x111111, 0xFFFFFF) ; $n{..}Transparency: level of transparency. From 0-255, with 0 = invisible and 255 = solid (BAD!) ; $nRoundRectCornerWidth: Rounded-Rect corners' circle width/height ; ; NTFS ADS Info: ; "Alternate Data Streams Viewer" by trancexx ; @ http://www.autoitscript.com/forum/topic/149659-alternate-data-streams-viewer/ ; "Save INI data to exe. (while open)" by nullschritt ; @ http://www.autoitscript.com/forum/topic/155669-save-ini-data-to-exe-while-open/ ; ; See also: ; <WindowsDimlightShadedFocusGUI.au3> ; Basically the reverse of this - a dimmed circle GUI follows the mouse, ; ; creating a reverse-spotlight effect (or a dim-light affect if u will) ; Author: Ascend4nt ; =============================================================================================================================== ; Singleton code: Global Const $sSINGLETON_STRING = "Spotlight[0bc53fe0-59c2-11e2-bcfd-0800200c9a66]" If WinExists($sSINGLETON_STRING) Then Exit AutoItWinSetTitle($sSINGLETON_STRING) ; ==================================================================================================== ; STYLE / COLOR / TRANSPARENCY Settings ; ==================================================================================================== Global Const $nSpotlightStyle = 1 ; 0 = Circle, 1 = Rounded Rect, 2 = Wide Rect Global Const $nSpotlightDiameter = 500 Global Const $nSpotlightSqDiameter = 450 Global Const $nSpotlightRectWidth = 800, $nSpotlightRectHeight = 320 Global Const $nShadeColor = 0 Global Const $nSpotlightTransparency = 110, $nFocusTransparency = 110 Global Const $nRoundRectCornerWidth = 16 Global Const $nSpotlightXHairState = 0 ; 0 = No Spotlight-XHair, 1 = Full, 2 = Horizontal ( - ), 3 = Vertical ( | ) Global Const $nSpotlightXHairDiameter = 4 ; This is divided by 2 and the Spotlight X-Hair will be offset by this from center (use even #'s) Global Const $nSpotlightXHairYOffset = 0 ; 8-10 is nice for hovering under most lines of text ; Global Const $nSpotlightXHairXOffset = 0 ; ?? offseting X seems a bit odd and not very useful ; ==================================================================================================== ; GLOBAL VARIABLES ; ==================================================================================================== Global $g_bHKPressed = False Global $g_aINISettings = 0 Global $g_bFocusOn = 0, $g_bSpotlightOn = 1 Global $g_nSpotlightStyle = $nSpotlightStyle ; 0 = Circle, 1 = Rounded Rect, 2 = Wide Rect Global $g_nMouseCursorState = 1 ; -1 = Default Cursors, 0 = Hidden Cursors, 1 = CrossHair Cursor Global $g_aCursorStateSelect[3] ; Cursor State Tray ID's Global $g_nSpotlightXHairState = $nSpotlightXHairState ; 0 = No Spotlight-XHair, 1 = Full, 2 = Horizontal ( - ), 3 = Vertical ( | ) Global $g_aSpotlightXHairSelect[4] ; Spotlight-XHair State Tray ID's Global $g_hSpotlightGUI = 0, $g_hFocusGUI = 0, $g_nTransitions = 0, $g_nActiveGUICount = 0, $g_hLastActiveWin = 0 Global $g_aSpotLockDown[4] = [0, 0, 0, 0] ; Spotlight Lockdown: toggle, Center-X, Center-Y location, Tray ID # Global $g_ctFocusLock = 0, $g_hFocusLockDown = -1 Global $g_iResolutionChangeMsg = 0 ; This array will be updated with resolution changes, as well as some GUI rebuilds Global $g_aVScrRect[4] = [0, 0, @DesktopWidth, @DesktopHeight] Global $g_hGDI32DLL = DllOpen("gdi32.dll"), $g_hUSER32DLL = DllOpen("user32.dll") ; Global Vars quick-exit test If ($g_hGDI32DLL = -1 Or $g_hUSER32DLL = -1) Then Exit ; ############################################### #Region MOUSE_FUNCTIONS_PARTIAL_UDF_DATA ; Mouse-Replace Cursor handles (associative with Cursor ID's). See 'Standard Cursor IDs' in _MouseFunctions UDF Global $MCF_aSysCursors[16][2] = [ _ [32512, 0],[32513, 0],[32514, 0],[32515, 0],[32516, 0],[32640, 0],[32641, 0],[32647, 0],[32648, 0],[32649, 0],[32650, 0], _ [32642, 0],[32643, 0],[32644, 0],[32645, 0],[32646, 0]] ; Sizing cursors Global $MCF_bCursorsReplaced = False #EndRegion MOUSE_FUNCTIONS_PARTIAL_UDF_DATA ; ############################################### ; /**************************************************************************************************/ #Region MAIN_CODE _WinMain() Func _WinMain() ; Initialize Global Width/Height vars _VirtualScreenSizeUpdate() ;AutoItWinSetTitle("WindowSpotlightFocusGUI("&@AutoItPID&")") ; would cancel out or Singleton test ; Move the invisible window off-screen (mostly). This was mainly because in tests, the AutoIt invisible window ; would *actually* beomme the ACTIVE window. (Mainly when the tray icon is clicked and loses focus in some way) WinMove(AutoItWinGetTitle(), "", $g_aVScrRect[0]+$g_aVScrRect[2]-1, $g_aVScrRect[1]+$g_aVScrRect[3]-1) Opt("TrayAutoPause", 0) Opt("TrayOnEventMode", 1) Opt("TrayMenuMode", 1) ;+2) ; We want toggled and radio button automatic behavior Opt("GUIOnEventMode", 1) ; Logic check (before reading INI) If $g_nMouseCursorState And $g_nSpotlightXHairState Then $g_nMouseCursorState = 0 ; Restore INI data (and save on program exit) if this script is compiled ; (and the folder is writable) - uses NTFS ADS (Alternate Data Streams) If @Compiled Then _INI_UpdateDataFromExeINI() OnAutoItExitRegister("_INI_SaveDataToExeINI") EndIf ; #--------- TRAY MENU SETUP --------------# ;TraySetClick(9) ; 9 is Default (left or right mouse-click) TrayCreateItem("Rounded-Rect Spotlight", -1, -1, 1) TrayItemSetOnEvent(-1, "_RoundRectSpotlight_TEvt") If $g_nSpotlightStyle = 1 Then TrayItemSetState(-1, 1) TrayCreateItem("Wide-Rect Spotlight", -1, -1, 1) TrayItemSetOnEvent(-1, "_WideRectSpotlight_TEvt") If $g_nSpotlightStyle = 2 Then TrayItemSetState(-1, 1) TrayCreateItem("Circle Spotlight", -1, -1, 1) TrayItemSetOnEvent(-1, "_CircleSpotlight_TEvt") If $g_nSpotlightStyle = 0 Then TrayItemSetState(-1, 1) TrayCreateItem("") $g_aSpotlightXHairSelect[0] = TrayCreateItem("Spotlight Crosshair - NONE", -1, -1, 1) $g_aSpotlightXHairSelect[1] = TrayCreateItem("Spotlight Crosshair - FULL (+)", -1, -1, 1) $g_aSpotlightXHairSelect[2] = TrayCreateItem("Spotlight Crosshair - Horizontal (-)", -1, -1, 1) $g_aSpotlightXHairSelect[3] = TrayCreateItem("Spotlight Crosshair - Vertical ( | )", -1, -1, 1) TrayItemSetState($g_aSpotlightXHairSelect[$g_nSpotlightXHairState], 1) For $i = 0 To 3 TrayItemSetOnEvent($g_aSpotlightXHairSelect[$i], "_SpotlightXHairSelect_TEvt") Next TrayCreateItem("") $g_aSpotLockDown[3] = TrayCreateItem("Lock Spotlight Position (CTRL+SHIFT+DOWN)") TrayItemSetOnEvent(-1, "_LockUnlockSpotlight") If $g_aSpotLockDown[0] Then TrayItemSetState(-1, 1) $g_ctFocusLock = TrayCreateItem("Lock Focus GUI to Window (CTRL+SHIFT+SPACE)") TrayItemSetOnEvent(-1, "_LockUnlockFocus") ; Saving Focus Lockdown windows between runs is iffy, as we obviously can't save the HWND ; We CAN save Classname, Title (not wise as titles change), and Window Styles (also can change), ; but as there can be more than 1 window of a given Class, and Titles & Windows Styles can change ; it really doesn't make much sense ;If IsHWnd($g_hFocusLockDown) Then TrayItemSetState(-1, 1) TrayCreateItem("") $g_aCursorStateSelect[0] = TrayCreateItem("Mouse Cursor - Defaults", -1, -1, 1) $g_aCursorStateSelect[1] = TrayCreateItem("Mouse Cursor - Hidden", -1, -1, 1) $g_aCursorStateSelect[2] = TrayCreateItem("Mouse Cursor - CrossHair", -1, -1, 1) TrayItemSetState($g_aCursorStateSelect[$g_nMouseCursorState + 1], 1) For $i = 0 To 2 TrayItemSetOnEvent($g_aCursorStateSelect[$i], "_MouseCursorSelect_TEvt") Next TrayItemSetOnEvent(-1, "_MouseCursorSelect_TEvt") TrayCreateItem("") TrayCreateItem("Toggle Spotlight") TrayItemSetOnEvent(-1, "_ToggleSpotlight_TEvt") If $g_bSpotlightOn Then TrayItemSetState(-1, 1) TrayCreateItem("Toggle Window-Focus") TrayItemSetOnEvent(-1, "_ToggleFocus_TEvt") If $g_bFocusOn Then TrayItemSetState(-1, 1) TrayCreateItem("") TrayCreateItem("Exit") TrayItemSetOnEvent(-1, "_Exit_TEvt") TraySetState() TraySetToolTip("Windows Spotlight GUI (click for options)") ; #----------------- X ---------------------# ; CTRL-ALT-Q Exit Hotkey HotKeySet("!^q", "_HotKeyPressed") ; CTRL-SHIFT-DOWN Lock/Release Spotlight Hotkey HotKeySet("+^{DOWN}", "_LockUnlockSpotlight") ; CTRL-SHIFT-SPACE Lock/Release Focus-Window Hotkey HotKeySet("+^{SPACE}", "_LockUnlockFocus") ; ----------------------------------------------------------------------------------------------------| ; Register Display-Mode changes to our function. ; NOTE that a GUI (*any* GUI) MUST be created or else the WM_DISPLAYCHANGE message won't be received ; UPDATE: Can't do it this way - we need to know exactly how many GUI's area active ; (hence a global count and the _GUICountChange() function. ; ----------------------------------------------------------------------------------------------------| ;GUIRegisterMsg(0x007E, "_ResolutionChanged") ; WM_DISPLAYCHANGE 0x007E ; Update GUI Count and register Rez-Chg message if any active _GUICountChange() ; Cursor State ;~ If $g_nMouseCursorState < 0 Then ; Normal Cursors ;Else If $g_nMouseCursorState = 0 Then _MouseHideAllCursors() Else _MouseReplaceAllCursors(True) EndIf ; Setup mouse cursor restore function on exit (regarldess of setting): OnAutoItExitRegister("_MouseRestoreAllCursors") ; Not necessary, but can free some memory by flushing data to disk DllCall("psapi.dll", "bool", "EmptyWorkingSet", "handle", -1) Local $iRezChg = 0, $hTopMostWnd = 0 ; Main loop While 1 If $g_bHKPressed Then ExitLoop ; Exit on 'ESC' keypress (BitAND() test for down-state) ;If BitAND(_WinAPI_GetAsyncKeyState(0x1B), 0x8000) Then ExitLoop ; Reset RezChg Message to be sent $iRezChg = 0 ; Rez change? Update metrics if necessary amount of Rez-Change Messages received (1 per GUI) If $g_iResolutionChangeMsg And $g_iResolutionChangeMsg = $g_nActiveGUICount Then ConsoleWrite("Main Loop WM_DISPLAYCHANGE detected, $g_iResolutionChangeMsg = " & $g_iResolutionChangeMsg & @LF) _VirtualScreenSizeUpdate() $g_iResolutionChangeMsg = 0 $iRezChg = 1 EndIf ; Mouse/Keyboard-Cursor Spotlight GUI Active? ; *Note: Call this FIRST as it gets the current Mouse position* If $g_bSpotlightOn Then _SpotlightGUIUpdate($iRezChg) EndIf ; Window-Focus GUI active? If $g_bFocusOn Then _FocusGUIUpdate($iRezChg) EndIf ; Check the topmost status and reset our GUI's if necessary ; This was taken out of main Update loops, as there can be a bit of flashing when moving windows $hTopMostWnd = _WinAPI_GetTopWindow(0) If $g_hSpotlightGUI <> $hTopMostWnd And $g_hFocusGUI <> $hTopMostWnd Then ;ConsoleWrite("WinOnTop hWnd = " & $hTopMostWnd & ", Title = " & WinGetTitle($hTopMostWnd) & @LF) If $g_bSpotlightOn Then WinSetOnTop($g_hSpotlightGUI, "", 1) If $g_bFocusOn Then WinSetOnTop($g_hFocusGUI, "", 1) EndIf Sleep(20) WEnd ; Unregister Display Mode change function ;GUIRegisterMsg(0x007E, "") ; WM_DISPLAYCHANGE 0x007E ; And restore all system cursors back to normal (called automatically via OnAutoItExitRegister) ;_MouseRestoreAllCursors() EndFunc #EndRegion MAIN_CODE ; /**************************************************************************************************/ ; ############################################### #Region MISC_FUNCTIONS ; _GUICountChange() -> adjust counts and set/unset DisplayChange Messages Func _GUICountChange() Local $iTotalActiveGUIs = 0 ; Maximum 2 GUI's If $g_bFocusOn Then $iTotalActiveGUIs += 1 If $g_bSpotlightOn Then $iTotalActiveGUIs += 1 If $iTotalActiveGUIs = 0 Then ; Was there previously GUI's active? If $g_nActiveGUICount Then ; UnRegister Rez-Chg message GUIRegisterMsg(0x007E, "") ; WM_DISPLAYCHANGE 0x007E ConsoleWrite("0 GUI's active, WM_DISPLAYCHANGE unregistered" & @LF) EndIf Else ; Were no GUI's active previously? If $g_nActiveGUICount = 0 Then ; Register Rez-Chg message GUIRegisterMsg(0x007E, "_ResolutionChanged") ; WM_DISPLAYCHANGE 0x007E ConsoleWrite($iTotalActiveGUIs & " GUI's active, WM_DISPLAYCHANGE registered" & @LF) EndIf WinSetTrans($g_hFocusGUI, "", $g_bSpotlightOn ? ($nFocusTransparency / 2) : $nFocusTransparency) WinSetTrans($g_hSpotlightGUI, "", $g_bFocusOn ? ($nSpotlightTransparency / 2) : $nSpotlightTransparency) EndIf ; Update global count now that we've compared states $g_nActiveGUICount = $iTotalActiveGUIs EndFunc Func _VirtualScreenSizeUpdate() ; Set up VScreen Coords: 0, 1 = Upper Left X, Y (CAN be negative!!!), 2, 3 = Virtual Width, Height ; SM_XVIRTUALSCREEN = 76, SM_YVIRTUALSCREEN = 77, SM_CXVIRTUALSCREEN = 78, SM_CYVIRTUALSCREEN = 79 Dim $g_aVScrRect[4] = [_WinAPI_GetSystemMetrics(76), _WinAPI_GetSystemMetrics(77), _WinAPI_GetSystemMetrics(78), _WinAPI_GetSystemMetrics(79)] If $g_aVScrRect[2] = 0 Then $g_aVScrRect[2] = @DesktopWidth If $g_aVScrRect[3] = 0 Then $g_aVScrRect[3] = @DesktopHeight ConsoleWrite("VirtualScreen X: " & $g_aVScrRect[0] & ", Y: " & $g_aVScrRect[1] & ", Width = " & $g_aVScrRect[2] & ", Height = " & $g_aVScrRect[3] & @LF) ; Alternative Way to get Virtual Screen Width/Height: CreateDC with 'DISPLAY', GetDeviceCape(8) [HORZRES] and (10) [VERTRES], DeleteDC() EndFunc #EndRegion MISC_FUNCTIONS ; ############################################### ; ############################################### #Region HOTKEY_FUNCTIONS Func _HotKeyPressed() ; CTRL-ALT-Q Key Pressed: $g_bHKPressed = True EndFunc ;==>_HotKeyPressed Func _LockUnlockSpotlight() ; Off? Turn Lockdown on then If Not $g_aSpotLockDown[0] Then Local $aMousePos = MouseGetPos() $g_aSpotLockDown[1] = $aMousePos[0] $g_aSpotLockDown[2] = $aMousePos[1] TrayItemSetState($g_aSpotLockDown[3], 1) Else TrayItemSetState($g_aSpotLockDown[3], 4) EndIf $g_aSpotLockDown[0] = Not $g_aSpotLockDown[0] ;ConsoleWrite("Lock/Unlock Spotlight Hotkey Pressed (or Menu item selected)" & @LF) EndFunc Func _LockUnlockFocus() ; Off? Turn Lockdown on then If $g_hFocusLockDown <= 0 Then ; Set the active window even when Focus window isn't on If Not $g_bFocusOn Then $g_hLastActiveWin = WinGetHandle("[ACTIVE]") $g_hFocusLockDown = $g_hLastActiveWin TrayItemSetState($g_ctFocusLock, 1) Else $g_hFocusLockDown = -1 ;$g_hLastActiveWin = -1 TrayItemSetState($g_ctFocusLock, 4) EndIf ;ConsoleWrite("Lock/Unlock Focus GUI Hotkey pressed" & @LF) EndFunc #EndRegion HOTKEY_FUNCTIONS ; ############################################### ; ############################################### #Region WINDOWS_MESSAGE_HANDLER_FUNCTIONS ; ==================================================================================================== ; Func _ResolutionChanged($hWnd,$iMsg,$wParam,$lParam) ; ; Note this registers multiple-monitor settings changes too, but will only report on the primary monitor's resolution ; This is why we would need to call _WinAPI_GetSystemMetrics() to get the Virtual width/height ; ==================================================================================================== Func _ResolutionChanged($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam, $lParam ; Apparently under certain circumstances, we can receive more messages than GUI's!! If $g_iResolutionChangeMsg < $g_nActiveGUICount Then $g_iResolutionChangeMsg += 1 ;~ ConsoleWrite("_ResolutionChanged msg recieved, $g_iResolutionChangeMsg = " & $g_iResolutionChangeMsg & @LF) Return 'GUI_RUNDEFMSG' ; From <GUIConstantsEx.au3> Global Const $GUI_RUNDEFMSG = 'GUI_RUNDEFMSG' EndFunc ;==>_ResolutionChanged #EndRegion WINDOWS_MESSAGE_HANDLER_FUNCTIONS ; ############################################### ; ############################################### #Region TRAY_EVENT_HANDLER_FUNCS Func _RoundRectSpotlight_TEvt() If $g_nSpotlightStyle <> 1 Then $g_nSpotlightStyle = 1 If $g_bSpotlightOn Then _SpotlightGUIUpdate(1) EndIf EndFunc Func _WideRectSpotlight_TEvt() If $g_nSpotlightStyle <> 2 Then $g_nSpotlightStyle = 2 If $g_bSpotlightOn Then _SpotlightGUIUpdate(1) EndIf EndFunc Func _CircleSpotlight_TEvt() If $g_nSpotlightStyle Then $g_nSpotlightStyle = 0 If $g_bSpotlightOn Then _SpotlightGUIUpdate(1) EndIf EndFunc Func _MouseCursorSelect_TEvt() Switch @TRAY_ID Case $g_aCursorStateSelect[0] $g_nMouseCursorState = -1 _MouseRestoreAllCursors() Case $g_aCursorStateSelect[1] $g_nMouseCursorState = 0 _MouseHideAllCursors() Case $g_aCursorStateSelect[2] $g_nMouseCursorState = 1 _MouseReplaceAllCursors(True) EndSwitch ; This will remain in effect regardless of Mouse Cursor state (harmless): ;OnAutoItExitRegister("_MouseRestoreAllCursors") EndFunc Func _SpotlightXHairSelect_TEvt() Local $nPrevState = $g_nSpotlightXHairState Switch @TRAY_ID Case $g_aSpotlightXHairSelect[0] ; NO X-Hair Spotlight $g_nSpotlightXHairState = 0 Case $g_aSpotlightXHairSelect[1] ; FULL X-Hair Spotlight $g_nSpotlightXHairState = 1 Case $g_aSpotlightXHairSelect[2] ; Horizontal X-Hair Spotlight $g_nSpotlightXHairState = 2 Case $g_aSpotlightXHairSelect[3] ; Vertical X-Hair Spotlight $g_nSpotlightXHairState = 3 EndSwitch If $nPrevState <> $g_nSpotlightXHairState And $g_bSpotlightOn Then GUIDelete($g_hSpotlightGUI) ; Force re-initialization $g_hSpotlightGUI = 0 ; For the sake of sanity, adjust mouse cursors based on FULL/No X-Hair toggles ; If SpotlightXHairState is now disabled, and all Mouse Cursors are currently hidden, reenable at least the crosshair cursor If $g_nSpotlightXHairState = 0 And $g_nMouseCursorState = 0 Then ConsoleWrite("X-HAIR - MOUSE SANITY: Spotlight XHair Turned OFF, Mouse Cursors Hidden! ACTION: Enabling Crosshair cursors" & @LF) $g_nMouseCursorState = 1 _MouseReplaceAllCursors(True) TrayItemSetState($g_aCursorStateSelect[0], 4) TrayItemSetState($g_aCursorStateSelect[1], 4) TrayItemSetState($g_aCursorStateSelect[2], 1) ; If SpotlightXHairState is now fully enabled, and Mouse Cursors are currently the Crosshair cursor, choose to hide all cursors ElseIf $g_nSpotlightXHairState = 1 And $g_nMouseCursorState = 1 Then ConsoleWrite("X-HAIR - MOUSE SANITY: Spotlight XHair Turned FULLY ON, Mouse Cursors CrossHair is Active! ACTION: Disabling Crosshair cursors.. too presumptive?" & @LF) $g_nMouseCursorState = 0 _MouseHideAllCursors() TrayItemSetState($g_aCursorStateSelect[1], 1) TrayItemSetState($g_aCursorStateSelect[0], 4) TrayItemSetState($g_aCursorStateSelect[2], 4) EndIf _SpotlightGUIUpdate() EndIf EndFunc Func _ToggleSpotlight_TEvt() If $g_bSpotlightOn Then GUIDelete($g_hSpotlightGUI) ; Force re-initialization next time $g_hSpotlightGUI = 0 ; For the sake of sanity, adjust mouse cursors based on FULL/No X-Hair toggles ; If SpotlightXHairState was on, but now the GUI is disabled, and if all Mouse Cursors are currently hidden, reenable at least the crosshair cursor If $g_nSpotlightXHairState And $g_nMouseCursorState = 0 Then ConsoleWrite("X-HAIR - MOUSE SANITY: Spotlight GUI being turned OFF, Mouse Cursors Hidden! ACTION: Enabling Crosshair cursors" & @LF) $g_nMouseCursorState = 1 _MouseReplaceAllCursors(True) TrayItemSetState($g_aCursorStateSelect[0], 4) TrayItemSetState($g_aCursorStateSelect[1], 4) TrayItemSetState($g_aCursorStateSelect[2], 1) EndIf Else _SpotlightGUIUpdate() EndIf $g_bSpotlightOn = Not $g_bSpotlightOn ; Update GUI Counts, and Rez-Chg handler if necessary _GUICountChange() EndFunc Func _ToggleFocus_TEvt() If $g_bFocusOn Then GUIDelete($g_hFocusGUI) ; Force re-initialization next time $g_hFocusGUI = 0 ; Prevent sticky situations where transitions are confused with GUI re-init's $g_nTransitions = 0 Else _FocusGUIUpdate() EndIf $g_bFocusOn = Not $g_bFocusOn ; Update GUI Counts, and Rez-Chg handler if necessary _GUICountChange() EndFunc Func _Exit_TEvt() Exit EndFunc #EndRegion TRAY_EVENT_HANDLER_FUNCS ; ############################################### ; ############################################### #Region INI_IN_EXE_FUNCS ; ================================================================================================================= ; Func _INI_SaveDataToExeINI() ; ; Writes settings to NTFS ADS Stream INI file (NTFS file systems only) ; NOTE: Write access to folder is required (I think this type of write is the same as regular file access) ; ; Author: Ascend4nt, based nullschritt's 'Save INI data to exe' functions ; ================================================================================================================= Func _INI_SaveDataToExeINI() ;If 1 Then If @Compiled Then Local $sNTFS_ADS_File = @ScriptFullPath&':'&"INI_DATA" ;IniWrite($sNTFS_ADS_File, "Settings", "SpotlightStyle", $g_nSpotlightStyle) ; Build array (Number casts for True->1 and False->0 conversions) Local $aINISettingsOut[6][2] = [ [5, 0], _ ["FocusOn", Number($g_bFocusOn)], ["SpotlightOn", Number($g_bSpotlightOn)], ["SpotlightStyle", Number($g_nSpotlightStyle)], _ ["MouseCursorsState", Number($g_nMouseCursorState)], ["SpotlightXHairState", Number($g_nSpotlightXHairState)] ] ; Prevent unnecessary write by comparing IN settings vs OUT settings: Local $bSame = False ; Both arrays, both equal element counts? If IsArray($g_aINISettings) And $g_aINISettings[0][0] = $aINISettingsOut[0][0] Then Local $iMatches = 0 For $i = 1 To $aINISettingsOut[0][0] If $g_aINISettings[$i][0] = $aINISettingsOut[$i][0] And _ $g_aINISettings[$i][1] = $aINISettingsOut[$i][1] Then $iMatches += 1 Next If $iMatches = $aINISettingsOut[0][0] Then $bSame = True EndIf If Not $bSame Then ;ConsoleWrite("Determined settings have changed! Writing INI data.." & @CRLF) IniWriteSection($sNTFS_ADS_File, "Settings", $aINISettingsOut) EndIf EndIf EndFunc ; ================================================================================================================= ; Func _INI_UpdateDataFromExeINI() ; ; Reads settings from NTFS ADS Stream INI file (NTFS file systems only) ; ; Author: Ascend4nt, based nullschritt's 'Save INI data to exe' functions ; ================================================================================================================= Func _INI_UpdateDataFromExeINI() ;If 1 Then If @Compiled Then Local $sNTFS_ADS_File = @ScriptFullPath&':'&"INI_DATA" If FileExists($sNTFS_ADS_File) Then ;$g_nSpotlightStyle = IniRead($sNTFS_ADS_File, "Settings", "SpotlightStyle", 1) $g_aINISettings = IniReadSection($sNTFS_ADS_File, "Settings") If @error Or $g_aINISettings[0][0] < 5 Then $g_aINISettings = 0 Return Else ;ConsoleWrite("FocusOn Key = " & $g_aINISettings[1][0] & ", value = " & $g_aINISettings[1][1] & @LF) $g_bFocusOn = Number($g_aINISettings[1][1]) ;ConsoleWrite("Spotlight Key = " & $g_aINISettings[2][0] & ", value = " & $g_aINISettings[2][1] & @LF) $g_bSpotlightOn = Number($g_aINISettings[2][1]) $g_nSpotlightStyle = Abs(Number($g_aINISettings[3][1])) ; 0 = Circle, 1 = Rounded Rect, 2 = Wide Rect ; Sanity Check If $g_nSpotlightStyle > 2 Then $g_nSpotlightStyle = 2 $g_nMouseCursorState = Number($g_aINISettings[4][1]) ; Sanity Check If $g_nMouseCursorState < 0 Then $g_nMouseCursorState = -1 ElseIf $g_nMouseCursorState > 0 Then $g_nMouseCursorState = 1 EndIf $g_nSpotlightXHairState = Abs(Number($g_aINISettings[5][1])) ; Sanity Check If $g_nSpotlightXHairState > 3 Then $g_nSpotlightXHairState = 0 EndIf EndIf EndIf EndFunc #Region INI_IN_EXE_FUNCS ; ############################################### ; ############################################### #Region SPOTLIGHT_FUNCTIONS ; ================================================================================================================= ; Func _SpotlightGUIUpdate($bForceRecreate = False) ; ; Author: Ascend4nt ; ================================================================================================================= Func _SpotlightGUIUpdate($bForceRecreate = False) If Not $g_bSpotlightOn Then Return ; Keep all data local Local Static $aLastMousePos = 0, $aMousePos = 0 ; Need this Global so we can delete the GUI outside of function ;Local Static $hSpotlightGUI = 0 If $g_aSpotLockDown[0] Then $aMousePos[0] = $g_aSpotLockDown[1] $aMousePos[1] = $g_aSpotLockDown[2] Else $aMousePos = MouseGetPos() EndIf ; Initializing? Or Force-Recreate Flag set (possibly Resolution Change)? If $g_hSpotlightGUI = 0 Or $bForceRecreate Then ConsoleWrite("Recreating GUI, $g_hSpotlightGUI = " & $g_hSpotlightGUI & ", $bForceRecreate = " & $bForceRecreate & @LF) ;$aMousePos = MouseGetPos() $aLastMousePos = $aMousePos ; Extra precaution for corner cases where GUI's might activate after a Display Change while no WM_DISPLAYCHANGE handler was in effect _VirtualScreenSizeUpdate() _SpotlightGUIRecreate($aMousePos) ; If we rebuilt the GUI, no need to check for changes in position Else ; Movement? If $aMousePos[0] <> $aLastMousePos[0] Or $aMousePos[1] <> $aLastMousePos[1] Then ;ConsoleWrite("<>") WinMove($g_hSpotlightGUI, "", $aMousePos[0] - $g_aVScrRect[2] + 1, $aMousePos[1] - $g_aVScrRect[3] + 1) ; (Topmost check in main loop as there can be flashing with other GUI's fighting for topmost status) ;WinSetOnTop($g_hSpotlightGUI, "", 1) $aLastMousePos = $aMousePos #cs ;~ Else ; Otherwise lets check the topmost status and adjust if necessary ; (Logic moved to main loop as there can be flashing with other GUI's fighting for topmost status) ;~ Local $hWnd = _WinAPI_GetTopWindow(0) ;~ If $g_hSpotlightGUI <> $hWnd Then ;~ ;ConsoleWrite("WinOnTop hWnd = " & $hWnd & ", Title = " & WinGetTitle($hWnd) & @LF) ;~ WinSetOnTop($g_hSpotlightGUI, "", 1) ;~ EndIf #ce EndIf EndIf EndFunc ; ================================================================================================================= ; Func _SpotlightGUIRecreate($aMousePos) ; ; Author: Ascend4nt ; ================================================================================================================= Func _SpotlightGUIRecreate($aMousePos) If $g_hSpotlightGUI Then GUIDelete($g_hSpotlightGUI) Local $iWidth, $iHeight ; Spotlight Style 0 = Circle, 1 = Round-REct, 2 = Wide-Rect. [Hmm.. Wide Circle?] If $g_nSpotlightStyle Then If $g_nSpotlightStyle = 1 Then $iWidth = $nSpotlightSqDiameter $iHeight = $nSpotlightSqDiameter Else $iWidth = $nSpotlightRectWidth $iHeight = $nSpotlightRectHeight EndIf Else $iWidth = $nSpotlightDiameter $iHeight = $iWidth EndIf ; If even width/height, add 1 so that boxes align to mouse cursor ; ( width of 2 would result in 1 pixel on mouse position, 1 off. otherwise an odd # would mean 2 outside, 1 on) $iWidth += BitXOR(BitAND($iWidth, 1), 1) $iHeight += BitXOR(BitAND($iHeight, 1), 1) $g_hSpotlightGUI = _GUIShapeCreateHolePunchGUI($aMousePos[0] - $g_aVScrRect[2] + 1, $aMousePos[1] - $g_aVScrRect[3] + 1, _ $g_aVScrRect[2] * 2 +1, $iWidth, $g_aVScrRect[3] * 2 +1, $nShadeColor, $iHeight) WinSetTrans($g_hSpotlightGUI, "", $g_bFocusOn ? ($nSpotlightTransparency / 2) : $nSpotlightTransparency) ;xx nvm Careful: We don't want to compete with a Focus-Window GUI ;xx If Not $g_bFocusOn Then WinSetOnTop($g_hSpotlightGUI, "", 1) ;GUISetState(@SW_SHOWNOACTIVATE, $g_hSpotlightGUI) WinSetState($g_hSpotlightGUI, "", @SW_SHOWNOACTIVATE) Return EndFunc ;==>_SpotlightGUIRecreate ; ================================================================================================================= ; Func _GUIShapeCreateHolePunchGUI($iX, $iY, $iBoxSzX, $iHoleXDiameter, $iBoxSzY = Default, $iBkColor = Default, ; $iHoleYDiameter = Default) ; ; Author: Ascend4nt ; ================================================================================================================= Func _GUIShapeCreateHolePunchGUI($iX, $iY, $iBoxSzX, $iHoleXDiameter, $iBoxSzY = Default, $iBkColor = Default, $iHoleYDiameter = Default) Local $hGUI, $hRectRgn = 0, $hEllipseHollowRgn = 0, $hXLineRgn = 0, $iErrFlag = 0 If $iBoxSzY = Default Then $iBoxSzY = $iBoxSzX If $iHoleYDiameter = Default Then $iHoleYDiameter = $iHoleXDiameter If $iHoleXDiameter < 0 Or $iHoleXDiameter > $iBoxSzX Then $iHoleXDiameter = 0 If $iHoleYDiameter < 0 Or $iHoleYDiameter > $iBoxSzY Then $iHoleYDiameter = 0 ; Styles: Basic: WS_POPUP (0x80000000), Extended: WS_EX_NOACTIVATE 0x08000000. ; $WS_EX_TOOLWINDOW (0x80) + $WS_EX_TRANSPARENT (click-through) $hGUI = GUICreate("", $iBoxSzX, $iBoxSzY, $iX, $iY, 0x80000000, 0x08000080 + 0x20) If @error Then Return SetError(1, @error, 0) Do If $iHoleXDiameter Or $iHoleYDiameter Then Local $iHoleXRadius = Int($iHoleXDiameter / 2), $iHoleYRadius = Int($iHoleYDiameter / 2) Local $iBoxHalfX = Int($iBoxSzX / 2), $iBoxHalfY = Int($iBoxSzY / 2) $iErrFlag = 10 ; Basic region (full extent of GUI) - needed for combining with Hollow region below $hRectRgn = _WinAPI_CreateRectRgn(0, 0, $iBoxSzX, $iBoxSzY) If $hRectRgn = 0 Then ExitLoop ; Ellipse_Region Start ; Spotlight Style of 0 = Circle If $g_nSpotlightStyle = 0 Then ; Create the Hollow interior region $hEllipseHollowRgn = _WinAPI_CreateEllipticRgn( _ _WinAPI_CreateRect($iBoxHalfX - $iHoleXRadius, $iBoxHalfY - $iHoleYRadius, $iBoxHalfX + $iHoleXRadius, $iBoxHalfY + $iHoleYRadius)) ; Spotlight Style non-zero is RoundRect. Could do more.. perhaps a Complex Region is best in the end Else ; MSDN: "Regions created by the Create<shape>Rgn methods (such as CreateRectRgn and CreatePolygonRgn) ; only include the interior of the shape; the shape's outline is excluded from the region" ; In practice: The uppermost and leftmost lines are not included, so 1 must be subtracted from both params to include the full rectangle $hEllipseHollowRgn = _WinAPI_CreateRoundRectRgn($iBoxHalfX - $iHoleXRadius - 1, $iBoxHalfY - $iHoleYRadius - 1, _ $iBoxHalfX + $iHoleXRadius, $iBoxHalfY + $iHoleYRadius, $nRoundRectCornerWidth, $nRoundRectCornerWidth) EndIf $iErrFlag += 1 If $hEllipseHollowRgn = 0 Then ExitLoop ; Ellipse_Region END ; CrossHairs_Region Start If $g_nSpotlightXHairState Then Local $iArrSt = 0, $iArrEnd = 3 Local $iXHairHollowRadius = Int($nSpotlightXHairDiameter / 2) Local $aXHairSides[4][4] = [ _ ; Upper side of X-Hair ( | ) [$iBoxHalfX - 1, $iBoxHalfY - $iHoleYRadius, $iBoxHalfX + 1, $iBoxHalfY - $iXHairHollowRadius], _ ; ( o ) [$iBoxHalfX - 1, $iBoxHalfY + $iXHairHollowRadius, $iBoxHalfX + 1, $iBoxHalfY + $iHoleYRadius - 1], _ ; Bottom side of X-Hair ( | ) [$iBoxHalfX - $iHoleXRadius, $iBoxHalfY - 1 + $nSpotlightXHairYOffset, _ $iBoxHalfX - $iXHairHollowRadius, $iBoxHalfY + 1 + $nSpotlightXHairYOffset], _ ; Left side of X-Hair (--o ) [$iBoxHalfX + $iXHairHollowRadius, $iBoxHalfY - 1 + $nSpotlightXHairYOffset, _ $iBoxHalfX + $iHoleXRadius - 1, $iBoxHalfY + 1 + $nSpotlightXHairYOffset] ] ; Right side of X-Hair ( o--) ; One-dimensional XHairs.. (1 = FULL, 2 = Horizontal, 3 = Vertical) If $g_nSpotlightXHairState = 2 Then $iArrSt = 2 ; $iArrEnd = 3 ElseIf $g_nSpotlightXHairState = 3 Then $iArrEnd = 1 ; $iArrSt = 0 EndIf For $i = $iArrSt To $iArrEnd ; MSDN: "Regions created by the Create<shape>Rgn methods (such as CreateRectRgn and CreatePolygonRgn) ; only include the interior of the shape; the shape's outline is excluded from the region" ; In practice: The uppermost and leftmost lines are not included, so 1 must be subtracted from both params to include the full rectangle $hXLineRgn = _WinAPI_CreateRectRgn($aXHairSides[$i][0] - 1, $aXHairSides[$i][1] - 1, $aXHairSides[$i][2], $aXHairSides[$i][3]) $iErrFlag += 1 If $hXLineRgn = 0 Then ExitLoop ;ConsoleWrite("XHair Region #"&$i&" X1: " & $aXHairSides[$i][0] & ", Y1: " & $aXHairSides[$i][1] & ", X2: " & $aXHairSides[$i][2] & ", Y2: " & $aXHairSides[$i][3] & @LF) $iErrFlag += 1 ; With the Ellipse Region, we can use either RGN_XOR or RGN_DIFF as we are 'removing' parts of the circle ; (RGN_AND = 1, RGN_OR = 2, RGN_XOR = 3, RGN_DIFF = 4, RGN_COPY = 5) If Not _WinAPI_CombineRgn($hEllipseHollowRgn, $hEllipseHollowRgn, $hXLineRgn, 4) Then ExitLoop 2 ; Exit out of For..Next AND Do..Until loop ; CombineRgn() Returns: 0 = ERROR, 1 = NULLREGION, 2 = SIMPLEREGION, 3 = COMPLEXREGION ; Don't need this Region after combined with the $hEllipseHollowRgn _WinAPI_DeleteObject($hXLineRgn) $hXLineRgn = 0 ; Primarily debug, as DeleteObject prior to function return (on error) will ignore both Next EndIf ; CrossHairs_Region END $iErrFlag = 20 ; Combine, put resulting region in $hRectRgn. RGN_DIFF = 4 If Not _WinAPI_CombineRgn($hRectRgn, $hRectRgn, $hEllipseHollowRgn, 4) Then ExitLoop ; Don't need this anymore (already combined with the Region injected into the GUI) _WinAPI_DeleteObject($hEllipseHollowRgn) $hEllipseHollowRgn = 0 ; Primarily debug, as DeleteObject prior to function return (on error) will ignore both $iErrFlag += 1 ; Set the region into the GUI. (GUI will then own it so there's no need to delete it) If Not _WinAPI_SetWindowRgn($hGUI, $hRectRgn, True) Then ExitLoop EndIf If $iBkColor <> Default Then GUISetBkColor($iBkColor) Return $hGUI ; If we wer to drop through, we'd need a clear ErrFlag count: ;$iErrFlag = 0 Until 1 ; Cleanup GUIDelete($hGUI) _WinAPI_DeleteObject($hRectRgn) _WinAPI_DeleteObject($hXLineRgn) _WinAPI_DeleteObject($hEllipseHollowRgn) Return SetError($iErrFlag, 0, 0) EndFunc ;==>_GUIShapeCreateHolePunchGUI #EndRegion SPOTLIGHT_FUNCTIONS ; ############################################### ; ############################################### #Region FOCUS_GUI_FUNCTIONS ; ================================================================================================================= ; Func _FocusGUIUpdate($iRezChgForce = 0) ; ; Author: Ascend4nt ; ================================================================================================================= Func _FocusGUIUpdate($iRezChgForce = 0) If Not $g_bFocusOn Then Return Local Const $TRANSITION_MAX = 100 ; Keep as much data local as possible (turning out to be tricky now!) Local Static $aLastWinPos = 0 ; Need this Global so that Lockdown can be used ; Local Static $hLastActiveWin = 0 ; Need this Global so it can be reset when GUI is deleted: ;Local Static $nTransitions = 0 ; Need this Global so we can delete it outside of this function ;Local Static $hFocusGUI = 0 Local $aActiveWinPos = 0, $hActiveWin = 0 Local $hTempGUIHandle = 0 ; Max-Transitions Exceeded? We don't want to continually eat up Windows RAM with Window Regions, ; so now and then we must purge the GUI and create a new one. This creates a temporary darkening effect now and then. ; (There's no known workaround for the Region bug - previous ones should be freed with each 'SetWindowRgn', but they aren't) If $g_nTransitions > $TRANSITION_MAX Then $g_nTransitions = $TRANSITION_MAX ; safety measure (issue with recreation & $nTransitions colliding) $hTempGUIHandle = $g_hFocusGUI $g_hFocusGUI = 0 EndIf ; Initializing? If $g_hFocusGUI = 0 Then ; Extra precaution for corner cases where GUI's might activate after a Display Change while no WM_DISPLAYCHANGE handler was in effect _VirtualScreenSizeUpdate() ; ----------------------------------------------------------------------------------------------------| ; Focus Window: Set off-screen 1st so when it finally is moved on-screen, it gives a nicer effect, ; as if lights are being shut off 1 by 1. ; ----------------------------------------------------------------------------------------------------| $g_hFocusGUI = GUICreate("", $g_aVScrRect[2], $g_aVScrRect[3], $g_aVScrRect[0] + $g_aVScrRect[2]-1, $g_aVScrRect[1] + $g_aVScrRect[3]-1, 0x80000000,0x08000080 + 0x20) WinSetTrans($g_hFocusGUI, "", $g_bSpotlightOn ? ($nFocusTransparency / 2): $nFocusTransparency) WinSetOnTop($g_hFocusGUI, "", 1) GUISetBkColor(0) $g_hLastActiveWin = WinGetHandle("[ACTIVE]") $hActiveWin = $g_hLastActiveWin $aActiveWinPos = WinGetPos($hActiveWin) $aLastWinPos = $aActiveWinPos ; Move focus-window's 'hole' to/with active window _GuiHole($g_hFocusGUI, $aActiveWinPos[0] - $g_aVScrRect[0], $aActiveWinPos[1] - $g_aVScrRect[1], $aActiveWinPos[2], $aActiveWinPos[3]) ; Now move and show it (this move AFTER the gui 'hole' has been set causes less disruption) WinMove($g_hFocusGUI, "", $g_aVScrRect[0], $g_aVScrRect[1]) WinSetState($g_hFocusGUI, "", @SW_SHOWNOACTIVATE) If $g_nTransitions = $TRANSITION_MAX Then ConsoleWrite("Transition count exceeded, recreating GUI.." & @LF) GUIDelete($hTempGUIHandle) EndIf ; Reset in both cases $g_nTransitions = 0 ; Don't fall-through Return EndIf ; Adjust if screen resized ;If $g_iResolutionChangeMsg Or $iRezChgForce Then If $iRezChgForce Then ConsoleWrite("Resolution changed, resizing window"&@LF) WinMove($g_hFocusGUI, "", $g_aVScrRect[0], $g_aVScrRect[1], $g_aVScrRect[2], $g_aVScrRect[3]) ;WinMove($g_hFocusGUI, "", Default, Default, $g_aVScrRect[0] + $g_aVScrRect[2], $g_aVScrRect[1] + $g_aVScrRect[3]) ; Force _GuiHole call (down below) $g_hLastActiveWin = -1 ;$g_iResolutionChangeMsg = 0 ; old behavior EndIf ; Active Window changing? (Lockdown skips this test, unless the Window no longer exists) If $g_hFocusLockDown <= 0 Or Not WinExists($g_hFocusLockDown) Then $hActiveWin = WinGetHandle("[ACTIVE]") Else $hActiveWin = $g_hFocusLockDown EndIf $aActiveWinPos = WinGetPos($hActiveWin) ; Workaround for certain scenarios where position isn't able to be retrieved If @error Then $aActiveWinPos = $aLastWinPos $hActiveWin = $g_hLastActiveWin ; Different active window, or different size/position? ElseIf ($hActiveWin <> $g_hLastActiveWin) Or ($aActiveWinPos[0] <> $aLastWinPos[0] Or $aActiveWinPos[1] <> $aLastWinPos[1] Or _ $aActiveWinPos[2] <> $aLastWinPos[2] Or $aActiveWinPos[3] <> $aLastWinPos[3]) Then ;ConsoleWrite("New active window or position: Win:"&WinGetTitle($hActiveWin)&@CRLF) $g_nTransitions += 1 ;_GuiHole($g_hFocusGUI, $aActiveWinPos[0], $aActiveWinPos[1], $aActiveWinPos[2], $aActiveWinPos[3]) _GuiHole($g_hFocusGUI, $aActiveWinPos[0] - $g_aVScrRect[0], $aActiveWinPos[1] - $g_aVScrRect[1], $aActiveWinPos[2], $aActiveWinPos[3]) ; Reset as Topmost GUI (Logic taken to main loop; otherwise causes flashing when competing for topmost GUI) ;WinSetOnTop($g_hFocusGUI, "", 1) $g_hLastActiveWin = $hActiveWin $aLastWinPos = $aActiveWinPos EndIf EndFunc ; =============================================================================================================================== ; Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh) ; ; Places an empty 'see-through' region inside a GUI, hence 'gui hole' ; ; Author: KaFu, Ascend4nt (error handling, cleanup, API call fixes) ; =============================================================================================================================== Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh) Local $pos, $set_rgn, $inner_rgn $pos = WinGetPos($h_win) If @error Then Return SetError(1,@error,0) $set_rgn = DllCall($g_hGDI32DLL, "handle", "CreateRectRgn", "long", 0, "long", 0, "long", $pos[2], "long", $pos[3]) If @error Then Return SetError(2,@error,0) $inner_rgn = DllCall($g_hGDI32DLL, "handle", "CreateRectRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh) If @error Then DllCall($g_hGDI32DLL, "bool", "DeleteObject", "handle", $set_rgn[0]) Return SetError(2, @error, 0) EndIf ; Unnecessary: ;~ $combined_rgn = DllCall($g_hGDI32DLL, "handle", "CreateRectRgn", "long", 0, "long", 0, "long", 0, "long", 0) ; $RGN_DIFF = 4 DllCall($g_hGDI32DLL, "long", "CombineRgn", "handle", $set_rgn[0], "handle", $set_rgn[0], "handle", $inner_rgn[0], "int", 4) ; Inner Region no longer required once combined with another region DllCall($g_hGDI32DLL, "bool", "DeleteObject", "handle", $inner_rgn[0]) ; After Set, a Region should not be deleted (so we don't touch $set_rgn after) DllCall($g_hUSER32DLL, "long", "SetWindowRgn", "hwnd", $h_win, "handle", $set_rgn[0], "bool", 1) Return 1 EndFunc ;==>_GuiHole #EndRegion FOCUS_GUI_FUNCTIONS ; ############################################### ; ############################################### #Region MOUSE_FUNCTIONS_PARTIAL_UDF ; ==================================================================================================== ; Func _MouseReplaceAllCursors($bDontReplaceResizeCursors = False) ; ; Replaces all cursors with a crosshair cursor (or X style cursor). ; ; ; AND mask XOR mask Display ; --------|-----------|--------- ; 0 0 Black ; 0 1 White ; 1 0 Screen ; 1 1 Reverse screen ; --------|-----------|--------- ; ; Author: Ascend4nt ; ==================================================================================================== Func _MouseReplaceAllCursors($bDontReplaceResizeCursors = False, $bUseXHairCross = True) If $MCF_bCursorsReplaced = 1 Then Return True ; Had a different type of Cursor Replacement? Restore first! If $MCF_bCursorsReplaced Then _MouseRestoreAllCursors() Local $i, $iErrCount = 0, $hCrossHair, $hTempCopy, $stCursor, $aRet Local $iCursorsToReplace = UBound($MCF_aSysCursors) - 1 If $bDontReplaceResizeCursors Then $iCursorsToReplace -= 5 EndIf ; Lets make a 32x32 cursor [1bpp] (32/8=4*32=128) $stCursor = DllStructCreate("ubyte[128];ubyte[128]") ; 32x32 cursor - each bit corresponds to a pixel (4 pixels per hex #) DllStructSetData($stCursor, 1, "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") If $bUseXHairCross Then ; each bit corresponds to a pixel (4 pixels per hex #) (the rest we'll leave zeroed) DllStructSetData($stCursor, 2, "0x" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "FEFE0000" & _ ; Line 8 = horizonal line; center bit cleared (same bit set for other rows) "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "01000000" & _ "00000000") ; Center pixel (7,7 for 15x15 [or 16x16 officially]) $hCrossHair = DllCall($g_hUSER32DLL, "handle", "CreateCursor", "handle", 0, "int", 7, "int", 7, "int", 32, "int", 32, _ "ptr", DllStructGetPtr($stCursor, 1), "ptr", DllStructGetPtr($stCursor, 2)) Else ; $bXHairDiagonal DllStructSetData($stCursor, 2, "0x" & _ "00000000" & _ ; "01000400" & .. ; to make 15x15 "00000000" & _ ; "00800800" & .. ; to make 13x13 "00401000" & _ ; 11x11 "00202000" & _ "00104000" & _ "00088000" & _ "00050000" & _ "00000000" & _ ; Line 8 = center point; center bit cleared "00050000" & _ "00088000" & _ "00104000" & _ "00202000" & _ "00401000" & _ "00000000" & _ ; "00800800" & .. "00000000" & _ ; "01000400" & .. "00000000") $hCrossHair = DllCall($g_hUSER32DLL, "handle", "CreateCursor", "handle", 0, "int", 14, "int", 7, "int", 32, "int", 32, _ "ptr", DllStructGetPtr($stCursor, 1), "ptr", DllStructGetPtr($stCursor, 2)) EndIf If @error Then Return SetError(2, @error, False) If Not $hCrossHair[0] Then Return SetError(3, 0, 0) $hCrossHair = $hCrossHair[0] ;~ ConsoleWrite("cursor:"&$hCrossHair&@CRLF) ; Make copy, one for each cursor to be replaced [don't ask me why I can't reuse one - it just doesn't work] ; (REQUIRED for SetSystemCursor calls) ; (*CopyCursor is a macro for CopyIcon) For $i = 0 To $iCursorsToReplace $hTempCopy = DllCall($g_hUSER32DLL, "handle", "CopyIcon", "handle", $hCrossHair) If @error Or Not $hTempCopy[0] Then $iErrCount += 1 ContinueLoop EndIf $MCF_aSysCursors[$i][1] = $hTempCopy[0] ; Replace with copy of crosshair $aRet = DllCall($g_hUSER32DLL, "bool", "SetSystemCursor", "handle", $hTempCopy[0], "dword", $MCF_aSysCursors[$i][0]) If @error Or Not $aRet[0] Then $iErrCount += 1 ;~ ConsoleWrite("@error="&@error&" for SetSystemCursor"&@CRLF) EndIf ;~ ConsoleWrite("Return for #"&$i&":"&$aRet[0]&", ID:"&$MCF_aSysCursors[$i][0]&" Handle:"&$MCF_aSysCursors[$i][1]&" Msg:"&_WinAPI_GetLastErrorMessage()) Next ; Destroy cursor created (and copied) DllCall($g_hUSER32DLL, "bool", "DestroyCursor", "handle", $hCrossHair) If $iErrCount = 16 Then Return SetError(4, -1, False) ;~ ConsoleWrite("Total Errors:"&$iErrCount&" for _MouseReplaceAllCursors"&@CRLF) $MCF_bCursorsReplaced = 1 EndFunc ;==>_MouseReplaceAllCursors ; ==================================================================================================== ; Func _MouseHideAllCursors($bDontReplaceResizeCursors = False) ; ; Hides all cursors. ; ; Author: Ascend4nt ; ==================================================================================================== Func _MouseHideAllCursors($bDontReplaceResizeCursors = False) If $MCF_bCursorsReplaced = -1 Then Return True ; Had a different type of Cursor Replacement? Restore first! If $MCF_bCursorsReplaced Then _MouseRestoreAllCursors() Local $i, $iErrCount = 0, $hTempCopy, $aRet, $stCursor, $hCursor Local $iCursorsToReplace = UBound($MCF_aSysCursors) - 1 If $bDontReplaceResizeCursors Then $iCursorsToReplace -= 5 EndIf $stCursor = DllStructCreate("ubyte[128];ubyte[128]") ; Create an invisible cursor -> 32x32 (8x8 works but gives artifacts when manipulating items with mouse) DllStructSetData($stCursor, 1, "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") DllStructSetData($stCursor, 2, 0) $hCursor = DllCall($g_hUSER32DLL, "handle", "CreateCursor", "handle", 0, "int", 0, "int", 0, "int", 32, "int", 32, "ptr", DllStructGetPtr($stCursor, 1), "ptr", DllStructGetPtr($stCursor, 2)) If @error Then Return SetError(2, @error, False) ;ConsoleWrite("hCursor result:" & $hCursor[0] & @CRLF) If Not $hCursor[0] Then Return SetError(3, 0, 0) ;ConsoleWrite("hCursor result:" & $hCursor[0] & @CRLF) $hCursor = $hCursor[0] ;~ ConsoleWrite("cursor:"&$hCursor&@CRLF) ; Make copy, one for each icon to be replaced [don't ask me why I can't reuse one - it just doesn't work] ; (REQUIRED for SetSystemCursor calls) (*CopyCursor is a macro for CopyIcon) For $i = 0 To $iCursorsToReplace $hTempCopy = DllCall($g_hUSER32DLL, "handle", "CopyIcon", "handle", $hCursor) If @error Or Not $hTempCopy[0] Then $iErrCount += 1 ContinueLoop EndIf $MCF_aSysCursors[$i][1] = $hTempCopy[0] ; Replace with copy of 'invisible cursor' $aRet = DllCall($g_hUSER32DLL, "bool", "SetSystemCursor", "handle", $hTempCopy[0], "dword", $MCF_aSysCursors[$i][0]) If @error Or Not $aRet[0] Then $iErrCount += 1 ;~ If Not @error Then ConsoleWrite("Return for #"&$i&":"&$aRet[0]&", ID:"&$MCF_aSysCursors[$i][0]&" Handle:"&$MCF_aSysCursors[$i][1]&" Msg:"&_WinAPI_GetLastErrorMessage()) Next ; Destroy cursor created (and copied) DllCall($g_hUSER32DLL, "bool", "DestroyCursor", "handle", $hCursor) If $iErrCount = 16 Then Return SetError(2, -1, False) ;~ ConsoleWrite("Total Errors:"&$iErrCount&" for _MouseHideAllCursors"&@CRLF) $MCF_bCursorsReplaced = -1 EndFunc ;==>_MouseHideAllCursors ; ==================================================================================================== ; Func _MouseRestoreAllCursors() ; ; Restores all the current default system cursors. ; ; Author: Ascend4nt ; ==================================================================================================== Func _MouseRestoreAllCursors() If Not $MCF_bCursorsReplaced Then Return True Local $i, $iErrCount = 0, $aRet ; SPI_SETCURSORS 0x0057 ; Restores system default cursors $aRet = DllCall($g_hUSER32DLL, "bool", "SystemParametersInfoW", "dword", 0x57, "dword", 0, "ptr", 0, "dword", 0) For $i = 0 To UBound($MCF_aSysCursors) - 1 ; Destroy copy $aRet = DllCall($g_hUSER32DLL, "bool", "DestroyCursor", "handle", $MCF_aSysCursors[$i][1]) If @error Or Not $aRet[0] Then $iErrCount += 1 ContinueLoop EndIf $MCF_aSysCursors[$i][1] = 0 Next If $iErrCount = 16 Then Return SetError(4, -1, False) ;~ ConsoleWrite("Total Errors:"&$iErrCount&" for _MouseRestoreAllCursors"&@CRLF) $MCF_bCursorsReplaced = 0 EndFunc ;==>_MouseRestoreAllCursors #EndRegion MOUSE_FUNCTIONS_PARTIAL_UDF ; ############################################### WindowsSpotlightFocusGUI.au3 ~prev downloads: 44 WindowsSpotlightFocusGUI.au3
    1 point
  6. Gianni

    Android development

    seems it's called "Android Virtual Device (AVD)" just entered this 3 words android programming pdf in google and a lot of books came out with instructions on how to setup Android SDK and (AVD) for eclipse.... P.S. I know this is just a 2 cents info anyway... maybe someone finds this useful
    1 point
  7. Why do you want a hidden gui with a label, who's going to see it?
    1 point
  8. Preventing a user from changing the clock on his own computer would be considered hacking the computer at best and malware or worse at the other end. You can always use an NTP server inside your code to determine what the time is and ignore the user's clock completely. As long as the computer has an internet connection and doesn't block your program from accessing the internet. You can always stipulate that the users of your software have to allow it access to the ntp server or the software won't run.
    1 point
  9. Should be something like this: $msg = DllCall("Rasapi32.dll","DWORD","RasDial","ptr",0,"str",$phnbook,"struct*",$tTRASCREDENTIALS,"ptr",0,"hwnd", 0,"hwnd*",0) $hrasconn=$msg[6] saludos
    1 point
  10. Bad news then for getting info from conventional API. Looks like you'll have to try your hand with other UDF. '?do=embed' frameborder='0' data-embedContent>>
    1 point
×
×
  • Create New...