'Creates a self-extracting VBS file slightly more than twice
'the size of the original file. The created file will be named
'the same as the source file except for an additional VBS 
'extension. For example, "test.gif" would create "test.gif.vbs".
'When run, the self-extracting VBS file will create the original
'file in the same directory as the VBS file.
'
'This script uses the "q193998.BinRead" object (named after the 
'Microsoft Knowledge Base article Q193998). If the object 
'doesn't exist, q193998.ocx will be extracted from this 
'script, registered, used, unregistered, and deleted. 

Dim fs, wsh
Dim blnQ193998Created, strQ193998File
Dim blnScriptCreated, strScriptFile
Set wsh = CreateObject("Wscript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")

'Verify we have a good argument
If WScript.Arguments.Count <> 1 Then
    WScript.Echo "Drop a file on me. I will create a VBS self-extractor."
    WScript.Quit 1
End If
If Not fs.FileExists(WScript.Arguments(0)) Then
    WScript.Echo "The argument you supplied does not exist as a file."
    WScript.Quit 1
End If

'Check for and create each object as needed
If IsRegistered("q193998.BinRead") Then
    blnQ193998Created = False
Else
    strQ193998File = fs.GetAbsolutePathName(WScript.ScriptFullName & "\..\q193998.ocx")
    CreateQ193998 strQ193998File
    RegisterServer strQ193998File
    blnQ193998Created = True
End If

'Check for and create the working script
strScriptFile = fs.GetAbsolutePathName(WScript.ScriptFullName & "\..\~sfx.vbs")
If fs.FileExists(strScriptFile) Then
    blnScriptCreated = False
Else
    CreateSfx strScriptFile
    blnScriptCreated = True
End If

'Warn the user not to close this window
If Lcase(Right(Wscript.FullName, 12)) = "\cscript.exe" Then
    WScript.Echo "Do not close this window. This window has launched "
    WScript.Echo "a child window to perform the requested task. This "
    WScript.Echo "window will close as soon as the child window finishes."
End If

'Launch the working script and wait for it to finish
wsh.Run "cscript.exe" & " " & """" & strScriptFile & """" & " " & """" & WScript.Arguments(0) & """", 1, True

'Delete working files if appropriate
If blnScriptCreated Then
    On Error Resume Next
    If fs.FileExists(strScriptFile) Then fs.DeleteFile strScriptFile, True
    On Error Goto 0
End If

'UnRegister and delete objects if appropriate
If blnQ193998Created Then
    UnRegisterServer strQ193998File
    On Error Resume Next 'Delete might fail if OCX/DLL isn't released
    fs.DeleteFile strQ193998File, True
    On Error Goto 0 'Turn Error checking back on
End If

Function IsRegistered(strObjectName)
'Returns True if object can be created
Dim obj
On Error Resume Next
    Set obj = Nothing
    Set obj = CreateObject(strObjectName)
    If obj Is Nothing Then
        IsRegistered = False
    Else
        IsRegistered = True
        Set obj = Nothing
    End If
End Function

