从网上搜集整理,直接调用函数RunFuckCAD屏蔽Ctrl+Alt+Del,一般在程序创建时调用,在程序退出时调用StopFuckCAD ,取消屏蔽Ctrl+Alt+Del。

 

{-----------------------------------------------------------------------------
 Unit Name: Fuck_CAD_Unit
 Author:    liubin
 Date:      2010-11-04
 Purpose:   屏蔽系统热键ctrl+alt+del、 WIN 、ALT+TAB等
 Memo:
 History:
-----------------------------------------------------------------------------}
unit Fuck_CAD_Unit;

interface

uses Windows, TLHelp32,SysUtils,Messages;
type
  {按键消息的结构,Delphi中也没有,自己定义吧。这也就是我为什么说用C写
这样的程序更好的原因之一。还必须注意的是这个结构在Windows NT 4 sp3以上系统中才能使用}
tagKBDLLHOOKSTRUCT = packed record
  vkCode: DWORD;//虚拟键值
  scanCode: DWORD;//扫描码值(没有用过,我也不懂^_^)
  {一些扩展标志,这个值比较麻烦,MSDN上说得也不太明白,但是
  根据这个程序,这个标志值的第六位数(二进制)为1时,Alt键按下为0}
  flags: DWORD;
  time: DWORD;//消息时间戳
  dwExtraInfo: DWORD;//和消息相关的扩展信息
end;
  KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
  PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
//这个是低级键盘钩子的索引值,Delphi中没有,必须自己定义
const
 WH_KEYBOARD_LL = 13;
