Page 1 of 1

[Linux] Window icon creator

Posted: Wed Nov 25, 2009 5:34 pm
by RE-A
I don't know if this belongs in this section or in the Linux section, but I looked the forum for something that could help me to put an inline icon (image) on the window title bar in Linux. I don't like extra dependencies :wink:

I found a work-around and created a small tool that generates code from a png, ico,gif,jpg or bmp image (max. 48x48) that can be used directly in PB. I didn't found time to cleanup the pile of test junk in the source once I got it working so it's only an executable but thought someone could use it anyway.

Only tested on Ubuntu 9.10 (32-bit) and recompiled with PB 4.40 Beta 7

Download: http://www.re-applications.be/downloads ... reator.tar

Example generated by the program:

Code: Select all

;** Created by Icon Creator
;** Tested with Ubuntu 9.10 (32-bit)
;** www.RE-Applications.be

Structure PixData
  magic.l
  length.l
  pixdata_type.l
  rowstride.l
  width.l
  height.l
  pixel_data.l
EndStructure

ImportC ""
  gtk_window_set_icon(a.l, b.l)
  gdk_pixbuf_from_pixdata(a.l, b.l, c.l)
EndImport

Procedure SetWindowIcon(iWindow.i)
  Protected mIcon.PixData
  mIcon\magic = $47646B50
  mIcon\length = 749
  mIcon\pixdata_type = $2010002
  mIcon\rowstride = 64
  mIcon\width = 16
  mIcon\height = 16
  mIcon\pixel_data = ?WindowIcon

  lPixbuf.l = gdk_pixbuf_from_pixdata(mIcon, #False, lError.l)
  gtk_window_set_icon(WindowID(iWindow), lPixbuf)
EndProcedure

#frmTest = 1000
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  SetWindowIcon(#frmTest)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End

DataSection
  WindowIcon:
    Data.a 134,255,255,255,0,4,37,37,39,162,36,36,37,249,40,40,40,240,49,49,59,115,139,255,255,255,0,6,39,39,39,72
    Data.a 36,36,36,254,36,36,36,255,40,40,40,255,50,50,50,255,37,37,42,95,138,255,255,255,0,6,39,39,42,123,56,56
    Data.a 57,255,42,44,45,255,60,61,62,255,45,45,46,255,36,36,36,183,138,255,255,255,0,6,45,45,53,103,86,82,74,255
    Data.a 216,213,199,255,187,185,177,255,65,65,65,255,36,36,36,194,138,255,255,255,0,7,39,39,45,77,207,178,47,255,252,221
    Data.a 47,255,247,215,48,255,131,112,52,255,36,38,47,209,37,37,39,8,137,255,255,255,0,7,41,42,46,97,190,174,111,255
    Data.a 225,194,70,255,234,208,122,255,127,125,121,255,49,49,52,255,37,37,39,83,136,255,255,255,0,9,36,36,36,39,110,110
    Data.a 111,224,243,244,246,255,230,229,231,255,252,254,255,255,194,194,193,255,45,45,45,255,36,36,36,214,38,38,39,27,134,255
    Data.a 255,255,0,11,37,37,39,2,36,36,36,189,177,177,177,255,255,255,255,255,252,252,253,255,252,252,252,255,241,241,240,255
    Data.a 66,66,67,255,36,36,36,255,37,37,39,180,38,38,39,1,133,255,255,255,0,4,36,36,36,56,86,86,87,252,243,243
    Data.a 241,255,255,255,254,255,130,253,253,252,255,5,255,255,254,255,195,195,194,255,56,56,56,255,39,39,39,254,37,37,39,65
    Data.a 133,255,255,255,0,6,36,36,36,151,165,165,165,255,255,255,255,255,249,249,247,255,252,252,251,255,253,253,252,255,130,255
    Data.a 255,254,255,3,81,81,81,255,36,36,37,255,36,36,39,131,132,255,255,255,0,12,39,37,41,28,50,49,48,240,191,191
    Data.a 194,255,255,255,255,255,247,247,246,255,252,252,250,255,253,253,252,255,255,255,253,255,255,255,255,255,93,93,94,255,36,36
    Data.a 36,255,36,36,39,148,131,255,255,255,0,13,197,155,46,19,180,140,46,98,208,167,40,252,164,152,112,255,230,232,239,255
    Data.a 253,253,252,255,252,252,250,255,253,253,252,255,255,255,255,255,253,207,83,255,96,85,45,255,36,36,39,255,109,96,45,154
    Data.a 131,255,255,255,0,14,216,171,50,176,248,199,45,255,255,207,46,255,201,161,36,255,83,81,75,255,212,213,216,255,255,255
    Data.a 255,255,255,255,254,255,250,253,255,255,246,190,54,255,226,164,39,255,201,145,40,255,245,180,41,236,243,176,44,84,130,255
    Data.a 255,255,0,6,221,172,46,180,252,203,46,255,248,197,45,255,254,199,42,255,156,130,51,255,200,202,207,255,130,255,255,255
    Data.a 255,6,177,179,186,255,188,141,51,255,255,188,40,255,255,188,41,255,254,188,41,255,237,171,44,216,130,255,255,255,0,14
    Data.a 210,159,44,208,234,181,45,255,243,189,45,255,254,199,45,255,235,179,47,255,124,114,95,255,113,114,118,254,90,90,91,254
    Data.a 39,39,43,255,136,101,38,255,255,190,42,255,246,179,42,255,203,139,42,191,182,118,48,69,130,255,255,255,0,6,167,121
    Data.a 42,20,149,109,41,74,141,106,41,133,167,121,42,206,142,105,40,225,53,46,37,57,130,36,36,36,8,5,36,36,40,13
    Data.a 100,78,42,125,186,126,40,247,159,105,41,146,129,90,41,2,130,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0
    Data.a 0,0,0,0,0,0,0,0,208,142,175,8,0,0
EndDataSection

Re: [Linux] Window icon creator

Posted: Sun May 02, 2010 7:26 am
by rudz
Nicely done :D
Works for me in Ubuntu 10.4 x64 (PB 4.50b3 x64).

But with EnableExplicit perhaps the SetWindowIcon() should look a bit like this? :

Code: Select all

Procedure SetWindowIcon(iWindow.i)
  Protected mIcon.PixData

  With mIcon
    \magic = $47646B50
    \length = 965
    \pixdata_type = $2010002
    \rowstride = 128
    \width = 32
    \height = 32
    \pixel_data = ?WindowIcon
  EndWith

  Protected.l lError, lPixbuf = gdk_pixbuf_from_pixdata(mIcon, #False, lError)
  gtk_window_set_icon(WindowID(iWindow), lPixbuf)
EndProcedure

Re: [Linux] Window icon creator

Posted: Tue Aug 20, 2013 12:17 pm
by Num3
Works on Mint15 :D

Re: [Linux] Window icon creator

Posted: Tue Aug 20, 2013 12:39 pm
by ts-soft
Num3 wrote:Works on Mint15 :D
but is no more required :wink:
PB-Image is compatible to gtk-pixbuffer.

Code: Select all

#frmTest = 1000
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  gtk_window_set_icon_(WindowID(#frmTest), CatchImage(0, ?WindowIcon))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End

DataSection
  WindowIcon:
    Data.a 134,255,255,255,0,4,37,37,39,162,36,36,37,249,40,40,40,240,49,49,59,115,139,255,255,255,0,6,39,39,39,72
    Data.a 36,36,36,254,36,36,36,255,40,40,40,255,50,50,50,255,37,37,42,95,138,255,255,255,0,6,39,39,42,123,56,56
    Data.a 57,255,42,44,45,255,60,61,62,255,45,45,46,255,36,36,36,183,138,255,255,255,0,6,45,45,53,103,86,82,74,255
    Data.a 216,213,199,255,187,185,177,255,65,65,65,255,36,36,36,194,138,255,255,255,0,7,39,39,45,77,207,178,47,255,252,221
    Data.a 47,255,247,215,48,255,131,112,52,255,36,38,47,209,37,37,39,8,137,255,255,255,0,7,41,42,46,97,190,174,111,255
    Data.a 225,194,70,255,234,208,122,255,127,125,121,255,49,49,52,255,37,37,39,83,136,255,255,255,0,9,36,36,36,39,110,110
    Data.a 111,224,243,244,246,255,230,229,231,255,252,254,255,255,194,194,193,255,45,45,45,255,36,36,36,214,38,38,39,27,134,255
    Data.a 255,255,0,11,37,37,39,2,36,36,36,189,177,177,177,255,255,255,255,255,252,252,253,255,252,252,252,255,241,241,240,255
    Data.a 66,66,67,255,36,36,36,255,37,37,39,180,38,38,39,1,133,255,255,255,0,4,36,36,36,56,86,86,87,252,243,243
    Data.a 241,255,255,255,254,255,130,253,253,252,255,5,255,255,254,255,195,195,194,255,56,56,56,255,39,39,39,254,37,37,39,65
    Data.a 133,255,255,255,0,6,36,36,36,151,165,165,165,255,255,255,255,255,249,249,247,255,252,252,251,255,253,253,252,255,130,255
    Data.a 255,254,255,3,81,81,81,255,36,36,37,255,36,36,39,131,132,255,255,255,0,12,39,37,41,28,50,49,48,240,191,191
    Data.a 194,255,255,255,255,255,247,247,246,255,252,252,250,255,253,253,252,255,255,255,253,255,255,255,255,255,93,93,94,255,36,36
    Data.a 36,255,36,36,39,148,131,255,255,255,0,13,197,155,46,19,180,140,46,98,208,167,40,252,164,152,112,255,230,232,239,255
    Data.a 253,253,252,255,252,252,250,255,253,253,252,255,255,255,255,255,253,207,83,255,96,85,45,255,36,36,39,255,109,96,45,154
    Data.a 131,255,255,255,0,14,216,171,50,176,248,199,45,255,255,207,46,255,201,161,36,255,83,81,75,255,212,213,216,255,255,255
    Data.a 255,255,255,255,254,255,250,253,255,255,246,190,54,255,226,164,39,255,201,145,40,255,245,180,41,236,243,176,44,84,130,255
    Data.a 255,255,0,6,221,172,46,180,252,203,46,255,248,197,45,255,254,199,42,255,156,130,51,255,200,202,207,255,130,255,255,255
    Data.a 255,6,177,179,186,255,188,141,51,255,255,188,40,255,255,188,41,255,254,188,41,255,237,171,44,216,130,255,255,255,0,14
    Data.a 210,159,44,208,234,181,45,255,243,189,45,255,254,199,45,255,235,179,47,255,124,114,95,255,113,114,118,254,90,90,91,254
    Data.a 39,39,43,255,136,101,38,255,255,190,42,255,246,179,42,255,203,139,42,191,182,118,48,69,130,255,255,255,0,6,167,121
    Data.a 42,20,149,109,41,74,141,106,41,133,167,121,42,206,142,105,40,225,53,46,37,57,130,36,36,36,8,5,36,36,40,13
    Data.a 100,78,42,125,186,126,40,247,159,105,41,146,129,90,41,2,130,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0
    Data.a 0,0,0,0,0,0,0,0,208,142,175,8,0,0
EndDataSection

Re: [Linux] Window icon creator

Posted: Tue Aug 20, 2013 4:09 pm
by heartbone
32 bit system: Ubuntu 13.04 & PB 5.11

All that I get is a small blank window with the red x close window and grey bar minimize button along with the window's title "Icon Test" on the title bar.
OK, now I see a fuzzy penguin on the executable's icon in the side bar.
Cool, it works.
In fact the only one that works for me is your original code as neither of the suggested modifications work, instead I get the question mark.
Thanks, RE-A, I expect to be using this rather soon.

Re: [Linux] Window icon creator

Posted: Tue Aug 20, 2013 4:33 pm
by Bisonte
So only Mac is missing....

Code: Select all

Procedure SetWindowIcon(Window, Image)
  
  If IsWindow(Window) And IsImage(Image)
    
    CompilerIf #PB_Compiler_OS = #PB_OS_Windows
      SendMessage_(WindowID(Window), #WM_SETICON, #False, ImageID(Image))
    CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
      gtk_window_set_icon_(WindowID(Window), ImageID(Image))
    CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
      ; 
    CompilerEndIf
    
  EndIf
  
EndProcedure

Re: [Linux] Window icon creator

Posted: Wed Aug 21, 2013 4:14 am
by idle
The original post only works for me on ubuntu 12.04 x64 KDE

Re: [Linux] Window icon creator

Posted: Sat Sep 07, 2013 10:13 pm
by heartbone
idle wrote:The original post only works for me on ubuntu 12.04 x64 KDE
That is interesting, because using my custom icon the original post works great for me in UBUNTU 13.04 x86 - Unity w/PB 5.11
Whereas in UBUNTU 13.04 x64 - Unity w/PB 5.11, running the same code,
I get an invalid memory access on this line:
gtk_window_set_icon(WindowID(iWindow), lPixbuf)
And implementing rudz's modification had no effect on the bug.

Re: [Linux] Window icon creator

Posted: Mon Aug 04, 2014 5:06 pm
by Lebostein
ts-soft wrote:
Num3 wrote:Works on Mint15 :D
but is no more required :wink:
PB-Image is compatible to gtk-pixbuffer.

Code: Select all

#frmTest = 1000
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  gtk_window_set_icon_(WindowID(#frmTest), CatchImage(0, ?WindowIcon))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End

DataSection
  WindowIcon:
    Data.a 134,255,255,255,0,4,37,37,39,162,36,36,37,249,40,40,40,240,49,49,59,115,139,255,255,255,0,6,39,39,39,72
    Data.a 36,36,36,254,36,36,36,255,40,40,40,255,50,50,50,255,37,37,42,95,138,255,255,255,0,6,39,39,42,123,56,56
    Data.a 57,255,42,44,45,255,60,61,62,255,45,45,46,255,36,36,36,183,138,255,255,255,0,6,45,45,53,103,86,82,74,255
    Data.a 216,213,199,255,187,185,177,255,65,65,65,255,36,36,36,194,138,255,255,255,0,7,39,39,45,77,207,178,47,255,252,221
    Data.a 47,255,247,215,48,255,131,112,52,255,36,38,47,209,37,37,39,8,137,255,255,255,0,7,41,42,46,97,190,174,111,255
    Data.a 225,194,70,255,234,208,122,255,127,125,121,255,49,49,52,255,37,37,39,83,136,255,255,255,0,9,36,36,36,39,110,110
    Data.a 111,224,243,244,246,255,230,229,231,255,252,254,255,255,194,194,193,255,45,45,45,255,36,36,36,214,38,38,39,27,134,255
    Data.a 255,255,0,11,37,37,39,2,36,36,36,189,177,177,177,255,255,255,255,255,252,252,253,255,252,252,252,255,241,241,240,255
    Data.a 66,66,67,255,36,36,36,255,37,37,39,180,38,38,39,1,133,255,255,255,0,4,36,36,36,56,86,86,87,252,243,243
    Data.a 241,255,255,255,254,255,130,253,253,252,255,5,255,255,254,255,195,195,194,255,56,56,56,255,39,39,39,254,37,37,39,65
    Data.a 133,255,255,255,0,6,36,36,36,151,165,165,165,255,255,255,255,255,249,249,247,255,252,252,251,255,253,253,252,255,130,255
    Data.a 255,254,255,3,81,81,81,255,36,36,37,255,36,36,39,131,132,255,255,255,0,12,39,37,41,28,50,49,48,240,191,191
    Data.a 194,255,255,255,255,255,247,247,246,255,252,252,250,255,253,253,252,255,255,255,253,255,255,255,255,255,93,93,94,255,36,36
    Data.a 36,255,36,36,39,148,131,255,255,255,0,13,197,155,46,19,180,140,46,98,208,167,40,252,164,152,112,255,230,232,239,255
    Data.a 253,253,252,255,252,252,250,255,253,253,252,255,255,255,255,255,253,207,83,255,96,85,45,255,36,36,39,255,109,96,45,154
    Data.a 131,255,255,255,0,14,216,171,50,176,248,199,45,255,255,207,46,255,201,161,36,255,83,81,75,255,212,213,216,255,255,255
    Data.a 255,255,255,255,254,255,250,253,255,255,246,190,54,255,226,164,39,255,201,145,40,255,245,180,41,236,243,176,44,84,130,255
    Data.a 255,255,0,6,221,172,46,180,252,203,46,255,248,197,45,255,254,199,42,255,156,130,51,255,200,202,207,255,130,255,255,255
    Data.a 255,6,177,179,186,255,188,141,51,255,255,188,40,255,255,188,41,255,254,188,41,255,237,171,44,216,130,255,255,255,0,14
    Data.a 210,159,44,208,234,181,45,255,243,189,45,255,254,199,45,255,235,179,47,255,124,114,95,255,113,114,118,254,90,90,91,254
    Data.a 39,39,43,255,136,101,38,255,255,190,42,255,246,179,42,255,203,139,42,191,182,118,48,69,130,255,255,255,0,6,167,121
    Data.a 42,20,149,109,41,74,141,106,41,133,167,121,42,206,142,105,40,225,53,46,37,57,130,36,36,36,8,5,36,36,40,13
    Data.a 100,78,42,125,186,126,40,247,159,105,41,146,129,90,41,2,130,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0
    Data.a 0,0,0,0,0,0,0,0,208,142,175,8,0,0
EndDataSection
I have tested this with Ubuntu, but I see no icon in the sidebar....

Re: [Linux] Window icon creator

Posted: Thu Sep 10, 2015 5:45 pm
by Keya
but thought someone could use it anyway.
Im interested in this as it seems like possibly a really good way to have small icon graphics, not on window title but on Button gadget? :)

i tried both R-EA and ts-soft versions, Purebasic v5.31 x86, ascii and unicode compiles, and all compiled and ran on Linux Mint 17.1 x86, but i get the same result as Lebostein - neither displayed an icon

[edit] I just read this http://stackoverflow.com/questions/1988 ... g-properly
which explains its only for the minimized icon, not the actual window icon... In that case, R-EA's demo worked but ts-soft's didnt

Re: [Linux] Window icon creator

Posted: Fri Sep 11, 2015 12:08 pm
by pwd
Lebostein wrote:
ts-soft wrote:
Num3 wrote:Works on Mint15 :D
but is no more required :wink:
PB-Image is compatible to gtk-pixbuffer.

Code: Select all

...
I have tested this with Ubuntu, but I see no icon in the sidebar....
Try this:

Code: Select all

UsePNGImageDecoder()

#frmTest = 1000
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  gtk_window_set_icon_(WindowID(#frmTest), ImageID(CatchImage(#PB_Any, ?WindowIcon)))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End

DataSection
  WindowIcon:
  Data.a $89, $50, $4E, $47, $0D, $0A, $1A, $0A, $00, $00, $00, $0D, $49, $48, $44, $52, $00, $00, $00, $10, $00, $00, $00, $10, $08, $06, $00, $00, $00, $1F, $F3, $FF
  Data.a $61, $00, $00, $00, $04, $73, $42, $49, $54, $08, $08, $08, $08, $7C, $08, $64, $88, $00, $00, $02, $6C, $49, $44, $41, $54, $38, $8D, $8D, $92, $5F, $48, $53
  Data.a $71, $14, $C7, $BF, $BF, $DD, $BB, $CB, $D6, $EE, $26, $B2, $BB, $2D, $E7, $9F, $5E, $2E, $77, $D7, $6C, $0E, $95, $F6, $D2, $28, $99, $15, $4D, $21, $89, $84
  Data.a $0C, $02, $EB, $A9, $9E, $4C, $E8, $A9, $88, $44, $8A, $9E, $12, $F2, $25, $E8, $CF, $4B, $51, $A0, $04, $E2, $43, $14, $21, $84, $59, $19, $3E, $E8, $7C, $D0
  Data.a $50, $E9, $21, $84, $F9, $27, $25, $8B, $B9, $3F, $DE, $ED, $FE, $4E, $0F, $A9, $28, $2E, $D8, $81, $F3, $72, $F8, $9E, $CF, $F9, $CB, $88, $08, $85, $4C, $D3
  Data.a $F4, $17, $44, $FC, $82, $28, $0A, $19, $BB, $DD, $7D, $77, $72, $F2, $73, $6F, $21, $9D, $A5, $50, $50, $D7, $F5, $33, $44, $E6, $25, $80, $24, $00, $25, $8C
  Data.a $65, $1E, $68, $5A, $4D, $47, $D1, $00, $40, $68, $50, $14, $0F, $93, $6C, $76, $28, $1E, $2F, $72, $B9, $3C, $88, $8C, $F6, $A2, $01, $92, $E4, $58, $AB, $F2
  Data.a $97, $62, $70, $E0, $09, $BA, $6F, $DF, $80, $A2, $B8, $01, $C0, $51, $34, $C0, $30, $B2, $8B, $37, $2F, $27, $A0, $DA, $AE, $21, $52, $D5, $8D, $68, $28, $09
  Data.a $58, $1C, $25, $9A, $A6, $DB, $8A, $02, $58, $04, $A6, $AC, $E7, $1B, $91, $48, $F8, $90, $DC, $6C, $46, $DE, $79, $0A, $4E, $87, $B5, $16, $40, $CB, $3E, $31
  Data.a $11, $ED, $71, $55, $55, $03, $9D, $9D, $D7, $7F, $24, $37, $D2, $B4, $98, $58, $A2, $3C, $27, $1A, $1D, $FD, $48, $C1, $60, $90, $54, $55, $FD, $A6, $69, $81
  Data.a $F2, $DD, $FA, $3D, $1D, $68, $9A, $6E, $01, $F0, $A8, $A9, $29, $7A, $48, $76, $D8, $E1, $F5, $79, $01, $6E, $22, $14, $0A, $C1, $E3, $F1, $02, $40, $35, $11
  Data.a $1E, $07, $02, $3A, $2B, $38, $02, $91, $19, $AE, $AF, $6F, $38, $11, $8D, $36, $02, $20, $30, $46, $60, $0C, $70, $B9, $5C, $E8, $E9, $E9, $86, $A2, $28, $B0
  Data.a $58, $D0, $4C, $84, $C6, $FF, $ED, $A0, $A3, $B5, $F5, $AC, $20, $CB, $2E, $18, $C6, $26, $76, $3F, $59, $24, $12, $41, $59, $59, $19, $4C, $93, $33, $22, $44
  Data.a $F7, $01, $74, $ED, $70, $85, $CB, $29, $5F, $F4, $FB, $2B, $01, $00, $9C, $13, $80, $6D, $00, $01, $60, $90, $65, $E7, $76, $AC, $74, $3B, $4F, $04, $80, $B1
  Data.a $67, $21, $77, $EF, $55, $EB, $E9, $8A, $F2, $AC, $3C, $3D, $37, $88, $A5, $EA, $20, $7C, $1E, $27, $88, $F8, $4E, $1D, $3E, $D5, $06, $21, $3B, $0F, $40, $40
  Data.a $2C, $22, $49, $7B, $AE, $30, $FB, $BA, $7E, $28, $FB, $35, $48, $14, $AF, $A5, $F1, $E7, $2A, $9D, $3F, $D7, $42, $D3, $33, $B3, $F4, $CF, $38, $19, $26, $51
  Data.a $FA, $43, $98, $16, $5E, $06, $68, $BC, $4F, $A7, $D4, $9B, $EA, $B5, $E4, $D0, $91, $B6, $9D, $2B, $58, $59, $5E, $14, $45, $86, $CD, $34, $E1, $A8, $26, $21
  Data.a $56, $B7, $8C, $8D, $54, $66, $AB, $04, $C3, $BB, $B7, $C3, $18, $8B, $9B, $A8, $3C, $C8, $10, $AE, $61, $B0, $DB, $E0, $36, $72, $B8, $B7, $33, $42, $2A, $C9
  Data.a $2B, $7E, $FD, $64, $B0, $DB, $00, $E9, $80, $80, $D6, $BA, $3C, $FA, $FA, $1F, $62, $A0, $DF, $47, $2B, $CB, $09, $4C, $4C, $4C, $B1, $2B, $C7, $73, $68, $AA
  Data.a $13, $91, $49, $01, $33, $B3, $18, $59, $5D, $15, $EF, $C7, $DA, $B6, $00, $33, $F3, $FC, $E4, $A7, $49, $0A, $67, $4D, $1C, $F3, $97, $B0, $D8, $D2, $EF, $9C
  Data.a $FB, $FD, $97, $B1, $F6, $F5, $34, $C5, $B7, $56, $65, $FD, $BE, $22, $76, $0D, $8F, $F0, $5B, $89, $55, $F6, $74, $E1, $0F, $BA, $EE, $BC, $8A, $73, $00, $F8
  Data.a $0B, $80, $C7, $0A, $32, $81, $3B, $94, $5F, $00, $00, $00, $00, $49, $45, $4E, $44, $AE, $42, $60, $82
EndDataSection