Sub RegisterServer(strPath)
Dim fs, wsh
Const SystemFolder = 1
Const WshNormalFocus = 1
Set wsh = CreateObject("Wscript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
    Select Case Lcase(Right(strPath, 4))
        Case ".exe"
            wsh.Run strPath & " /RegServer", WshNormalFocus, True
        Case ".wsc"
            wsh.Run "regsvr32.exe /i:""" & strPath & """ """ & fs.GetSpecialFolder(SystemFolder) & "\scrobj.dll""", WshNormalFocus, True
        Case Else
            wsh.Run "regsvr32.exe /s """ & strPath & """", WshNormalFocus, True
            'wsh.Run "rundll32.exe """ & strPath & """ DllRegisterServer", WshNormalFocus, True
    End Select
End Sub

Sub UnRegisterServer(strPath)
Dim fs, wsh
Const SystemFolder = 1
Const WshNormalFocus = 1
Set wsh = CreateObject("Wscript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
    Select Case Lcase(Right(strPath, 4))
        Case ".exe"
            wsh.Run strPath & " /UnRegServer", WshNormalFocus, True
        Case ".wsc"
            wsh.Run "regsvr32.exe /u /n /i:""" & strPath & """ """ & fs.GetSpecialFolder(SystemFolder) & "\scrobj.dll""", WshNormalFocus, True
        Case Else
            wsh.Run "regsvr32.exe /s /u """ & strPath & """", WshNormalFocus, True
            'wsh.Run "rundll32.exe """ & strPath & """ DllUnRegisterServer", WshNormalFocus, True
    End Select
End Sub

Sub CreateSfx(strOutFile)
Dim ts, x
If Instr(strOutFile, "\") = 0 Then strOutFile = Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\")) & strOutFile
	Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile(strOutFile, 2, True)
	On Error Resume Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("44696D207661724279746541727261792C206C6E67436F756E7465722C2066732C2074732C20626C6E576173437265617465640D0A44696D2073747246756E6374696F6E4E616D652C207374724C696E652C20696E74506F732C20696E7450657263656E740D0A436F6E73742042595445535F5045525F4C494E45203D203235360D0A436F6E737420466F7257726974696E67203D20320D0A536574206673203D204372656174654F626A6563742822536372697074696E672E46696C6553797374656D4F626A65637422290D0A274261736520746865206E616D65206F66207468652066756E6374696F6E207765276C6C20637265617465206F6E20746865",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("20736F757263652066696C652C2062757420636C65616E2069742075702066697273740D0A466F7220696E74436F756E746572203D203120546F204C656E2866732E476574426173654E616D6528575363726970742E417267756D656E747328302929290D0A20202020496620496E537472282251574552545955494F504153444647484A4B4C5A584356424E4D31323334353637383930222C205563617365284D69642866732E476574426173654E616D6528575363726970742E417267756D656E7473283029292C20696E74436F756E7465722C2031292929203C3E2030205468656E0D0A202020202020202073747246756E6374696F6E4E616D65203D",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2073747246756E6374696F6E4E616D652026204D69642866732E476574426173654E616D6528575363726970742E417267756D656E7473283029292C20696E74436F756E7465722C2031290D0A20202020456E642049660D0A4E6578740D0A49662073747246756E6374696F6E4E616D65203D202222205468656E2073747246756E6374696F6E4E616D65203D202246696C65220D0A73747246756E6374696F6E4E616D65203D205543617365284C6566742873747246756E6374696F6E4E616D652C203129292026204C43617365284D69642873747246756E6374696F6E4E616D652C203229290D0A73747246756E6374696F6E4E616D65203D2022437265",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("6174652220262073747246756E6374696F6E4E616D650D0A27526561642074686520736F757263652066696C650D0A766172427974654172726179203D204372656174654F626A6563742822713139333939382E42696E5265616422292E7265616442696E46696C6528575363726970742E417267756D656E7473283029290D0A27426567696E2077726974696E6720746865206F75747075742066696C650D0A536574207473203D2066732E4F70656E5465787446696C6528575363726970742E417267756D656E7473283029202620222E766273222C20466F7257726974696E672C2054727565290D0A74732E57726974654C696E652022275468697320",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("7363726970742077696C6C2063726561746520612066696C65206E616D65642022222220262066732E47657446696C654E616D6528575363726970742E417267756D656E747328302929202620222222220D0A74732E57726974654C696E652022220D0A74732E57726974654C696E652073747246756E6374696F6E4E616D65202620222022202620224C65667428577363726970742E53637269707446756C6C4E616D652C20496E53747252657628575363726970742E53637269707446756C6C4E616D652C2022225C2222292920262022222220262066732E47657446696C654E616D6528575363726970742E417267756D656E74732830292920262022",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2222220D0A74732E57726974654C696E652022220D0A74732E57726974654C696E652022537562202220262073747246756E6374696F6E4E616D6520262022287374724F757446696C6529220D0A74732E57726974654C696E65202244696D2074732C2078220D0A74732E57726974654C696E652022496620496E737472287374724F757446696C652C2022225C222229203D2030205468656E207374724F757446696C65203D204C65667428577363726970742E53637269707446756C6C4E616D652C20496E53747252657628575363726970742E53637269707446756C6C4E616D652C2022225C222229292026207374724F757446696C65220D0A74732E",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("57726974654C696E6520766254616220262022536574207473203D204372656174654F626A656374282222536372697074696E672E46696C6553797374656D4F626A6563742222292E4F70656E5465787446696C65287374724F757446696C652C20322C205472756529220D0A74732E57726974654C696E65207662546162202620224F6E204572726F7220526573756D65204E657874220D0A74732E577269746520766254616220262022466F722078203D203120546F20222026202842595445535F5045525F4C494E45202A203229202D20312026202220537465702032203A2074732E57726974652043687228436C6E67282222264822222026204D69",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("6428220D0A696E7450657263656E74203D20300D0A274E6F772072656164206576657279206279746520696E207468652066696C6520616E642073706974206F7574206865780D0A7374724C696E65203D2022220D0A466F72206C6E67436F756E746572203D203120746F2055426F756E642876617242797465417272617929202B20310D0A202020207374724C696E65203D207374724C696E65202620526967687428223030222026204865782841736362284D696462287661724279746541727261792C6C6E67436F756E7465722C312929292C2032290D0A202020204966206C6E67436F756E746572204D6F642042595445535F5045525F4C494E4520",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("3D2030205468656E0D0A2020202020202020274F7574736964652071756F74652074686520737472696E670D0A20202020202020207374724C696E65203D20222222222026207374724C696E65202620222222220D0A2020202020202020274E6F772077726974652074686520616363756D756C617465642064617461206C696E650D0A202020202020202074732E57726974654C696E65207374724C696E65202620222C782C32292929203A204E657874220D0A20202020202020207374724C696E65203D2022220D0A20202020202020204966206C6E67436F756E746572203C3E2055426F756E642876617242797465417272617929202B203120546865",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("6E0D0A20202020202020202020202074732E577269746520766254616220262022466F722078203D203120546F20222026202842595445535F5045525F4C494E45202A203229202D20312026202220537465702032203A2074732E57726974652043687228436C6E67282222264822222026204D696428220D0A2020202020202020456E642049660D0A20202020202020202753686F772070726F67726573730D0A202020202020202049662043696E7428313030202A206C6E67436F756E746572202F2055426F756E64287661724279746541727261792929203C3E20696E7450657263656E74205468656E0D0A202020202020202020202020696E745065",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("7263656E74203D2043696E7428313030202A206C6E67436F756E746572202F2055426F756E642876617242797465417272617929290D0A2020202020202020202020204966204C6361736528526967687428577363726970742E46756C6C4E616D652C2031322929203D20225C637363726970742E65786522205468656E0D0A202020202020202020202020202020202754657874206F757470757420696620686F737420697320435343524950540D0A20202020202020202020202020202020696E7450657263656E74203D2043696E7428313030202A206C6E67436F756E746572202F2055426F756E642876617242797465417272617929290D0A202020",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("20202020202020202020202020575363726970742E4563686F20696E7450657263656E742026202225220D0A202020202020202020202020456E642049660D0A2020202020202020456E642049660D0A20202020456E642049660D0A4E6578740D0A4966207374724C696E65203C3E202222205468656E200D0A20202020274F7574736964652071756F74652074686520737472696E670D0A202020207374724C696E65203D20222222222026207374724C696E65202620222222220D0A20202020274E6F772077726974652074686520616363756D756C617465642064617461206C696E650D0A2020202074732E57726974654C696E65207374724C696E65",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("202620222C782C32292929203A204E657874220D0A456E642049660D0A74732E57726974654C696E652076625461622026202274732E436C6F7365220D0A74732E57726974654C696E652022456E6420537562220D0A74732E436C6F7365",x,2))) : Next
	ts.Close
End Sub

Sub CreateQ193998(strOutFile)
Dim ts, x
If Instr(strOutFile, "\") = 0 Then strOutFile = Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\")) & strOutFile
	Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile(strOutFile, 2, True)
	On Error Resume Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010500DF3FF0400000000000000000E0000E210B010414000C0000001E0000000000004810000000100000002000000000001100100000000200000400000001000000040000000000000000600000000400009DC4000002000000000010000010000000001000001000000000000010000000C0190000A4000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("003000002800000000400000C80C00000000000000000000000000000000000000500000C40000000000000000000000000000000000000000000000000000000000000000000000000000000000000040020000200000005C300000340000000000000000000000000000000000000000000000000000002E74657874000000640A000000100000000C000000040000000000000000000000000000200000602E646174610000008C0A0000002000000000000000000000000000000000000000000000400000C02E696461746100000C010000003000000002000000100000000000000000000000000000400000402E72737263000000C80C000000400000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("000E000000120000000000000000000000000000400000402E72656C6F630000E200000000500000000200000020000000000000000000000000000040000042499943381000000000000000000000004D535642564D35302E444C4C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FF2570300011FF2574300011FF256C300011FF2568300011FF2560300011FF2564300011FF255C300011FF2578300011FF2584300011FF2580300011FF257C300011FF25883000115A68842A001168882A001152E9E9FFFFFF000000480000003000000040000000380000000ED0A9BC78936D45824BEEC15A31F02200000000020001000000727475703D2271313933393938007131393339393800003D22220D0A54690000000088000000000000000200000000000000ECD9180D250513488099E5E15A3E7BE00100000090000000A00000000100000091010200002030757131393342696E526561640084E3B5C6F4921B4E880941A0DE6AD29E15AF3A20",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("04D7AF4085350780F54C63C550000000741940A40A1AC94AAB01F677C358B95100000000000000000000000000000000000000000300000091010200ECD9180D250513488099E5E15A3E7BE085000000000000004C1700115CA0D900564235218C0E2A000000000000000000000000007E0000000000000000000000000004000904000000000000000000001015001100F0300000FFFFFF090000000100000001000000E90000000C1100110C1100115C1000116800000070000000780000007900000071313933393938007131393339393800007131393339393800000000010000006C1300110000000008180011FFFFFFFF00000000C013001100200011",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("01000000B050170003002000000000009CEC17005812001101000000181400110000000064120011010000006C120011010000006812001101000000701200110100E20168006C0098120011D022001100000000E42413000010001106100011EC140011281400113814001148140011400029003C00000058140011FFFFFFFF00000000000000009C120011D8E8140068140011FFFFFFFF5F1300110000000070120011E011001112100011181000111E10001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B800000000663D33C0BA541900116824100011C3000000002420001148180011FFFFFFFF0000000014200011FE9B87AABB868D4FBA7CD09B530719340E00010004000100C0130011000000000000000000000000F813001109040000090400000000000002000000E0110011FFFFFFFFDC1400110000000000000000000000000014001101000000F0130011FFFF000003A81D0000000000D0140011000000007131393339393800",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("42696E52656164003B2733D5190C634D8568C9198E342CC4ECD9180D250513488099E5E15A3E7BE0741940A40A1AC94AAB01F677C358B95184E3B5C6F4921B4E880941A0DE6AD29E15AF3A2004D7AF4085350780F54C63C51250AD339966CF11B70C00AA0060D39355736572436F6E74726F6C002E3DFBFCFAA06810A73808002B3371B5433A5C50726F6772616D2046696C65735C5642354343455C5642352E4F4C4200564200007414001100000000050000000900000084140011A4140011C8220011000000000000000058D014007265616442696E46696C65000C00480000000000000000001600000004000000010000000000000000007301FFFFFFFF",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("01000000564241352E444C4C00000000F40100006C13001100000000A0190011B01900118C0A0000002000110C100011000000002A005C00410044003A005C0065007200690063005C004D007900200044006F00630075006D0065006E00740073005C00500072006F006A0065006300740073005C0071003100390033003900390038005C0073006F0075007200630065005C0071003100390033003900390038002E007600620070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C11001100000000FFCC310000741940A40A1AC94AAB01F677C358B9513B2733D5190C634D8568C9198E342CC41250AD339966CF11B70C00AA0060D3930000000000000000000000000000000000000000000000000000000000000000000000002C0000002700000000070042696E5265616400281901004200350000000000000000C0120000100E0000FF04000000E4170011081800117C180011000000000801A507FFFF00000000000000000360DC1700110000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("000000001E102F0000000000E0110011FFFFFFFF000000000000000000000000D417001100000000D4170011D4170011D41700110000000000000000000000004800000004010000000000006C130011FFFFFFFF00000000D8170011000000000000000000000000FFFFFFFF00000000A814001158140011CC2200116266696C656E616D6500000058685C11001168842A001168882A001150E98CF7FFFF58685C11001168842A001168882A001150E97CF7FFFF58685C11001168842A001168882A001150E96CF7FFFF58685C11001150E966F7FFFF00006C0C004368FFFF2E4B70002738FF0B00000400E77160FF3538FF6C68FF6C60FFE4F4FFFE5D20016C",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("68FF5E010004007164FFF5000000006C64FFF501000000AE045CFFFE8E0100FFFF010000006C60FFE4045CFFFF1602006C60FFE4FD3D6C5CFF4D48FF1120FD006CFFFF2F10001000FF2F10001000FF2F10001000E01100110C0044007C003C00000000000000FB01000000002200000000000400000000016CFF020058FF010068FF01005CFF0501000000000000000010000000000001000000000038FF0200E9E9E9E9CCCCCCCCCCCCCCCCCCCCCCCC9E9E9E9ECCCCCCCCCCCCCCCCCCCCCCCC00000000DF3FF04000000000101A0000010000000400000004000000E8190000F8190000081A0000CA1800009E180000B4180000881800001C1A00002C1A0000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("3E1A0000501A00000000010002000300713139333939382E6F637800446C6C43616E556E6C6F61644E6F7700446C6C476574436C6173734F626A65637400446C6C526567697374657253657276657200446C6C556E726567697374657253657276657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("28300000FFFFFFFFFFFFFFFF903000005C30000000000000000000000000000000000000000000009E300000B0300000C4300000DA300000F63000008802008042020080650000806600008067000080680000806900008000000000FC2F3E769D293076D17F31764A633176592B30769C362E76926131765DA6317643A8337623F139767D1331767D023276000000004D535642564D35302E444C4C000000004D65746843616C6C456E67696E65000000004556454E545F53494E4B5F4164645265660000004556454E545F53494E4B5F52656C65617365000000004556454E545F53494E4B5F5175657279496E746572666163650000005F5F766261457863",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("65707448616E646C6572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000DF3FF040180000000300020078010080980000808801008080000080A2010080680000800200000050000080100000003800008000000000DF3FF040180000000000010001000000B000008000000000DF3FF040180000000000010030750000C800008000000000DF3FF040180000000000010001000000E000008000000000DF3FF040180000000000010001000000F800008000000000DF3FF0401800000000000100010000001001008000000000DF3FF0401800000000000100090400002801000000000000DF3FF0401800000000000100000000003801000000000000DF3FF0401800000000000100000000004801000000000000DF3FF040",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("1800000000000100000000005801000000000000DF3FF04018000000000001000000000068010000D041000044030000B00400000000000014450000E0000000B004000000000000F445000014000000B0040000000000000846000014000000B0040000000000001C460000AC060000B004000000000000070054005900500045004C00490042000C005F004900490044005F00420049004E0052004500410044000F005F005300520043004900490044005F00420049004E0052004500410044000000000000000000000000000000440334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000010000000000000001000000000000000000000000000400000002000000000000000000000000000000440000000000560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000904B004A4020000010053007400720069006E006700460069006C00650049006E0066006F00000080020000010030003400300039003000340042003000000058003E00010043006F006D006D0065006E0074007300000043006F00640065002000660072006F006D0020004D006900630072006F0073006F006600740020004B00420020005100310039003300390039003800",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000000038001800010043006F006D00700061006E0079004E0061006D00650000000000450072006900630020005000680065006C00700073000000700048000100460069006C0065004400650073006300720069007000740069006F006E0000000000520065006100640073002000620069006E006100720079002000660069006C006500200069006E0074006F00200061002000620079007400650020006100720072006100790000003800140001004C006500670061006C0043006F00700079007200690067006800740000004D006900630072006F0073006F00660074000000380018000100500072006F0064007500630074004E0061006D006500",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000000071003100390033003900390038002E006F006300780000002C000A000100460069006C006500560065007200730069006F006E000000000031002E00300030000000000030000A000100500072006F006400750063007400560065007200730069006F006E00000031002E00300030000000000030001000010049006E007400650072006E0061006C004E0061006D0065000000710031003900330039003900380000004000180001004F0072006900670069006E0061006C00460069006C0065006E0061006D006500000071003100390033003900390038002E006F006300780000002C00020001004F004C004500530065006C00660052006500",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("670069007300740065007200000000000000000028000000100000000F0000000100040000000000780000000000000000000000100000001000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00778000000000077777877777777707777787000000070777778F770F77070777778F870F07070777778FFF0F000707777787000000070777778F770F0B800777778F870F0B708777778FFF0FF0B807777787777770B7077777CCCCCCCC0B807777CCCCCCCC0B0077777777777770197777777777777000771000000015AF3A2004D7AF40",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("85350780F54C63C51000000084E3B5C6F4921B4E880941A0DE6AD29E4D5346540200010000000000090400000000000041000000010000000200000003000000000000000000000000000000060000003300000000000000FFFFFFFFFFFFFFFF200000008000000001000000010000000000000064000000C8000000500100002C010000FFFFFFFF0F000000AC0300000C000000FFFFFFFF0F000000B80300001C000000FFFFFFFF0F0000008C03000020000000FFFFFFFF0F0000007C02000080000000FFFFFFFF0F000000FC02000090000000FFFFFFFF0F000000D403000000020000FFFFFFFF0F000000D405000084000000FFFFFFFF0F00000058060000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0C000000FFFFFFFF0F0000006406000008000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000342100006C06000060000000580000000300000000000000010000000000000000000000000000000000000060000000D01100001400000001000000FFFFFFFF0000000000000000FFFFFFFF0100A80704000000010000000200070000000000FFFFFFFF25210100AC06000000000000FFFFFFFF0300000000000000000000000000000000000000000000000000000018000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("200000002800000001000000FFFFFFFF0000000000000000FFFFFFFF0200000004000000000000000000000000000000FFFFFFFF24210200AC06000000000000FFFFFFFF0300000000000000000000000000000000000000000000000000000078000000901000003C00000001000000FFFFFFFF0000000000000000FFFFFFFF0100000004000000FFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF48000000FFFFFFFFFFFFFFFFFFFFFFFF18000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78000000FFFFFFFF30000000FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFF60000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0ED0A9BC78936D45824BEEC15A31F022FEFFFFFFFFFFFFFFECD9180D250513488099E5E15A3E7BE064000000FFFFFFFF3004020000000000C00000000000004602000000FFFFFFFF0004020000000000C00000000000004601000000FFFFFFFF84E3B5C6F4921B4E880941A0DE6AD29E00000000FFFFFFFF15AF3A2004D7AF4085350780F54C63C5C8000000FFFFFFFF0000000001000000FFFFFFFF10000000C800000003000000FFFFFFFFFFFFFFFF0000010300000000480000003000000000000000020000002D005354444F4C45322E544C42575757FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14000000FFFFFFFFFFFFFFFF6C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54000000FFFFFFFFFFFFFFFF3C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0700B47A71313933",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("3939385700000000FFFFFFFF083850F65F42696E5265616464000000FFFFFFFF0738651F42696E5265616457C8000000FFFFFFFF09386F7A5F5F42696E5265616457575700000000FFFFFFFF0B00EC657265616442696E46696C6557FFFFFFFFFFFFFFFF0900D32F6266696C656E616D655757570700713139333939385757571A000C400C000C8030000000300000001900198000000000A5075C000944000002000000080008806C0000000100000000000000FFFFFFFF0A0000000000036054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00100000C4000000023008300E3014301A30203026302C30323038303E3044304A304F3054318C31A831AC31B031E431EC31F831FC3114321C3224322C3234323C3248324C3258325C326032643268326C327832883290329832A032A432A832AC32B032623367337033743380339C33AC33C033C833D833E033F033A834B834BC34C03414351C35203528352C354437D437D837DC37F4370C38203828382C3830384C3858387038743878388A388F389438A038A538AA38B638BB38C038CC3854390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next
	ts.Close
End Sub