//定义一个常量好和上面那个结构中的flags比较而得出Alt键是否按下
 LLKHF_ALTDOWN = $20;    //屏蔽热键用 
 MyKernel='SnowmanLockScreenHook.Dll';  //释放完得文件名,可以自己改
 Winlogon='winlogon.exe';
 MyKernelSize=9216;
 MyKernelBuf:Array [0..9215] of Byte =
 (
   $4D,$5A,$50,$00,$02,$00,$00,$00,$04,$00,$0F,$00,$FF,$FF,$00,$00,
   $B8,$00,$00,$00,$00,$00,$00,$00,$40,$00,$1A,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00,
   $BA,$10,$00,$0E,$1F,$B4,$09,$CD,$21,$B8,$01,$4C,$CD,$21,$90,$90,
   $54,$68,$69,$73,$20,$70,$72,$6F,$67,$72,$61,$6D,$20,$6D,$75,$73,
   $74,$20,$62,$65,$20,$72,$75,$6E,$20,$75,$6E,$64,$65,$72,$20,$57,
   $69,$6E,$33,$32,$0D,$0A,$24,$37,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $50,$45,$00,$00,$4C,$01,$03,$00,$19,$5E,$42,$2A,$00,$00,$00,$00,
   $00,$00,$00,$00,$E0,$00,$8E,$A1,$0B,$01,$02,$19,$00,$20,$00,$00,
   $00,$10,$00,$00,$00,$80,$00,$00,$70,$AB,$00,$00,$00,$90,$00,$00,
   $00,$B0,$00,$00,$00,$00,$40,$00,$00,$10,$00,$00,$00,$02,$00,$00,
   $04,$00,$00,$00,$00,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00,$00,
   $00,$C0,$00,$00,$00,$10,$00,$00,$00,$00,$00,$00,$02,$00,$01,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$10,$00,$00,$10,$00,$00,
   $00,$00,$00,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $B0,$B0,$00,$00,$C8,$00,$00,$00,$00,$B0,$00,$00,$B0,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $78,$B1,$00,$00,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$55,$50,$58,$30,$00,$00,$00,$00,
   $00,$80,$00,$00,$00,$10,$00,$00,$00,$00,$00,$00,$00,$04,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$00,$E0,
   $55,$50,$58,$31,$00,$00,$00,$00,$00,$20,$00,$00,$00,$90,$00,$00,
   $00,$1E,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$40,$00,$00,$E0,$2E,$72,$73,$72,$63,$00,$00,$00,
   $00,$10,$00,$00,$00,$B0,$00,$00,$00,$02,$00,$00,$00,$22,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$00,$C0,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$31,$2E,$32,$34,$00,
   $55,$50,$58,$21,$0C,$09,$02,$0A,$0A,$EF,$82,$AC,$83,$03,$D2,$AA,
   $E7,$85,$00,$00,$66,$1B,$00,$00,$00,$36,$00,$00,$26,$00,$00,$B1,
   $C8,$20,$63,$FF,$FF,$25,$00,$00,$50,$C8,$8B,$C0,$07,$C4,$C0,$20,
   $83,$0C,$32,$BC,$B8,$B4,$83,$0C,$32,$C8,$D4,$B0,$AC,$A8,$0C,$32,
   $C8,$20,$A4,$A0,$E4,$32,$C8,$20,$83,$E0,$DC,$9C,$BB,$B7,$BF,$0C,
   $98,$53,$83,$C4,$BC,$BB,$0A,$0B,$00,$54,$E8,$04,$4C,$F6,$06,$7B,
   $FB,$FF,$44,$24,$2C,$01,$74,$05,$0F,$B7,$5C,$24,$30,$8B,$C3,$1B,
   $44,$5B,$C3,$63,$94,$19,$64,$90,$41,$90,$8C,$88,$64,$90,$41,$06,
   $84,$80,$7C,$E5,$FF,$B6,$19,$78,$56,$BE,$6C,$45,$D0,$83,$3E,$00,
   $75,$3A,$68,$44,$06,$DD,$F6,$DF,$CE,$6A,$00,$B5,$C8,$85,$C9,$75,
   $05,$33,$C0,$5E,$64,$A1,$20,$CC,$FF,$FF,$FF,$F7,$89,$01,$89,$0D,
   $07,$33,$D2,$8B,$C2,$03,$C0,$8D,$44,$C1,$04,$8B,$1E,$89,$18,$89,
   $06,$42,$83,$FA,$64,$75,$EC,$8B,$DF,$BF,$BF,$FB,$06,$8B,$10,$89,
   $16,$2B,$90,$89,$00,$89,$40,$04,$C3,$57,$8B,$F2,$8B,$D8,$4A,$E8,
   $F6,$ED,$3F,$D8,$85,$C0,$48,$8B,$16,$89,$50,$08,$8B,$56,$04,$05,
   $0C,$8B,$13,$89,$30,$BF,$7D,$6F,$DB,$58,$09,$42,$02,$03,$B0,$01,
   $1B,$50,$50,$08,$89,$0A,$89,$51,$DF,$BE,$ED,$6D,$06,$15,$90,$1E,
   $A3,$06,$C3,$47,$57,$55,$51,$8B,$DD,$BA,$F7,$FF,$F1,$89,$14,$24,
   $8B,$E8,$8B,$5D,$00,$8B,$04,$24,$69,$2D,$89,$47,$8B,$3B,$F6,$AE,
   $F0,$DF,$77,$53,$08,$03,$53,$0C,$3B,$C2,$75,$14,$12,$6D,$01,$70,
   $8B,$43,$46,$EC,$B6,$FC,$DB,$06,$04,$0C,$01,$46,$04,$EB,$15,$03,
   $3B,$0F,$75,$0D,$1B,$FB,$BD,$FD,$97,$16,$8B,$DF,$3B,$EB,$75,$70,
   $D6,$8B,$C5,$14,$40,$84,$9E,$C2,$73,$6F,$65,$04,$33,$5A,$5D,$5F,
   $87,$6F,$5A,$ED,$ED,$EE,$DB,$F8,$BA,$8B,$FB,$8B,$32,$4B,$3B,$F0,
   $72,$36,$CE,$03,$4A,$35,$B5,$ED,$ED,$ED,$E8,$03,$6B,$67,$CD,$77,
   $62,$11,$75,$1B,$8B,$B7,$01,$1B,$0E,$B6,$F0,$D6,$05,$29,$51,$83,
   $7B,$0C,$3B,$48,$61,$EB,$3F,$6F,$5B,$B0,$DF,$2C,$8B,$7A,$04,$03,
   $CF,$2E,$F9,$29,$1E,$EB,$2A,$8B,$FF,$AD,$6D,$BB,$0A,$41,$89,$0C,
   $BB,$7B,$AD,$0F,$2B,$F9,$89,$7C,$24,$04,$2B,$F0,$C2,$C9,$DE,$C2,
   $89,$73,$07,$D4,$38,$85,$EB,$0C,$0C,$DD,$D9,$F6,$DB,$EB,$57,$1B,
   $3B,$FB,$75,$81,$0D,$59,$92,$90,$93,$8B,$FB,$F6,$7E,$FB,$DA,$8B,
   $F0,$81,$FE,$28,$10,$00,$7D,$07,$BE,$06,$29,$81,$C6,$FF,$FF,$09,
   $96,$BF,$B5,$76,$81,$E6,$03,$07,$49,$04,$6A,$01,$68,$00,$20,$56,
   $86,$FF,$1B,$13,$BF,$9D,$F8,$89,$3B,$85,$FF,$74,$23,$8B,$D3,$B8,
   $47,$EF,$87,$ED,$B0,$D4,$63,$13,$24,$80,$E3,$8B,$03,$50,$26,$BD,
   $E1,$C3,$BA,$C0,$F8,$03,$63,$55,$8B,$D9,$B3,$E8,$C7,$43,$04,$07,
   $EC,$1B,$FB,$60,$6A,$04,$4F,$68,$0B,$55,$52,$75,$1F,$DB,$6C,$72,
   $64,$78,$04,$24,$4E,$83,$43,$B2,$04,$D8,$3B,$00,$76,$DB,$6F,$77,
   $A3,$A1,$70,$EC,$89,$4C,$10,$E3,$C7,$E2,$08,$FF,$00,$ED,$86,$F6,
   $0D,$65,$89,$54,$24,$0C,$8B,$EE,$03,$C5,$89,$14,$FE,$42,$C3,$EF,
   $10,$8B,$1D,$4E,$EB,$51,$F2,$73,$93,$EE,$77,$46,$8B,$C6,$03,$6E,
   $6B,$EF,$16,$7A,$3B,$19,$77,$3B,$3B,$74,$34,$86,$89,$05,$06,$73,
   $ED,$61,$14,$0C,$76,$0E,$05,$74,$56,$AE,$E0,$6E,$3E,$85,$C0,$0A,
   $C7,$05,$45,$61,$0E,$B7,$FD,$7D,$18,$10,$DF,$81,$FB,$58,$75,$A7,
   $8B,$2F,$04,$75,$46,$FB,$B6,$76,$10,$83,$7C,$37,$BF,$19,$0E,$8B,
   $82,$4A,$7B,$38,$D7,$B5,$79,$48,$2B,$96,$0D,$AE,$AB,$7F,$B0,$01,
   $63,$14,$27,$F4,$B7,$8B,$D0,$8B,$EA,$81,$E5,$BD,$86,$6F,$DB,$00,
   $F0,$B9,$03,$0C,$81,$C2,$FF,$0F,$1F,$E2,$0E,$C1,$EE,$9A,$CD,$C6,
   $39,$44,$28,$05,$08,$2B,$C5,$45,$DF,$F8,$F6,$D8,$8B,$35,$CE,$3C,
   $8B,$5E,$1D,$7E,$0C,$03,$FB,$90,$76,$02,$8B,$DD,$E1,$82,$DB,$B6,
   $3B,$7B,$08,$B9,$8B,$05,$FF,$76,$1E,$57,$C3,$CE,$F7,$E5,$10,$2B,
   $FB,$57,$53,$C0,$B8,$A5,$CE,$D6,$3D,$B6,$EB,$09,$36,$0E,$B9,$BC,
   $91,$0C,$67,$E8,$38,$9D,$73,$2B,$B9,$F3,$A1,$81,$43,$90,$DB,$C8,
   $E6,$34,$9D,$EB,$03,$4F,$87,$75,$1B,$25,$C8,$F7,$2B,$06,$41,$84,
   $38,$B7,$BD,$FD,$24,$1C,$24,$73,$03,$8B,$04,$3B,$EF,$73,$8C,$FD,
   $82,$19,$12,$26,$5B,$1C,$80,$40,$41,$02,$A9,$9D,$31,$99,$80,$C0,
   $A5,$8D,$2A,$3B,$BA,$EF,$6E,$0C,$44,$F8,$BD,$1A,$E4,$81,$C7,$FF,
   $3F,$86,$E7,$74,$E3,$25,$D7,$3A,$79,$BB,$EB,$33,$3B,$FB,$7F,$2C,
   $7A,$D7,$CE,$D4,$20,$D7,$58,$52,$04,$20,$76,$74,$50,$8B,$46,$E9,
   $90,$49,$46,$4C,$46,$3E,$35,$09,$F4,$B3,$6B,$BA,$DD,$75,$C9,$AA,
   $C7,$2E,$02,$8C,$21,$8B,$CC,$75,$B9,$ED,$87,$BA,$88,$83,$3C,$24,
   $2D,$A5,$10,$0B,$06,$4C,$98,$74,$DA,$11,$03,$68,$C8,$36,$0F,$04,
   $56,$7A,$7A,$5B,$77,$FA,$3E,$92,$DF,$8D,$05,$DE,$02,$61,$53,$3B,
   $54,$75,$F5,$04,$57,$6B,$33,$74,$77,$A2,$0F,$8E,$96,$DF,$8D,$D9,
   $A8,$2B,$5B,$D2,$F1,$39,$5C,$AB,$55,$7F,$F0,$1C,$04,$8F,$61,$86,
   $DD,$33,$1A,$0C,$8D,$C8,$85,$32,$43,$2C,$08,$DF,$75,$B1,$15,$8B,
   $EE,$8B,$6C,$35,$66,$B7,$07,$AB,$E9,$0B,$06,$DF,$4D,$9F,$C7,$07,
   $C8,$80,$46,$34,$0F,$85,$66,$FE,$36,$B6,$8E,$30,$4A,$EB,$66,$6B,
   $1B,$F5,$D7,$15,$0E,$05,$A9,$48,$1C,$D7,$D7,$3C,$1E,$D8,$76,$86,
   $48,$20,$83,$38,$53,$28,$1F,$40,$90,$49,$78,$11,$4E,$08,$51,$10,
   $9C,$86,$11,$EC,$07,$49,$C6,$7F,$C8,$08,$3B,$36,$22,$8B,$F9,$C4,
   $8D,$98,$1B,$E3,$EB,$BF,$AD,$8D,$35,$03,$70,$E6,$0A,$3B,$DE,$73,
   $5B,$8B,$CF,$7B,$9A,$1D,$7B,$D6,$2B,$D3,$44,$04,$B4,$CB,$DF,$E4,
   $B8,$B3,$C9,$BE,$1D,$8B,$5C,$0F,$85,$DB,$74,$1F,$B5,$C3,$B3,$B3,
   $A6,$73,$4D,$38,$89,$C0,$07,$10,$08,$F5,$EE,$81,$93,$BD,$14,$F1,
   $3B,$F8,$EB,$7A,$07,$8D,$BF,$6B,$DB,$7A,$8C,$80,$EC,$9B,$55,$71,
   $08,$2E,$64,$FF,$32,$64,$DB,$ED,$8F,$DD,$89,$22,$0A,$45,$B4,$7B,
   $C8,$80,$3D,$04,$40,$35,$3E,$0A,$92,$4D,$D6,$64,$12,$D0,$60,$38,
   $4E,$4D,$06,$8F,$FC,$09,$46,$10,$68,$F8,$0F,$CB,$A3,$76,$6F,$6F,
   $C1,$15,$07,$3D,$05,$41,$2F,$B8,$03,$13,$8B,$15,$03,$D7,$2F,$7D,
   $33,$C9,$BF,$82,$F4,$40,$3D,$01,$F1,$C4,$5F,$03,$07,$5F,$46,$F4,
   $BD,$C2,$30,$00,$7D,$DB,$DB,$8F,$C6,$EA,$AC,$01,$9F,$5A,$59,$59,
   $8B,$10,$96,$35,$FB,$BE,$E1,$95,$86,$D8,$C3,$DF,$19,$84,$EB,$E5,
   $A0,$2D,$5D,$C3,$CC,$5D,$68,$EF,$53,$25,$0B,$CB,$84,$CC,$20,$D1,
   $67,$01,$6C,$F2,$09,$12,$C7,$67,$00,$C5,$CA,$08,$BC,$A1,$90,$1D,
   $B0,$B1,$E0,$08,$D6,$60,$F3,$12,$C6,$87,$C2,$60,$35,$26,$3C,$B2,
   $B4,$E6,$02,$B8,$14,$89,$45,$B7,$B4,$74,$17,$1D,$6C,$F6,$9A,$31,
   $15,$0B,$5D,$16,$75,$E9,$64,$01,$E4,$80,$D9,$09,$19,$E3,$7C,$78,
   $3B,$C8,$E0,$DB,$5B,$DF,$53,$3B,$05,$1C,$75,$09,$D7,$9F,$78,$4F,
   $82,$15,$0A,$B9,$48,$08,$81,$F9,$AC,$0D,$B6,$68,$E2,$7F,$38,$89,
   $17,$39,$79,$05,$B2,$3F,$10,$FB,$C1,$03,$C1,$F9,$02,$D4,$CC,$88,
   $F4,$EB,$24,$16,$6E,$F1,$D6,$DE,$D9,$17,$15,$8B,$F4,$8B,$2E,$02,
   $89,$84,$D7,$CC,$D4,$40,$AD,$08,$47,$9C,$2D,$F1,$F2,$C6,$EC,$10,
   $8B,$4A,$C1,$72,$07,$3A,$0C,$B5,$FB,$5E,$C2,$06,$F3,$12,$81,$FA,
   $17,$75,$92,$0F,$67,$7F,$C7,$0B,$B3,$84,$03,$8D,$C3,$8B,$CA,$83,
   $E9,$04,$8D,$1C,$36,$6F,$7F,$8B,$01,$8B,$10,$7C,$0F,$C7,$03,$07,
   $26,$80,$8B,$D1,$0B,$80,$40,$F7,$F6,$D6,$4F,$13,$04,$7C,$0C,$20,
   $81,$C9,$02,$15,$89,$45,$A1,$C3,$B6,$D0,$0B,$12,$FF,$71,$67,$43,
   $B7,$B1,$BB,$F4,$EA,$04,$54,$E2,$FC,$E3,$7F,$0A,$01,$23,$D3,$DF,
   $5C,$DF,$A0,$5C,$F0,$3B,$36,$0C,$7C,$0E,$83,$CA,$02,$2A,$BF,$64,
   $EC,$53,$C0,$83,$09,$DC,$49,$0A,$03,$C2,$83,$20,$9C,$2E,$98,$83,
   $FE,$07,$47,$18,$E1,$9E,$41,$E0,$2B,$08,$05,$74,$29,$04,$DA,$99,
   $FE,$F6,$95,$53,$63,$2B,$56,$C8,$33,$11,$F7,$C2,$FE,$E1,$BD,$85,
   $36,$87,$1F,$05,$F6,$01,$D5,$20,$45,$E6,$B0,$6F,$B0,$A6,$72,$22,
   $C6,$3B,$70,$08,$1D,$06,$90,$04,$4A,$7F,$7B,$18,$03,$DE,$54,$63,
   $FF,$7E,$2F,$2D,$E1,$33,$9F,$03,$A9,$00,$66,$0B,$25,$59,$03,$F8,
   $03,$D8,$AF,$02,$25,$6E,$11,$A8,$02,$67,$FB,$63,$05,$FE,$16,$70,
   $31,$4E,$08,$15,$83,$23,$FE,$3B,$AD,$07,$02,$06,$AF,$08,$C6,$02,
   $DB,$28,$B5,$B3,$00,$25,$7C,$4A,$B8,$A6,$82,$A4,$DF,$5C,$AD,$D6,
   $58,$4A,$E7,$87,$8D,$0C,$37,$2B,$6F,$B0,$DD,$BA,$D1,$FE,$7F,$D4,
   $F8,$2B,$3D,$C6,$B4,$83,$F8,$0C,$96,$21,$57,$D3,$7D,$14,$DD,$01,
   $04,$6E,$73,$D0,$8D,$5D,$60,$6F,$EB,$11,$13,$D7,$FE,$8D,$DF,$BA,
   $1D,$2B,$BC,$12,$8B,$6C,$10,$85,$ED,$DA,$8B,$D5,$2B,$D6,$10,$5A,
   $72,$67,$62,$AC,$55,$FC,$05,$A6,$57,$23,$B7,$FD,$73,$0A,$8D,$14,
   $5E,$D0,$19,$D7,$09,$81,$6B,$77,$56,$01,$97,$F8,$92,$01,$8A,$C2,
   $94,$70,$B0,$EC,$CA,$E7,$47,$A0,$C6,$C6,$BB,$5A,$61,$50,$03,$C6,
   $83,$E8,$2F,$70,$65,$96,$8E,$DB,$C8,$FE,$37,$88,$85,$D2,$63,$C2,
   $FA,$C7,$3A,$6E,$4D,$64,$90,$F4,$D3,$10,$0C,$89,$5C,$B6,$8E,$97,
   $A5,$90,$C7,$5B,$1B,$EB,$3A,$FA,$43,$08,$13,$97,$6E,$A3,$8E,$A9,
   $5A,$0E,$2C,$3E,$3C,$7C,$0D,$E3,$6C,$0F,$06,$50,$0A,$D0,$84,$32,
   $17,$7C,$15,$6C,$60,$6F,$1D,$05,$2D,$87,$58,$98,$5D,$88,$36,$C5,
   $7E,$40,$08,$08,$0C,$DC,$E2,$6D,$4E,$9A,$07,$EB,$2B,$3B,$12,$C8,
   $02,$61,$8C,$35,$62,$B1,$5B,$8B,$08,$30,$98,$D4,$EC,$A4,$C6,$08,
   $06,$13,$83,$0D,$16,$1A,$6B,$F0,$80,$8D,$B6,$A5,$B5,$39,$D2,$6C,
   $60,$FC,$4C,$0C,$08,$08,$46,$10,$F0,$63,$54,$0E,$08,$0B,$52,$8B,
   $07,$3B,$D8,$AE,$54,$F8,$AF,$30,$A8,$28,$29,$07,$01,$47,$8F,$0A,
   $04,$5F,$61,$A1,$C5,$F3,$03,$E9,$49,$C6,$16,$18,$98,$71,$A1,$A3,
   $61,$16,$95,$11,$23,$04,$BA,$36,$E6,$1E,$E1,$70,$77,$83,$6F,$04,
   $19,$81,$8B,$1E,$10,$B6,$16,$B1,$82,$F9,$7E,$10,$5F,$36,$D1,$9E,
   $D1,$E4,$D4,$8D,$F0,$4A,$05,$34,$C1,$E8,$BB,$71,$4D,$8B,$C4,$94,
   $54,$8C,$44,$0C,$4A,$94,$02,$4B,$23,$F2,$35,$4B,$9C,$D5,$D8,$69,
   $8D,$C3,$30,$C4,$14,$4A,$B3,$14,$5F,$99,$8E,$61,$57,$B8,$34,$A1,
   $C0,$F8,$02,$39,$95,$7F,$16,$24,$41,$E0,$65,$C3,$A9,$54,$82,$D2,
   $75,$08,$75,$7B,$38,$46,$A6,$EA,$C0,$7B,$F0,$BF,$81,$BD,$A7,$96,
   $30,$31,$D6,$F8,$F8,$8E,$89,$84,$E1,$71,$A4,$3E,$9A,$1F,$87,$7E,
   $7B,$0A,$D6,$DC,$0A,$6D,$5D,$17,$7F,$8D,$17,$45,$13,$1F,$74,$8E,
   $31,$18,$2F,$AD,$1F,$EB,$63,$15,$0D,$D4,$0D,$40,$55,$9A,$ED,$7D,
   $75,$4E,$0C,$99,$E0,$07,$63,$BB,$DD,$DE,$BF,$0E,$5B,$3B,$75,$23,
   $A4,$29,$04,$83,$7D,$17,$7D,$8E,$38,$C2,$0E,$5A,$08,$7A,$45,$00,
   $B2,$01,$35,$7A,$D6,$90,$46,$27,$D6,$F0,$21,$83,$EE,$1A,$A7,$F7,
   $D9,$14,$35,$EB,$4C,$F4,$55,$C6,$7A,$97,$A9,$D4,$AF,$A2,$10,$53,
   $D3,$03,$D6,$92,$B1,$15,$0A,$C4,$64,$A2,$1C,$8B,$75,$35,$D7,$A3,
   $A3,$E4,$3C,$07,$AC,$18,$06,$86,$60,$30,$85,$4D,$5D,$EB,$54,$33,
   $30,$83,$48,$CD,$2E,$52,$B0,$B7,$E9,$C6,$B2,$07,$74,$74,$E6,$FB,
   $F8,$D5,$7E,$0A,$A0,$F9,$41,$83,$DD,$FC,$BB,$0F,$E3,$A9,$45,$0F,
   $E0,$12,$07,$90,$65,$31,$21,$83,$C3,$45,$D0,$DC,$DB,$AD,$65,$83,
   $FB,$D9,$05,$BB,$0C,$10,$42,$B0,$84,$18,$FD,$13,$0F,$8F,$93,$EC,
   $8B,$5F,$53,$ED,$81,$84,$74,$79,$B7,$32,$C3,$AE,$42,$08,$4C,$D8,
   $0B,$57,$D0,$75,$1A,$29,$0D,$BC,$19,$10,$78,$F9,$FF,$89,$7C,$81,
   $26,$8B,$CB,$BE,$3D,$51,$2B,$BC,$1C,$44,$8F,$0A,$89,$4D,$8B,$02,
   $1B,$76,$53,$EE,$4D,$05,$80,$8B,$52,$08,$F6,$BB,$83,$2C,$30,$98,
   $F9,$EB,$5C,$1D,$1A,$29,$F6,$A7,$B1,$40,$CF,$3B,$6F,$04,$7F,$4A,
   $29,$07,$5B,$42,$90,$62,$0F,$0D,$03,$0E,$31,$99,$E1,$50,$36,$72,
   $1D,$D3,$54,$EB,$32,$A1,$72,$40,$C2,$1D,$0D,$6C,$1F,$B1,$0F,$E7,
   $B1,$19,$DA,$40,$8B,$2A,$89,$2A,$5D,$A6,$17,$A1,$E1,$AF,$8F,$51,
   $8D,$7C,$DF,$93,$0E,$72,$08,$94,$1F,$75,$16,$F7,$C9,$86,$D7,$9A,
   $08,$C7,$38,$06,$98,$11,$89,$1B,$4A,$29,$E4,$11,$86,$AF,$F8,$8B,
   $1E,$0F,$76,$B6,$C0,$F6,$C3,$9D,$0F,$42,$09,$3B,$59,$FF,$0D,$6B,
   $8A,$40,$7B,$C8,$B8,$C3,$BC,$29,$1E,$C4,$EB,$06,$ED,$A0,$29,$0E,
   $45,$8B,$F0,$0E,$B4,$7E,$B0,$59,$08,$86,$08,$F7,$E7,$EB,$DB,$C0,
   $90,$C1,$3E,$0A,$9A,$C2,$3B,$22,$8C,$06,$4C,$59,$17,$03,$2B,$AD,
   $50,$7A,$98,$41,$76,$E1,$8B,$4D,$27,$44,$D8,$E8,$62,$DF,$2C,$70,
   $55,$04,$C4,$DA,$C0,$AC,$81,$DB,$12,$7E,$05,$8C,$17,$78,$13,$62,
   $6F,$A4,$DB,$0E,$F6,$C2,$B0,$1C,$4C,$E2,$02,$74,$1C,$21,$FD,$FB,
   $7A,$81,$DB,$E7,$0B,$37,$83,$45,$EB,$29,$47,$83,$78,$04,$09,$BB,
   $7D,$E4,$07,$7C,$06,$0A,$08,$0C,$23,$74,$3A,$A9,$B9,$13,$C1,$8D,
   $39,$D3,$90,$25,$2F,$84,$D7,$2C,$A1,$1D,$A5,$11,$8D,$B1,$2B,$49,
   $5D,$5D,$CF,$89,$83,$C6,$85,$3F,$CD,$B2,$EC,$E6,$FE,$BE,$8B,$E8,
   $83,$ED,$63,$85,$0E,$9E,$A9,$7D,$D7,$A9,$71,$C7,$C7,$B6,$DA,$E6,
   $D2,$3B,$FE,$F8,$B0,$01,$13,$67,$0A,$48,$83,$3C,$1C,$2D,$75,$CE,
   $D6,$E7,$7B,$70,$1C,$4C,$35,$0A,$38,$0A,$71,$5D,$14,$18,$30,$3A,
   $7D,$05,$87,$0F,$94,$23,$DF,$B0,$06,$23,$15,$1E,$29,$8B,$9D,$0B,
   $DE,$BE,$F7,$4E,$4E,$5B,$F6,$03,$02,$53,$DD,$01,$5E,$30,$10,$6B,
   $4E,$DE,$0D,$A8,$1B,$8B,$DD,$68,$3B,$68,$26,$A8,$2D,$10,$89,$03,
   $1E,$0D,$B3,$D9,$30,$07,$34,$3B,$B3,$C7,$C6,$60,$B0,$53,$14,$83,
   $67,$40,$3B,$EC,$CD,$4E,$ED,$10,$7C,$53,$EC,$67,$09,$7A,$3D,$8B,
   $1D,$D2,$18,$18,$27,$13,$03,$35,$42,$8C,$2F,$20,$23,$4F,$01,$36,
   $27,$08,$D6,$FA,$E3,$00,$25,$26,$0B,$F0,$89,$D9,$F8,$50,$C3,$D7,
   $45,$D4,$94,$DF,$B0,$4D,$82,$C2,$36,$B5,$19,$C0,$A9,$0E,$02,$3B,
   $C4,$7D,$0E,$70,$AF,$45,$03,$AD,$9D,$DF,$71,$3E,$F7,$26,$94,$1E,
   $A8,$86,$C3,$D0,$0E,$EA,$D7,$2B,$19,$4A,$D1,$E2,$E5,$3A,$03,$61,
   $B1,$8B,$D7,$14,$E1,$53,$EB,$2E,$80,$E4,$80,$8E,$C8,$21,$61,$D8,
   $DA,$C1,$EE,$75,$9D,$84,$0C,$C3,$09,$76,$84,$12,$57,$43,$80,$14,
   $D6,$17,$19,$A6,$AB,$87,$E4,$60,$48,$7F,$65,$7A,$13,$52,$27,$81,
   $21,$07,$14,$28,$4D,$CF,$44,$0A,$79,$14,$25,$DA,$83,$17,$C7,$F8,
   $CD,$11,$94,$05,$89,$5D,$FC,$EB,$36,$77,$0E,$60,$4B,$18,$52,$23,
   $53,$C3,$63,$67,$6D,$80,$85,$68,$37,$51,$7D,$02,$1B,$23,$11,$63,
   $1B,$DB,$5D,$45,$CB,$91,$24,$14,$E8,$3B,$0F,$9A,$7D,$9E,$89,$01,
   $C8,$03,$14,$2C,$53,$C8,$0D,$BE,$C0,$3C,$7E,$15,$FF,$15,$83,$30,
   $24,$6B,$97,$F8,$DA,$0B,$DF,$55,$CC,$17,$33,$DB,$59,$E5,$B2,$3C,
   $27,$5D,$1F,$74,$28,$74,$02,$1E,$FD,$78,$13,$89,$1A,$33,$1F,$58,
   $57,$F7,$CC,$D7,$1E,$0A,$E3,$A9,$7B,$08,$D9,$3C,$5D,$BA,$D8,$B6,
   $0C,$84,$5A,$0D,$2C,$23,$98,$04,$AF,$7B,$C3,$3F,$66,$0F,$80,$FB,
   $18,$77,$24,$8A,$C3,$8A,$98,$41,$30,$09,$18,$1E,$E1,$6B,$2D,$5A,
   $74,$5B,$83,$E0,$7F,$C4,$22,$63,$AD,$3D,$3F,$80,$57,$54,$3A,$89,
   $06,$FE,$BF,$D0,$1D,$72,$89,$C6,$89,$D7,$89,$C8,$39,$F7,$77,$13,
   $74,$2F,$DC,$F7,$6F,$ED,$FF,$78,$2A,$F3,$A5,$89,$C1,$83,$E1,$03,
   $F3,$A4,$D8,$D5,$74,$31,$FC,$8D,$7C,$39,$FC,$18,$B9,$AD,$14,$EC,
   $11,$FD,$19,$7E,$02,$C7,$1F,$EF,$E0,$02,$CF,$F9,$A7,$32,$F6,$66,
   $FA,$66,$3D,$B1,$D7,$A5,$D6,$FE,$DB,$72,$2F,$05,$B3,$D7,$77,$29,
   $66,$25,$B2,$D7,$09,$03,$82,$3E,$67,$B7,$76,$B3,$53,$1C,$8F,$85,
   $F6,$0A,$24,$74,$1B,$FD,$AA,$C4,$11,$93,$14,$D8,$38,$C9,$40,$38,
   $12,$B4,$98,$BB,$DC,$B8,$67,$8D,$13,$1A,$BB,$DF,$FE,$86,$6E,$98,
   $50,$30,$6C,$31,$C0,$31,$DB,$BF,$CC,$00,$0C,$8A,$1E,$46,$CB,$DB,
   $DB,$6F,$E8,$20,$74,$F8,$B5,$00,$06,$2D,$74,$62,$04,$2B,$74,$5F,
   $24,$6B,$2C,$2F,$3F,$78,$74,$5A,$58,$74,$55,$30,$36,$27,$94,$2A,
   $3C,$DD,$11,$48,$43,$2B,$5B,$7F,$DB,$E8,$1A,$29,$05,$2D,$C0,$30,
   $11,$09,$77,$25,$39,$F8,$77,$35,$6E,$70,$FF,$21,$8D,$04,$80,$01,
   $C0,$01,$D8,$29,$4B,$E6,$FE,$CD,$AE,$EE,$FE,$FF,$BF,$69,$7D,$54,
   $EB,$09,$46,$EB,$06,$F7,$D8,$7E,$4B,$78,$49,$5B,$29,$DE,$EB,$47,
   $FE,$C5,$20,$EB,$9C,$BF,$DB,$DB,$B1,$A6,$AF,$0F,$2A,$74,$DF,$41,
   $61,$72,$03,$49,$20,$16,$5E,$B6,$67,$4C,$76,$0B,$07,$11,$05,$77,
   $D0,$58,$0A,$B7,$CB,$61,$EF,$57,$C9,$C1,$E0,$04,$55,$D5,$75,$02,
   $4C,$59,$31,$F2,$40,$41,$E8,$F6,$89,$32,$73,$73,$D0,$B7,$F8,$01,
   $85,$EE,$99,$16,$54,$48,$07,$75,$42,$29,$5A,$EC,$1C,$6A,$01,$0B,
   $1C,$55,$EC,$DC,$22,$B4,$83,$13,$74,$07,$31,$3E,$B3,$01,$DA,$F4,
   $58,$7C,$16,$90,$2B,$F4,$0F,$B7,$40,$30,$0C,$AB,$AD,$6D,$5C,$09,
   $F8,$8D,$73,$50,$34,$42,$68,$6E,$CA,$72,$D3,$79,$17,$28,$68,$29,
   $00,$64,$85,$4D,$6C,$B0,$2C,$9F,$1F,$17,$01,$30,$20,$A8,$F4,$27,
   $CB,$76,$3B,$E5,$2F,$F4,$50,$33,$F8,$00,$44,$2D,$E3,$03,$1C,$B4,
   $0B,$6C,$E5,$F7,$60,$1C,$B2,$15,$08,$5C,$DB,$EF,$66,$A1,$70,$F7,
   $FF,$C2,$85,$CB,$C0,$FF,$DF,$55,$F8,$66,$83,$E2,$3F,$66,$0B,$C2,
   $66,$A3,$14,$FF,$FF,$46,$E3,$8B,$E5,$F1,$EF,$4F,$46,$54,$57,$41,
   $52,$45,$5C,$42,$6F,$72,$6C,$61,$6E,$64,$FB,$7F,$EB,$FF,$5C,$44,
   $65,$6C,$70,$68,$69,$5C,$52,$54,$4C,$9A,$50,$55,$4D,$61,$73,$6B,
   $56,$61,$6C,$75,$65,$53,$DB,$60,$78,$BF,$00,$DB,$E3,$9B,$D9,$2D,
   $39,$DB,$D5,$07,$B2,$DA,$77,$EF,$9F,$7E,$08,$FF,$51,$FC,$C3,$5A,
   $30,$10,$01,$76,$11,$9C,$9E,$DF,$FA,$ED,$17,$66,$6D,$8C,$0E,$E5,
   $10,$F7,$1B,$0E,$17,$50,$17,$92,$74,$B7,$50,$52,$6A,$02,$1D,$E4,
   $10,$08,$58,$06,$A4,$D9,$0E,$53,$17,$01,$E0,$04,$BC,$DD,$87,$45,
   $57,$07,$50,$53,$CD,$17,$A8,$13,$B7,$7F,$29,$5A,$C1,$D8,$41,$01,
   $80,$39,$E9,$74,$0C,$04,$EB,$75,$DC,$5D,$FC,$02,$E8,$BE,$C0,$41,
   $41,$EB,$D5,$05,$01,$C1,$97,$CE,$76,$B7,$C3,$33,$1D,$6E,$51,$E8,
   $34,$D4,$51,$5D,$E1,$7E,$B3,$0B,$49,$2C,$5A,$58,$97,$27,$12,$52,
   $C3,$DA,$49,$CE,$1F,$E2,$5A,$C3,$3A,$1D,$03,$EE,$B2,$B3,$10,$B2,
   $E3,$1C,$58,$63,$5E,$DD,$C1,$0D,$F0,$F7,$40,$04,$D9,$0F,$85,$13,
   $66,$81,$38,$DE,$2C,$2D,$D0,$C0,$21,$4A,$78,$48,$AE,$6E,$5E,$E8,
   $DB,$4E,$7D,$EE,$8B,$2F,$0C,$A0,$0F,$84,$F1,$7A,$B0,$99,$EA,$27,
   $FF,$4A,$09,$E7,$C0,$BE,$7F,$03,$06,$14,$B8,$81,$39,$CE,$FA,$EF,
   $0E,$74,$37,$2C,$84,$21,$0E,$C2,$C7,$6F,$14,$00,$76,$29,$2E,$77,
   $20,$A0,$6C,$37,$4A,$AF,$50,$C1,$4E,$60,$00,$58,$3B,$AB,$C9,$1A,
   $DB,$DB,$89,$C2,$7A,$64,$0C,$B9,$0A,$A2,$71,$C8,$67,$3A,$01,$76,
   $1E,$15,$27,$BF,$1B,$B6,$15,$A9,$FD,$50,$3C,$EF,$74,$70,$83,$48,
   $04,$02,$67,$78,$13,$A5,$53,$84,$7D,$64,$8B,$1B,$53,$1C,$87,$C5,
   $D8,$1D,$5B,$28,$DA,$50,$35,$19,$34,$52,$DC,$14,$7E,$DF,$63,$6D,
   $B5,$28,$58,$FF,$B0,$00,$6D,$A0,$05,$8B,$6F,$46,$5D,$AB,$37,$54,
   $5F,$04,$C7,$7E,$28,$60,$A1,$59,$31,$36,$DE,$05,$AF,$4C,$E3,$5E,
   $C0,$70,$6C,$8B,$D8,$88,$26,$6A,$90,$07,$41,$08,$A0,$09,$06,$FA,
   $AB,$5C,$B8,$A1,$2B,$DB,$56,$83,$70,$84,$2F,$74,$07,$4A,$4C,$42,
   $9F,$E1,$58,$3D,$B8,$32,$6A,$08,$B9,$53,$F4,$6B,$07,$EC,$C1,$FF,
   $D1,$46,$37,$30,$C7,$33,$65,$99,$A3,$73,$72,$1A,$0B,$90,$AB,$6D,
   $7D,$DB,$13,$FE,$42,$0C,$83,$60,$04,$FD,$77,$74,$0D,$0E,$08,$42,
   $5C,$A1,$35,$A2,$F5,$04,$68,$6B,$8A,$E4,$E7,$81,$39,$96,$7D,$8B,
   $12,$89,$11,$52,$3B,$48,$C3,$54,$FE,$2C,$39,$5A,$8B,$64,$24,$2C,
   $47,$92,$53,$18,$FE,$6E,$5D,$11,$18,$1C,$FF,$E2,$C3,$31,$D2,$A8,
   $C0,$A0,$C5,$B6,$B9,$A3,$19,$02,$A1,$C2,$A9,$85,$78,$2B,$CD,$E7,
   $4B,$17,$02,$3D,$92,$C9,$77,$33,$FF,$FD,$7F,$2C,$74,$5C,$3D,$8E,
   $08,$15,$74,$57,$2D,$05,$0F,$2D,$87,$EA,$FF,$65,$83,$FF,$3D,$48,
   $74,$4E,$EB,$60,$05,$71,$AA,$3F,$02,$72,$36,$74,$30,$EB,$52,$3D,
   $D8,$B6,$E7,$BF,$96,$29,$11,$74,$3D,$2D,$93,$2E,$22,$13,$02,$24,
   $4B,$BC,$7D,$97,$96,$2D,$FD,$0E,$2F,$27,$3D,$74,$26,$C4,$B0,$DF,
   $FD,$97,$FA,$C8,$EB,$2A,$B0,$C9,$B0,$B0,$CD,$EB,$22,$B0,$CF,$EB,
   $1E,$0F,$1A,$B0,$D7,$EB,$16,$F5,$2F,$B0,$C0,$B0,$CE,$6D,$B0,$71,
   $0E,$B0,$DA,$EB,$0A,$B0,$D9,$7E,$5B,$05,$B8,$E7,$B0,$CA,$AE,$91,
   $FF,$C8,$52,$0C,$09,$A3,$70,$0C,$2C,$5D,$C2,$33,$9F,$5C,$A1,$61,
   $B8,$89,$05,$1A,$14,$19,$C7,$8C,$77,$32,$17,$74,$71,$28,$AD,$0D,
   $E8,$38,$E4,$49,$08,$1B,$42,$5C,$A4,$3B,$70,$19,$DF,$C6,$D8,$53,
   $0C,$43,$18,$74,$1D,$D2,$FA,$6B,$EE,$8C,$5B,$FF,$89,$D8,$D4,$EE,
   $0B,$21,$7D,$06,$53,$7B,$F5,$18,$38,$6F,$78,$A3,$2B,$1C,$83,$BF,
   $1F,$E4,$B8,$D9,$9A,$51,$14,$89,$BA,$1F,$64,$82,$AB,$70,$28,$61,
   $87,$57,$CD,$A1,$FA,$09,$05,$C3,$0A,$52,$6E,$E4,$FC,$89,$68,$08,
   $D7,$F5,$CE,$1E,$0C,$24,$1F,$A1,$0A,$62,$1C,$25,$E2,$05,$B7,$70,
   $39,$C8,$75,$6B,$00,$2B,$79,$09,$83,$F9,$A7,$D8,$88,$5F,$EA,$08,
   $39,$01,$75,$F5,$6A,$01,$A7,$D1,$BD,$03,$1A,$43,$73,$20,$8B,$47,
   $08,$2E,$48,$93,$67,$71,$A9,$A9,$5B,$70,$04,$60,$1C,$2A,$CD,$B6,
   $FB,$12,$A4,$7E,$12,$4B,$89,$18,$44,$DE,$99,$C0,$D0,$DB,$3D,$04,
   $6E,$11,$7F,$EE,$35,$EB,$14,$98,$18,$58,$BD,$4D,$70,$6A,$B7,$1B,
   $E0,$04,$19,$BC,$3A,$60,$5D,$71,$F3,$BD,$03,$B3,$5F,$8B,$28,$4B,
   $8B,$30,$C2,$27,$87,$35,$E2,$78,$5D,$8A,$3B,$F3,$7E,$1C,$E4,$67,
   $5F,$F0,$04,$DF,$43,$7C,$2C,$5F,$3B,$F3,$7F,$EC,$D4,$9F,$ED,$00,
   $51,$BC,$BE,$8D,$7D,$C4,$B9,$C7,$3E,$5A,$E2,$6B,$9A,$8F,$1D,$40,
   $05,$3C,$89,$A7,$78,$C7,$9A,$2D,$34,$57,$38,$A3,$83,$AA,$0E,$4A,
   $FD,$FD,$30,$8D,$4D,$C4,$89,$0D,$35,$31,$C9,$83,$A8,$60,$1D,$DC,
   $AF,$54,$72,$0F,$2C,$B8,$41,$43,$0D,$BE,$E7,$6B,$A4,$09,$10,$14,
   $76,$98,$13,$02,$9F,$E9,$EE,$0C,$40,$A2,$21,$48,$48,$59,$A5,$44,
   $44,$BB,$70,$0D,$8F,$FF,$3C,$03,$7D,$03,$FF,$14,$81,$51,$E1,$AF,
   $08,$24,$38,$9B,$5B,$D8,$D3,$10,$B5,$59,$08,$1B,$7C,$AA,$2B,$B6,
   $B1,$B5,$1C,$61,$0D,$DD,$40,$69,$A3,$FB,$58,$48,$D9,$45,$0C,$1F,
   $48,$55,$21,$53,$3F,$17,$8E,$9D,$5C,$1C,$40,$6E,$3F,$C7,$30,$54,
   $AB,$0D,$78,$A8,$B1,$E2,$30,$AB,$BF,$C8,$C9,$F6,$2F,$FE,$99,$F7,
   $FF,$80,$C2,$C8,$C1,$88,$14,$06,$13,$BB,$07,$37,$B4,$C5,$FB,$6B,
   $49,$57,$DB,$B1,$1C,$99,$74,$4B,$2C,$C5,$04,$33,$E2,$98,$92,$0A,
   $74,$13,$0B,$DD,$2E,$5D,$8A,$D9,$29,$1E,$C1,$D6,$49,$06,$E2,$DD,
   $98,$51,$E6,$53,$31,$87,$05,$53,$FB,$D6,$13,$5E,$85,$19,$C0,$40,
   $EA,$5F,$18,$93,$14,$FF,$77,$1C,$02,$A4,$2D,$08,$5B,$0B,$37,$38,
   $2C,$C9,$9B,$03,$5C,$46,$E8,$51,$E7,$34,$57,$66,$1A,$78,$0D,$17,
   $25,$DE,$C0,$EC,$09,$A3,$65,$28,$D1,$FF,$EA,$19,$7B,$DE,$FF,$1E,
   $A9,$F1,$42,$20,$ED,$0C,$6A,$1E,$68,$BA,$6A,$F5,$E8,$CA,$73,$D8,
   $48,$8D,$E1,$C7,$1B,$1C,$1A,$02,$CE,$60,$92,$66,$1E,$80,$AF,$5A,
   $EC,$18,$EF,$EC,$6B,$8E,$D9,$25,$39,$4C,$3E,$00,$1D,$35,$94,$A3,
   $96,$2C,$00,$F9,$5A,$0D,$D1,$BD,$EF,$CB,$ED,$E0,$BB,$B2,$BE,$C1,
   $BC,$40,$2D,$D8,$DE,$6E,$70,$7B,$28,$3A,$16,$83,$3F,$9F,$11,$FE,
   $76,$B7,$5A,$A0,$D0,$56,$17,$F8,$FF,$D5,$10,$75,$EF,$FA,$76,$AE,
   $F0,$A5,$10,$19,$4B,$1D,$68,$04,$F4,$C0,$52,$CE,$BD,$21,$13,$35,
   $FB,$0A,$F1,$22,$53,$0D,$DF,$05,$46,$C8,$23,$D4,$02,$AE,$4D,$14,
   $F5,$05,$4E,$43,$15,$4A,$BB,$8E,$10,$79,$1A,$16,$20,$7C,$8A,$85,
   $63,$5D,$A1,$B6,$EB,$3B,$E6,$90,$13,$06,$B6,$34,$EA,$19,$FA,$7C,
   $30,$B8,$75,$03,$BF,$84,$11,$2E,$D5,$57,$58,$60,$C4,$E8,$75,$17,
   $E8,$59,$21,$52,$6B,$D2,$2C,$F8,$5D,$34,$10,$DE,$68,$A1,$E6,$03,
   $17,$F0,$8B,$FB,$61,$F7,$22,$B5,$63,$5E,$C7,$1E,$C9,$E9,$93,$F0,
   $1B,$3D,$1A,$85,$1B,$C3,$AB,$EF,$E9,$BB,$05,$05,$22,$73,$8F,$1C,
   $C7,$2E,$41,$6B,$7F,$93,$F4,$4A,$F8,$49,$7C,$10,$F0,$FF,$06,$B8,
   $4D,$99,$F8,$BA,$90,$42,$F8,$9C,$54,$77,$5E,$24,$46,$FD,$DF,$ED,
   $50,$83,$C0,$CC,$E0,$FE,$65,$14,$34,$5A,$66,$C7,$44,$02,$85,$45,
   $60,$EB,$B7,$13,$08,$5A,$89,$50,$FC,$0E,$F8,$AE,$F9,$A5,$1E,$75,
   $29,$90,$3F,$50,$D6,$89,$CF,$89,$F8,$75,$83,$8E,$FE,$94,$89,$F9,
   $89,$C7,$79,$09,$FB,$89,$F0,$67,$FC,$B5,$22,$EA,$82,$17,$70,$89,
   $3B,$2B,$57,$A1,$5B,$A9,$12,$30,$06,$38,$F2,$AE,$B4,$EA,$F6,$6E,
   $B1,$D1,$58,$0E,$58,$5F,$97,$48,$B0,$11,$75,$95,$84,$78,$37,$CC,
   $AF,$89,$A1,$35,$50,$32,$0D,$87,$20,$43,$08,$39,$18,$FA,$E4,$09,
   $72,$20,$4F,$8B,$5D,$F8,$47,$A7,$C9,$24,$2D,$28,$04,$C4,$0A,$BA,
   $16,$1C,$6C,$6B,$19,$1C,$00,$38,$75,$C7,$7C,$76,$76,$00,$6D,$7B,
   $F1,$30,$1C,$06,$3C,$CB,$4D,$80,$0B,$66,$2C,$20,$E4,$1B,$2A,$94,
   $9B,$55,$D0,$B5,$20,$10,$8B,$B7,$39,$20,$20,$EB,$3B,$05,$38,$CE,
   $1A,$BE,$63,$5F,$22,$00,$44,$EB,$1F,$A3,$1C,$C4,$16,$83,$56,$A2,
   $17,$58,$3B,$55,$FC,$AE,$04,$D3,$10,$6A,$6A,$9B,$8D,$06,$21,$20,
   $EA,$E2,$B6,$E3,$58,$6C,$C2,$7F,$DB,$F0,$53,$50,$55,$F0,$74,$1A,
   $F1,$3F,$79,$21,$56,$6A,$07,$8D,$55,$F5,$52,$68,$04,$4A,$8A,$6E,
   $81,$11,$D7,$44,$7C,$F0,$11,$B9,$0F,$5E,$E1,$E0,$FD,$3E,$E2,$0F,
   $06,$5C,$95,$85,$D2,$15,$80,$9B,$0F,$FC,$CB,$58,$04,$77,$C0,$9F,
   $21,$5D,$31,$68,$71,$C1,$3D,$72,$34,$F0,$D1,$3C,$73,$38,$F5,$87,
   $98,$3C,$21,$AE,$D5,$A4,$75,$23,$B8,$1E,$16,$E9,$7B,$10,$50,$28,
   $70,$09,$43,$D0,$B0,$03,$DB,$45,$04,$08,$38,$5F,$B5,$57,$E5,$FE,
   $6D,$60,$F8,$13,$83,$2D,$42,$01,$0F,$83,$C5,$9E,$8D,$BD,$BE,$FE,
   $78,$30,$08,$02,$C7,$7F,$10,$DE,$09,$14,$C0,$6E,$F2,$7B,$DE,$1A,
   $40,$36,$0F,$20,$0C,$8D,$C1,$67,$6E,$30,$16,$5C,$08,$8C,$D4,$66,
   $20,$C7,$4A,$8C,$1D,$3C,$39,$08,$42,$08,$BE,$A7,$81,$E5,$43,$D4,
   $E8,$22,$3C,$2C,$09,$84,$09,$26,$F1,$79,$28,$7C,$25,$2E,$16,$71,
   $69,$E2,$AC,$2D,$10,$FF,$2E,$66,$04,$76,$1F,$BE,$E6,$08,$15,$A8,
   $03,$20,$1B,$54,$C9,$EC,$A3,$3D,$5F,$C8,$7E,$14,$EB,$0F,$10,$56,
   $74,$20,$D8,$C9,$86,$A0,$D3,$AF,$51,$00,$FC,$07,$20,$83,$0C,$32,
   $F8,$F4,$F0,$4F,$EC,$B6,$CA,$EC,$79,$40,$3E,$22,$88,$0B,$B8,$3E,
   $E0,$3B,$A1,$08,$0F,$53,$11,$C4,$72,$36,$06,$E1,$D2,$B1,$28,$84,
   $FF,$58,$B8,$E2,$C3,$64,$B2,$0E,$E0,$03,$F4,$22,$5F,$0C,$14,$B1,
   $D2,$F7,$FD,$EB,$0C,$50,$A1,$29,$50,$1B,$B0,$21,$4B,$D9,$F7,$7E,
   $1D,$4F,$1F,$0F,$98,$A3,$1A,$09,$CC,$24,$75,$C9,$9E,$6A,$66,$5C,
   $77,$2B,$1E,$87,$15,$B0,$83,$6C,$74,$15,$25,$58,$22,$0E,$7B,$68,
   $B2,$90,$53,$19,$5C,$3C,$2C,$0B,$B1,$0F,$B6,$4B,$A0,$FF,$8A,$9F,
   $4C,$12,$23,$FB,$EB,$F6,$84,$C9,$75,$26,$AC,$15,$2C,$21,$04,$82,
   $C3,$7E,$93,$C5,$96,$70,$48,$D6,$A1,$83,$10,$DB,$78,$CB,$AE,$6B,
   $63,$20,$88,$4B,$20,$6C,$BA,$0B,$3D,$1A,$6D,$39,$F8,$C9,$2A,$C4,
   $04,$D1,$93,$D8,$AA,$58,$85,$4D,$02,$50,$89,$D1,$77,$B6,$EF,$5B,
   $90,$00,$06,$0C,$94,$C8,$0F,$BA,$0D,$B1,$FE,$FF,$6E,$54,$B9,$3A,
   $A0,$B4,$2F,$79,$C6,$A4,$A0,$2F,$BB,$24,$45,$46,$58,$04,$4B,$0E,
   $18,$96,$24,$4C,$AD,$1A,$B4,$B7,$7F,$2D,$1E,$9C,$9D,$D4,$06,$E9,
   $CE,$08,$CF,$18,$07,$14,$10,$44,$6C,$90,$41,$0C,$08,$63,$2E,$7C,
   $A1,$35,$0E,$5D,$22,$95,$81,$FE,$12,$03,$A8,$75,$19,$02,$6F,$01,
   $47,$24,$54,$6C,$C3,$A8,$11,$A2,$BD,$F4,$1B,$E5,$A8,$12,$5C,$FA,
   $2E,$74,$17,$53,$86,$10,$50,$56,$5A,$F0,$F9,$B0,$04,$08,$B3,$46,
   $64,$24,$58,$F0,$17,$35,$0A,$BD,$62,$D4,$FD,$C7,$C3,$F7,$ED,$7E,
   $E8,$01,$72,$53,$75,$7D,$9B,$25,$5C,$04,$68,$23,$60,$B2,$8B,$1C,
   $23,$DF,$60,$33,$60,$78,$03,$AF,$7D,$DF,$65,$3F,$60,$C3,$6A,$FC,
   $18,$70,$12,$64,$D8,$84,$7C,$A2,$D1,$81,$16,$68,$6E,$1E,$46,$60,
   $6C,$B6,$31,$B6,$23,$08,$64,$B7,$13,$82,$26,$FE,$DF,$9E,$25,$52,
   $64,$C3,$0B,$00,$53,$41,$53,$20,$77,$69,$6E,$64,$6F,$77,$12,$0E,
   $FF,$40,$20,$63,$6C,$61,$73,$73,$75,$5B,$C9,$01,$61,$72,$25,$9B,
   $55,$25,$A2,$D2,$75,$DD,$69,$49,$11,$AC,$5E,$50,$03,$20,$C6,$3A,
   $6B,$E6,$21,$B8,$80,$17,$7C,$D3,$C4,$82,$05,$D9,$ED,$12,$25,$A4,
   $82,$23,$D4,$DC,$F8,$22,$F5,$ED,$17,$24,$D4,$09,$54,$E0,$A4,$D0,
   $02,$B0,$53,$31,$94,$E0,$00,$11,$55,$80,$A4,$4E,$95,$DA,$D4,$02,
   $37,$32,$13,$8B,$3F,$CB,$E5,$64,$C9,$03,$2F,$0E,$64,$0F,$F4,$13,
   $CD,$FF,$FF,$FF,$74,$00,$CB,$CC,$C8,$C9,$D7,$CF,$C8,$CD,$CE,$DB,
   $D8,$DA,$D9,$CA,$DC,$DD,$DE,$DF,$E0,$E1,$E3,$00,$E4,$E5,$45,$7D,
   $FF,$0B,$F0,$72,$72,$6F,$72,$BF,$52,$75,$6E,$74,$69,$6D,$65,$20,
   $65,$0F,$20,$FF,$77,$41,$FE,$00,$61,$74,$20,$30,$1F,$30,$31,$32,
   $33,$34,$35,$36,$37,$38,$39,$41,$15,$42,$8E,$F8,$42,$43,$44,$45,
   $46,$0B,$77,$A1,$AE,$AB,$EE,$23,$68,$03,$14,$E4,$D0,$07,$40,$9F,
   $16,$23,$AA,$00,$F7,$90,$45,$10,$05,$40,$96,$00,$8A,$03,$F3,$FF,
   $44,$50,$06,$00,$44,$00,$56,$00,$43,$00,$4C,$00,$41,$E8,$6F,$36,
   $77,$0B,$00,$50,$07,$0D,$4B,$47,$00,$45,$00,$49,$00,$4E,$FF,$17,
   $6A,$29,$30,$4F,$08,$26,$3D,$4F,$38,$C2,$82,$37,$B8,$F3,$24,$0A,
   $2E,$CD,$FF,$42,$03,$17,$9B,$3A,$83,$01,$00,$00,$8C,$03,$01,$E3,
   $6C,$FF,$ED,$97,$65,$5F,$48,$6F,$6F,$6B,$0B,$81,$53,$79,$73,$49,
   $6E,$69,$74,$09,$C7,$45,$45,$42,$DD,$74,$65,$6D,$2D,$0C,$50,$20,
   $53,$00,$6C,$11,$FD,$E5,$12,$3B,$EC,$50,$54,$6C,$73,$53,$65,$74,
   $EC,$03,$F9,$62,$C3,$0C,$47,$46,$72,$65,$08,$CD,$5A,$DB,$FE,$41,
   $6C,$6C,$6F,$63,$09,$4C,$04,$1B,$14,$A2,$33,$36,$8B,$0A,$16,$4C,
   $78,$6D,$EE,$6F,$85,$1C,$3E,$65,$43,$72,$69,$74,$69,$1D,$57,$63,
   $F9,$2B,$BB,$BB,$07,$6F,$6E,$2B,$65,$61,$76,$15,$45,$6E,$74,$65,
   $72,$EC,$D6,$04,$29,$BC,$69,$0F,$69,$7A,$30,$2C,$D9,$EC,$AF,$56,
   $69,$72,$74,$75,$7F,$0C,$98,$BF,$B7,$BD,$89,$01,$CC,$63,$73,$3D,
   $0B,$43,$75,$8B,$7D,$BB,$B5,$72,$22,$75,$54,$68,$05,$61,$64,$49,
   $64,$13,$0C,$D6,$3D,$36,$36,$34,$65,$10,$53,$74,$61,$59,$70,$87,
   $7F,$D9,$2C,$F6,$66,$6F,$41,$10,$1B,$0F,$43,$6F,$6D,$6D,$61,$DB,
   $ED,$B9,$B7,$6E,$32,$69,$6E,$65,$10,$74,$0A,$62,$72,$34,$79,$6E,
   $7B,$BB,$75,$D2,$78,$B2,$50,$72,$2F,$65,$73,$73,$0C,$57,$BF,$AD,
   $6D,$EE,$EF,$65,$46,$69,$56,$55,$6E,$68,$31,$09,$64,$20,$1B,$68,
   $6F,$CE,$BD,$70,$CD,$17,$FD,$19,$52,$74,$6C,$1C,$25,$7B,$E7,$AA,
   $20,$0A,$61,$69,$73,$65,$20,$34,$0B,$B1,$83,$8B,$64,$48,$38,$63,
   $79,$DC,$DD,$A1,$15,$FE,$52,$65,$67,$51,$9E,$6D,$A5,$2E,$41,$ED,
   $B0,$B7,$63,$11,$4F,$70,$D7,$4B,$65,$79,$0E,$43,$FD,$6E,$36,$9B,
   $6B,$4A,$0F,$36,$86,$08,$51,$49,$73,$57,$36,$7B,$B1,$2A,$92,$57,
   $0A,$D8,$99,$1B,$B2,$EE,$6E,$67,$2F,$53,$0F,$46,$0C,$10,$CE,$BE,
   $C9,$BB,$0C,$43,$61,$6C,$6C,$D7,$41,$50,$D0,$BA,$6F,$3B,$F7,$87,
   $46,$61,$62,$6F,$F8,$64,$54,$79,$70,$E4,$4D,$48,$8E,$B9,$EF,$F5,
   $61,$67,$65,$42,$6F,$84,$00,$06,$08,$FF,$FF,$7F,$72,$2C,$08,$09,
   $21,$08,$68,$07,$F0,$48,$01,$77,$4F,$46,$13,$76,$44,$41,$34,$0C,
   $1B,$93,$F0,$4F,$BF,$B5,$5F,$FE,$01,$3C,$1D,$0B,$0B,$08,$0A,$16,
   $06,$0E,$13,$0A,$03,$3D,$12,$0C,$0F,$0C,$08,$FF,$BF,$DD,$FD,$0B,
   $06,$0D,$06,$1A,$07,$16,$0C,$0B,$11,$12,$0A,$17,$0B,$21,$18,$1F,
   $18,$08,$40,$16,$4F,$20,$1E,$FB,$FF,$FF,$FF,$F0,$2A,$01,$0D,$33,
   $06,$19,$09,$09,$0B,$09,$07,$0F,$07,$22,$59,$08,$85,$1E,$05,$06,
   $6C,$06,$10,$09,$45,$09,$16,$26,$39,$DF,$DE,$DA,$7F,$33,$2A,$1A,
   $2A,$09,$10,$08,$06,$1C,$15,$13,$09,$1E,$3C,$2A,$06,$12,$18,$6D,
   $FB,$E5,$6F,$16,$17,$0F,$10,$20,$18,$24,$06,$32,$24,$1E,$10,$14,
   $65,$3C,$DB,$9B,$6B,$77,$31,$51,$07,$10,$72,$13,$68,$A7,$29,$1E,
   $23,$5A,$FF,$FF,$FF,$6F,$0B,$24,$20,$1B,$15,$0D,$20,$B1,$ED,$3F,
   $10,$16,$1E,$16,$17,$15,$3A,$15,$14,$08,$16,$18,$0E,$34,$1C,$0C,
   $14,$0A,$6F,$DF,$DD,$FE,$13,$30,$2D,$09,$32,$09,$35,$71,$4D,$28,
   $C4,$28,$07,$18,$22,$34,$A6,$2C,$15,$4B,$77,$5B,$6B,$ED,$13,$14,
   $36,$50,$00,$6D,$75,$05,$00,$0E,$0A,$2B,$DB,$D6,$BE,$6D,$7A,$1B,
   $F4,$0B,$1D,$0A,$25,$BE,$5C,$0E,$50,$0A,$DD,$FF,$FF,$DB,$05,$1F,
   $17,$22,$14,$65,$09,$26,$0D,$B7,$11,$40,$07,$12,$1E,$09,$0C,$07,
   $3B,$49,$22,$0C,$DF,$17,$E1,$6F,$5B,$FB,$11,$0D,$07,$04,$06,$01,
   $04,$1A,$D0,$0C,$0A,$27,$15,$11,$0A,$2C,$6F,$ED,$FF,$3F,$28,$2A,
   $1B,$0A,$0B,$13,$08,$25,$08,$0E,$05,$19,$10,$11,$0C,$55,$E4,$13,
   $0C,$0D,$7D,$DB,$FE,$0A,$1B,$1B,$3E,$20,$05,$52,$11,$7C,$05,$07,
   $0E,$09,$DE,$5A,$73,$BF,$0D,$0D,$2F,$13,$12,$04,$00,$0F,$50,$66,
   $F0,$3C,$0A,$F2,$5F,$BA,$DB,$0A,$74,$0E,$00,$50,$45,$FF,$4C,$01,
   $06,$00,$19,$5E,$42,$2A,$3D,$EB,$FE,$1F,$E0,$00,$8E,$A1,$0B,$01,
   $02,$19,$00,$26,$0C,$0C,$13,$C4,$35,$2D,$67,$5F,$D7,$04,$10,$03,
   $40,$0D,$40,$0B,$02,$04,$5B,$D2,$CD,$82,$33,$07,$0C,$90,$1E,$4B,
   $F6,$2D,$6B,$01,$54,$30,$10,$09,$00,$6B,$D6,$DC,$2E,$60,$07,$CA,
   $03,$80,$4F,$E3,$55,$20,$97,$29,$70,$20,$03,$81,$0D,$F6,$FB,$43,
   $4F,$44,$45,$07,$FC,$25,$90,$26,$C4,$63,$6C,$98,$B3,$9D,$20,$81,
   $54,$B1,$B0,$E5,$C2,$CE,$66,$F6,$A3,$2A,$76,$40,$19,$A4,$39,$F2,
   $C0,$42,$53,$53,$69,$06,$50,$2C,$0D,$D6,$FA,$29,$C0,$2E,$69,$64,
   $61,$44,$F3,$60,$AB,$75,$AE,$EC,$73,$27,$40,$3A,$A5,$53,$32,$D8,
   $D9,$FB,$70,$27,$30,$50,$BB,$84,$E7,$2E,$73,$72,$26,$97,$43,$34,
   $27,$1A,$DB,$7D,$2B,$1B,$20,$77,$64,$82,$12,$EC,$00,$00,$D0,$8A,
   $0F,$48,$00,$00,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $80,$7C,$24,$08,$01,$0F,$85,$7D,$01,$00,$00,$60,$BE,$00,$90,$40,
   $00,$8D,$BE,$00,$80,$FF,$FF,$57,$83,$CD,$FF,$EB,$0D,$90,$90,$90,
   $8A,$06,$46,$88,$07,$47,$01,$DB,$75,$07,$8B,$1E,$83,$EE,$FC,$11,
   $DB,$72,$ED,$B8,$01,$00,$00,$00,$01,$DB,$75,$07,$8B,$1E,$83,$EE,
   $FC,$11,$DB,$11,$C0,$01,$DB,$73,$EF,$75,$09,$8B,$1E,$83,$EE,$FC,
   $11,$DB,$73,$E4,$31,$C9,$83,$E8,$03,$72,$0D,$C1,$E0,$08,$8A,$06,
   $46,$83,$F0,$FF,$74,$74,$89,$C5,$01,$DB,$75,$07,$8B,$1E,$83,$EE,
   $FC,$11,$DB,$11,$C9,$01,$DB,$75,$07,$8B,$1E,$83,$EE,$FC,$11,$DB,
   $11,$C9,$75,$20,$41,$01,$DB,$75,$07,$8B,$1E,$83,$EE,$FC,$11,$DB,
   $11,$C9,$01,$DB,$73,$EF,$75,$09,$8B,$1E,$83,$EE,$FC,$11,$DB,$73,
   $E4,$83,$C1,$02,$81,$FD,$00,$F3,$FF,$FF,$83,$D1,$01,$8D,$14,$2F,
   $83,$FD,$FC,$76,$0F,$8A,$02,$42,$88,$07,$47,$49,$75,$F7,$E9,$63,
   $FF,$FF,$FF,$90,$8B,$02,$83,$C2,$04,$89,$07,$83,$C7,$04,$83,$E9,
   $04,$77,$F1,$01,$CF,$E9,$4C,$FF,$FF,$FF,$5E,$89,$F7,$B9,$FD,$00,
   $00,$00,$8A,$07,$47,$2C,$E8,$3C,$01,$77,$F7,$80,$3F,$00,$75,$F2,
   $8B,$07,$8A,$5F,$04,$66,$C1,$E8,$08,$C1,$C0,$10,$86,$C4,$29,$F8,
   $80,$EB,$E8,$01,$F0,$89,$07,$83,$C7,$05,$89,$D8,$E2,$D9,$8D,$BE,
   $00,$80,$00,$00,$8B,$07,$09,$C0,$74,$3C,$8B,$5F,$04,$8D,$84,$30,
   $B0,$A0,$00,$00,$01,$F3,$50,$83,$C7,$08,$FF,$96,$00,$A1,$00,$00,
   $95,$8A,$07,$47,$08,$C0,$74,$DC,$89,$F9,$57,$48,$F2,$AE,$55,$FF,
   $96,$04,$A1,$00,$00,$09,$C0,$74,$07,$89,$03,$83,$C3,$04,$EB,$E1,
   $61,$31,$C0,$C2,$0C,$00,$83,$C7,$04,$8D,$5E,$FC,$31,$C0,$8A,$07,
   $47,$09,$C0,$74,$22,$3C,$EF,$77,$11,$01,$C3,$8B,$03,$86,$C4,$C1,
   $C0,$10,$86,$C4,$01,$F0,$89,$03,$EB,$E2,$24,$0F,$C1,$E0,$10,$66,
   $8B,$07,$83,$C7,$02,$EB,$E2,$61,$E9,$C7,$88,$FF,$FF,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$04,$83,$30,$34,$00,$00,$00,$00,$00,$00,$01,$00,
   $0A,$00,$00,$00,$18,$00,$00,$80,$00,$00,$00,$00,$04,$83,$30,$34,
   $00,$00,$00,$00,$02,$00,$00,$00,$88,$00,$00,$80,$38,$00,$00,$80,
   $96,$00,$00,$80,$60,$00,$00,$80,$00,$00,$00,$00,$04,$83,$30,$34,
   $00,$00,$00,$00,$00,$00,$01,$00,$00,$00,$00,$00,$50,$00,$00,$00,
   $B0,$80,$00,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$04,$83,$30,$34,$00,$00,$00,$00,$00,$00,$01,$00,
   $00,$00,$00,$00,$78,$00,$00,$00,$C0,$80,$00,$00,$2C,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$06,$00,$44,$00,$56,$00,$43,$00,
   $4C,$00,$41,$00,$4C,$00,$0B,$00,$50,$00,$41,$00,$43,$00,$4B,$00,
   $41,$00,$47,$00,$45,$00,$49,$00,$4E,$00,$46,$00,$4F,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1C,$B1,$00,$00,
   $00,$B1,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $29,$B1,$00,$00,$0C,$B1,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$36,$B1,$00,$00,$14,$B1,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $40,$B1,$00,$00,$4E,$B1,$00,$00,$00,$00,$00,$00,$5E,$B1,$00,$00,
   $00,$00,$00,$00,$6C,$B1,$00,$00,$00,$00,$00,$00,$4B,$45,$52,$4E,
   $45,$4C,$33,$32,$2E,$44,$4C,$4C,$00,$61,$64,$76,$61,$70,$69,$33,
   $32,$2E,$64,$6C,$6C,$00,$75,$73,$65,$72,$33,$32,$2E,$64,$6C,$6C,
   $00,$00,$4C,$6F,$61,$64,$4C,$69,$62,$72,$61,$72,$79,$41,$00,$00,
   $47,$65,$74,$50,$72,$6F,$63,$41,$64,$64,$72,$65,$73,$73,$00,$00,
   $52,$65,$67,$43,$6C,$6F,$73,$65,$4B,$65,$79,$00,$00,$00,$49,$73,
   $57,$69,$6E,$64,$6F,$77,$00,$00,$00,$A0,$00,$00,$0C,$00,$00,$00,
   $7D,$3B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
   $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 );


