AnimGIFGadget (windows only)

Share your advanced PureBasic knowledge/code with the community.
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

AnimGIFGadget (windows only)

Post by ts-soft »

This is a small code to show animgifs.

Functions:
gdiplus_Init(); you have to call this before all other functions in this lib.
- Returns nonzero if successfully and zero if not

gdiplus_End(); you have to call this at the end of your program.

AnimGIFGadget(id, x, y, file.s, backcolor = #White, pause = #PB_Any); creates the animgifgadget.
Parameters:
- id = id like all other gadgets, #PB_Any is supported!
- x, y = position of your gadget
- file.s = Filename with path to your gif.
- backcolor = set the backcolor of gadget.
- pause = delay in ms between the frames.

- Returns the same as other gadgets.

AnimGIFGadgetMem(id, x, y, *mem, memsize, backcolor = #White, pause = #PB_Any)); creates the animgifgadget from Mem/DataSection
Parameters:
- id = id like all other gadgets, #PB_Any is supported!
- x, y = position of your gadget
- *mem = MemPointer.
- memsize = Size of Memory.
- backcolor = set the backcolor of gadget.
- pause = delay in ms between the frames.


- Returns the same as other gadgets.

FreeAnimGIFGadget(id = #PB_Any); Free and remove the gadget from the display. It's very important to free your Gadgets!
Parameters:
- id = #Gadget, Specifies the gadget to free.
a value of #PB_Any or -1 frees all AnimGIFGadgets.

[AnimGIFGadget.pbi]

Code: Select all

; Copyright (c) 2012 Thomas <ts-soft> Schulz

; Permission is hereby granted, free of charge, to any person obtaining a copy of this
; software and associated documentation files (the "Software"), to deal in the Software
; without restriction, including without limitation the rights to use, copy, modify, merge,
; publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to
; whom the Software is furnished to do so, subject to the following conditions:

; The above copyright notice and this permission notice shall be included in all copies or
; substantial portions of the Software.

; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

;==================================================================
;
; Library:           AnimGIFGadget
; Author:            Thomas <ts-soft> Schulz
; Date:              Mrz 09, 2012
; Version:           1.4.2
; Target OS:         Windows 2000 and higher
; Target Compiler:   PureBasic 4.60 and later
; Requires:          gdiplus.dll
;==================================================================

; History:
; 1.4.2, Mrz 13, 2012
; changed default backcolor for AnimGIFButton and AnimGIFButtonMem to #PB_Any
; AnimGIFButton and AnimGIFButtonMem supports Transparency, if you use #PB_Any as backcolor

; 1.4.1, Mrz 10, 2012
; + removed redundant code

; 1.4, Mrz 10, 2012
; added AnimGIFButton
; added AnimGIFButtonMem

; 1.3, Mrz 10, 2012
; changed from ImageGadget to CanvasGadget
; drawing-routines changed for better support of some gifs
; removed erase flag, no more required!
; added flag for background-color
; ATTENTION - this version requires Threadsafe Compileroption!

; 1.2.1, Mrz 10, 2012
; bugfix for incompatible to x64 with delaytime

; 1.2, Mrz 09, 2012
; + changed syntax for AnimGIFGadget
; + pause is optional, #PB_Any use the delaytime safed in gif!
; + added new Function: AnimGIFGadgetMem(id, x, y, *mem, memsize, pause = #PB_Any, erase = #False) to catch gif!

; 1.1, Mrz 09, 2012
; + correct structure GdiplusStartupInput
; + changed name of prototypes to solve compatible issues with other libs
; + added erase flag for AnimGIFGadget() as workaround for some gifs.

CompilerIf #PB_Compiler_Thread = 0
  Debug "you have to enable threadsafe in compileroptions!"
CompilerEndIf

#PropertyTagFrameDelay = $5100

CompilerIf Defined(GdiplusStartupInput, #PB_Structure) = 0
Structure GdiplusStartupInput
    GdiPlusVersion.l
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 ; ALIGN next pointer to 8
    PB_Alignment.b[4]
  CompilerEndIf
    *DebugEventCallback.DebugEventProc
    SuppressBackgroundThread.i
    SuppressExternalCodecs.i
EndStructure
CompilerEndIf

Structure AnimGif_para
  ID.i
  bitmap.i
  pause.i
  semaphore.i
  backcolor.i
  type.i
EndStructure

Structure AnimGif_list
  id.i
  thread.i
  semaphore.i
EndStructure

;{ Prototypes
Prototype __GdipCreateBitmapFromFile(filename.p-unicode, *bitmap)
Prototype __GdipCreateFromHDC(hdc, *graphics)
Prototype __GdipDeleteGraphics(*graphics)
Prototype __GdipDisposeImage(*image)
Prototype __GdipDrawImageI(*graphics, *image, x.l, y.l)
Prototype __GdipGetImageWidth(*image, *width)
Prototype __GdipGetImageHeight(*image, *height)
Prototype __GdipImageGetFrameCount(*image, *dimensionID.GUID, *count)
Prototype __GdipImageGetFrameDimensionsList(*image, *dimensionID.GUID, count.l)
Prototype __GdipImageSelectActiveFrame(*image, *dimensionID.GUID, frameIndex.l)
Prototype __GdipLoadImageFromStream(*stream, *bitmap)
Prototype __GdipGetPropertyItemSize(*image, propId.l, *size)
Prototype __GdipGetPropertyItem(*image, propId.l, propSize.l, *buffer)
Prototype __GdiplusShutdown(token)
Prototype __GdiplusStartup(*token, *input.GdiplusStartupInput, *output) ;}

;{ Globals
Global __GdipCreateBitmapFromFile.__GdipCreateBitmapFromFile
Global __GdipCreateFromHDC.__GdipCreateFromHDC
Global __GdipDeleteGraphics.__GdipDeleteGraphics
Global __GdipDisposeImage.__GdipDisposeImage
Global __GdipDrawImageI.__GdipDrawImageI
Global __GdipGetImageWidth.__GdipGetImageWidth
Global __GdipGetImageHeight.__GdipGetImageHeight
Global __GdipImageGetFrameCount.__GdipImageGetFrameCount
Global __GdipImageGetFrameDimensionsList.__GdipImageGetFrameDimensionsList
Global __GdipImageSelectActiveFrame.__GdipImageSelectActiveFrame
Global __GdipLoadImageFromStream.__GdipLoadImageFromStream
Global __GdipGetPropertyItemSize.__GdipGetPropertyItemSize
Global __GdipGetPropertyItem.__GdipGetPropertyItem
Global __GdiplusShutdown.__GdiplusShutdown
Global __GdiplusStartup.__GdiplusStartup
;}
Define __gdipToken__
Define __gdiphDLL__

Global NewList AnimGIFThreads.AnimGif_list()

Procedure.i gdiplus_Init()
  Shared __gdipToken__, __gdiphDLL__
  Protected gdpsi.GdiplusStartupInput
 
  __gdiphDLL__ = OpenLibrary(#PB_Any, "gdiplus.dll")
  If __gdiphDLL__ <> 0
    __GdipCreateBitmapFromFile = GetFunction(__gdiphDLL__, "GdipCreateBitmapFromFile")
    __GdipCreateFromHDC = GetFunction(__gdiphDLL__, "GdipCreateFromHDC")
    __GdipDeleteGraphics = GetFunction(__gdiphDLL__, "GdipDeleteGraphics")
    __GdipDisposeImage = GetFunction(__gdiphDLL__, "GdipDisposeImage")
    __GdipDrawImageI = GetFunction(__gdiphDLL__, "GdipDrawImageI")
    __GdipGetImageWidth = GetFunction(__gdiphDLL__, "GdipGetImageWidth")
    __GdipGetImageHeight = GetFunction(__gdiphDLL__, "GdipGetImageHeight")
    __GdipImageGetFrameCount = GetFunction(__gdiphDLL__, "GdipImageGetFrameCount")
    __GdipImageGetFrameDimensionsList = GetFunction(__gdiphDLL__, "GdipImageGetFrameDimensionsList")
    __GdipImageSelectActiveFrame = GetFunction(__gdiphDLL__, "GdipImageSelectActiveFrame")
   
    __GdipLoadImageFromStream = GetFunction(__gdiphDLL__, "GdipLoadImageFromStream")
    __GdipGetPropertyItemSize = GetFunction(__gdiphDLL__, "GdipGetPropertyItemSize")
    __GdipGetPropertyItem = GetFunction(__gdiphDLL__, "GdipGetPropertyItem")

    __GdiplusShutdown = GetFunction(__gdiphDLL__, "GdiplusShutdown")
    __GdiplusStartup = GetFunction(__gdiphDLL__, "GdiplusStartup")
   
    gdpsi\GdiPlusVersion = 1
    __GdiplusStartup(@__gdipToken__, gdpsi, 0)
   
    ProcedureReturn #True
  EndIf

  ProcedureReturn #False
EndProcedure

Procedure gdiplus_End()
  Shared __gdipToken__, __gdiphDLL__
  __GdiplusShutdown(__gdipToken__)
  CloseLibrary(__gdiphDLL__)
EndProcedure

Procedure __CreateStreamFromMem(Addr.i, Size.l)
  Protected *mem = GlobalAlloc_(#GMEM_MOVEABLE, Size)
  Protected *ptr
  Protected Stream.IStream
  If *mem
    *ptr = GlobalLock_(*mem)
    If *ptr
      CopyMemory(Addr, *ptr, Size)
      CreateStreamOnHGlobal_(*mem, #True, @Stream)
      GlobalUnlock_(*mem)
    EndIf
    If Stream = 0: GlobalFree_(*mem) : EndIf
  EndIf
  ProcedureReturn Stream
EndProcedure

Procedure __AnimGifThread(*p.AnimGif_para)
  Protected id, file.s, bitmap, graphics, guid.GUID, count, pause, semaphore, i, backcolor
  Protected size, *mem, pos, hdc, type, image
 
  id = *p\id
  bitmap = *p\bitmap
  pause = *p\pause
  semaphore = *p\semaphore
  backcolor = *p\backcolor
  type = *p\type
  FreeMemory(*p)
  If bitmap
    __GdipImageGetFrameDimensionsList(bitmap, @guid, 1)
    __GdipImageGetFrameCount(bitmap, @guid, @count)
    __GdipGetPropertyItemSize(bitmap, #PropertyTagFrameDelay, @size)
    If size
      If pause = #PB_Default
        *mem = AllocateMemory(size)
        If *mem
          __GdipGetPropertyItem(bitmap, #PropertyTagFrameDelay, size, *mem)
          Pos = PeekI(*mem + 8 + SizeOf(Integer))
        EndIf
      EndIf
    EndIf
    If count > 0
      While TrySemaphore(semaphore) = 0
        For i = 0 To count - 1
          If TrySemaphore(semaphore) = 0
            __GdipImageSelectActiveFrame(bitmap, @guid, i)
            Select GadgetType(id)
              Case #PB_GadgetType_Canvas
                hdc = StartDrawing(CanvasOutput(id))
                  Box(0, 0, GadgetWidth(id), GadgetHeight(id), backcolor)
                  __GdipCreateFromHDC(hdc, @graphics)
                  DrawingMode(#PB_2DDrawing_AlphaBlend)
                  __GdipDrawImageI(graphics, bitmap, 0, 0)
                StopDrawing()
              Case #PB_GadgetType_ButtonImage
                image = CreateImage(#PB_Any, GadgetWidth(id), GadgetHeight(id), 32)
                hdc = StartDrawing(ImageOutput(image))
                  If backcolor = -1
                    DrawingMode(#PB_2DDrawing_AlphaChannel)
                    Box(0, 0, GadgetWidth(id), GadgetHeight(id), 0)
                  Else
                    Box(0, 0, GadgetWidth(id), GadgetHeight(id), backcolor)
                  EndIf
                  __GdipCreateFromHDC(hdc, @graphics)
                  DrawingMode(#PB_2DDrawing_AlphaBlend)
                  __GdipDrawImageI(graphics, bitmap, 2, 2)
                StopDrawing()
                SetGadgetAttribute(id, #PB_Button_Image, ImageID(image))
                FreeImage(image)             
            EndSelect
            __GdipDeleteGraphics(graphics)
            If pause = #PB_Default And pos <> 0
              Delay(PeekA(pos + (i * SizeOf(Long))) * 10)
            Else
              Delay(pause)
            EndIf
          Else
            Break 2
          EndIf
        Next
      Wend
    EndIf
    __GdipDisposeImage(bitmap)
    If *mem : FreeMemory(*mem) : EndIf
  EndIf
EndProcedure

Procedure __AnimGIFCreate(id, x, y, file.s, *mem, memsize, type, backcolor, pause)
  Protected bitmap, result, count, semaphore
  Protected *para.AnimGif_para = AllocateMemory(SizeOf(AnimGif_para))
  Protected w.l, h.l, thread, stream.IStream
 
  If *para
    If file <> ""
      __GdipCreateBitmapFromFile(file, @bitmap)
    ElseIf *mem <> 0
      stream = __CreateStreamFromMem(*mem, memsize)
      If stream
        __GdipLoadImageFromStream(stream, @bitmap)
        stream\Release()
      EndIf
    EndIf
    If bitmap
      __GdipGetImageWidth(bitmap, @w)
      __GdipGetImageHeight(bitmap, @h)
      Select type
        Case #PB_GadgetType_Canvas
          result = CanvasGadget(id, x, y, w, h)
        Case #PB_GadgetType_ButtonImage
          result = ButtonImageGadget(id, x, y, w + 4, h + 4, 0)
      EndSelect
      If id = #PB_Any
        id = result
      EndIf
      semaphore = CreateSemaphore()
      *para\id = id
      *para\bitmap = bitmap
      *para\pause = pause
      *para\semaphore = semaphore
      *para\backcolor = backcolor
      *para\type = type
      thread = CreateThread(@__AnimGifThread(), *para)
      AddElement(AnimGIFThreads())
      AnimGIFThreads()\id = id
      AnimGIFThreads()\thread = thread
      AnimGIFThreads()\semaphore = semaphore
      ProcedureReturn result
    EndIf   
  EndIf
 
EndProcedure

Macro AnimGIFGadget(id, x, y, file, backcolor = #White, pause = #PB_Default)
  __AnimGIFCreate(id, x, y, file, 0, 0, #PB_GadgetType_Canvas, backcolor, pause) 
EndMacro

Macro AnimGIFGadgetMem(id, x, y, mem, memsize, backcolor = #White, pause = #PB_Default)
  __AnimGIFCreate(id, x, y, "", mem, memsize, #PB_GadgetType_Canvas, backcolor, pause) 
EndMacro

Macro AnimGIFButton(id, x, y, file, backcolor = #PB_Any, pause = #PB_Default)
  __AnimGIFCreate(id, x, y, file, 0, 0, #PB_GadgetType_ButtonImage, backcolor, pause)
EndMacro

Macro AnimGIFButtonMem(id, x, y, mem, memsize, backcolor = #PB_Any, pause = #PB_Default)
  __AnimGIFCreate(id, x, y, "", mem, memsize, #PB_GadgetType_ButtonImage, backcolor, pause)
EndMacro

Procedure FreeAnimGIFGadget(id = #PB_Any)
  ForEach AnimGIFThreads()
    If id = #PB_Any
      SignalSemaphore(AnimGIFThreads()\semaphore)
      WaitThread(AnimGIFThreads()\thread, 5000)
      FreeSemaphore(AnimGIFThreads()\semaphore)
      FreeGadget(AnimGIFThreads()\id)
      DeleteElement(AnimGIFThreads())
    ElseIf AnimGIFThreads()\id = id
      SignalSemaphore(AnimGIFThreads()\semaphore)
      WaitThread(AnimGIFThreads()\thread, 5000)
      FreeSemaphore(AnimGIFThreads()\semaphore)
      FreeGadget(id)
      DeleteElement(AnimGIFThreads())
      Break
    EndIf
  Next
EndProcedure
[example.pb]

Code: Select all

XIncludeFile "AnimGIFGadget.pbi"

InitNetwork()
Define GIF1.s = GetTemporaryDirectory() + "loading_circle.gif"
Define GIF2.s = GetTemporaryDirectory() + "ts-soft.gif"

If FileSize(GIF1) <= 0
  ReceiveHTTPFile("http://dl.dropbox.com/u/3086026/loading_circle.gif", GIF1)
EndIf
If FileSize(GIF2) <= 0
  ReceiveHTTPFile("http://dl.dropbox.com/u/3086026/ts-soft.gif", GIF2)
EndIf

Define AniGadget

If gdiplus_Init()
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 150, 230, "GIF example")
  SetWindowColor(0, #White)
  AnimGIFGadget(1, 25, 15, GIF1)
  AniGadget = AnimGIFGadget(#PB_Any, 35, 130, GIF2)
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        HideWindow(0, #True)
        FreeAnimGIFGadget()
        gdiplus_End()
        Break
    EndSelect
  ForEver
EndIf
Have Fun :D
Last edited by ts-soft on Tue Mar 13, 2012 4:25 pm, edited 14 times in total.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
luis
Addict
Addict
Posts: 3895
Joined: Wed Aug 31, 2005 11:09 pm
Location: Italy

Re: AnimGIFGadget (windows only)

Post by luis »

Cooool, thanks :)

I bet this will make Kwaï chang caïne happy !
"Have you tried turning it off and on again ?"
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5494
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: AnimGIFGadget (windows only)

Post by Kwai chang caine »

. .
Last edited by Kwai chang caine on Sat Mar 10, 2012 8:07 pm, edited 2 times in total.
ImageThe happiness is a road...
Not a destination
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

Small Update:
History wrote:; 1.1, Mrz 09, 2012
; + correct structure GdiplusStartupInput
; + changed name of prototypes to solve compatible issues with other libs
; + added erase flag for AnimGIFGadget() as workaround for some gifs.
History wrote:; 1.2, Mrz 09, 2012
; + changed syntax for AnimGIFGadget
; + pause is optional, #PB_Any use the delaytime safed in gif!
; + added new Function: AnimGIFGadgetMem(id, x, y, *mem, memsize, pause = #PB_Any, erase = #False) to catch gif!
New examplel:

Code: Select all

XIncludeFile "AnimGIFGadget.pbi"

If gdiplus_Init()
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 150, 130, "GIF example")
  SetWindowColor(0, #White)
  AnimGIFGadgetMem(1, 22, 15, ?loading_circle_gif_start, 12623)
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        HideWindow(0, #True)
        FreeAnimGIFGadget()
        gdiplus_End()
        Break
    EndSelect
  ForEver
EndIf

DataSection
  loading_circle_gif_start:
    ; size : 12623 bytes
    Data.q $006A613938464947,$DCD9D400FFF7006B,$EEEAE4E1DCDBD4CB,$A2B8AA97D5C6B1F0,$9A8567E3D9CCCDBB
    Data.q $E6E1D9C9B4C7B191,$CCAD9068B3956BE9,$DACDBAD4CCC2D5D1,$A482805D2DC1AA89,$E5CABDAACCC2B4BD
    Data.q $B69972DCDCDCEDEA,$A07CC8B395DAD6D2,$A1F1F0EDEEECEABA,$D5C4ADA99375C4B5,$EBE4F4F1EDCBB89D
    Data.q $F3F6F4F1E2DED9F0,$AA895AE0D4C4F8F6,$E4DDC4B39C9D7D52,$4D866538EEE9E1E9,$9B733ADED2C19275
    Data.q $7036856335CCC5BA,$4AA18A6BAD8E6199,$8C6631C6BDB28E72,$B599AC9B84C5BAAA,$90A58963F9F8F6CA
    Data.q $E9E1D5D1C9BEC2AD,$6D3BD6CAB9E1DCD6,$D0F4F2F0A27E4A91,$795C339B815EE5DD,$D0C69D763FECE6DD
    Data.q $A5A885558D6E44D8,$E6E4E1B49B79BEB3,$DCD9D1C1A9917B5B,$A4A2845BCDC0ACDD,$E9E2D8E4DED5CFBD
    Data.q $E8E58C7452A68250,$8BD7CEC1997A4DEB,$B99E7AB1946DBAA7,$804DD6C7B3FFFFFF,$AEB4966D8E6935A4
    Data.q $D6CCBEB79C75D0C2,$7545957953DDD0BE,$AADCDAD8D4CABC96,$D2CEC9EDEBE7D4C3,$D0C1836945B3A28A
    Data.q $BABDB09DBFAA8CDA,$89693DB09672D2C8,$9268DED4C7866C48,$D0816540A48E71B0,$D0C6B8E0DAD1D7D4
    Data.q $D7C9FBFAF9A68454,$50E5E3E0AF9064E1,$DBD2C5F2F2F09477,$E4DAC5B196A88E6B,$F49F7842C6B8A6EB
    Data.q $886F4CA98758F7F6,$E0D7ECE5DB987748,$E9DAD9D7DFDEDCE6,$EBE8E3EBEAE9F4EF,$F9F7FCFBF9FDFCFB
    Data.q $3AB5986F76582FFA,$D1C0A7997D587D61,$8156A58252C0B6A9,$F3E3E2E0C1AF969F,$E7DFD2DDDDDDF6F5
    Data.q $E3DC9F8664DFDBD5,$CECFCAC2957F61E7,$EEE7DFF3F1EFDED7,$8151E8E6E4EFECE7,$2D93703EB5A084A4
    Data.q $B0A28FE6E5E37557,$5328D4C2A9FEFEFE,$FBFCFCFCFDFDFD72,$F9F9F9F7F7F7FBFB,$F6F6F8F8F8F5F5F5
    Data.q $F0F1F1F1FAFAFAF6,$F2F2F2F4F4F4F0F0,$EDEDF3F3F3EAEAEA,$E5EBEBEBE9E9E9ED,$DEDEDEEEEEEEE5E5
    Data.q $E2E2E8E8E8E3E3E3,$EFE6E6E6E0E0E0E2,$E4E4E4E1E1E1EFEF,$DFDFECECECE7E7E7,$FCFDFCFCA78352DF
    Data.q $74552A73552AFDFD,$F5F4F3F0EBF3F2F2,$F1F1F1F0F1F0F0F5,$EDEDECEAE9E8F4F3,$E1E1D4C3ABE4E3E2
    Data.q $C2E0DFDDA48251E2,$F9F9F8FEFDFDDFD3,$E8E8A78452F5F4F3,$E2E5E5E4E9E9E8E9,$D3C4ADD5C4ABE3E2
    Data.q $E1E0E1E0DFE8E7E6,$FAE2DCD487663AE1,$0BFF21FFFFFFFCFB,$455041435354454E,$0000000103302E32
    Data.q $00FF000A0504F921,$6B006A000000002C,$1C08C300FF080000,$2A130883C1A0B048,$231087C3A1B0C85C
    Data.q $188BC5A2B1489C4A,$8FC7A3B1C8DC6A33,$C9A4B2491C8A4320,$A5B2C95CAA532893,$2B9954CA633097CB
    Data.q $04D4D66A69231257,$9AE674BC5E2480E2,$641813502A173209,$6626A02F57C28A59,$DD230853A8F19D48
    Data.q $099A47918A24D680,$D3980BFA658A968F,$88418468CED35312,$C465CC42B95BA7A3,$1650A0B378B19347
    Data.q $9A37036A22B1184C,$E61572A1D069C070,$8ACB1463AF26741A,$2F1A0CF2B8157DF5,$C72740F05C4DC70C
    Data.q $0757ECA65B3051A0,$F39706220C5196CB,$AD5146CB40114B40,$10DE5B51A760B219,$06CAC2205CE2734B
    Data.q $A37403C9331A28FD,$2626A261ECCEA46E,$C963B1999C5E1F0C,$99507584533EA395,$7AFC6EA7FF4C6840
    Data.q $D88E7118B396ED76,$8F375765E3BBA0E5,$777D7CC23D12B75E,$5761E5F97C508969,$BD300C102C816A1F
    Data.q $DFE2C4BC2E52B7B4,$A60379CC17CD797F,$7E8BF320CB090A25,$F260C42F4B94A60A,$D81785F370598420
    Data.q $E150A0672BD92324,$0CC6324CE064A254,$4D4252A1287ECC43,$F78DE22ACC1300BD,$D3340171C01E1808
    Data.q $0C32FCC3320DA354,$A0301ECA4004CD32,$304C68CCD41F8EC7,$32749249D3A2202C,$C530CC02F8991141
    Data.q $C190547768241008,$3CC9924D436CD029,$33CC72FCC22FCC73,$A23C2A254D3338CC,$0B92CD99207E2CDB
    Data.q $92373C9924C43244,$001D04C0C0306009,$58E6B090D632A793,$834E7229C170507B,$C0868CF334D2354D
    Data.q $8D9324CF32267310,$95288153FF4CD833,$CD68CCD73400E2CD,$F8220A4380E0912A,$04E92A481A2E5216
    Data.q $133CCA304BF2FC03,$D736E9F23034A6C4,$CC533CDA326A4344,$14CA30E662F5669D,$34CD5348C9368CF3
    Data.q $CAEAB8A11692342A,$45871651DEBEAFAB,$CC31BC13B1AC61A5,$F8EC166CFAB0C130,$B60D9360D7A80950
    Data.q $053D7E30D7C314D6,$D6B84C730CC28814,$D5206CDB364CC368,$FAF0AF6BB326ED95,$0609647AF45F415A
    Data.q $4AB2FC30416BE2F7,$D5B54D4350152102,$2DD9E17C318CB324,$F679AAADE2F1355C,$2042A354C932CC6B
    Data.q $5BC321C7F359CC19,$29B111987608818B,$AAFAB72DCAC13BDF,$6ADDC333868CD933,$32B1199B3ECF61D5
    Data.q $C3375C338D5C58C6,$388D8C51DEF0D374,$32CD5F29D54A846A,$D632CCD3FF3743B3,$710CF50BA3B0D930
    Data.q $C2EFCDF7E32CD6BF,$470BC7E4CA17721D,$793B2BD5B78524DE,$9B7797DC28C5320C,$70AB86CB31386439
    Data.q $2607358A3BC38EE3,$1D355E5C072E51A8,$27B0C2B2A79C30CA,$A32FECAD9B3D43F5,$77586CC51DB70EA4
    Data.q $0465BDFB2044B945,$8254E2F8C45FA5B0,$42FADE2F60C44BBB,$519D83DD37C2108C,$406BDFCB100B9463
    Data.q $8FC8F573C86DA436,$F89FADCF8FF7413E,$52501B1940CF943B,$E42F8BCB0F25869B,$59D73E00EEFC1900
    Data.q $901E031FB06504A4,$85C91C7D886D25A5,$0C80E1F83DC17E2F,$0502F790FCDE28F9,$0CE45F40D714E0FA
    Data.q $B03D1943090F9238,$CE16084051180E20,$2374B68A60640A07,$0A8340C1440EBE17,$F02130D85F40E113
    Data.q $114200BCFFF96048,$8309C5F3AF87E7E6,$A23746A3645ABF07,$68A47D0148145188,$0C318883093C356E
    Data.q $F84638E807F0A846,$210DA061FB0047AC,$989342418431C65C,$F36C0FA0B06402D0,$C523F60122F089C0
    Data.q $8B82F09A37486636,$88C7D3AC2260B089,$AA35C0A3F60CE830,$542623B122361A41,$681C678D91230581
    Data.q $0D30FD0281148672,$1FC6047E8B2EB069,$B921B1B6468E9854,$B23AA2A8F7198458,$6096FC2388E68244
    Data.q $009BE576321A471B,$84C47A47C2349435,$88C3E95A0520B029,$59274453E583A2F0,$B00D8FF2BE4C0C07
    Data.q $E442628C34540560,$0DB1AE33864A688F,$334672D49BD37868,$DA18B360964CE7E4,$1A71AB99C137E6E4
    Data.q $E1A432C6441398CF,$151CF79EE34C688C,$F048974BFF64EC33,$8D39F13D86AA7C84,$EF26B1A534633868
    Data.q $D2198325A18C147A,$B1262A6199446888,$D5591710F91F97C6,$4C8D141A544A880C,$18AB322520CA30EB
    Data.q $6E0C818B4AA948C6,$50E6D33BD726053D,$F524724E7A94D2AA,$D4F8638C16823119,$26699EF1D79B2CA7
    Data.q $304608C7A7F4F527,$500122A2433A04F0,$B55480AAA154AA8D,$CAB756809089A606,$E543A15BA202AD55
    Data.q $A8428004D64AA622,$0956CABA218A2D18,$A759411D24706174,$903C95F3969703BA,$B50D9207FABB5B41
    Data.q $D1601754EB98A670,$25EAED7B0AE4D253,$82076FFC87C63324,$790F5869F81EAA8D,$E95D4202655BB120
    Data.q $833550B223A86258,$B300D45E12D8373B,$865778353885555A,$6406804DA005F1FC,$221724A2FFD6CCC1
    Data.q $926AC570E36A2BD0,$A002026D885817D4,$AD40151724B65E8D,$1CD6FE620D302956,$E509FB8F738505C2
    Data.q $156565A8D814E0B6,$F841B84148610BD3,$57283D0B92495FE4,$8C0A7329A5D84702,$2A905DEB0CD70803
    Data.q $7699B25A10875BCE,$407E809B84074624,$906579C2EC25B6D1,$80241390D214F281,$13649E7EC6100D70
    Data.q $854744B21F2F3836,$B01A2FE093BBA5CE,$5012BCE2D28CDE38,$2312D75DB8C4FA24,$E1672215EFE05618
    Data.q $8186809FC401A091,$A0BF811A09C528A3,$E71006A8238761A0,$043E40EB4BFCC280,$452821B62018650C
    Data.q $0D572826016BC97C,$61BFF22D0B469248,$8292829821B4015C,$BD98C9C02E09125C,$E31E13117B598501
    Data.q $C3D97625410D73B3,$0010BF7FFFED4F1D,$22D94D43035ADB98,$10D6503426061C5B,$58028579A450C000
    Data.q $E85A11842B211870,$99CC208C817F4E80,$6009AB98C380FCAB,$086B20881E377643,$6203A318DAAB8032
    Data.q $85EC08208C2E85D0,$01762EC1D03C2295,$0720C7A763100189,$CEF94402D5AD1E00,$3F551BBE39338665
    Data.q $75A8B508031ACC77,$C912708F444580A1,$C24355EAB0FA0544,$D5CD6633DB38C202,$42F375A391605C1A
    Data.q $BE013640378C7181,$4372EC3D82C795CE,$D1201B2923A00580,$D7EA4D0B624376EC,$198361A484CCC1B4
    Data.q $0D0579E31DB12CCC,$07B97722BA4E7964,$710D6780F049069E,$7AB386EED0A20544,$831065ACD566F101
    Data.q $39DD7DA491A3496A,$C2D80C1D580A500F,$142C027041C8B81E,$3C2AC5CDFF6161C1,$8090E5FC384E0350
    Data.q $C3601B8A9558B2F8,$5DCD0D8706D0D219,$D0B917026114391F,$701BA20C0806ED87,$BBA6F2F0B41F01E1
    Data.q $C66C3258AACCE65B,$9A10C27FEF237D58,$175D7BA1F4118A31,$66F64E9C399C1820,$706DE9A31249BCC7
    Data.q $09B8596301FF945A,$A2F96E020EBDD7F9,$AFC595D9FBCF6508,$30357BD72447B2A5,$A7041DCFB98EA058
    Data.q $FC4E765EF2074B2A,$7F00B09548C05B80,$381F86EE42C56F3D,$E9DE3001A774EA08,$6433B18692C5687D
    Data.q $85E64080AFA63097,$779FF3C30F2D820E,$8F53D225A12A2B38,$F8500E31A86678E7,$07060C57041B0FD5
    Data.q $5914E2E0246EDF62,$21D26B9F70DD11A2,$5EC1EFBD50851B43,$038008D57F13E11E,$F01B69FE7171A3F2
    Data.q $F980FE36FF46D7BA,$243D8FC3402083AF,$55E723606A270142,$2C628C1EB0F8BE67,$FFD1EB3F28AE4FA3
    Data.q $1921A369491FF5F9,$D0D62AB52512F76C,$BD0100000D80D20C,$7E90C71D67E77437,$37FF03700809C74E
    Data.q $3177F3B536E7380D,$0D82AE2E227A7811,$F6E580D0420010FA,$5109C70D8121D780,$3062730D03030050
    Data.q $F3BD13354D8022A6,$FB4F52E57F60C776,$7BF0040420730000,$A05107282A1921C6,$DA8192D57ED81603
    Data.q $44A3D71327A67762,$10D80D951D0CF769,$AE0000DB0D40D70D,$04E0E61921B50AE0,$38660DB4DB070014
    Data.q $A40C783335D50633,$39B31178119C7937,$94FA8570D531737D,$D58764F40E83673E,$83516552D33786A0
    Data.q $853D76F8516431AE,$7F7530CD2E30C60C,$C34450D26D968023,$2D0C60CF37F0C90C,$0618836A736124D5
    Data.q $C0CA31276F3DA386,$FD53B3D176B39D39,$19A88130B52C5282,$A77C3408514FE7F2,$D124D89F2DE33B2C
    Data.q $20C17389B7087926,$E30F7283D23D2365,$3A6658BA3628BF8B,$8C56858BC1423621,$18D08CF8CE8CD8CC
    Data.q $011178D48D38D28D,$000A0504F9210001,$54000C000B2C00FF,$FF00FF0800005400,$0883C1A0B0481C09
    Data.q $582A021054190059,$C162B1489C4A2308,$8CF1C0604C340A45,$413329664259823F,$B8ACAA53165E901D
    Data.q $2476631C0C069069,$BC26282CCDA44A68,$3A06204F67B2B1E0,$3712C10300CA1CC9,$8953A7C46048A293
    Data.q $9160746A9D102246,$EBB4F8619CB358A4,$F04AA54CCA13543F,$29ED780E18ACD655,$3D9E0755B7D8C762
    Data.q $BE60108B5AC063EB,$5167B9875FF71B1D,$7DBDDEC3513BB828,$4941F0811B3E02FF,$D67178A826230E1B
    Data.q $325425440F1C933D,$59AB5136E79682DC,$BCBE87417CCF6444,$1EA34E0377BFF345,$B8047BAC6ADFF7DA
    Data.q $088A926CF641681E,$003DC8B6E9D08B96,$CF1801705132C31C,$0795D1307054E818,$84F060C8372C4D30
    Data.q $4942FF98AC1A11D3,$6CAD2A1409DBF9F0,$8C930606DCCBE153,$1209108F25727251,$43B1180050522958
    Data.q $07B050A55747604D,$CC630AD051F80D56,$7E5F90113D134330,$04C8670910538806,$F04D8280558E1986
    Data.q $52919C3383A0D82D,$117601A1384C0718,$1D0ED6EC1E472184,$614A248922276D21,$048B62B8A83B1151
    Data.q $08C409BB3E88006D,$36248E20C411C903,$4AA458FE3E849162,$11251389A249324B,$5688D1694E2C8FA5
    Data.q $25B158BC44873892,$92619550797A4097,$2825199C8B448288,$11B2569B48F4466A,$089D4FD8FA722811
    Data.q $4B04208493278041,$0C114468010A2A9F,$7E6880290698E38A,$3980AF4228B36C21,$017E693099061828
    Data.q $8300CE8EA0911A5C,$1112A8815A7C4641,$CBA4FF12AB0CEA52,$BC7341EACA587EA7,$ADC06A7C824105FA
    Data.q $A40CD2236A50A112,$5641AC0AD80FA4E5,$A9309D0232C68ABC,$94301BD08B2C5306,$B5854A4C2040CA4A
    Data.q $88F502AEEA519511,$63A9421422E01A28,$905BA649A7CA6408,$1EF2B4C2340AAF11,$A4C5840A8EB64254
    Data.q $D3FEA513506BE6BF,$C04130287288AA4C,$F12C470BB7EA5274,$E849C0B16C5714C4,$C51DEC6B1CC6F1A2
    Data.q $AC8B24C8F220E05F,$15040BACA71D0B28,$8E298C38CBF250A7,$C0643C3140831DCA,$6B71DCD08E9FF25C
    Data.q $43F902C973A24F12,$43087131FF1BCF80,$71AD206940C91C8F,$2438D3721C48C91A,$080BAD4807408F52
    Data.q $317B58CE4E6C44F9,$54C2F4A2EB5E2C10,$8F1408D83FF22D60,$B85518702CB35E1B,$B690FF410434043D
    Data.q $103D0E36E20EF96E,$37AE9DDB6924CF04,$EDD04541231E0C89,$EA193830BEE0E035,$C5CBA583DA42F415
    Data.q $2D5C2EB699AC1FE0,$E8C0A44438E0C5EB,$844455EA069B2CAB,$37EA0A3AB38AE8C5,$C5018B52EAD08910
    Data.q $AD130A76E24423B2,$D37C2BA494013522,$D01334D4508B2814,$6F45489CC3CBBE46,$07914105F4B2A3A8
    Data.q $182227C1594CDD05,$31D1475043CC06B4,$D2AD03E6404C775D,$B46ECBF1C4BB2EC7,$CA9319051A812048
    Data.q $31B6FC4A83AB25F9,$2EDFA3F3004411EE,$4C0A8374B5AB10E4,$91FF90610CFE9FD0,$A68E4A87D8A7112C
    Data.q $E0540A81040E030B,$10C1A0AF00F12037,$35B227CD05214C12,$0EF243106E1564F8,$30370A308610C098
    Data.q $50FA148470CC4F45,$F0C8FBF984C08602,$A1A3BF0AE4F86A03,$03C0D4243F48970D,$1907C04202C893AD
    Data.q $1C050834418AF0FC,$D0E07E917A264203,$E27C0F9023C807C2,$C5D48B10A154688A,$1CA349470911BA2F
    Data.q $6E86A214D7459825,$FA398E62071C22FC,$916C200611848EB1,$E3F0AF2051EE3CC7,$8F0220D74250651C
    Data.q $34C8A2FD21E1B485,$222B04C1BB91A132,$545792A3FE49C4C9,$32704E0B84D4F4C5,$82D85328001C9384
    Data.q $29E4D87E51605C02,$C006AFEA55CA9177,$1A504B594E1E450A,$01423D5604AF0722,$D813FC8FD2F64889
    Data.q $9544123D4840100D,$0286D6272E019472,$650FA63C4B94C144,$B8DB1FEC5E010470,$E0DA6D4350A20E81
    Data.q $8D021137E2D8FF08,$3FC4610500A13818,$01500B40B5CEB096,$000A0504F9210001,$54000C000B2C00FF
    Data.q $FF00FF0800005300,$0883C1A0B0481C09,$2C09D3304200B12D,$C5A2B1489C4A1023,$E3A0903011062382
    Data.q $41306488183C820E,$28BCAA5317491083,$247A631D0D188808,$0C3467064DA46268,$6010164F67B2B5FA
    Data.q $489BA9A071FA1CCA,$4944E9B3E2C018CF,$39A081A8ED4A86A0,$ABB4E230441958A4,$B03AAD8AA6565840
    Data.q $69ED795011ACD648,$3ABE0564B7D88C42,$EC0F17B58744367B,$5E67B3DD20B70B78,$71BE5F0089B89DE0
    Data.q $8360DCC3BBA5FE05,$D9F177EC461C4223,$F274224C0F1E2B0D,$4574EDD32C1D8258,$181E7F3D9212BFF3
    Data.q $12F34C1609D6745A,$DF5DADC4D0F55A91,$13B6DA80E09A609C,$BA088EDC30433018,$828F0478F3686E47
    Data.q $450326C0ADC3805B,$F201BCB274E85400,$5130FF41D4E2A681,$57301E06A1F48170,$13AC1BBA04C28539
    Data.q $C49B95CA09A84164,$E742C144A0A372E8,$C7634D5D12C21025,$6459211E57C55806,$84CBA3B92A6380C1
    Data.q $80EDC07FCAF028BA,$048293619C1463C6,$529044598360C02D,$117702A14850582E,$0098F7AC80476004
    Data.q $28922482DDD4882A,$068AE2A0802645C6,$C663FDBD3EA04801,$6C28836398E09504,$4AA459023F849161
    Data.q $108D1489A3992E22,$569551794C0A8FE5,$25B040DE44C7A8E6,$7624986604525E97,$9A410946670B1132
    Data.q $64487395A6C19512,$274227400A2A9C66,$27C9690819E4B9DC,$8A82069129FC8885,$A2A3B84E8709D079
    Data.q $E482582CE8288D12,$2F41E947C8BAA446,$A9C22D061360DA34,$10B3A886044E9F10,$AA9AFF7A9C1A5050
    Data.q $F9028DC59A887A41,$27508ACE93A1E9B3,$E00687A19040A2A2,$4640C5DAD8F844AB,$44D44AC705CEAA44
    Data.q $A287AC103084ECA3,$3241BA8813422D1A,$7B6EC6A4404378FF,$8E408842CE8D2810,$AB624D04B9A32A70
    Data.q $C507BC020A440340,$BE2BC9C2C6A88DC3,$7A98C91DAA203107,$80A36DD4170086E8,$F12C4710C3F0EC24
    Data.q $6718C5CBB0E709C4,$C7C3319F121F317C,$6C68809CF1FC8720,$2223F1130C6A2EF2,$B272B8FF3B833CB7
    Data.q $8B2E0C082C4448C6,$C40A9C6B332C5A5C,$D278C440B22CE458,$20D0856C4075C633,$0BBD1CDF1450318F
    Data.q $7F1FD309DC3CDA02,$2EF521C4C03FCCE1,$3D604A1170E3A448,$0E2875FC95030F83,$2F4344800CF66083
    Data.q $98342E7091475F38,$4BBDFF7C514144AD,$11040376F01F002B,$030B9BE008DF8753,$40C75FD445B41B6F
    Data.q $0841C30DBCEEB98E,$36F3CAE625C90DF8,$44C80EB5FDA90706,$41CFB0C433DBC11B,$FE56C70C4DFDF890
    Data.q $762EF7E0DD120D36,$10835054EA028AFB,$8ED100079D7C7932,$1CB520511423F661,$E3FF4CF18B0B6C7E
    Data.q $F003872CF4AC44FB,$8A945877D08442AE,$FC2E794701CB272D,$3BCFF1545494CB93,$43FC8DCB7DB09104
    Data.q $06F8B26014CA4524,$89B6F45E04812131,$90612C28C1C03817,$F546B129054C85F7,$127F6FE882BF8630
    Data.q $04488F831E1501B0,$F643014378A38030,$DA308525235C7F85,$7F70420790481A2E,$0B8290D25756586A
    Data.q $DE2A4821B10530BA,$687916C1D89F0447,$C2A80943C84F039E,$D008F9098958F10C,$C8302907111A1703
    Data.q $7880E4A680F0610C,$4607C05B0F61EC3B,$861DC030B0226664,$7B0D20D1262EC470,$E27C094648A5098C
    Data.q $C5D0AA13C4D90409,$2ACB5B9C20F0BE36,$6E20A3F2324658C6,$D0159A68BF05E3CC,$48F44123BC528EB1
    Data.q $0190FF18060E3E48,$9080888202D90120,$3F87A3350A83247A,$DB24241C8D82122E,$949715416D2F0918
    Data.q $E2262EC9B2072662,$C78931286450054F,$9D0538FF08705E52,$129572807F81C10E,$6044C0195C40A518
    Data.q $F9752AC17039552F,$46C2D106E0A6570F,$14726E6249710C0E,$674649540D584839,$8E1D58901F0871E6
    Data.q $E84388F35A13CD40,$F098238B420AC501,$CE30E20F42E0389B,$40DA48A11FE36C89,$002029FE308561E2
    Data.q $00FF000A0504F921,$530053000C000B2C,$1C09FF00FF080000,$88C30783C1A0B048,$10E2162A20AB04B0
    Data.q $968245A2B1489C4A,$102E9746E053B950,$158132404A6E06BE,$A2D2C95C5C468302,$11E99C7840EE583F
    Data.q $41D82673251E4104,$1A5A5B40968F0800,$2A75378FD1A68F74,$4712A7D0458101DD,$4A5340E6D54A3840
    Data.q $7FD7AA09229026B3,$569E302AB58AA952,$AC427A057C92A0AD,$A0AB3D9DCCFFB25B,$4B1DBA64588B5AC8
    Data.q $BBC08C3BB3DCC8B0,$FAE17BBDBB90508B,$C505C2298C567BFD,$06B9E32FB89C4189,$81E5728EAB06429C
    Data.q $09B362B0D56B2F8B,$40D5AD165ADF9E05,$147D4E4C4AFFCDAC,$2D81404359D62BEE,$21A0C534DA0103B0
    Data.q $4C4325DC158C4E68,$29BF37C14066CC21,$6812450004B213AB,$58C152A21CB868A8,$35E905B2FFBA82A8
    Data.q $9CB0718AC5D15941,$BE7F76E6062EA525,$DAED3C2295E693A1,$1705E95BC142C905,$04779B90844B57C0
    Data.q $02504C0C0301B059,$140B241FB7EC084B,$5DCA712C04804504,$8411F34E43B174F6,$754AC3B0320C82C9
    Data.q $A17412151E612848,$900434D907B45D47,$1A6258962340E214,$46EE2B8A84802D16,$FF6F0D4350AE8010
    Data.q $E0C8EA39415CA174,$224190211451FE19,$89E3A938602612C9,$690879902541A113,$122BA2596A4D4525
    Data.q $E6398A6097C90265,$4811896668905B41,$44A6F146549B0804,$81690780E5A9CC13,$074227B0C4DF8AA7
    Data.q $A83175071D24E9F8,$28A0422873543A8A,$7EE8F0D5059A23AA,$A9C84541E9386C79,$BBA6CE0389039728
    Data.q $60CA588344A9F0DC,$ACAA08C2FFF10427,$06C032AE0F913AAC,$B912AD814AA05141,$A0EA70F1030FAB92
    Data.q $69F4C744AC0168DF,$CB1D6A80FD0319E9,$29B1C680AE41044A,$B89D07106B560812,$34008A6CAC40854A
    Data.q $D3303EAB809422DE,$62422E90168F7E8D,$C70AA0B13FC60AB8,$04D8AE4AB41AF335,$AB86538D07BF6DB0
    Data.q $6C10DB16A9B050AE,$08A3EB31768AB390,$F1670EAE06906C38,$5720C7F1EC771CC6,$C9326C972404815B
    Data.q $ECB459044EFC781F,$34C9C763BB2DCBF2,$F300331E3089F04B,$E327CD47F20C59CE,$00C93CC33C1371F1
    Data.q $FCC34524B1EC9F40,$1D07B25D24783F8F,$8AA40884CBB4D013,$5C13C70CD1F324D4,$04B5C1790206F2DD
    Data.q $20AB62D1025C70FC,$42C6C3904B671B10,$C47DC5BD0FF2DD88,$474108FDFFD867C6,$C59DD846C380FDC4
    Data.q $1035DC41E3010313,$DC6090578606C61C,$DE1807BCCC60FC12,$86DC435309041B44,$8133B3761EC82BCC
    Data.q $EEDE31471DC77041,$1A905BF03F167860,$83B38620ED51DB94,$18B2F7BE50144201,$C2E38505EC814EBC
    Data.q $7F7621096B7836D9,$0B2E9F275C201131,$2D035B44FB6D5FCC,$152D34D0D02BBCFD,$0620A50603BDA105
    Data.q $780241834082562F,$CD0FF31D160A33BF,$40E0382442B40FDB,$110A0330CC116F2C,$AC4632F7DC090821
    Data.q $B208F901B3247B24,$03305C070FE5FC0A,$11EFF9FF06300864,$9636465F00C819E6,$1F03482C0A024D44
    Data.q $78EE2BE1CC51C248,$C10482B7F8570584,$01207E4B0EB0347D,$0F61242481CBF817,$840140F09618F008
    Data.q $8242D067F810A158,$244B58684B09B0BC,$B8438730E61C4227,$419C501142D41583,$ABB8351162CC4309
    Data.q $1921246089F08CBB,$5906806C81C1D0AA,$38BB8C920F0B234C,$48D441421C708C31,$23780B30916E0B47
    Data.q $8EA09481C728C31C,$3D8640845AE3BC80,$001148147D07121A,$588333709C184759,$71A6464738E321C3
    Data.q $49307A0592404B0C,$1664B01D1FF22630,$0F93B2145226F79D,$902542B9443FE4FC,$81120046D0C84F62
    Data.q $83BBFE9592A9FCCA,$96F2A0148151F2AD,$672B653C3FC26CA2,$512026048797C3FC,$E4A711205179C4C0
    Data.q $6AFC3B84A8D52563,$4CA8493441E9CB63,$3E990B5401A12A21,$B39BB0E01E871028,$1C8432150C178068
    Data.q $A0841488236E0729,$04F9210004054387,$000A2C00FF000A05,$080000530054000C,$A0B0481C09FF00FF
    Data.q $8152595D730883C1,$489C204A964937A0,$401403058BC5A2B1,$E935042447976790,$3096543B884BA91A
    Data.q $48040551D1895CAA,$9BC9137048FCCA3C,$4FA58F0583B840BA,$1774499A70F84B9F,$EB14188293388248
    Data.q $7A9D14B4768A53A7,$60417558A4A3A054,$4DBE903440ABB4F1,$4610ACD654D04AA5,$55B7D8C10B19F578
    Data.q $B5C484F67B3BC5FF,$39AE363B7CC4EB17,$62778601604167BA,$F80BFC12E17CB711,$93EABA0D8571BBAC
    Data.q $8D341574C6DFAF98,$631796CAAD8D902C,$41940B672B820BA6,$9C0182AB3A3D15F7,$D6E5E89AAD482E05
    Data.q $ED15703D8ADCC549,$9DCF1820D520DFDA,$268C8A500924DC10,$856272DFBF124125,$11E9DAFF70C4D5AB
    Data.q $C045052981330EA2,$D154C190C32A7AFF,$310067C190296A89,$0684203829B40974,$7CC1209131C52BE7
    Data.q $5E284792EDE90041,$4B141804525F02B9,$D52C238060240908,$065052602E7F1FC0,$13A57805C05279BF
    Data.q $0C1BD057C9370800,$E130792B18809836,$541F47A184182E84,$88DDF48C73295B12,$D2C11801C0989A25
    Data.q $051C9FF02E2C8AC2,$10472DEF409BC35C,$F11466C3B89A3A89,$91E420BA2B900892,$D4560989A4D9312A
    Data.q $5A45E5895A409505,$0863751424E2696E,$9A0B4226395E6198,$11E549B15015A4D9,$33F65B9C85644E6F
    Data.q $089E4809027627D1,$473420A09367C161,$A508A10D23FE2BA0,$1F106394248EA871,$78E4F144E908528C
    Data.q $463FDFCA65059768,$C1A8369315D07A6E,$98AAA88153BD0439,$401026A914914AFF,$22B234031A884741
    Data.q $27E99A8466AD4934,$30EE939ECCA44EBD,$83452C5A886840CF,$C2DA645E40C7FAD4,$0C68AA41A00D13B3
    Data.q $422D836C35A64AA4,$91E0DE40852AA4F8,$02086A91E913B8E9,$49841AEC34ECE00D,$1EF5B58AE3FCF5AD
    Data.q $A64803FC41AD4C14,$1AA40641AFD3506A,$04C1DC3A32AF3740,$F16C5710C28043C1,$E066C431AC6718C5
    Data.q $C604FC7B20C7F1E0,$7CA728C9C0C0ECB9,$550E32EC84428F32,$C4603334CA813C64,$FB182D721CBC463B
    Data.q $CE9020AF2ACD49D3,$DCAB400B316C0721,$18C7F442D4BE3FCC,$C3D40C60CA349043,$9F5306B1707F1ED3
    Data.q $0E3581D0C44083EC,$F4375DCFC26C573C,$5D3BB07DA838D8D5,$7631900340C5DC9F,$5D0506371047150F
    Data.q $371162FDDCF63DFF,$F489DB006C447403,$DD90605383024B9B,$0277832A2ECB7763,$4B0A76C17CC3411E
    Data.q $36C420A4DC733B8F,$3C0CE0C52B8C5E0E,$B3C6C1936C28D080,$5DE3A344FA5E0F94,$4541F060FF83DEAC
    Data.q $CE2B3CA9173630A4,$73581D91504F7106,$453AAD4FC42C6EC1,$002EF5F2B44224F1,$21E405745BA1D246
    Data.q $0B90284D2C104F53,$15042F02519C0A96,$457BB1F818CD3D72,$302D050385CCB8A4,$826C43C024330CC6
    Data.q $4141109D164590EC,$7E25615194BEB004,$E1FB82B206F798F3,$01BC57950059066F,$0D80657FEFFC4201
    Data.q $0164ADAFB2980841,$07C0D20502C1C34E,$CA20CAF02705109A,$21024A019616C170,$803C962320C0FAC1
    Data.q $C3C84D0947FC230C,$0B43006927C8A03D,$20A05806059887FF,$2A13F1F40384EC32,$9514A1E43B208F04
    Data.q $202322878C290670,$711A2EC4409A0440,$4648A5144BC38080,$40C6F0130500C1FC,$2D8DF17433811104
    Data.q $363AC658C691E2FC,$282F1EA380262082,$E40C7581C124CE47,$90F1EC531038EE0C,$41482060040C2C7D
    Data.q $9B1EE438E6205212,$AC8D08801CDE07A0,$91C2490AF20812A3,$C649321ED2C2B706,$06C7644493C4124D
    Data.q $0F9492304526372E,$3E16CA803A40A534,$896017C5729B03C2,$A554B59683FE593F,$9602042A0D95641F
    Data.q $0E0310BF27A604BE,$253264C88F02AB3D,$787760EE38328EC9,$204C26C7A9A71965,$4DA01A07854B1706
    Data.q $DB82784D88937213,$BD9300343A0FF636,$90278840B3328824,$507E36C89CEC07E2,$70730C44125C010B
    Data.q $04F921000202A105,$000A2C00FF000A05,$080000530054000C,$A0B0481C09FF00FF,$8664424DFF0883C1
    Data.q $489C2526881CA0A0,$70D548838B45A2B1,$897625823F23A121,$53175701410905DC,$308E8B5125494CAA
    Data.q $242EE6B2322C123D,$A22793C95B8C2808,$E071F0950A62320F,$AC40087C91489B2B,$DA9D0D3E6C84D3A7
    Data.q $F9A97758A4076082,$8AA66A39C0ABB4F1,$BA5AACD640703AAD,$64B7D89126F9E578,$B5858F959B3D9A05
    Data.q $0720963B7CBC5517,$2DD14BC2309167BA,$81D1ADD3017EB85F,$F7FDC6F9872641F0,$440B1D283959F157
    Data.q $672D9581E2323413,$3D9058BFF340F4E5,$A6281E6CFA2D05F7,$D0E4E85AAD4A61FF,$21605B1299E66BAD
    Data.q $5C9043E21825B5DA,$78E3F1CA47B92D0D,$4550CADFC083388E,$B27158B838369911,$1E9C23734141C72C
    Data.q $D182B75FEA3320FF,$8BBE9B7023A9AA85,$2BE0BDDBA2400A00,$0706B114F0442031,$6B0B953740B1148E
    Data.q $003411F556072139,$352B0F00A2E8BA01,$70000418297F9FE0,$94D49E014EB6384C,$293BA0D834625960
    Data.q $D058561384C062F1,$887C29DB10E91D85,$44A0D88A215CA1F4,$641E298A0430B116,$79015B17BCFA1D43
    Data.q $C20836368320A730,$F62A8A23C17D1600,$8D403418D2335076,$C93C2F4542F83649,$499660B452529463
    Data.q $65F97829379132AE,$4C42836649626298,$4266C0F64F9A8424,$8394029266F1B80A,$771D8648A2741550
    Data.q $508042499EC2C422,$0D09A14B484E8197,$1DD06314AB8DA882,$E29909A405C7FA8D,$9919022418739EE6
    Data.q $C2B4229C350140E2,$80BC410973AA0DA4,$010426A99DAA52FF,$FEA50F5051FCBAAB,$4128AAE2AAAD4DB3
    Data.q $239909B0055A36A4,$A51CD033D020AB04,$C24AE057426C807A,$7509B4C43A643E40,$A36BC40C7AAB0F70
    Data.q $3AB06941EDCAA089,$07B9DECA64B52F2C,$EF0AF503012AC119,$68073FCCEAE0B141,$B5E939E8C341EF7B
    Data.q $C02906BFDE5A3673,$0807E99150DE1FEA,$4FB45F0B0BCC0417,$771CC6F1AC67113D,$C8F220CC209B31EC
    Data.q $A02462C741BC8B24,$103FC58CAB2CCAF2,$B1C2FC340CF32C94,$FCB922C09CE72D15,$CE81AC748DC97333
    Data.q $7C973F258FF2632D,$FF36B2DD1096C6C5,$F1B01B23D248D2F4,$507B40C21CAF4E01,$CAB590131B06322D
    Data.q $D0CF5E024C040852,$6CD8F430F3116C08,$31915033DA46940C,$A43041001CAB632A,$41ADE4A0C640DDFF
    Data.q $E42CC204BDD03441,$DD0563010415809D,$F411A5E2820C2077,$8A126F05AB69DF46,$08FDD0182FD05E0F
    Data.q $CD064378A0189ABC,$0278A1A6E70FB74D,$31A033DD08F41F7B,$B418908D5B8AE72D,$508E1F8AE06D3213
    Data.q $96D3104A2DA44D38,$D7842427BADE4210,$203B59F2C03BC0A2,$462CF49030C74224,$D15DDB3AF5016B9E
    Data.q $302C418B3C979824,$098113BA522F0690,$70641ACB3E02C905,$8426105F9F320ED1,$0302919AF3459164
    Data.q $F310A414228130CA,$E991B5D252DC5953,$B0B2FF9FE80B208F,$80601B04E5E16187,$14A410C681301906
    Data.q $910440564A5F13F3,$3B0AA09C1120AF45,$8C1B0262A0AF0071,$2F500110449804E1,$4270601749E06D04
    Data.q $0400DC2A85504A08,$07C20C4D92B11CFF,$1B1050DF07224C31,$7CF203312B5CCFD6,$501111EFFA2AC408
    Data.q $A0EC348962267840,$C1F89804E30C4A13,$FFA34C568525E0CC,$212082F4048181B8,$C6324328E7184088
    Data.q $420A0A23CC6A8D06,$5FE1B18C706E3EC7,$04C40E3D8599071E,$268EE33520244C7E,$3B1FA449208F5210
    Data.q $4C8F068118D32BA1,$11D24904520521A3,$C990362C4D34660C,$1864F0AF1FF26E2A,$5794B23803277759
    Data.q $700A8188372AA3E4,$3208E8E584A40FEA,$43D88056B2B20D4B,$2B804E5990397729,$6248F0BE0506AAD3
    Data.q $ECBFD4201393C40A,$98FF99D1A6578130,$E05429B1972A2924,$09D8E7362154D609,$2283B10363E0503A
    Data.q $7403706E71C3F09E,$50079079D1370460,$50F41A46390396C0,$F921000405364904,$0A2C00FF000A0504
    Data.q $0000530054000C00,$B0481C09FF00FF08,$83D161FF0883C1A0,$9C4A12583D0560AF,$A41A8A03C562B148
    Data.q $2520094156B1C1C0,$2793C9A2C2A1AA18,$824765B1C2197C09,$3FD12FC094CA42E6,$A584F3D4E6732853
    Data.q $9449991608439FCB,$084D2A74BE7F93DF,$2412831CA7CFCAA1,$0AB34B3427C2554A,$3B02A957AA0A317C
    Data.q $B19CD68E69FAAD54,$B1D8E0560B5D78BE,$D42D73E10C9ACE1F,$984157E58EDE03B6,$579825B2ED6A895C
    Data.q $103C1AFEAF3E58EF,$F8DADF86BC5DB049,$131F8E321A6078A3,$1B02CA92C656FC8E,$0B17557399BAFE67
    Data.q $D2D0347A2163FF40,$6B45703D50DA67A6,$83F047A87C5238D7,$7057762B6721D89A,$D898147B6CDB809C
    Data.q $1F0B22322381496C,$3C6046A503C16E38,$47763590608BD4B2,$4AEF228DB684FF0D,$1F50B03E9D8F7EFF
    Data.q $91E331991274FD4E,$B591C8A69FE054C1,$009027B1541B2854,$D4A01D1E4BB2EC7D,$F941816135F47D09
    Data.q $9321E1951D46B471,$983581A06810FF80,$2604D8320C158B94,$007CED6A8B447210,$2613A0686E1A8612
    Data.q $C1E245F788A21129,$B5060B8FF6D0D436,$2E5136A4482EE2E8,$A4223A136218CC18,$1D86E3F8163D330D
    Data.q $24992233918EE44E,$75120FE0693E3E45,$9651295E559508F3,$6980104485A2EE5A,$4F99490422622124
    Data.q $E6A0D0EF41CC50C6,$FE70201079B46C8C,$17A219DC27420518,$C8BA7D0E9079E8F9,$86289F4A086741A5
    Data.q $651A264E074FE41E,$5109A4433A383041,$2E5042C89C81A890,$F14509A707BA68BA,$A8A6884412302EE9
    Data.q $432CACAAC764FF26,$E1422B10D282A650,$A5340CD91229F168,$C6AB1D508AEC8CA3,$422C612A8E025030
    Data.q $E031032E29F2705B,$DF2B106B3DE51DE8,$88D2E4FF324ACA24,$F69F01506B6925A3,$416E667E9A259021
    Data.q $FB34463FCE9AACAE,$6975E89B74E641AE,$E9F1E506BDC28A0A,$2105C02D73A8BC0D,$C20CE35D162869F0
    Data.q $AC5714C4F12C4710,$19C6F1AC64590418,$F22C84BA09F130FB,$A71C09CFF2C321C8,$CBF240431319C59C
    Data.q $FC732A100FF0B0BA,$6FC93303A899C46F,$08700B1CCD4223FC,$A0BE40B24CEC22C4,$D1840C4466C6B400
    Data.q $3C674B06D0301322,$0204321D402FC441,$0B70A059D5421311,$0C882EB5A0809BC2,$D9C92C2080D83284
    Data.q $03701D3FEF3000BA,$D90835ACBB081836,$700459D80674FF0A,$800110510B7025AF,$504E0B701A6EFD5F
    Data.q $C023B6B69D83762C,$0338004D0629CEAD,$841958DC00A266DA,$6E01ECF0EC59E008,$CDCE006542019DC0
    Data.q $A10918B70E56A8E4,$E3B67DEAB1DE3A41,$B0907BD800C32907,$7344BB4D9C6209AB,$3C52BEC6EAC7BD54
    Data.q $BC0DCD75444BCCD4,$3CA589E7460106FB,$304CB14147E0372A,$5B4143C280A89248,$456455E80832FF60
    Data.q $301B05904F7C84CA,$1A4FE680F00100C0,$85B9044E05602409,$7A63188AAEE646FA,$FB3F5130415EF319
    Data.q $802F0BF827036031,$09890ACFF5FE8210,$802C93B8617500E0,$40C206FC83DB1906,$124AD04602309A07
    Data.q $0441215A16C160AC,$209C853008FA8281,$684D03605BCB1022,$04112818609C1F42,$C02622C2D0DCFF10
    Data.q $8EA0082148280300,$094823C208452854,$6907606006454879,$680504604444C588,$10A04162446088C0
    Data.q $4064688AB14CC504,$1FC40C4C85602219,$3142D8E71802900A,$58FDA3CC697E86D2,$B4168FF1D04D9036
    Data.q $11A23D43B0DE6563,$C829172001E10403,$2223CC8613A01CBF,$930352024588E207,$1243C910C0160D50
    Data.q $48CA0863A4961E24,$A49C5493A0F8019B,$128152304A11CC40,$553F695124033262,$B406A16CAD08A3FE
    Data.q $C4B696929C20A6D7,$0A19E88540132E65,$021973306540130D,$21A6486C19CB1807,$0F5B501403496997
    Data.q $D26110393D2CC520,$4128C42670540351,$A234D484D36C3A01,$1A8C583680F0AC06,$A14B59381D04600F
    Data.q $2D388400560430B4,$D46DA1D825900E86,$0080A578A215C039,$FF000A0504F92100,$0054000C000B2C00
    Data.q $09FF00FF08000053,$170883C1A0B0481C,$0845A0CCD053120D,$10C1A2B1489C4A23,$29A088D8D8CDE49D
    Data.q $88CFF2F8A471201C,$00A1E45653288B2F,$490C1639308D9283,$DCA91C622FAD4713,$7683319786D073B9
    Data.q $FCAE302D68B35824,$50A08D0D311A5CF1,$A61CCAB54A2D1265,$92ABB511409E0558,$E775944156C35499
    Data.q $361A9D7ED35D3388,$9A015A2D655893EC,$A10EF36D81DAEA36,$D6EA1812C46E2F02,$0F7E3BE1AF302BBD
    Data.q $6DC358307822211A,$C763460EE82624B9,$BFF276421D87216C,$85354CD63ED59731,$F84A868740238167
    Data.q $B8169C485CB0E91F,$1B609E8F986AF180,$64B934D7A8CEEAF8,$9582DB4184407C48,$FF00B26240F521EC
    Data.q $60C10FC5CCD1907A,$F18CA4D204F2AEFF,$B3C0F0FFA2A3C882,$7191305706C8EFCE,$1994B2591A096765
    Data.q $602A819878483050,$AD05C9550B83969D,$4A8AF0B8120484C2,$94146F031F17C413,$7534D7E0A844784A
    Data.q $C128120341DC12D4,$320A828044A0C307,$251A704DB6838160,$286A19419D54804F,$218808F08D162301
    Data.q $DB33ECFF18DF516E,$BA2D415C30A4A43F,$8D63482461454FC8,$41F0128BA414A63B,$498D80C8D24701D1
    Data.q $911734129324B452,$1E55952529446537,$09D121AA5895CA54,$8219089846791E5E,$182E508200129BE5
    Data.q $9059B1DA372209A4,$DA5042047962701D,$2D1079E8D922A0A9,$1A08114165A9327D,$AF2F906A18941EDF
    Data.q $8DC1150607E58990,$0107A48FA0FC59A3,$A380A4183286A892,$4A8C47446A0180EC,$0FE9C1FF81048C20
    Data.q $42A812AB83F422AB,$B5060EC9DA9B26D0,$D0390EAE1A8CA422,$E01E41EC17EA9C20,$1B48FA380640C76A
    Data.q $B40C5EAB832422CB,$AA41ED534013A381,$8283BCFF34835AB8,$32AE29105B7EB0A3,$BA8F603A9C089021
    Data.q $6BD2D210102AE106,$8E3B8FF1C2B83C50,$4FFAB82E41AFA196,$0E262CC639A6A733,$C4F0E0E6AE0D504C
    Data.q $7B0718C5F16C5714,$21C731EC771C0302,$F26C94BB02061C54,$B71F01CFF05325C9,$CCF28243160440CC
    Data.q $BC7F2E124FF1A0BB,$7FCA3342D8F0C526,$713320ABC7F39408,$0C67408E7CA33F3F,$C9B491D713B3F1DD
    Data.q $422B1CD383E40C7D,$EA40CAC2EF53C931,$0AFC38F50600CD60,$8B2C40CB82EF5D27,$0DCBBDA48CC0F36D
    Data.q $A187031D362195BC,$045042FF9C48DA45,$1DC84BBE8AE03362,$ACBD35AE04104145,$B7600D05014DFDA4
    Data.q $549CDC868B7F83D8,$B541C04F81069062,$2DB5070238E1E43C,$73DC83AB2CE51536,$782E041330D0634F
    Data.q $E911168DFDC86CB0,$DCB7BAD4E41D3B21,$5C3758EC51135CA1,$8344C90DA47D262B,$FC9142CBE681BD60
    Data.q $E75738D1235037D4,$CD3D3092D58FC1BC,$606F1FE4C2B453A4,$1024A491000600D0,$327F7CA9410EF26C
    Data.q $47E6CB404456FE12,$678C009C0902421E,$9D0101742E8038DE,$50E4192BF2000410,$D86F208FE58E3D92
    Data.q $E5F854021012FF1F,$04280700C310B01D,$F59AFB2781041473,$0381E031A685B22C,$482B3FC827048589
    Data.q $E83706C080232B22,$5E981920881C0506,$036194571287B81F,$C2C822FF40D4F86D,$4A85F8A81D402622
    Data.q $BA89F0CC348B01FC,$C44E43920A358050,$C88D0AE21A792960,$8889DF08C1880D42,$8CF140100270B009
    Data.q $3797E6E907C0E80A,$20282164708B8018,$3C32106264818BD0,$31111DC698371EA3,$8F02080EC04C808E
    Data.q $FA0CF46A8F921A3D,$872083C41DC81902,$300D0583271F648C,$A90F2448281A9012,$64BC5B05869C158E
    Data.q $0040123D49B93517,$4CC469443A80EA3B,$C23B42145094B242,$14AE7F92B24B0734,$C12C754339603848
    Data.q $CB90132DC2900250,$F40210BA9792EC7F,$8720926250801524,$BC442CB3AC18A5E0,$00C529472CC59191
    Data.q $6384B60CC0057A1D,$1DAC3A6A06C93936,$6D1039473842B05D,$FEC6429CDC1D519E,$DCE38561583B0011
    Data.q $CE1E0510D0840120,$B0804125F84B8A93
    Data.b $8A,$42,$E8,$29,$20,$00,$3B
  loading_circle_gif_end:
EndDataSection
// edit
changed the maincode to version 1.2.1, read delay on x64 systems fixed
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

Update:
History wrote:; 1.3, Mrz 10, 2012
; changed from ImageGadget to CanvasGadget
; drawing-routines changed for better support of some gifs
; removed erase flag, no more required!
; added flag for background-color
; ATTENTION - this version requires Threadsafe Compileroption!
New example:

Code: Select all

XIncludeFile "AnimGIFGadget.pbi"

If gdiplus_Init()
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 50, "GIF example")
  AnimGIFGadgetMem(1, 22, 15, ?Loading2_gif_start, 7998, GetSysColor_(#COLOR_3DFACE))
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        HideWindow(0, #True)
        FreeAnimGIFGadget()
        gdiplus_End()
        Break
    EndSelect
  ForEver
EndIf

DataSection
  Loading2_gif_start:
    ; size : 7998 bytes
    Data.q $00A0613938464947,$7C7E7C0000F20014,$8A8CACAAACECEAEC,$F4848684FCFEFC8C,$04F9218C8E8CF4F2
    Data.q $0BFF210004000709,$455041435354454E,$0000000103302E32,$1400A0000000002C,$FEDCBA48FE030000
    Data.q $CDEB38BDAB49CA30,$9E69648E2860FFBB,$2C70BEEB6CAEAA68,$364860871C219BCF,$0213D22EDCB7F3AE
    Data.q $95320C47F148437D,$812350752963E4CE,$EC90020C0000A001,$43F05EB96B0DFBB6,$1D83B564CFAF2E8C
    Data.q $C741BCB6F6D38F37,$00845D020E6EEFBF,$8B8A888685831002,$82928D8F8785890F,$9A84900D958A8C94
    Data.q $0E8EA00B9E5D9C0C,$0FA95CA710036370,$B368B1AC77AA5EAB,$B8A6B9B5B7B0B2AE,$0CC2AF0DBFBBBDAD
    Data.q $C985CAC8B1058A5A,$BDCE84CCCDCFCBB7,$D55DD3D4D1D2D6D0,$5C5C890AA263DD9B,$DFA5E598E1E404E2
    Data.q $9FEDEF93EAEBE663,$73F8E9E7ECF3F0E0,$CFF3E205087F75C7,$B81188190342BF8F,$3C02160B84C16147
    Data.q $08AD1380C54ED0C8,$1D8D94C9E0343018,$92C6A3D1C1B034AB,$4B6504090C901922,$26450984C65C4D96
    Data.q $B3C9DCEA73389B8D,$4A1D0A83409FCFA7,$0000121AA3D1A8B4,$001300070904F921,$1400A0000000002C
    Data.q $8486840402048400,$AAACDCDADC4C4A4C,$F46C6A6C343234AC,$B4B2B45C5E5CF4F2,$E6E48C8E8C141614
    Data.q $548C8A8C3C3E3CE4,$343634ACAEAC5452,$62640000007C7E7C,$EC1C1A1CB4B6B464,$000000000000ECEA
    Data.q $0000000000000000,$0000000000000000,$648E24E0FE050000,$BEEB6CAEAA689E69,$AE78DF6D74CF2C70
    Data.q $62214315D3EF7CEF,$00506DA4C88EFCA8,$8EAD4A728B8F9F38,$BF5818A016A78A06,$900E9C2DAB735E60
    Data.q $776CD5A1507082C5,$1D7872E9BD4EDD7A,$7B807C7EE7DB8F75,$2509646409268367,$27520E018F120E17
    Data.q $9095269391128F8D,$9C8E949D979B2892,$989F24A5A0A38C99,$0823AF96A2ACA79E,$0496900425085B89
    Data.q $BC8FBABDBB97B928,$C412C2C5C001BE27,$D1B8CCCACDC8C626,$115AB50D25C3BFC1,$E08FDE280E96A725
    Data.q $DDE8E626E412E227,$EBF0EFE3EDE1DF96,$4EDAD9F4EDF2EA24,$0A5D8EF790B1F5DC,$05850681BFDCB008
    Data.q $AD0985C1DD308820,$007DAD04B0A87441,$8DB498F025C8916E,$C9193228EB059712,$422942EA387D238F
    Data.q $B91C7A5C13962FE5,$3042308812CBE692,$8A7CE74F88D52F85,$BF3CA2B7934A1A00,$3D56D36974409D09
    Data.q $131996A631352AA1,$88A9604070380807,$EBD5CAD1BABB5BAC,$568B3586C765B004,$3B65C0F96EB21DAC
    Data.q $DDE8C25D5A9604F7,$0AF80C011909834B,$100502820202EC1E,$90C7E3B1B8CC24EC,$10DF32B94C9E4B23
    Data.q $1D00070904F92100,$00A0000000002C00,$8684040204840014,$2CDCDADC4C4A4C84,$6C6A6CACAAAC2C2E
    Data.q $3A3C141614F4F2F4,$B45C5E5C8C8E8C3C,$E4E6E40C0E0CB4B2,$0604FCFAFC343634,$345452548C8A8C04
    Data.q $7C7E7CACAEAC3432,$92943C3E3C1C1A1C,$ECB4B6B464626494,$000000000000ECEA,$8E2760FE05000000
    Data.q $EB6CAEAA689E6964,$78DF6D74CF2C70BE,$818DA5FFEF7CEFAE,$0472A4C8806C30F2,$1A72064C112260C9
    Data.q $7AECB384ECD80050,$0694714B166B8E6F,$2CDFBAF83118F188,$3A624750259D4108,$07051914543A7096
    Data.q $83817F8482807E2A,$8D288B86888A8529,$2491969294898C87,$639D0C2319597A19,$1216A816121C250C
    Data.q $AE26ACAAA9A6275C,$A7ADB5A8B328ABA9,$B724BDB8BBA5B1B4,$00A21825C4BFB6B0,$05250B58CA0B2309
    Data.q $27D6D4D32805A8AF,$D2DEA9DC26DAAFD8,$E4D7D5E024E216D4,$11CA1126E5E823E6,$A801A7250FCFC923
    Data.q $59FCAAFBF92812FA,$FB057F89E03037D0,$0E7E412050982C1D,$7889621081342A01,$891EE0067BD01AA2
    Data.q $6192281C02050F5F,$A93C8E17B2219280,$4896492F7DCA24D2,$9DA2CF670763CCA0,$D53D70089D8FA57B
    Data.q $43A2BBE78DBA0AA5,$A55003B3EA337E8F,$8893EA24E3B292E3,$164B9862F82ACF50,$35F61582095BAEC2
    Data.q $0B408ACD625708D8,$231ED81DB55718AC,$F144734D0113A721,$E005090480A07131,$80BF213037FBE88A
    Data.q $C56170F89C207705,$6512592C42330D8C,$048660218EF20EB8,$025D1E88E06C4E9A,$A339DC14097A8282
    Data.q $66CB63A4CE808B39,$CEB40B0A05016151,$83C0DFEFB7BBCDDE,$21000847BC4E1F0B,$2C001400070904F9
    Data.q $001400A000000000,$4484868404020485,$2C2E2CD4D2D44442,$6264ACAAACECEAEC,$F43C3A3C14121464
    Data.q $5452548C8E8CF4F6,$7A7CB4B2B4E4E6E4,$34DCDADC0C0E0C7C,$0000001C1A1C3436,$4A4C8C8A8C040604
    Data.q $F4343234D4D6D44C,$6C6A6CACAEACF4F2,$FAFC3C3E3C141614,$B45C5E5C949294FC,$0000007C7E7CB4B6
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $2C48708A40FE0600,$3A6CC972A4C88F1A,$AF5AAD4A74A8D09F,$55BF7AEDCB76ACD8,$74E8C088E1232711
    Data.q $454A82407E598236,$CF7E8019231CFA00,$7A08204C80FFA828,$047A7B790D481608,$111D8B8B1D11450D
    Data.q $0200920214979681,$8A43768C9B041F46,$200B1B1A470400A1,$ABB0AEACAA4A1A06,$B7B2B4B6B149AFAD
    Data.q $1646C0B5B8B3B948,$43207AA6204487A6,$231605450E7BCA0E,$D7D6D3477E1623D5,$D5E048D8D6DB46D9
    Data.q $E5E8D2DEE1D4DAE2,$08A18447DDE444EA,$7ACF214309CF1E45,$024019AADC064521,$341DB90523C0E030
    Data.q $3C47017FC2DAD092,$291388C12050D224,$1567854869567844,$00B508A127E3DC86,$CB650236231E50D5
    Data.q $E6447984A64E486B,$53A98CDE5F2695CB,$24711F3E974FE125,$9400FC91041951F2,$533C9683C02EC224
    Data.q $4EAAD4E5B5100D3E,$A956EA9596B4D6A1,$A6DE645AF582595A,$1F614A5B3C1244A3,$A428CD39B9147F3F
    Data.q $60A5D01F5C8BDCE1,$9606FB7BA95E2F57,$248A0F5303C8D7EB,$D61B7E33884CC653,$276FB9B26E778D59
    Data.q $CCBBF3759C965E9F,$675B6437765B3194,$41409495A83E14D2,$4A021EB808A64F91,$30B0580C1A232A19
    Data.q $EEEF7CBDDE6E952C,$0787B922F137FB8D,$0245E5F1961CAE2F,$8BDA8348B64083CC,$EFA623AF448A3D1A
    Data.q $826460B3700C067F,$11C023DF611FB305,$2191086CA7F0F7F8,$CFDFEBF3F1688843,$A0280600FFFFBFBF
    Data.q $0904F9210000411A,$0000002C00140007,$020485001400A000,$D444424484868404,$ECEAEC2C2E2CD4D2
    Data.q $1214646264ACAAAC,$8CF4F6F43C3A3C14,$E4E6E45452548C8E,$0E0C7C7A7CB4B2B4,$1C343634DCDADC0C
    Data.q $0406040000001C1A,$D6D44C4A4C8C8A8C,$ACF4F2F4343234D4,$1416146C6A6CACAE,$9294FCFAFC3C3E3C
    Data.q $7CB4B6B45C5E5C94,$0000000000007C7E,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$FE06000000000000,$C88F1A2C48708A40,$A8D09F3A6CC972A4,$76ACD8AF5AAD4A74
    Data.q $9388A2E0BF7AEDCB,$C11ADAB4E1447091,$7D0022A541203F2C,$D61467CF600C918E,$16087B0820498180
    Data.q $450D047B7C7A0D48,$9782111D8C8C1D11,$491A06200B1B1A58,$A2041F4602009302,$470400A88B43778D
    Data.q $499F9DB14A9E9C9A,$BABCB4B69BB8B3B5,$C723160547B7B948,$4488AD16467F1623,$7CD20E43207BAD20
    Data.q $DB46CBC9C8C5450E,$C6C4E2C7E048CAC8,$E444EAE5E8DADEE1,$854706C7DC0648DD,$214309D71E4508A8
    Data.q $BD9E8F322884F6D7,$D91092341DB90523,$B0D2243C46F48242,$700B18871388BC9E,$1A59AE112233E38C
    Data.q $4A02FC21855AE152,$472D243263B1B228,$359647E5D3298478,$91E2E6731224DE6B,$A640F00B227F2F9E
    Data.q $0D29290A46D29091,$5A1CF2560080CA02,$CCCAAF558ECD0034,$32BF5BAED1AB142A,$F0148CD522162AA3
    Data.q $14A935C1244A7289,$B4511B91481C0600,$562F9678BDDE1A14,$DC782BB6001F7ABC,$A0F5683C8AE6A2C6
    Data.q $B80B5884D4693448,$3BC68996C4D85D61,$BF319A6D90DDD977,$3444D1691BF9BC3B,$6E0F91580160B018
    Data.q $022A14FAF0502527,$6A88CAF56ED887B4,$D60C3D6EAF7DAED6,$BC75A7137E45E0F0,$07C004ABCEE070B8
    Data.q $8238F9BB0691EAC1,$0CD5E04C529F2924,$720B04CA4166F018,$F0F0A3C047BECA43,$1086432210D94FE3
    Data.q $FFBFBFCFDFEBE4D9,$045380E0280600FF,$00070904F9210001,$A0000000002C0014,$8404020485001400
    Data.q $D4D2D44442448486,$AAACECEAEC2C2E2C,$3C141214646264AC,$8C8E8CF4F6F43C3A,$B2B4E4E6E4545254
    Data.q $DC0C0E0C7C7A7CB4,$1C1A1C343634DCDA,$8A8C040604000000,$34D4D6D44C4A4C8C,$ACAEACF4F2F43432
    Data.q $3E3C1416146C6A6C,$5C949294FCFAFC3C,$7C7E7CB4B6B45C5E,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$8A40FE0600000000,$72A4C88F1A2C4870
    Data.q $4A74A8D09F3A6CC9,$EDCB76ACD8AF5AAD,$70919388AAE0BF7A,$3F2CC11ADAB4E144,$918E7D0022A54120
    Data.q $8180D61467CF600C,$0D4816087B082049,$1D11450D047B7C7A,$1A489782111D8C8C,$9C9A4A1A06200B1B
    Data.q $1F4602009302499E,$00AC8B43778DA604,$A3B5499F9DA14704,$BF99BABCA0B69BB8,$1623C723160547B7
    Data.q $B11647CAC8C6C47F,$0E43207BB1204488,$CBC9C8C5450E7CD6,$CFC7CDDEE2CEDF46,$0648E1E8E3EAE0CC
    Data.q $46F523F3F106C7E0,$8609DB1E4508AC85,$F379114427B6D884,$7BC1E14E084119F2,$44C871164430890E
    Data.q $9A71B638058C487A,$CDB08919931C8D11,$47F90C2ADB0A90D2,$8C663A2390114250,$126D349A4BE3D219
    Data.q $1F9ECEDE1A132981,$A247267310780591,$841AD28224964601,$A91429DCB8010495,$15AA2D1E7D5698D1
    Data.q $38991E935BA0D72B,$33EECC0FB210A2B4,$0C29536D824894F5,$AAF6B2B822506824,$47BCDF6F7680A59A
    Data.q $76E11D6F0A1B7EF7,$359AA4507AC41E44,$2BCE70DC11B4426C,$B9921E5E89832262,$1CD46B30E6CB3BB0
    Data.q $A3002C160306889A,$4EDE1F22B0F55A85,$6A04562AF600A04A,$A9D391966B1DB90F,$D77008BC2D6EFF57
    Data.q $A0397C1E1EBF88A0,$3780D2358820FB00,$A98933F12490471F,$99602CDE03019AFB,$7808F7D6486E8160
    Data.q $64421B29FBBDBDE4,$F3F8FBFBDBA210C8,$00FFFFBFBFCFDFEB,$0904F9210004110E,$0000002C00140007
    Data.q $020485001400A000,$D444424484868404,$ECEAEC2C2E2CD4D2,$1214646264ACAAAC,$8CF4F6F43C3A3C14
    Data.q $E4E6E45452548C8E,$0E0C7C7A7CB4B2B4,$1C343634DCDADC0C,$0406040000001C1A,$D6D44C4A4C8C8A8C
    Data.q $ACF4F2F4343234D4,$1416146C6A6CACAE,$9294FCFAFC3C3E3C,$7CB4B6B45C5E5C94,$0000000000007C7E
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$FE06000000000000
    Data.q $C88F1A2C48708A40,$A8D09F3A6CC972A4,$76ACD8AF5AAD4A74,$C45130E0BF7AEDCB,$8D3D7AB1223848C9
    Data.q $801152A0901F9660,$0A33EFC00648C73E,$087C08204682816C,$0D047C7D7B0D4816,$83111D8D8D1D1145
    Data.q $4A1A06200B1B1A5F,$489F9D9BA09E9C9A,$AA041F4602009402,$470400B08C43788E,$A3B948A7A2A4A6A1
    Data.q $C723160546BDBF49,$CBC9C8C547801623,$89B51647CAC8C6C4,$DB0E43207CB52044,$D2E3D0D3CD450E7D
    Data.q $E9E448CFE8CCD4C7,$F34806C7CE0644E6,$8645FACEF847F6F4,$90C12E00F11410B0,$990FC22884F8E010
    Data.q $7117943C46F4863F,$700B1890F58690E2,$D3263B1B2336238C,$5DC09191C9638238,$130421855C01521A
    Data.q $279A47E4F212284A,$C8E2A771E934926D,$6492507805D0449B,$246A44968C01A247,$998041B72D224A82
    Data.q $AD1686C8A0CCC010,$76415BA3D7299596,$870D2145ABB10B0D,$AA8059C1F690A59E,$84052AEE004912A6
    Data.q $DA99CF7B34521709,$236EEB75F9F77CBE,$18A75BB696D17551,$B6D1141EB5079131,$6B9C37096F909BAD
    Data.q $7C898EAD33486F1C,$0CB8C5E8C859DC3E,$C3D66A97CC00B058,$BA07C8BADD78688C,$81160AFDB0281294
    Data.q $769B25BAD77A43DD,$FCAE2ED757B322EC,$00094531B0E49138,$79F7840D23D24210,$8BC3D295C0526914
    Data.q $16099882CE003019,$E248008F9DA48F00,$0C864421B287CBE3,$FFBFBFCFDFCDC421,$046180E0280600FF
    Data.q $00070904F9210001,$A0000000002C0014,$8404020485001400,$D4D2D44442448486,$AAACECEAEC2C2E2C
    Data.q $3C141214646264AC,$8C8E8CF4F6F43C3A,$B2B4E4E6E4545254,$DC0C0E0C7C7A7CB4,$1C1A1C343634DCDA
    Data.q $8A8C040604000000,$34D4D6D44C4A4C8C,$ACAEACF4F2F43432,$3E3C1416146C6A6C,$5C949294FCFAFC3C
    Data.q $7C7E7CB4B6B45C5E,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$8A40FE0600000000,$72A4C88F1A2C4870,$4A74A8D09F3A6CC9,$EDCB76ACD8AF5AAD
    Data.q $48C9C45530E0BF7A,$96608D3D7AB12238,$C73E801152A0901F,$816C0A33EFC00648,$4816087C08204682
    Data.q $11450D047C7D7B0D,$1A4F83111D8D8D1D,$9C9A4A1A06200B1B,$A6A1499F9D9BA09E,$041F460200940249
    Data.q $0400B38C43788EAD,$BC48BDA5A8A3A947,$1623C723160547A7,$C8C548CAC8C6C480,$1644D4CED146CBC9
    Data.q $43207CB8204489B8,$CFC7D6450E7DDF0E,$44D8E9CDD5EAD2CC,$F6F4F34806C7D206,$FCC8FC46FAD2F847
    Data.q $E40F11410B343111,$22884F8E41090C12,$3CA04237A3DDEB00,$238C700B1887168A,$721243263B1B2337
    Data.q $121C7E4526924784,$1855C81521A5DC81,$1E4F252284A1B082,$2B94CADF677239C9,$8ECA24C0F00B21B3
    Data.q $51297499351C0345,$020DF989125C91A3,$150A450A6E0086CD,$27DD2AB93EA6D0E4,$FC4ECD002146688D
    Data.q $B6096707DA42967A,$1814AD3901244AB2,$6DA45AED91787C36,$8DB9DDB4F68DB6DF,$10DE389C21130D45
    Data.q $88A0F5C03C8ED3C6,$E1B86B8C84E16FB7,$02163B0AEBC8D330,$00582C060D113159,$B355AD61EAF52BB6
    Data.q $EC1F226C365A8236,$045C2C48A0A04A52,$D76D174DF5910F7A,$6DF90A0D7ED48BB3,$48D6308410025C4C
    Data.q $F0549A451E8DE203,$B3800C0662EFF425,$EF6123C2058266A0,$6CA1F0F7F8120023,$F3F1730843219108
    Data.q $00FFFFBFBFCFDFEB,$04F9210010451806,$00002C0014000709,$0485001400A00000,$4442448486840402
    Data.q $EAEC2C2E2CD4D2D4,$14646264ACAAACEC,$F4F6F43C3A3C1412,$E6E45452548C8E8C,$0C7C7A7CB4B2B4E4
    Data.q $343634DCDADC0C0E,$06040000001C1A1C,$D44C4A4C8C8A8C04,$F4F2F4343234D4D6,$16146C6A6CACAEAC
    Data.q $94FCFAFC3C3E3C14,$B4B6B45C5E5C9492,$00000000007C7E7C,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0600000000000000,$8F1A2C48708A40FE,$D09F3A6CC972A4C8
    Data.q $ACD8AF5AAD4A74A8,$58B0E0BF7AEDCB76,$CD78D11C2464E228,$A950480FCB304686,$FBE80324639F4008
    Data.q $08204383826D0519,$7D7E7C0D4816087D,$1D8E8E1D11450D04,$1A06200B1B1A8211,$9F9D9BA09E9C9A4A
    Data.q $0247A7A2A4A6A149,$8FB0041F46020095,$A9470400B68D4379,$23160547C0A5A8A3,$CAC8C6C4811623C7
    Data.q $CED146CBC9C8C548,$BB1646CFC7D645D4,$0E43207DBB20448A,$44D8DBCDD90E7EE3,$F206C7D20648D3DA
    Data.q $46FAF4F347F623F4,$E04C880115FCD2FC,$2E80F11410B64390,$881884FAE81090C1,$0B1890F58210E0CF
    Data.q $8638236EB8238C70,$36458FC8E471A64C,$112349E544792476,$21855D01521A61D0,$E263D269484A230C
    Data.q $20F00B225B3E9149,$990D1C03458EC964,$25429142A3512974,$41C735214CDC7312,$9EEC224EC01119C0
    Data.q $0FA1C52A74CA8D2A,$B6052D5448210A2C,$422D570B75A1EF69,$0295F74024895B58,$D48B95D4891388C4
    Data.q $9A2C6DAADCA7B46D,$63C716EFC6D95D78,$141EBB07909DD8F6,$371173909CAE3711,$A5C661C8596C4638
    Data.q $5F30C2C160306885,$91B5FADD82B75DAC,$C87B6D8EDF67B5D5,$6B4228281295BD87,$B5EB8D6A43E18117
    Data.q $174909BADE28373B,$281A46B184210012,$A75784A512490477,$39059C406032FF8B,$011FBB692E402C13
    Data.q $884364DF9FCBC691,$BFBFCFA3A842190C,$F480E0280600FFFF,$070904F921000105,$000000002C001400
    Data.q $04020485001400A0,$D2D4444244848684,$ACECEAEC2C2E2CD4,$141214646264ACAA,$8E8CF4F6F43C3A3C
    Data.q $B4E4E6E45452548C,$0C0E0C7C7A7CB4B2,$1A1C343634DCDADC,$8C0406040000001C,$D4D6D44C4A4C8C8A
    Data.q $AEACF4F2F4343234,$3C1416146C6A6CAC,$949294FCFAFC3C3E,$7E7CB4B6B45C5E5C,$000000000000007C
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$40FE060000000000
    Data.q $A4C88F1A2C48708A,$74A8D09F3A6CC972,$CB76ACD8AF5AAD4A,$E22A58B0E0BF7AED,$4686CD78D11C2464
    Data.q $4008A950480FCB30,$0519FBE80324639F,$087D08204383826D,$0D047D7E7C0D4816,$57111D8E8E1D1145
    Data.q $9A4A1A06200B1B1A,$A1499F9D9BA09E9C,$48A3A948A7A2A4A6,$B3041F4602009502,$470400B98D43798F
    Data.q $23C723160546ADAF,$C4CBC9C8C5478116,$45D0D3CD48CAC8C6,$43D8DBD2CCD4C7D6,$207DBE20448ABE16
    Data.q $CFDED90E7EE70E43,$23F4F206C7CE0648,$CEFC46FAF4F347F6,$8211204C880115FC,$0788A085CA1C8EF5
    Data.q $C427D76084860976,$8C70088DC3067C40,$864C6E38C6233923,$FC8E4C4792476424,$1A572392C7A54458
    Data.q $2AEC0A90D30EC089,$98CBDF425148790C,$CC2360F00B22532F,$297498DD1C03458E,$B43905429142A351
    Data.q $B0839E70449AA4A9,$553DBC449F002293,$9E08428CD119CFBA,$DC0FB5052D1557BD,$5C5F42AE366B95C2
    Data.q $8A44C29607602489,$B729ECDB75D60F16,$1DF87C4B75E34C68,$444C6D170A437063,$62283D7C0F22E2B2
    Data.q $706E28EB213A5CEE,$582C060D10F2186C,$504661EAF52AE580,$B6D8ED35CC1D66AB,$BD87C91AFD911761
    Data.q $8117CB7228281295,$B67B86039D7043E1,$81085804A3D0426E,$4492411DCA0691AC,$180CC1E0E8CDA189
    Data.q $4B900B04CF016710,$E3F0F0A44047EECA,$EE1086432210D937,$FFFFBFBFCFDFEBE4,$F921001046080600
    Data.q $002C001400070904,$85001400A0000000,$4244848684040204,$EC2C2E2CD4D2D444,$646264ACAAACECEA
    Data.q $F6F43C3A3C141214,$E45452548C8E8CF4,$7C7A7CB4B2B4E4E6,$3634DCDADC0C0E0C,$040000001C1A1C34
    Data.q $4C4A4C8C8A8C0406,$F2F4343234D4D6D4,$146C6A6CACAEACF4,$FCFAFC3C3E3C1416,$B6B45C5E5C949294
    Data.q $000000007C7E7CB4,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$1A2C48708A40FE06,$9F3A6CC972A4C88F,$D8AF5AAD4A74A8D0,$B0E0BF7AEDCB76AC
    Data.q $78D11C2464E22C58,$50480FCB304686CD,$E80324639F4008A9,$204383826D0519FB,$7E7C0D4816087D08
    Data.q $8E8E1D11450D047D,$06200B1B1A47111D,$9D9BA09E9C9A4A1A,$48A7A2A4A6A1499F,$950247B0A5A8A3A9
    Data.q $798FB6041F460200,$1605460400BC8D43,$C8C547811623C723,$CD48CAC8C6C4CBC9,$D2CCD4C7D645D0D3
    Data.q $C11647CFDA44D8DB,$0E43207DC120448A,$06C7CE06450E7EEA,$FACEF847F6F4F348,$4237A3C9FCC8FC46
    Data.q $283411EEF5801120,$4BBC3C45042F10E4,$188A213EBBC42430,$3B1B2339E38C700B,$2692478472124326
    Data.q $224AE53298D47E45,$844893296B924F25,$8861577854869877,$607C7658128BC4E2,$30068F33A2D0E512
    Data.q $82914DA4D2E8926A,$8752AAD329C01644,$10754EC8539754DC,$AAB3A0F410045E7C,$83EA90AB4400850C
    Data.q $AE143B6DBED614B4,$2B68711AE767BB5C,$78B052CAEF04912C,$8B45B9448DB86331,$8318DD71E21B38AA
    Data.q $AB92C3E36B0CD21B,$4507B041E42CBE3D,$0DC5DDC42763A9D2,$A6566160B0183446,$353AED66BD5BADD5
    Data.q $7B6D96D35445DAEC,$5C007C87BCDBA837,$381182BA22828129,$4908BE023A97643E,$1A46A78421C0130F
    Data.q $5D87A51249047738,$059C406032FF8BA7,$1FBB692E602C133F,$4364DF9FCBC69101,$BFCFA3C442190C88
    Data.q $80E0280600FFFFBF,$0904F92100010450,$0000002C000E0007,$020484001400A000,$44D4D2D484868404
    Data.q $2C2E2CECEAEC4442,$0E0CF4F6F4ACAAAC,$3CE4E6E48C8E8C0C,$7C7A7CDCDADC3C3A,$8A8C040604000000
    Data.q $34F4F2F4D4D6D48C,$141214FCFAFC3432,$7E7C3C3E3C949294,$000000000000007C,$0000000000000000
    Data.q $FE05000000000000,$AA689E69648E23A0,$74CF2C70BEEB6CAE,$FFEF7CEFAE78DF6D,$8C851A2C4870A0C0
    Data.q $0B031E3C19628AC8,$A000152CC6AD48E5,$A0A030DA26294102,$3AA2418B090C4940,$CF729D9AB46DD7A7
    Data.q $F5F3AF0E59BA6FE3,$035A6203277D7627,$2553056186051426,$2804101893181004,$9694992797959491
    Data.q $A0939E269C9F9298,$A19BAA90A4A7A29D,$245D5A8C1025A89A,$011806261661B516,$18BFC0BE2806C093
    Data.q $C7C7C4C8C1C527C3,$CAD4C6CEC2CFBDC9,$B55925DAD6D8CDD3,$AE260B5ABA172515,$27E99AEA95E828A7
    Data.q $F2F4F0ECEEE7B7EB,$E40C22F8EEEDF7B3,$0981F00078901800,$80308142FC1ABF63,$A2785C39290C00C2
    Data.q $A894562EC188C3E1,$1C82331E8A4720F1,$C9A60411C09C8FF1,$C512B461D1369021,$9A4266224978361E
    Data.q $08A71326ACBA6C23,$C4D3BA14DE79339D,$A138002C492B4637,$4A8C655AB2872894,$A0369F55565413C2
    Data.q $72B55DAC56EAC23A,$1D60B283AC75E115,$BC722E44A0D5D034,$0320506100819C4C,$DED0175BC5CAED74
    Data.q $70071BEDCC4B7EBC,$D4B0A09F0C7EC261,$002AE914250382D0,$437C0225CBE58AD9,$60C886458284F100
    Data.q $C6092580805A4D1E,$B0D7E932A0905801,$DBEDB6BB4D9ECB63,$F921000108B373B8,$002C000B00070904
    Data.q $84001400A0000000,$D2D4848684040204,$F4444244ECEAECD4,$3C3E3CACAAACF4F6,$7A7CDCDADC8C8E8C
    Data.q $8C1412140000007C,$F4F2F4D4D6D48C8A,$00007C7E7CFCFAFC,$0000000000000000,$0000000000000000
    Data.q $0000000000000000,$0000000000000000,$0000000000000000,$9E69648E22E0FE05,$2C70BEEB6CAEAA68
    Data.q $7CEFAE78DF6D74CF,$1A2C4870A0C0FFEF,$11066CC90384AB8F,$080C3D50D180000C,$6BA9B96AC561E184
    Data.q $596FE251831DDB76,$44FBF5E6DB92F61D,$0911A0D40401DA90,$807E7C7A030D2244,$8A83817F7D7B2782
    Data.q $878B84888C858D86,$9095982596918926,$06265577770D269D,$A9A8A6280611A77F,$B2AAA8AC27AEADAB
    Data.q $25B8ADAFB7A5B5B0,$22C17FBF24BDA7B3,$A48A94270C52A251,$28D1CC25CE7E8EA0,$D2DACBD8D0D680D4
    Data.q $D585D9E023DED724,$01ADCF0977C80925,$F4F0DCEEA8EFEDD9,$F9F6F7ECF3A7F1F2,$65274BA046FA7FF8
    Data.q $262828020A802F9D,$4C38170C85429582,$50FAB68AC3D770B8,$3D1F8DC5A211388C,$10063218F0C8BC66
    Data.q $C2254928D1F12E73,$112249842A569B96,$C239A02A65354D4B,$E114F2753D9C4CE6,$202A8F42A2502773
    Data.q $9CE60D06818D00A8,$CF51AA09AA5502B8,$57AD554BB59A7D4C,$B2892C75812D5AB9,$01C2022B4D8AC960
    Data.q $05974B993AD80764,$B759480418C70084,$4C1DFC040216DFAF,$5E2B1388C3E1B0B8
    Data.b $CC,$D8,$70,$08,$00,$3B
  Loading2_gif_end:
EndDataSection
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
kernadec
Enthusiast
Enthusiast
Posts: 146
Joined: Tue Jan 05, 2010 10:35 am

Re: AnimGIFGadget (windows only)

Post by kernadec »

hi, ts-soft

Very Very Very Good.....

Thank you
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

you are welcome
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
electrochrisso
Addict
Addict
Posts: 989
Joined: Mon May 14, 2007 2:13 am
Location: Darling River

Re: AnimGIFGadget (windows only)

Post by electrochrisso »

Thanks from me too ts. :)
PureBasic! Purely the best 8)
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

you are welcome :D

Update:
History wrote:; 1.4, Mrz 10, 2012
; added AnimGIFButton
; added AnimGIFButtonMem
example:

Code: Select all

XIncludeFile "AnimGIFGadget.pbi"

If gdiplus_Init()
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 130, 130, "GIF example")
  TextGadget(0, 40, 80, 80, 20, "Send Mail")
  AnimGIFButtonMem(1, 50, 40, ?mail00008_gif_start, 6436, GetSysColor_(#COLOR_BTNFACE))
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        HideWindow(0, #True)
        FreeAnimGIFGadget()
        gdiplus_End()
        Break
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            Debug "You will send me a mail?"
        EndSelect
    EndSelect
  ForEver
EndIf

DataSection
  mail00008_gif_start:
    ; size : 6436 bytes
    Data.q $001F613938464947,$0000000000F7001F,$8080008000000080,$0080008080000000,$C0DCC0C0C0C08080
    Data.q $0000540000F0C8A4,$00542400002400A8,$004800FF2400A824,$4800A84800544800,$00546C00006C00FF
    Data.q $009000FF6C00A86C,$9000A89000549000,$0054B40000B400FF,$00D800FFB400A8B4,$D800A8D80054D800
    Data.q $24A8FF0054FF00FF,$A800245400240000,$2424002424FF0024,$24FF2424A8242454,$A848245448240048
    Data.q $6C24006C24FF4824,$24FF6C24A86C2454,$A890245490240090,$B42400B424FF9024,$24FFB424A8B42454
    Data.q $A8D82454D82400D8,$FF2400FF24FFD824,$48FFFF24A8FF2454,$A800485400480000,$2448002448FF0048
    Data.q $48FF2448A8244854,$A848485448480048,$6C48006C48FF4848,$48FF6C48A86C4854,$A890485490480090
    Data.q $B44800B448FF9048,$48FFB448A8B44854,$A8D84854D84800D8,$FF4800FF48FFD848,$6CFFFF48A8FF4854
    Data.q $A8006C54006C0000,$246C00246CFF006C,$6CFF246CA8246C54,$A8486C54486C0048,$6C6C006C6CFF486C
    Data.q $6CFF6C6CA86C6C54,$A8906C54906C0090,$B46C00B46CFF906C,$6CFFB46CA8B46C54,$A8D86C54D86C00D8
    Data.q $FF6C00FF6CFFD86C,$90FFFF6CA8FF6C54,$A800905400900000,$2490002490FF0090,$90FF2490A8249054
    Data.q $A848905448900048,$6C90006C90FF4890,$90FF6C90A86C9054,$A890905490900090,$B49000B490FF9090
    Data.q $90FFB490A8B49054,$A8D89054D89000D8,$FF9000FF90FFD890,$B4FFFF90A8FF9054,$A800B45400B40000
    Data.q $24B40024B4FF00B4,$B4FF24B4A824B454,$A848B45448B40048,$6CB4006CB4FF48B4,$B4FF6CB4A86CB454
    Data.q $A890B45490B40090,$B4B400B4B4FF90B4,$B4FFB4B4A8B4B454,$A8D8B454D8B400D8,$FFB400FFB4FFD8B4
    Data.q $D8FFFFB4A8FFB454,$A800D85400D80000,$24D80024D8FF00D8,$D8FF24D8A824D854,$A848D85448D80048
    Data.q $6CD8006CD8FF48D8,$D8FF6CD8A86CD854,$A890D85490D80090,$B4D800B4D8FF90D8,$D8FFB4D8A8B4D854
    Data.q $A8D8D854D8D800D8,$FFD800FFD8FFD8D8,$FFFFFFD8A8FFD854,$0024FFA800FF5400,$24FFA824FF5424FF
    Data.q $FF5448FF0048FFFF,$006CFFFF48FFA848,$6CFFA86CFF546CFF,$FF5490FF0090FFFF,$808080A4A0A0F0FB
    Data.q $FFFF00FF000000FF,$00FF00FFFF000000,$0BFF21FFFFFFFFFF,$455041435354454E,$0000000103302E32
    Data.q $746165724319FE21,$2068746977206465,$454E4F20656B6154,$04F92100352E3320,$00002C0000000809
    Data.q $0807001F001F0000,$A0B0481C080100F2,$10B85C2A130883C1,$87443218E97CBE5D,$4C1A250E8BC58CCE
    Data.q $A90D170019A2E677,$3E6A74C0A34E8749,$E88D3E5CC8633422,$33C4E232C84CA90C,$416671585496591A
    Data.q $A0D1584500CD049B,$46A3340A49118B4B,$4A5D3DD1029F3A61,$F492A11BAB482772,$127B04AC1AAAD149
    Data.q $C1418A00286E9734,$6682B99D304A9C0E,$B0A29D10797D06C8,$586A143A94148CE9,$ED54BBA5EED1039C
    Data.q $D03B7B9AF7659F5A,$AABE12A533A8E18C,$ADEA075599CF2A94,$46854FAE41AFD20C,$4F4DA5E7B19169DD
    Data.q $098B6129F14C2452,$95E9E978FCEC9A8B,$58A2529866A721B5,$F4532CF4F64D1785,$7C7C77178BA1006C
    Data.q $4E9F4B9B6687C930,$0904F92100407ABD,$0000002C00000008,$FF0807001F001F00,$C1A0B0481C080100
    Data.q $1F30C85C2A130883,$C6A353A21D10863A,$883441F2E83319CC,$321E3F208F999D0E,$248CE80046E34E94
    Data.q $D31B74A1D1486434,$1094C42492D854A9,$45442790B87A2A59,$BA23F19844F54CA7,$24D079F2AA594774
    Data.q $8E64522E050E3341,$C9F4620D449B22A7,$1D861130964998D2,$8D4C86B0D82095B8,$9766A4198016B835
    Data.q $4743532132F43539,$82D3915749E5E2CD,$CB2D178B25C30066,$6C76FAE476C98184,$B02C5D3E332BB6CB
    Data.q $0BDDE2071DC742E6,$33A63B6B83D326A0,$1F13577CA1A5967A,$3B92C6C9A90E9CFC,$0AB04D3210A45A9B
    Data.q $82EF60BB6ABCD33F,$49F4DC0DD46D0D3A,$10E6645A1A0FA300,$48A8A99B46F985F1,$5893E607C7D8CB0D
    Data.q $038BC3E0EFF67B72,$0904F9210010184F,$0000002C00000008,$FF0807001F001F00,$C1A0B0481C080100
    Data.q $A1B0C85C2A130883,$267333A5D2660043,$08C21A0B0F743A22,$DA990C87451990C0,$9D0D067CC8401198
    Data.q $512286C714CAA432,$0D972AD8CC75341E,$9FA998D0797AA955,$B29950A9C4B618C6,$554AB5341A78CA65
    Data.q $D178F44DD0878D3A,$68ECC94D3F82D2A8,$33A596AA533A2368,$0E9CCA84D3E8EE97,$D149A44A114AAAEC
    Data.q $2FACC2282C67CB19,$8931A6B4F7CCF94D,$3994D6084B1DCD73,$99546534629D4D81,$4C7995EA6767AB44
    Data.q $5632A98EC6943A2F,$C32956CA836468D5,$A54ECA55002A556C,$313563C273975B93,$17B4DE8019765D1A
    Data.q $9B802933F855227F,$32E2573A6AAA2EC7,$B91BFB158209579D,$CA7555F1974D9D39,$87CE3A754FA042D4
    Data.q $52BA59496322D0CE,$2F2EAE61D4F84CF4,$766531D4F52C348B,$E4DF95508CFCD2EF,$4335B3E837D27504
    Data.q $B10E7553A5DD6A95,$815444A93F409FB4,$82288A2188B575F4,$6A85C6644C8642DF,$D171990549524228
    Data.q $962488E228721387,$080904F921001014,$000000002C000000,$00FF0807001F001F,$83C1A0B0481C0801
    Data.q $43A1B0C85C2A1308,$88CC6632290C8B00,$CA653AAA0B0F6532,$889219148A74AA94,$CB1D4F1D63A9A331
    Data.q $AA1F258BCB954007,$6D0374BA194CB652,$179A31A1EC69DBE6,$743A1F314814B18D,$39A0AE8A3CC21D3D
    Data.q $E98E67CC2A6347A3,$F3691B9A3AAA8E51,$BB1C528F3BAA4358,$3B1AA90BA1D15CD3,$29D137B3B1D8CF9A
    Data.q $8ACAA8D86D33874B,$4684DA2856D745AE,$BF532A1307CD3DCD,$5F26D779E522ED4D,$E56E6BA60618E69D
    Data.q $794C264A91989DDD,$8AFD42F98EA33A59,$4D7F2D3BBEDB3419,$DAF7ACC131EE97C7,$4CE99DDFAADA48BC
    Data.q $50C05FF74CB63BE5,$B631EC6CBBA39B61,$EB1F34EC8CDED90D,$DD3CED631A174974,$0E986DD6D9738232
    Data.q $7C2AFA2930EC4D26,$02331B8BCD60765B,$4487434F54D14938,$8697C7A05EAF721E,$AE40FEBD135FE8CC
    Data.q $18160480E027F96D,$00080904F9210010,$1F000000002C0000,$0100FF0807001F00,$0883C1A0B0481C08
    Data.q $454361B0C85C2A13,$41E1D1053C4622A6,$916CA6532D951863,$124744122CA643A2,$96329D4CF98C3E5D
    Data.q $34C5D0E974C0E44F,$0A5D247331D4CE67,$7CF9434CE62CB74C,$387CBA671327CCEA,$98B9A492E4339A4B
    Data.q $5310C8A55471D144,$1151AA0D11F35191,$B41655129AE8533A,$674589D367433A24,$64924540B4512BF4
    Data.q $8A8F32A7A9DD14E9,$4B5153B2AF92498C,$AA742A9F366935CA,$995261D577CB99D2,$60ECF3053BE54D25
    Data.q $6D75E74622BF84B6,$72EB54C26AA698C9,$E992AE23409251EB,$6D190EA6A3D9AA12,$92B196C2D6A8F44D
    Data.q $6F5AA1CC66749A24,$009D3198EC7C5C9B,$E446E38AAA249B4E,$6354CAA55D4B0327,$98EC6654714CC697
    Data.q $188F097E05C8EBD5,$000203C8F3F9BCBE,$000000080904F921,$1F001F000000002C,$1C080100C2080700
    Data.q $2A130883C1A0B048,$20A65543A1B0C85C,$18534261CA643A2A,$8445996CA633194D,$C99F2E865B99D2E8
    Data.q $1CCE874C8A43078F,$52C74CB5D106943A,$67CB2A652582CC26,$5486792E7CC0E6F3,$165F219A4EA073E6
    Data.q $874B74CCA652A005,$3D935025951A4526,$9BD658D347CD267D,$D42792673329F2E9,$2D14474B9A6B39A2
    Data.q $F2E734F2615FA456,$8B3C9AB956A2D2A9,$46027D77B257A436,$1A4B3AB5D32975CA,$F942A762EB135976
    Data.q $4B8F3E6CAC7934FA,$CC2A956A6CDB1D8D,$E190DA443688CD4B,$2100080C1F53A8D3,$2C000000080904F9
    Data.q $001F001F00000000,$481C080100FE0807,$5C2A130883C1A0B0,$9914864343A1B0C8,$23088729954A655A
    Data.q $C66329D54CA6321E,$63C5954AB82C622E,$40E46E895BA1CCE6,$2633174471F2F943,$2E974B99F3029748
    Data.q $A9C4AE62E694BA5F,$74B668E99FD0A793,$1A7A8A92A1D0CE89,$4CC763A1A9B38A4D,$8A95CF2994AA54A9
    Data.q $A64F596E89FBA1F2,$592C52B653A6B52B,$9D35B964B10D30A6,$D34B1A1DD08A74CB,$BAFDCAF34C98D267
    Data.q $F5CAE4F99739AFF2,$D29B8991D0EDD3A9,$D110975898F42954,$E891E5F0B3E96299,$535C2C793C2E0E24
    Data.q $646C768B6DB6FF9B,$26962BCD72AB7DB2,$135C6D066B309C4F,$E63EAAFB1D8E8027,$CB1A6B5843AAA2BB
    Data.q $1BA2CB6346801BE7,$20A64340B9ACA553,$0191F7BBBDCEB442,$00080904F9210001,$1F000000002C0000
    Data.q $0100FF0807001F00,$0883C1A0B0481C08,$654361B0C85C2A13,$2190C8B4331996CA,$54CA743459970887
    Data.q $71853A9954AA53BE,$18848E46C75331A0,$34B1D0F900496591,$7A312D993A18D025,$D2E881BE59531744
    Data.q $31A231A31447CB2D,$8731A6537A2411D1,$D594D216532D0D37,$9D13274C3A9337A1,$53CA649D8EC6AFB1
    Data.q $2654F66CF9734369,$3571D2E6733A1974,$12F177A6B2A6F0BB,$B2C7B7C36DCE663D,$1E745FE9965BC51E
    Data.q $B962AB1419B509F3,$D7AF3729B399D367,$682E66560E1B4DA6,$15DB3CFE839F7CDE,$3875DEEF8CB9B1AD
    Data.q $6D72E7A7B2C42595,$73388A55606ACF98,$9353962AB0F98C65,$03D1DC2930CAD662,$826766FC5E464A91
    Data.q $C0EF3AF8C5A2898C,$9955FB051B038CBB,$797B231EBF937CC0,$7D3FC569952AD4D2,$D50C663319D94009
    Data.q $26CA9AFB22F2155E,$01FFFFBFBFCFBFDA,$00080904F9210001,$1F000000002C0000,$0100FF0807001F00
    Data.q $0883C1A0B0481C08,$7CC321B0C85C2A13,$439D0E974C48CCE6,$224868D21914E984,$4E881C5D0C877480
    Data.q $67CC124486532A95,$34C994E886CA9548,$1A1CA64329DD1079,$173453BE6133B9DB,$AA533E61515654C6
    Data.q $7432996E985A9D4E,$CAE38F974299D0C6,$AA0E88AB2E172763,$D24552AD4D105339,$CAEB99970AA02994
    Data.q $52AA0748635769F6,$C9F2F963452154E6,$8D318159ACD6E74C,$00634F2F35BBB31D,$BB4F1CD39A429EBA
    Data.q $DBF253B7CDE18EE9,$B0D466553A3F7053,$6CB98E726515C7E1,$8534F22AC6C15199,$75A739A5ADD3AF97
    Data.q $A5D0C763B2EF560A,$F37B63D1B4DA4C3B,$3255EA6654DA9D9E,$96551F327DCBE67D,$6CA4CE963B2B8B15
    Data.q $79C86B35539D8E84,$DDC449E514AB553E,$FB1DCD0AE4E8A133,$2D573184DD7450BB,$E34783E232B9485D
    Data.q $64B341A73E0BF436,$08A8148A29D4745D,$292C409234A0E941,$4A4E84486A1A86B2,$A855795E55D4160B
    Data.q $00405068761C86E1,$000000080904F921,$1F001F000000002C,$1C080100FF080700,$2A130883C1A0B048
    Data.q $0110863A5D10985C,$138B1A8CC66743A0,$8AC763A867441A23,$3A2051A7CBA08D15,$9CC4684219168A45
    Data.q $D1D88BA219288E46,$A532ADD10B924454,$53A61533844E208A,$9A46664521A1D364,$273D9E42696F9839
    Data.q $049FBA4012B43BA2,$9347627455353E1F,$C990F1D84CBA0D4D,$EAAF982D2A074774,$571B6B9A048A8EC1
    Data.q $553532B503A73A6D,$6D66C356B75B5F35,$8EDD688959914AA8,$E9728F4228304A1C,$E6BEC9E158DB6E36
    Data.q $4550B2B1C9357DCC,$6033867BBBA61D2B,$EBD71BBD990D06BD,$D85B65E20946A4DD,$E91E8DF34B89D4AC
    Data.q $3C2EAD25BE21E119,$D650F9846A22336A,$9306C061B9309E0D,$222341A2A86BFC6A,$AC7622F17EAC7399
    Data.q $B99E091B0AA747DA,$21000407D3E8F3F9,$2C000000080904F9,$001F001F00000000,$481C080100FF0807
    Data.q $5C2A130883C1A0B0,$A2190C7CC39F3098,$0C6735198CC4674B,$1674BA60D11743A1,$8EC7235244319A07
    Data.q $C9D1523434262600,$63B309721A572F88,$CE97CCBE5F0B8849,$333429CC865521A0,$2C0A70E98BC6E4D0
    Data.q $027B1AA5D120D319,$950A9FD1684E8998,$4565BA2A12A35002,$8249A6305AD2194D,$5A29AA65340E3F33
    Data.q $94D2F7CD42D486B4,$11B33568CD094322,$BA9426F133A94BAD,$229A6727A0D99CD4,$2D0D2F653A6D14EC
    Data.q $2971AD42EEF53BEA,$563342E4B3DA0D4F,$7332B2B7C743A6B7,$602054F8429AD942,$D55944399AE31074
    Data.q $57C904108D04B221,$381DB954AAD8C6E7,$0C1F8B09C15DE15C,$910E86866EA0DB8C,$53284574A57CF8EC
    Data.q $AEECCD0D5D2826B6,$736F9DED9C1254CD,$BDBE0E568F471394,$F921000203F0F7FB,$002C000000080904
    Data.q $07001F001F000000,$B0481C080100FF08,$A85C2A130883C1A0,$343218E6743A5D10,$290C8633199D0E84
    Data.q $04E843C660D127CA,$028EC854D1943C62,$97A9A0AE955A990D,$B294CA7894725EAA,$554AA653198D2E93
    Data.q $3449D41671406547,$A65BA156CA9D42E2,$9BE58D4493C0A5AC,$A274C76353281099,$B1528E29914E97CB
    Data.q $5BA8BA2CACB83D0A,$AA399CD407CCDE5F,$B1AB0A674D015708,$D8F53ADAAAACE974,$340B2B2A6F40854D
    Data.q $58453ADF7C63545F,$3CEB0D85A6002756,$A2EF93855CDD1156,$30C6CAC419783B65,$59A254F337B6329F
    Data.q $B2C87210B63BE6F9,$5E6DCC77465AA4CB,$DF33AC932A610B87,$D3D84E2ED915BB59,$2655E77D41CAE664
    Data.q $34594F15DE4A9571,$02B2C79770EF1157,$33BE55219D2868C8,$A3D298DB9C973E06,$DA3312BDCF31CD58
    Data.q $A3B3DA05554D3589,$0A7534C205634546,$80C8A77104AFC4EE,$94606A45D19449F9,$0D6A9534112875D1
    Data.q $1014761484E12846,$0000080904F92100,$001F000000002C00,$080100FF0807001F,$130883C1A0B0481C
    Data.q $0C63B190D0B85C2A,$65B194EAA53A2A17,$B1A0D1165A190C8A,$A34A67432994C687,$AE891C0E3ACA55A2
    Data.q $6532A996006332A5,$339A472A94AA98CA,$B65540914ADD2E97,$D2F96340E78E996C,$3D7450E1938A4BA1
    Data.q $AAD55CCF90054597,$CDE1EE8A94B69F1D,$AA4E87350EB34A9E,$70BA6BE69123A439,$99E5825CF9B4D929
    Data.q $1D0E974AA1C26D8E,$A2B51153D163EF99,$A18196D228783BE3,$89745C70CC6BA61A,$6564D8F679EDC71F
    Data.q $D3EC18FCDBE63B3D,$DD3567462732C674,$F11C8636F3839E32,$AD25D6472EABEBA3,$15D6A4CA65E36692
    Data.q $0F370B883A196CB9,$0CC663B1E6EAAE16,$03D66129D3096CD5,$825235D488ED8327,$4AE7D4A91607459D
    Data.q $1B89BC2A779B75DF,$6D76B6ED2FDE40B3,$24AA42ABE2F1400A,$291487454D7E0A68,$05FDD746A0BF3F12
    Data.q $0010142A0480E028,$000000080904F921,$1F001F000000002C,$1C080100ED080700,$2A130883C1A0B048
    Data.q $4D0986A1A050C85C,$8B652A956A653319,$653A195058843D14,$29D54867CB19F320,$A5AE87CCA9F3058E
    Data.q $2E974C12513063B9,$28DB1DD12D973A5F,$53A23D2A96B99D33,$AE73349640A64E99,$9F2A9A3A26F46954
    Data.q $1E74CB68D4F453A6,$9CD35F31AA931DF3,$D0E9F5696D4E893E,$A9D659BA1E58E6A1,$EF9B2D910D516539
    Data.q $C0051A6C86964DA7,$ADF6AD6C4355E952,$16CF52BDBA2E54E9,$F787C04AEFB74AAE,$91CBA19CD3F74546
    Data.q $6332CCC46BED0251,$5A70D4FCA5A6CB98,$A738895D0E812BC9,$16991B1A5199B3E2,$EAB802F7A063B1A9
    Data.q $5AAA2800DD44D0FA,$5E09C0CBB2D97165,$030BE7F3B9BC9E5E,$00080904F9210002,$1F000000002C0000
    Data.q $0100C40807001F00,$0883C1A0B0481C08,$5343A1B0C85C2A13,$C394CA689B1956AA,$1D0CA633E5F26684
    Data.q $F1E6341E2EE87CBA,$692C1A451E74BA23,$F49E0B2A74C95CCE,$D2690498B1A3D288,$5CF992C0E70F9904
    Data.q $2097C0A7CE674B1A,$903A5F33AA34F65D,$52E4F2E973A29930,$4014692CD650E99F,$F53A25764F20934B
    Data.q $8ABCCE9D28B1D863,$CD1A4325A0B9A893,$7AD266AECA24F5AA,$A726231199546B3C,$5D8DC6D9727A9516
    Data.q $C54FAA35AA253DCD,$5670B1D9F60E4F81,$6399B6346AF0C763,$A860057741A08AD7,$6D5EAB53A3D2E9B4
    Data.q $080904F921002030,$000000002C000000,$00FF0807001F001F,$83C1A0B0481C0801,$2994D0985C2A1308
    Data.q $94E67332AA071086,$CA6834454F178731,$B6548A42CA534790,$53A1D1235532E091,$E40125733A596E96
    Data.q $D1337329A6AC699B,$C79FB9A77319DBA5,$92CF1F2E8953A400,$CE9CCE8A1CAA7345,$1F2A68B39A6F257C
    Data.q $35699C6E87339551,$B74516AD4FA32A9D,$64FEAEA7952AA551,$EACF4353D0E2330A,$973BA1C6EAD56A24
    Data.q $55AB50E4B58A7512,$5350D5548A2E0AC5,$BA6CF6EA3D2E993A,$9D110C662B10E9B4,$D2AAC5C9F3699C2A
    Data.q $663D16C10E742AEF,$A57AA70EA459196E,$9E1D3A98B198EE6B,$F92A2319996CB63A,$73ACC0A9B49B2BA6
    Data.q $95EE6B538A9446B5,$EEA97AFBDDFA82E8,$58FD49AF498F3598,$BAE633280131D7BE,$F4127401D9D7756A
    Data.q $8FC5E187F9A1CA78,$03EDF7FBBDBE9437,$00080904F9210002,$1F000000002C0000,$0100FF0807001F00
    Data.q $0883C1A0B0481C08,$433E5950A85C2A13,$118CC8674002230C,$A1F05894690D0F33,$D24633E6351A5329
    Data.q $6552AD55028E2AD8,$3C95CCF98149D4CC,$1196AA65CD9951C6,$D112654D9D0F97CC,$3198C1A84E97CBA1
    Data.q $65B2A84CB74C49CD,$BA5D0E69E4FA2710,$954A77CD0E851174,$50B9A3E5D342ADD6,$CAFCF2853F7CD6D9
    Data.q $231E793D63431F33,$A2C50CB6DB6B5449,$D16AB3D5A6D57655,$5AC25598F5773431,$C5399D379BB5B5CD
    Data.q $E0A7B70A159ACD6A,$F273CB5606BF4385,$D3DCD55D97448565,$691E118EE9ACCF33,$1E1A870CA04FF239
    Data.q $1AEB4192496D595A,$24AA6329A9F8BA9A,$8A9F21D14CA9F5C2,$85D0F5E8A55229D0,$D658DB7A3D2B4770
    Data.q $6A911DBF5264C6C7,$1F032F2E7F05EB4F,$54A760C69B2A9951,$314D1F7CC7383EC5,$6128E65CD8D0253F
    Data.q $F98DC7E428A4546A,$E068160143DC340D,$F9210010141E0881,$002C000000080904,$07001F001F000000
    Data.q $B0481C080100FF08,$A85C2A130883C1A0,$CC3218E874BA1F30,$A48C66452290CF97,$2C86533A20F128AB
    Data.q $1F81C750D0E81C62,$96C7E0B26552AD4D,$39A1334532A9D312,$A690B6331A531290,$3029AB1994CA862A
    Data.q $7533E678C77340A2,$400278CBA0BA616A,$CDD0C79DC6E1F217,$4F37A6CEE930A534,$2B8FA99973B8A4D1
    Data.q $9BD4D8EC7A4BA613,$3A67EAA653A2A74C,$5954165BA212CBB1,$3359954EE94C74BA,$B74B9AA17B845725
    Data.q $3CEDCD5CC339A793,$CA6729745798D07C,$1B06CA31E3F879A5,$0255D070793B231B,$BEE62779684EA269
    Data.q $E82C576635ADF353,$AEB5AC8D79F35ED0,$949CC506E70BC240,$1B1219CC00ADE626,$8600CC86CC5F195C
    Data.q $2A608A43BA58D418,$15D0334861ECABEC,$A14176F8096D4251,$50D4D0DDB4499543,$554A6BAC33CB06F3
    Data.q $169555D63BD9BD5E,$7FD332290CED21E1,$14894549DF94B88A,$7F4BA0847119199D,$E168561483D4662D
    Data.q $04F9210004050985,$00002C0000000809,$0807001F001F0000,$A0B0481C080100F9,$30B85C2A130883C1
    Data.q $974C3218E8743A5F,$8198D46A331990CE,$9A2D16333A20D128,$D0008EC462F17001,$1D9341E468A453A5
    Data.q $8FC4A370C4321A21,$C7A692B85BA66B2E,$A2EF984CECCD0493,$F3981C3E77387CC1,$087CE691058B3A20
    Data.q $5D362105A7C288D4,$9A0933ACD008D03A,$154F8455ABF598FB,$66B1D35D2E67CC0D,$94D361F038D3A213
    Data.q $3E5D1029F5CA535F,$EDB03BDD65F37DBE,$174B459E092AB5D0,$D82DE6F32A825480,$AC72232EA2BE6053
    Data.q $F6846774DE2C30DB,$EA6A43412EF40C3D,$93A65FAED02C1442,$D340A508B453A207,$CD73D579B6DB5105
    Data.q $F790AB5219151ED8,$F29DB4C299BE99CD,$08A4C7811A92C6A2,$4F6BB3D8EBF335F1
    Data.b $18,$10,$00,$3B
  mail00008_gif_end:
EndDataSection
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
KJ67
Enthusiast
Enthusiast
Posts: 218
Joined: Fri Jun 26, 2009 3:51 pm
Location: Westernmost tip of Norway

Re: AnimGIFGadget (windows only)

Post by KJ67 »

Thank you very much!
The best preparation for tomorrow is doing your best today.
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

You are welcome :D

Update:
History wrote:; 1.4.1, Mrz 10, 2012
; + removed redundant code
over 70 lines code removed :mrgreen:
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
electrochrisso
Addict
Addict
Posts: 989
Joined: Mon May 14, 2007 2:13 am
Location: Darling River

Re: AnimGIFGadget (windows only)

Post by electrochrisso »

Good one ts, I like the way the animation still keeps going, even when the window is moved around. :)
PureBasic! Purely the best 8)
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: AnimGIFGadget (windows only)

Post by ts-soft »

Update:
History wrote:; 1.4.2, Mrz 13, 2012
; changed default backcolor for AnimGIFButton and AnimGIFButtonMem to #PB_Any
; AnimGIFButton and AnimGIFButtonMem supports Transparency, if you use #PB_Any as backcolor
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5494
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: AnimGIFGadget (windows only)

Post by Kwai chang caine »

Is it possible to use your splendid gadget in a window with image background ?
i have try with this code, but that not works :oops:

Code: Select all

XIncludeFile "AnimGIFGadget.pbi"

InitNetwork()

Define AniGadget

If gdiplus_Init()
 Result=LoadImage(1,#PB_Compiler_Home + "..\Examples\#Commun\bmp2.bmp")
 hBrush=CreatePatternBrush_(ImageID(1))
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 1800, 1200, "GIF example")
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|#WS_EX_LAYERED|#WS_CLIPCHILDREN)
  SetClassLongPtr_(WindowID(0),#GCL_HBRBACKGROUND,hBrush)
  ;SetWindowColor(0, #Black)
  AnimGIFGadget(1, 25, 15, "KccChatNoirQuiDanse.gif")
      
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        HideWindow(0, #True)
        FreeAnimGIFGadget()
        gdiplus_End()
        Break
    EndSelect
  ForEver
EndIf
ImageThe happiness is a road...
Not a destination
User avatar
Bisonte
Addict
Addict
Posts: 1313
Joined: Tue Oct 09, 2007 2:15 am

Re: AnimGIFGadget (windows only)

Post by Bisonte »

First you should grab the part of the window, where you set the canvas on...
and then you have to draw this grabbed image instead of "Box(0, 0, GadgetWidth(id), GadgetHeight(id), backcolor)"
in this section of AnimGifGadget.pbi :

Code: Select all

              Case #PB_GadgetType_Canvas
                hdc = StartDrawing(CanvasOutput(id))
                  Box(0, 0, GadgetWidth(id), GadgetHeight(id), backcolor)
                  __GdipCreateFromHDC(hdc, @graphics)
                  DrawingMode(#PB_2DDrawing_AlphaBlend)
                  __GdipDrawImageI(graphics, bitmap, 0, 0)
                StopDrawing()
PureBasic 6.21 (Windows x64) | Windows 11 Pro | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
English is not my native language... (I often use DeepL.)
Post Reply