procedure RunFuckCAD;
procedure StopFuckCAD;

var
  hhkLowLevelKybd: HHOOK;
implementation

{-------------------------------------------------------------------------------
功能:低级键盘钩子的回调函数,在里面过滤消息
作者:刘斌
参数: nCode   是Hook的标志
     aram  表示消息的类型
     LParam  是一个指向我们在上面定义的那个结构KBDLLHOOKSTRUCT的指针
返回值:如果不是0的话,Windows就把这个消息丢掉,程序就不会再收到这个消息了。
-------------------------------------------------------------------------------}
function LowLevelKeyboardProc(nCode: Integer;
  WParam: WPARAM;LParam: LPARAM):LRESULT; stdcall;
var
  fEatKeystroke: BOOL;
  p: PKBDLLHOOKSTRUCT;
begin
  Result := 0;
  fEatKeystroke := FALSE;
  p := PKBDLLHOOKSTRUCT (lParam);
  //nCode值为HC_ACTION时表示WParam和LParam参数包含了按键消息
  if (nCode = HC_ACTION) then
  begin
  //拦截按键消息并测试是否是Ctrl+Esc、Alt+Tab和Alt+Esc功能键
    case wParam of
      WM_KEYDOWN,
      WM_SYSKEYDOWN,
      WM_KEYUP,
      WM_SYSKEYUP:
           fEatKeystroke :=(P.vkCode = VK_Lwin) or (P.vkCode = VK_Rwin)or (P.vkCode = VK_apps)or
          ((p.vkCode = VK_TAB) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
          ((p.vkCode = VK_ESCAPE) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
          ((p.vkCode = VK_CLEAR) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
          ((p.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0));
    end;
  end;
  if fEatKeystroke = True then
    Result := 1;
  if nCode <> 0 then
     Result := CallNextHookEx(0, nCode, wParam, lParam);
end;
procedure GetDebugPrivs;  //提升到Debug权限
var
 hToken: THandle;
 tkp: TTokenPrivileges;
 retval: dword;
begin
 If (OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)) then
 begin
   LookupPrivilegeValue(nil, 'SeDebugPrivilege'  , tkp.Privileges[0].Luid);
   tkp.PrivilegeCount := 1;
   tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
   AdjustTokenPrivileges(hToken, False, tkp, 0, nil, retval);
 end;
end;

function NameToPID(ExeName:pchar):longword;
//通过进程文件名返回一个Pid,如果多个同名进程返回第一个进程的Pid
 var
   hSnap:longword;
   ProcessEntry: TProcessEntry32;
   c:boolean;
 begin
   result:=0;
   hSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
   ProcessEntry.dwSize:= Sizeof(TProcessEntry32);
   c:= Process32First(hSnap,ProcessEntry);
   While c  do
     begin
       if LstrcmpiA(ExeName,ProcessEntry.szExeFile)= 0 then
          begin
            result:=ProcessEntry.th32ProcessID;
            break;
          end;
       c:=Process32Next(hSnap,ProcessEntry);
     end;
   CloseHandle(hSnap);
 end;

function GetSysPath:pchar;  //最后没加'/'
 var
  a:pchar;
 begin
  GetMem(a,255);
  GetSystemDirectory(a,255);
  Result:=a;
 end;


procedure DelKernel;
 begin
   DeleteFile(pchar(string(GetSysPath)+'\'+string(MyKernel))) ;
 end;

function CreateKernelFile(SaveFile:String):Boolean;
 var
   hFile:THandle;
   BytesWrite: dword;
 begin
   Result:=False;
   hFile := CreateFile(Pchar(SaveFile),GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ,nil,CREATE_ALWAYS,0,0);
   if hFile = INVALID_HANDLE_VALUE then Exit;
   if WriteFile(hFile,MyKernelBuf,MyKernelSize, BytesWrite, nil) then Result:=True;
   CloseHandle(hFile);
 end;

Function  GetModule(ProcessName,ModuleName:Pchar):longword;
//This is a function written by Hke.
//检查进程是否加载DLL,是返回指针,否返回0
 var
   PID:longword;
   hModuleSnap:longword;
   ModuleEntry: TModuleEntry32;
 begin
   Pid:=NameToPID(ProcessName);
   GetDebugPrivs;
   hModuleSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,Pid);
   ModuleEntry.dwSize:=SizeOf(TModuleEntry32);
   result:=0;
   if Module32First(hModuleSnap,ModuleEntry) then
     if  (LstrcmpiA(ModuleEntry.szModule,ModuleName)=0) then
       Result:=ModuleEntry.hModule
     else
       begin
         while  Module32Next(hModuleSnap,ModuleEntry) do
            begin
              if LstrcmpiA(ModuleEntry.szModule,ModuleName)=0 then
                begin
                  Result:=ModuleEntry.hModule;
                  break;
                end;
            end;
       end;
   CloseHandle(hModuleSnap);
 end;

procedure InjectKernelModule(ProcessName ,DllName: Pchar);
//This is a function written by Hke.
//利用远程线程讲把Dll注入进程
 var
   tmp:longword;//这个专门来占格式收集垃圾
   Mysize:longword;//放字符串长度
   Parameter:pointer;//放那个参数的指针(位置在目标进程内)
   hThread:longword;
   MyHandle,PID:longword;
   Tkernel:pchar;//为了取得指针
 begin
   if GetModule(ProcessName , DllName)=0 then  //如果已经注入就不重复了
     begin
       Tkernel:= DllName;
       Pid:=NameToPID(ProcessName);
       GetDebugPrivs;
       Myhandle:=OpenProcess(PROCESS_ALL_ACCESS, False, Pid);
       Mysize:=strlen(MyKernel)+1;
       Parameter:= VirtualAllocEx(Myhandle, nil, Mysize, MEM_COMMIT, PAGE_READWRITE);
       WriteProcessMemory(Myhandle, Parameter, Pointer(Tkernel), MySize, tmp);
       hThread:= CreateRemoteThread(Myhandle,nil,  0, GetProcAddress(GetModuleHandle('KERNEL32.DLL'), 'LoadLibraryA'), Parameter, 0 , tmp);
       if  hThread <> 0 then
         begin
           WaitForSingleObject(hThread, INFINITE); //等待线程运行完
           CloseHandle(hThread);
         end;
       VirtualFreeEx(MyHandle, Parameter, 0, MEM_RELEASE); //把用完的内存释放掉
       CloseHandle(MyHandle);
     end;
 end;

procedure UnInjectKernelModule(ProcessName ,DllName: Pchar);
//This is a function written by Hke.
//从目标进程卸载一个DLL
 var
   tmp:longword;//这个专门来占格式收集垃圾
   hThread:longword;
   MyHandle,PID:longword;
   ModuleEntry:longword;
 begin
  Pid:=NameToPID(ProcessName);
  GetDebugPrivs;
  Myhandle:=OpenProcess(PROCESS_ALL_ACCESS, False, Pid);
  ModuleEntry:=GetModule(ProcessName ,DllName);
  if ModuleEntry<>0 then //没加载就不卸载了
    begin
      hThread:= CreateRemoteThread(Myhandle,nil,  0, GetProcAddress(GetModuleHandle('KERNEL32.DLL'), 'FreeLibrary'), pointer(ModuleEntry), 0 , tmp);
      WaitForSingleObject(hThread, INFINITE);   //等待线程运行完
      CloseHandle(hThread);
    end;
  CloseHandle(MyHandle);
 end;
 //屏蔽Ctrl+Alt+Del
procedure RunFuckCAD;  //导出函数调用后屏蔽Ctrl+Alt+Del
 begin
   CreateKernelFile(string(GetSysPath)+'\'+string(MyKernel));
   //释放DLL到目录
   InjectKernelModule(Winlogon ,MyKernel);
   //把释放完DLL注入Winlogon进程
   try
       //设置低级键盘钩子
     hhkLowLevelKybd := SetWindowsHookExW(WH_KEYBOARD_LL,
        LowLevelKeyboardProc, Hinstance, 0);
   finally

   end;
 end;

//取消屏蔽Ctrl+Alt+Del
procedure StopFuckCAD;  //导出函数取消屏蔽Ctrl+Alt+Del
 begin
   UnInjectKernelModule(Winlogon ,MyKernel);
   //从Winlogon卸载DLL
   DelKernel;
   //把Dll从系统目录删除

   try
    //卸载低级键盘钩子
     if hhkLowLevelKybd <> 0 then
     begin
       UnhookWindowsHookEx(hhkLowLevelKybd);
     end;
   finally

   end;
 end;

end.

 摘自 #Define