Annotation of embedaddon/php/ext/fileinfo/tests/magic, revision 1.1.1.4

1.1.1.3   misho       1: # Magic data for file(1) command.
                      2: # Format is described in magic(files), where:
                      3: # files is 5 on V7 and BSD, 4 on SV, and ?? on SVID.
                      4: # Don't edit this file, edit /etc/magic or send your magic improvements
                      5: # to the maintainers, at file@mx.gw.com
                      6: 
                      7: #------------------------------------------------------------------------------
                      8: # Localstuff:  file(1) magic for locally observed files
                      9: #
                     10: # $File: Localstuff,v 1.5 2007/01/12 17:38:27 christos Exp $
                     11: # Add any locally observed files here.  Remember:
                     12: # text if readable, executable if runnable binary, data if unreadable.
1.1       misho      13: 
                     14: #------------------------------------------------------------------------------
1.1.1.2   misho      15: # $File: acorn,v 1.5 2009/09/19 16:28:07 christos Exp $
1.1       misho      16: # acorn:  file(1) magic for files found on Acorn systems
                     17: #
                     18: 
                     19: # RISC OS Chunk File Format
                     20: # From RISC OS Programmer's Reference Manual, Appendix D
                     21: # We guess the file type from the type of the first chunk.
                     22: 0      lelong          0xc3cbc6c5      RISC OS Chunk data
                     23: >12    string          OBJ_            \b, AOF object
                     24: >12    string          LIB_            \b, ALF library
                     25: 
                     26: # RISC OS AIF, contains "SWI OS_Exit" at offset 16.
                     27: 16     lelong          0xef000011      RISC OS AIF executable
                     28: 
                     29: # RISC OS Draw files
                     30: # From RISC OS Programmer's Reference Manual, Appendix E
                     31: 0      string          Draw            RISC OS Draw file data
                     32: 
                     33: # RISC OS new format font files
                     34: # From RISC OS Programmer's Reference Manual, Appendix E
                     35: 0      string          FONT\0          RISC OS outline font data,
                     36: >5     byte            x               version %d
                     37: 0      string          FONT\1          RISC OS 1bpp font data,
                     38: >5     byte            x               version %d
                     39: 0      string          FONT\4          RISC OS 4bpp font data
                     40: >5     byte            x               version %d
                     41: 
                     42: # RISC OS Music files
                     43: # From RISC OS Programmer's Reference Manual, Appendix E
                     44: 0      string          Maestro\r       RISC OS music file
                     45: >8     byte            x               version %d
                     46: 
                     47: >8     byte            x               type %d
                     48: 
                     49: # Digital Symphony data files
                     50: # From: Bernard Jungen (bern8817@euphonynet.be)
                     51: 0              string  \x02\x01\x13\x13\x13\x01\x0d\x10        Digital Symphony sound sample (RISC OS),
                     52: >8             byte    x       version %d,
                     53: >9             pstring x       named "%s",
                     54: >(9.b+19)      byte    =0      8-bit logarithmic
                     55: >(9.b+19)      byte    =1      LZW-compressed linear
                     56: >(9.b+19)      byte    =2      8-bit linear signed
                     57: >(9.b+19)      byte    =3      16-bit linear signed
                     58: >(9.b+19)      byte    =4      SigmaDelta-compressed linear
                     59: >(9.b+19)      byte    =5      SigmaDelta-compressed logarithmic
                     60: >(9.b+19)      byte    >5      unknown format
                     61: 
                     62: 0      string  \x02\x01\x13\x13\x14\x12\x01\x0b        Digital Symphony song (RISC OS),
                     63: >8     byte    x       version %d,
                     64: >9     byte    =1      1 voice,
                     65: >9     byte    !1      %d voices,
                     66: >10    leshort =1      1 track,
                     67: >10    leshort !1      %d tracks,
                     68: >12    leshort =1      1 pattern
                     69: >12    leshort !1      %d patterns
                     70: 
                     71: 0      string  \x02\x01\x13\x13\x10\x14\x12\x0e
                     72: >9     byte    =0      Digital Symphony sequence (RISC OS),
                     73: >>8    byte    x       version %d,
                     74: >>10   byte    =1      1 line,
                     75: >>10   byte    !1      %d lines,
                     76: >>11   leshort =1      1 position
                     77: >>11   leshort !1      %d positions
                     78: >9     byte    =1      Digital Symphony pattern data (RISC OS),
                     79: >>8    byte    x       version %d,
                     80: >>10   leshort =1      1 pattern
                     81: >>10   leshort !1      %d patterns
                     82: 
                     83: #------------------------------------------------------------------------------
1.1.1.2   misho      84: # $File: adi,v 1.4 2009/09/19 16:28:07 christos Exp $
1.1       misho      85: # adi: file(1) magic for ADi's objects
                     86: # From Gregory McGarry <g.mcgarry@ieee.org>
                     87: #
                     88: 0      leshort         0x521c          COFF DSP21k
                     89: >18    lelong          &02             executable,
                     90: >18    lelong          ^02
                     91: >>18   lelong          &01             static object,
                     92: >>18   lelong          ^01             relocatable object,
                     93: >18    lelong          &010            stripped
                     94: >18    lelong          ^010            not stripped
                     95: 
                     96: #------------------------------------------------------------------------------
1.1.1.3   misho      97: # $File: adventure,v 1.14 2012/06/21 01:32:26 christos Exp $
1.1       misho      98: # adventure: file(1) magic for Adventure game files
                     99: #
                    100: # from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
                    101: # Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
                    102: # Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
                    103: #
                    104: # ALAN
                    105: # I assume there are other, lower versions, but these are the only ones I
                    106: # saw in the archive.
                    107: 0      beshort 0x0206  ALAN game data
                    108: >2     byte    <10     version 2.6%d
                    109: 
                    110: 
                    111: # Infocom (see z-machine)
                    112: #------------------------------------------------------------------------------
                    113: # Z-machine:  file(1) magic for Z-machine binaries.
1.1.1.2   misho     114: # Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
1.1       misho     115: #
1.1.1.3   misho     116: #http://www.gnelson.demon.co.uk/zspec/sect11.html
                    117: #http://www.jczorkmid.net/~jpenney/ZSpec11-latest.txt
                    118: #http://en.wikipedia.org/wiki/Z-machine
1.1.1.2   misho     119: # The first byte is the Z-machine revision; it is always between 1 and 8. We
                    120: # had false matches (for instance, inbig5.ocp from the Omega TeX extension as
                    121: # well as an occasional MP3 file), so we sanity-check the version number.
                    122: #
                    123: # It might be possible to sanity-check the release number as well, as it seems
                    124: # (at least in classic Infocom games) to always be a relatively small number,
                    125: # always under 150 or so, but as this isn't rigorous, we'll wait on that until
                    126: # it becomes clear that it's needed.
                    127: #
                    128: 0      ubyte                   >0
                    129: >0     ubyte                   <9
1.1.1.3   misho     130: >>16   belong&0xfe00f0f0       0x3030
                    131: >>>0   ubyte                   < 10
                    132: >>>>2  ubeshort                < 10
                    133: >>>>>18        regex                   [0-9][0-9][0-9][0-9][0-9][0-9]
                    134: >>>>>>0        ubyte                   < 10    Infocom (Z-machine %d,
                    135: >>>>>>>2       ubeshort        < 10    Release %d /
                    136: >>>>>>>>18     string          >\0     Serial %.6s)
                    137: !:strength + 40
1.1       misho     138: 
                    139: #------------------------------------------------------------------------------
                    140: # Glulx:  file(1) magic for Glulx binaries.
                    141: #
                    142: # I haven't checked for false matches yet.
                    143: #
                    144: 0      string                  Glul    Glulx game data
                    145: >4     beshort                 x       (Version %d
                    146: >>6    byte                    x       \b.%d
                    147: >>8    byte                    x       \b.%d)
                    148: >36    string                  Info    Compiled by Inform
                    149: 
                    150: 
                    151: 
                    152: # For Quetzal and blorb magic see iff
                    153: 
                    154: 
1.1.1.3   misho     155: # TADS (Text Adventure Development System) version 2
1.1       misho     156: #  All files are machine-independent (games compile to byte-code) and are tagged
1.1.1.3   misho     157: #  with a version string of the form "V2.<digit>.<digit>\0".
1.1       misho     158: #  Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
                    159: 0      string  TADS2\ bin      TADS
                    160: >9     belong  !0x0A0D1A00     game data, CORRUPTED
                    161: >9     belong   0x0A0D1A00
                    162: >>13   string  >\0             %s game data
                    163: #  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
                    164: 0      string  TADS2\ rsc      TADS
                    165: >9     belong  !0x0A0D1A00     resource data, CORRUPTED
                    166: >9     belong   0x0A0D1A00
                    167: >>13   string  >\0             %s resource data
                    168: #  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
                    169: #  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
                    170: # "TADS2 save\n\r\032\0" and the interpreter version. 
                    171: 0      string  TADS2\ save/g   TADS
                    172: >12    belong  !0x0A0D1A00     saved game data, CORRUPTED
                    173: >12    belong   0x0A0D1A00
                    174: >>(16.s+32) string >\0         %s saved game data
                    175: #  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
                    176: #  version.
                    177: 0      string  TADS2\ save     TADS
                    178: >10    belong  !0x0A0D1A00     saved game data, CORRUPTED
                    179: >10    belong   0x0A0D1A00
                    180: >>14   string  >\0             %s saved game data
                    181: 
1.1.1.3   misho     182: # TADS (Text Adventure Development System) version 3
                    183: #  Game files start with "T3-image\015\012\032"
                    184: 0      string  T3-image\015\012\032
                    185: >11    leshort x               TADS 3 game data (format version %d)
                    186: #  Saved game files start with "T3-state-v####\015\012\032"
                    187: #  where #### is a format version number
                    188: 0      string  T3-state-v
                    189: >14    string  \015\012\032    TADS 3 saved game data (format version
                    190: >>10   byte    x               %c
                    191: >>11   byte    x               \b%c
                    192: >>12   byte    x               \b%c
                    193: >>13   byte    x               \b%c)
                    194: 
1.1       misho     195: # Danny Milosavljevic <danny.milo@gmx.net>
                    196: # this are adrift (adventure game standard) game files, extension .taf
                    197: # depending on version magic continues with 0x93453E6139FA (V 4.0)
                    198: # 0x9445376139FA (V 3.90)
                    199: # 0x9445366139FA (V 3.80)
                    200: # this is from source (http://www.adrift.org.uk/) and I have some taf
                    201: # files, and checked them.
                    202: #0     belong  0x3C423FC9
                    203: #>4    belong  0x6A87C2CF      Adrift game file
                    204: #!:mime        application/x-adrift
1.1.1.2   misho     205: 
1.1       misho     206: #------------------------------------------------------------------------------
1.1.1.2   misho     207: # $File: allegro,v 1.4 2009/09/19 16:28:07 christos Exp $
1.1       misho     208: # allegro:  file(1) magic for Allegro datafiles
                    209: # Toby Deshane <hac@shoelace.digivill.net>
                    210: #
                    211: 0 belong 0x736C6821   Allegro datafile (packed)
                    212: 0 belong 0x736C682E   Allegro datafile (not packed/autodetect)
                    213: 0 belong 0x736C682B   Allegro datafile (appended exe data)
                    214: 
                    215: #------------------------------------------------------------------------------
1.1.1.2   misho     216: # $File: alliant,v 1.7 2009/09/19 16:28:07 christos Exp $
1.1       misho     217: # alliant:  file(1) magic for Alliant FX series a.out files
                    218: #
                    219: # If the FX series is the one that had a processor with a 68K-derived
                    220: # instruction set, the "short" should probably become "beshort" and the
                    221: # "long" should probably become "belong".
                    222: # If it's the i860-based one, they should probably become either the
                    223: # big-endian or little-endian versions, depending on the mode they ran
                    224: # the 860 in....
                    225: #
                    226: 0      short           0420            0420 Alliant virtual executable
                    227: >2     short           &0x0020         common library
                    228: >16    long            >0              not stripped
                    229: 0      short           0421            0421 Alliant compact executable
                    230: >2     short           &0x0020         common library
                    231: >16    long            >0              not stripped
1.1.1.2   misho     232: 
1.1       misho     233: #------------------------------------------------------------------------------
1.1.1.2   misho     234: # $File: amanda,v 1.5 2009/09/19 16:28:07 christos Exp $
1.1       misho     235: # amanda:  file(1) magic for amanda file format
                    236: #
                    237: 0      string  AMANDA:\                AMANDA 
                    238: >8     string  TAPESTART\ DATE         tape header file,
                    239: >>23   string  X
                    240: >>>25  string  >\                      Unused %s
                    241: >>23   string  >\                      DATE %s
                    242: >8     string  FILE\                   dump file,
                    243: >>13   string  >\                      DATE %s
1.1.1.2   misho     244: 
1.1       misho     245: #------------------------------------------------------------------------------
1.1.1.3   misho     246: # $File: amigaos,v 1.15 2012/06/21 01:13:59 christos Exp $
1.1       misho     247: # amigaos:  file(1) magic for AmigaOS binary formats:
                    248: 
                    249: #
                    250: # From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
                    251: #
                    252: 0      belong          0x000003fa      AmigaOS shared library
                    253: 0      belong          0x000003f3      AmigaOS loadseg()ble executable/binary
                    254: 0      belong          0x000003e7      AmigaOS object/library data
                    255: #
                    256: 0      beshort         0xe310          Amiga Workbench
                    257: >2     beshort         1               
                    258: >>48   byte            1               disk icon
                    259: >>48   byte            2               drawer icon
                    260: >>48   byte            3               tool icon
                    261: >>48   byte            4               project icon
                    262: >>48   byte            5               garbage icon
                    263: >>48   byte            6               device icon
                    264: >>48   byte            7               kickstart icon
                    265: >>48   byte            8               workbench application icon
                    266: >2     beshort         >1              icon, vers. %d
                    267: #
                    268: # various sound formats from the Amiga
                    269: # G=F6tz Waschk <waschk@informatik.uni-rostock.de>
                    270: #
                    271: 0      string          FC14            Future Composer 1.4 Module sound file
                    272: 0      string          SMOD            Future Composer 1.3 Module sound file
                    273: 0      string          AON4artofnoise  Art Of Noise Module sound file
                    274: 1      string          MUGICIAN/SOFTEYES Mugician Module sound file
                    275: 58     string          SIDMON\ II\ -\ THE      Sidmon 2.0 Module sound file
                    276: 0      string          Synth4.0        Synthesis Module sound file
                    277: 0      string          ARP.            The Holy Noise Module sound file
                    278: 0      string          BeEp\0          JamCracker Module sound file
                    279: 0      string          COSO\0          Hippel-COSO Module sound file
                    280: # Too simple (short, pure ASCII, deep), MPi
                    281: #26    string          V.3             Brian Postma's Soundmon Module sound file v3
                    282: #26    string          BPSM            Brian Postma's Soundmon Module sound file v3
                    283: #26    string          V.2             Brian Postma's Soundmon Module sound file v2
                    284: 
                    285: # The following are from: "Stefan A. Haubenthal" <polluks@web.de>
                    286: 0      beshort         0x0f00          AmigaOS bitmap font
                    287: 0      beshort         0x0f03          AmigaOS outline font
                    288: 0      belong          0x80001001      AmigaOS outline tag
                    289: 0      string          ##\ version     catalog translation
                    290: 0      string          EMOD\0          Amiga E module
                    291: 8      string          ECXM\0          ECX module
                    292: 0      string/c        @database       AmigaGuide file
                    293: 
                    294: # Amiga disk types
                    295: # 
                    296: 0      string          RDSK            Rigid Disk Block
                    297: >160   string          x               on %.24s
                    298: 0      string          DOS\0           Amiga DOS disk
                    299: 0      string          DOS\1           Amiga FFS disk
                    300: 0      string          DOS\2           Amiga Inter DOS disk
                    301: 0      string          DOS\3           Amiga Inter FFS disk
                    302: 0      string          DOS\4           Amiga Fastdir DOS disk
                    303: 0      string          DOS\5           Amiga Fastdir FFS disk
                    304: 0      string          KICK            Kickstart disk
                    305: 
                    306: # From: Alex Beregszaszi <alex@fsn.hu>
                    307: 0      string          LZX             LZX compressed archive (Amiga)
                    308: 
1.1.1.3   misho     309: # From: Przemek Kramarczyk <pkramarczyk@gmail.com>
                    310: 0      string          .KEY            AmigaDOS script
                    311: 0      string          .key            AmigaDOS script
1.1       misho     312: 
                    313: #------------------------------------------------------------------------------
1.1.1.3   misho     314: # $File: animation,v 1.48 2013/03/09 22:36:00 christos Exp $
1.1       misho     315: # animation:  file(1) magic for animation/movie formats
                    316: #
                    317: # animation formats
                    318: # MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
                    319: # FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
                    320: 
                    321: # SGI and Apple formats
                    322: 0      string          MOVI            Silicon Graphics movie file
                    323: !:mime video/x-sgi-movie
                    324: 4       string          moov            Apple QuickTime
                    325: !:mime video/quicktime
                    326: >12     string          mvhd            \b movie (fast start)
                    327: >12     string          mdra            \b URL
                    328: >12     string          cmov            \b movie (fast start, compressed header)
                    329: >12     string          rmra            \b multiple URLs
                    330: 4       string          mdat            Apple QuickTime movie (unoptimized)
                    331: !:mime video/quicktime
                    332: #4       string          wide            Apple QuickTime movie (unoptimized)
                    333: #!:mime        video/quicktime
                    334: #4       string          skip            Apple QuickTime movie (modified)
                    335: #!:mime        video/quicktime
                    336: #4       string          free            Apple QuickTime movie (modified)
                    337: #!:mime        video/quicktime
                    338: 4       string          idsc            Apple QuickTime image (fast start)
                    339: !:mime image/x-quicktime
                    340: #4       string          idat            Apple QuickTime image (unoptimized)
                    341: #!:mime        image/x-quicktime
                    342: 4       string          pckg            Apple QuickTime compressed archive
                    343: !:mime application/x-quicktime-player
1.1.1.2   misho     344: 4      string/W        jP              JPEG 2000 image
1.1       misho     345: !:mime image/jp2
                    346: 4      string          ftyp            ISO Media
                    347: >8     string          isom            \b, MPEG v4 system, version 1
                    348: !:mime video/mp4
                    349: >8     string          iso2            \b, MPEG v4 system, part 12 revision
                    350: >8     string          mp41            \b, MPEG v4 system, version 1
                    351: !:mime video/mp4
                    352: >8     string          mp42            \b, MPEG v4 system, version 2
                    353: !:mime video/mp4
                    354: >8     string          mp7t            \b, MPEG v4 system, MPEG v7 XML
                    355: >8     string          mp7b            \b, MPEG v4 system, MPEG v7 binary XML
1.1.1.2   misho     356: >8     string/W        jp2             \b, JPEG 2000
1.1       misho     357: !:mime image/jp2
1.1.1.3   misho     358: >8     string          3ge             \b, MPEG v4 system, 3GPP
                    359: !:mime video/3gpp
                    360: >8     string          3gg             \b, MPEG v4 system, 3GPP
                    361: !:mime video/3gpp
1.1       misho     362: >8     string          3gp             \b, MPEG v4 system, 3GPP
                    363: !:mime video/3gpp
1.1.1.3   misho     364: >8     string          3gs             \b, MPEG v4 system, 3GPP
                    365: !:mime video/3gpp
                    366: >8     string          3g2             \b, MPEG v4 system, 3GPP2
                    367: !:mime video/3gpp2
1.1       misho     368: >>11   byte            4               \b v4 (H.263/AMR GSM 6.10)
                    369: >>11   byte            5               \b v5 (H.263/AMR GSM 6.10)
                    370: >>11   byte            6               \b v6 (ITU H.264/AMR GSM 6.10)
                    371: >8     string          mmp4            \b, MPEG v4 system, 3GPP Mobile
                    372: !:mime video/mp4
                    373: >8     string          avc1            \b, MPEG v4 system, 3GPP JVT AVC
                    374: !:mime video/3gpp
1.1.1.2   misho     375: >8     string/W        M4A             \b, MPEG v4 system, iTunes AAC-LC
1.1       misho     376: !:mime audio/mp4
1.1.1.2   misho     377: >8     string/W        M4V             \b, MPEG v4 system, iTunes AVC-LC
1.1       misho     378: !:mime video/mp4
1.1.1.2   misho     379: >8     string/W        M4P             \b, MPEG v4 system, iTunes AES encrypted
                    380: >8     string/W        M4B             \b, MPEG v4 system, iTunes bookmarked
                    381: >8     string/W        qt              \b, Apple QuickTime movie
1.1       misho     382: !:mime video/quicktime
                    383: 
                    384: # MPEG sequences
                    385: # Scans for all common MPEG header start codes
                    386: 0       belong             0x00000001     
                    387: >4      byte&0x1F          0x07           JVT NAL sequence, H.264 video
                    388: >>5      byte               66             \b, baseline
                    389: >>5      byte               77             \b, main
                    390: >>5      byte               88             \b, extended
                    391: >>7      byte               x              \b @ L %u
                    392: 0        belong&0xFFFFFF00  0x00000100     
                    393: >3       byte               0xBA           MPEG sequence
1.1.1.2   misho     394: !:mime  video/mpeg
1.1       misho     395: >>4      byte               &0x40          \b, v2, program multiplex
                    396: >>4      byte               ^0x40          \b, v1, system multiplex
                    397: >3       byte               0xBB           MPEG sequence, v1/2, multiplex (missing pack header)
                    398: >3       byte&0x1F          0x07           MPEG sequence, H.264 video
                    399: >>4      byte               66             \b, baseline
                    400: >>4      byte               77             \b, main
                    401: >>4      byte               88             \b, extended
                    402: >>6      byte               x              \b @ L %u
1.1.1.3   misho     403: # GRR too general as it catches also FoxPro Memo example NG.FPT
1.1       misho     404: >3       byte               0xB0           MPEG sequence, v4
1.1.1.3   misho     405: # TODO: maybe this extra line exclude FoxPro Memo example NG.FPT starting with 000001b0 00000100 00000000
                    406: #>>4      byte               !0             MPEG sequence, v4
1.1.1.2   misho     407: !:mime  video/mpeg4-generic
1.1       misho     408: >>5      belong             0x000001B5
                    409: >>>9     byte               &0x80
                    410: >>>>10   byte&0xF0          16             \b, video
                    411: >>>>10   byte&0xF0          32             \b, still texture
                    412: >>>>10   byte&0xF0          48             \b, mesh
                    413: >>>>10   byte&0xF0          64             \b, face
                    414: >>>9     byte&0xF8          8              \b, video
                    415: >>>9     byte&0xF8          16             \b, still texture
                    416: >>>9     byte&0xF8          24             \b, mesh
                    417: >>>9     byte&0xF8          32             \b, face
                    418: >>4      byte               1              \b, simple @ L1
                    419: >>4      byte               2              \b, simple @ L2
                    420: >>4      byte               3              \b, simple @ L3
                    421: >>4      byte               4              \b, simple @ L0
                    422: >>4      byte               17             \b, simple scalable @ L1
                    423: >>4      byte               18             \b, simple scalable @ L2
                    424: >>4      byte               33             \b, core @ L1
                    425: >>4      byte               34             \b, core @ L2
                    426: >>4      byte               50             \b, main @ L2
                    427: >>4      byte               51             \b, main @ L3
                    428: >>4      byte               53             \b, main @ L4
                    429: >>4      byte               66             \b, n-bit @ L2
                    430: >>4      byte               81             \b, scalable texture @ L1
                    431: >>4      byte               97             \b, simple face animation @ L1
                    432: >>4      byte               98             \b, simple face animation @ L2
                    433: >>4      byte               99             \b, simple face basic animation @ L1
                    434: >>4      byte               100            \b, simple face basic animation @ L2
                    435: >>4      byte               113            \b, basic animation text @ L1
                    436: >>4      byte               114            \b, basic animation text @ L2
                    437: >>4      byte               129            \b, hybrid @ L1
                    438: >>4      byte               130            \b, hybrid @ L2
                    439: >>4      byte               145            \b, advanced RT simple @ L!
                    440: >>4      byte               146            \b, advanced RT simple @ L2
                    441: >>4      byte               147            \b, advanced RT simple @ L3
                    442: >>4      byte               148            \b, advanced RT simple @ L4
                    443: >>4      byte               161            \b, core scalable @ L1
                    444: >>4      byte               162            \b, core scalable @ L2
                    445: >>4      byte               163            \b, core scalable @ L3
                    446: >>4      byte               177            \b, advanced coding efficiency @ L1
                    447: >>4      byte               178            \b, advanced coding efficiency @ L2
                    448: >>4      byte               179            \b, advanced coding efficiency @ L3
                    449: >>4      byte               180            \b, advanced coding efficiency @ L4
                    450: >>4      byte               193            \b, advanced core @ L1
                    451: >>4      byte               194            \b, advanced core @ L2
                    452: >>4      byte               209            \b, advanced scalable texture @ L1
                    453: >>4      byte               210            \b, advanced scalable texture @ L2
                    454: >>4      byte               211            \b, advanced scalable texture @ L3
                    455: >>4      byte               225            \b, simple studio @ L1
                    456: >>4      byte               226            \b, simple studio @ L2
                    457: >>4      byte               227            \b, simple studio @ L3
                    458: >>4      byte               228            \b, simple studio @ L4
                    459: >>4      byte               229            \b, core studio @ L1
                    460: >>4      byte               230            \b, core studio @ L2
                    461: >>4      byte               231            \b, core studio @ L3
                    462: >>4      byte               232            \b, core studio @ L4
                    463: >>4      byte               240            \b, advanced simple @ L0
                    464: >>4      byte               241            \b, advanced simple @ L1
                    465: >>4      byte               242            \b, advanced simple @ L2
                    466: >>4      byte               243            \b, advanced simple @ L3
                    467: >>4      byte               244            \b, advanced simple @ L4
                    468: >>4      byte               245            \b, advanced simple @ L5
                    469: >>4      byte               247            \b, advanced simple @ L3b
                    470: >>4      byte               248            \b, FGS @ L0
                    471: >>4      byte               249            \b, FGS @ L1
                    472: >>4      byte               250            \b, FGS @ L2
                    473: >>4      byte               251            \b, FGS @ L3
                    474: >>4      byte               252            \b, FGS @ L4
                    475: >>4      byte               253            \b, FGS @ L5
                    476: >3       byte               0xB5           MPEG sequence, v4
1.1.1.3   misho     477: !:mime  video/mpeg4-generic
1.1       misho     478: >>4      byte               &0x80
                    479: >>>5     byte&0xF0          16             \b, video (missing profile header)
                    480: >>>5     byte&0xF0          32             \b, still texture (missing profile header)
                    481: >>>5     byte&0xF0          48             \b, mesh (missing profile header)
                    482: >>>5     byte&0xF0          64             \b, face (missing profile header)
                    483: >>4      byte&0xF8          8              \b, video (missing profile header)
                    484: >>4      byte&0xF8          16             \b, still texture (missing profile header)
                    485: >>4      byte&0xF8          24             \b, mesh (missing profile header)
                    486: >>4      byte&0xF8          32             \b, face (missing profile header)
                    487: >3       byte               0xB3           MPEG sequence
1.1.1.3   misho     488: !:mime  video/mpeg
1.1       misho     489: >>12     belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
                    490: >>12     belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
                    491: >>12     belong             0x000001B5     \b, v2,
                    492: >>>16    byte&0x0F          1              \b HP
                    493: >>>16    byte&0x0F          2              \b Spt
                    494: >>>16    byte&0x0F          3              \b SNR
                    495: >>>16    byte&0x0F          4              \b MP
                    496: >>>16    byte&0x0F          5              \b SP
                    497: >>>17    byte&0xF0          64             \b@HL
                    498: >>>17    byte&0xF0          96             \b@H-14
                    499: >>>17    byte&0xF0          128            \b@ML
                    500: >>>17    byte&0xF0          160            \b@LL
                    501: >>>17    byte               &0x08          \b progressive
                    502: >>>17    byte               ^0x08          \b interlaced
                    503: >>>17    byte&0x06          2              \b Y'CbCr 4:2:0 video
                    504: >>>17    byte&0x06          4              \b Y'CbCr 4:2:2 video
                    505: >>>17    byte&0x06          6              \b Y'CbCr 4:4:4 video
                    506: >>11     byte               &0x02
                    507: >>>75    byte               &0x01
                    508: >>>>140  belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
                    509: >>>>140  belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
                    510: >>>>140  belong             0x000001B5     \b, v2,
                    511: >>>>>144 byte&0x0F          1              \b HP
                    512: >>>>>144 byte&0x0F          2              \b Spt
                    513: >>>>>144 byte&0x0F          3              \b SNR
                    514: >>>>>144 byte&0x0F          4              \b MP
                    515: >>>>>144 byte&0x0F          5              \b SP
                    516: >>>>>145 byte&0xF0          64             \b@HL
                    517: >>>>>145 byte&0xF0          96             \b@H-14
                    518: >>>>>145 byte&0xF0          128            \b@ML
                    519: >>>>>145 byte&0xF0          160            \b@LL
                    520: >>>>>145 byte               &0x08          \b progressive
                    521: >>>>>145 byte               ^0x08          \b interlaced
                    522: >>>>>145 byte&0x06          2              \b Y'CbCr 4:2:0 video
                    523: >>>>>145 byte&0x06          4              \b Y'CbCr 4:2:2 video
                    524: >>>>>145 byte&0x06          6              \b Y'CbCr 4:4:4 video
                    525: >>76    belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
                    526: >>76    belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
                    527: >>76    belong             0x000001B5     \b, v2,
                    528: >>>80   byte&0x0F          1              \b HP
                    529: >>>80   byte&0x0F          2              \b Spt
                    530: >>>80   byte&0x0F          3              \b SNR
                    531: >>>80   byte&0x0F          4              \b MP
                    532: >>>80   byte&0x0F          5              \b SP
                    533: >>>81   byte&0xF0          64             \b@HL
                    534: >>>81   byte&0xF0          96             \b@H-14
                    535: >>>81   byte&0xF0          128            \b@ML
                    536: >>>81   byte&0xF0          160            \b@LL
                    537: >>>81   byte               &0x08          \b progressive
                    538: >>>81   byte               ^0x08          \b interlaced
                    539: >>>81   byte&0x06          2              \b Y'CbCr 4:2:0 video
                    540: >>>81   byte&0x06          4              \b Y'CbCr 4:2:2 video
                    541: >>>81   byte&0x06          6              \b Y'CbCr 4:4:4 video
                    542: >>4      belong&0xFFFFFF00  0x78043800     \b, HD-TV 1920P
                    543: >>>7     byte&0xF0          0x10           \b, 16:9
                    544: >>4      belong&0xFFFFFF00  0x50002D00     \b, SD-TV 1280I
                    545: >>>7     byte&0xF0          0x10           \b, 16:9
                    546: >>4      belong&0xFFFFFF00  0x30024000     \b, PAL Capture
                    547: >>>7     byte&0xF0          0x10           \b, 4:3
                    548: >>4      beshort&0xFFF0     0x2C00         \b, 4CIF
                    549: >>>5     beshort&0x0FFF     0x01E0         \b NTSC
                    550: >>>5     beshort&0x0FFF     0x0240         \b PAL
                    551: >>>7     byte&0xF0          0x20           \b, 4:3
                    552: >>>7     byte&0xF0          0x30           \b, 16:9
                    553: >>>7     byte&0xF0          0x40           \b, 11:5
                    554: >>>7     byte&0xF0          0x80           \b, PAL 4:3
                    555: >>>7     byte&0xF0          0xC0           \b, NTSC 4:3
                    556: >>4      belong&0xFFFFFF00  0x2801E000     \b, LD-TV 640P
                    557: >>>7     byte&0xF0          0x10           \b, 4:3
                    558: >>4      belong&0xFFFFFF00  0x1400F000     \b, 320x240
                    559: >>>7     byte&0xF0          0x10           \b, 4:3
                    560: >>4      belong&0xFFFFFF00  0x0F00A000     \b, 240x160
                    561: >>>7     byte&0xF0          0x10           \b, 4:3
                    562: >>4      belong&0xFFFFFF00  0x0A007800     \b, 160x120
                    563: >>>7     byte&0xF0          0x10           \b, 4:3
                    564: >>4      beshort&0xFFF0     0x1600         \b, CIF
                    565: >>>5     beshort&0x0FFF     0x00F0         \b NTSC
                    566: >>>5     beshort&0x0FFF     0x0120         \b PAL
                    567: >>>7     byte&0xF0          0x20           \b, 4:3
                    568: >>>7     byte&0xF0          0x30           \b, 16:9
                    569: >>>7     byte&0xF0          0x40           \b, 11:5
                    570: >>>7     byte&0xF0          0x80           \b, PAL 4:3
                    571: >>>7     byte&0xF0          0xC0           \b, NTSC 4:3
                    572: >>>5     beshort&0x0FFF     0x0240         \b PAL 625
                    573: >>>>7    byte&0xF0          0x20           \b, 4:3
                    574: >>>>7    byte&0xF0          0x30           \b, 16:9
                    575: >>>>7    byte&0xF0          0x40           \b, 11:5
                    576: >>4      beshort&0xFFF0     0x2D00         \b, CCIR/ITU
                    577: >>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
                    578: >>>5     beshort&0x0FFF     0x0240         \b PAL 625
                    579: >>>7     byte&0xF0          0x20           \b, 4:3
                    580: >>>7     byte&0xF0          0x30           \b, 16:9
                    581: >>>7     byte&0xF0          0x40           \b, 11:5
                    582: >>4      beshort&0xFFF0     0x1E00         \b, SVCD
                    583: >>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
                    584: >>>5     beshort&0x0FFF     0x0240         \b PAL 625
                    585: >>>7     byte&0xF0          0x20           \b, 4:3
                    586: >>>7     byte&0xF0          0x30           \b, 16:9
                    587: >>>7     byte&0xF0          0x40           \b, 11:5
                    588: >>7      byte&0x0F          1              \b, 23.976 fps
                    589: >>7      byte&0x0F          2              \b, 24 fps
                    590: >>7      byte&0x0F          3              \b, 25 fps
                    591: >>7      byte&0x0F          4              \b, 29.97 fps
                    592: >>7      byte&0x0F          5              \b, 30 fps
                    593: >>7      byte&0x0F          6              \b, 50 fps
                    594: >>7      byte&0x0F          7              \b, 59.94 fps
                    595: >>7      byte&0x0F          8              \b, 60 fps
                    596: >>11     byte               &0x04          \b, Constrained
                    597: 
                    598: # MPEG ADTS Audio (*.mpx/mxa/aac)
                    599: # from dreesen@math.fu-berlin.de
                    600: # modified to fully support MPEG ADTS
                    601: 
                    602: # MP3, M1A
                    603: # modified by Joerg Jenderek
                    604: # GRR the original test are too common for many DOS files
                    605: # so don't accept as MP3 until we've tested the rate
                    606: 0       beshort&0xFFFE  0xFFFA
                    607: # rates
                    608: >2      byte&0xF0       0x10           MPEG ADTS, layer III, v1,  32 kbps
                    609: !:mime audio/mpeg
                    610: >2      byte&0xF0       0x20           MPEG ADTS, layer III, v1,  40 kbps
                    611: !:mime audio/mpeg
                    612: >2      byte&0xF0       0x30           MPEG ADTS, layer III, v1,  48 kbps
                    613: !:mime audio/mpeg
                    614: >2      byte&0xF0       0x40           MPEG ADTS, layer III, v1,  56 kbps
                    615: !:mime audio/mpeg
                    616: >2      byte&0xF0       0x50           MPEG ADTS, layer III, v1,  64 kbps
                    617: !:mime audio/mpeg
                    618: >2      byte&0xF0       0x60           MPEG ADTS, layer III, v1,  80 kbps
                    619: !:mime audio/mpeg
                    620: >2      byte&0xF0       0x70           MPEG ADTS, layer III, v1,  96 kbps
                    621: !:mime audio/mpeg
                    622: >2      byte&0xF0       0x80           MPEG ADTS, layer III, v1, 112 kbps
                    623: !:mime audio/mpeg
                    624: >2      byte&0xF0       0x90           MPEG ADTS, layer III, v1, 128 kbps
                    625: !:mime audio/mpeg
                    626: >2      byte&0xF0       0xA0           MPEG ADTS, layer III, v1, 160 kbps
                    627: !:mime audio/mpeg
                    628: >2      byte&0xF0       0xB0           MPEG ADTS, layer III, v1, 192 kbps
                    629: !:mime audio/mpeg
                    630: >2      byte&0xF0       0xC0           MPEG ADTS, layer III, v1, 224 kbps
                    631: !:mime audio/mpeg
                    632: >2      byte&0xF0       0xD0           MPEG ADTS, layer III, v1, 256 kbps
                    633: !:mime audio/mpeg
                    634: >2      byte&0xF0       0xE0           MPEG ADTS, layer III, v1, 320 kbps
                    635: !:mime audio/mpeg
                    636: # timing
                    637: >2      byte&0x0C       0x00           \b, 44.1 kHz
                    638: >2      byte&0x0C       0x04           \b, 48 kHz
                    639: >2      byte&0x0C       0x08           \b, 32 kHz
                    640: # channels/options
                    641: >3      byte&0xC0       0x00           \b, Stereo
                    642: >3      byte&0xC0       0x40           \b, JntStereo
                    643: >3      byte&0xC0       0x80           \b, 2x Monaural
                    644: >3      byte&0xC0       0xC0           \b, Monaural
                    645: #>1     byte            ^0x01          \b, Data Verify
                    646: #>2     byte            &0x02          \b, Packet Pad
                    647: #>2     byte            &0x01          \b, Custom Flag
                    648: #>3     byte            &0x08          \b, Copyrighted
                    649: #>3     byte            &0x04          \b, Original Source
                    650: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    651: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    652: 
                    653: # MP2, M1A
                    654: 0       beshort&0xFFFE  0xFFFC         MPEG ADTS, layer II, v1
1.1.1.2   misho     655: !:mime audio/mpeg
1.1       misho     656: # rates
                    657: >2      byte&0xF0       0x10           \b,  32 kbps
                    658: >2      byte&0xF0       0x20           \b,  48 kbps
                    659: >2      byte&0xF0       0x30           \b,  56 kbps
                    660: >2      byte&0xF0       0x40           \b,  64 kbps
                    661: >2      byte&0xF0       0x50           \b,  80 kbps
                    662: >2      byte&0xF0       0x60           \b,  96 kbps
                    663: >2      byte&0xF0       0x70           \b, 112 kbps
                    664: >2      byte&0xF0       0x80           \b, 128 kbps
                    665: >2      byte&0xF0       0x90           \b, 160 kbps
                    666: >2      byte&0xF0       0xA0           \b, 192 kbps
                    667: >2      byte&0xF0       0xB0           \b, 224 kbps
                    668: >2      byte&0xF0       0xC0           \b, 256 kbps
                    669: >2      byte&0xF0       0xD0           \b, 320 kbps
                    670: >2      byte&0xF0       0xE0           \b, 384 kbps
                    671: # timing
                    672: >2      byte&0x0C       0x00           \b, 44.1 kHz
                    673: >2      byte&0x0C       0x04           \b, 48 kHz
                    674: >2      byte&0x0C       0x08           \b, 32 kHz
                    675: # channels/options
                    676: >3      byte&0xC0       0x00           \b, Stereo
                    677: >3      byte&0xC0       0x40           \b, JntStereo
                    678: >3      byte&0xC0       0x80           \b, 2x Monaural
                    679: >3      byte&0xC0       0xC0           \b, Monaural
                    680: #>1     byte            ^0x01          \b, Data Verify
                    681: #>2     byte            &0x02          \b, Packet Pad
                    682: #>2     byte            &0x01          \b, Custom Flag
                    683: #>3     byte            &0x08          \b, Copyrighted
                    684: #>3     byte            &0x04          \b, Original Source
                    685: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    686: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    687: 
                    688: # MPA, M1A
                    689: # updated by Joerg Jenderek
                    690: # GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
                    691: # GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
                    692: # FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
                    693: #0     beshort&0xFFFE          0xFFFE  
                    694: #>2    ubyte&0xF0      >0x0F           
                    695: #>>2   ubyte&0xF0      <0xE1           MPEG ADTS, layer I, v1
                    696: ## rate
                    697: #>>>2      byte&0xF0       0x10           \b,  32 kbps
                    698: #>>>2      byte&0xF0       0x20           \b,  64 kbps
                    699: #>>>2      byte&0xF0       0x30           \b,  96 kbps
                    700: #>>>2      byte&0xF0       0x40           \b, 128 kbps
                    701: #>>>2      byte&0xF0       0x50           \b, 160 kbps
                    702: #>>>2      byte&0xF0       0x60           \b, 192 kbps
                    703: #>>>2      byte&0xF0       0x70           \b, 224 kbps
                    704: #>>>2      byte&0xF0       0x80           \b, 256 kbps
                    705: #>>>2      byte&0xF0       0x90           \b, 288 kbps
                    706: #>>>2      byte&0xF0       0xA0           \b, 320 kbps
                    707: #>>>2      byte&0xF0       0xB0           \b, 352 kbps
                    708: #>>>2      byte&0xF0       0xC0           \b, 384 kbps
                    709: #>>>2      byte&0xF0       0xD0           \b, 416 kbps
                    710: #>>>2      byte&0xF0       0xE0           \b, 448 kbps
                    711: ## timing
                    712: #>>>2      byte&0x0C       0x00           \b, 44.1 kHz
                    713: #>>>2      byte&0x0C       0x04           \b, 48 kHz
                    714: #>>>2      byte&0x0C       0x08           \b, 32 kHz
                    715: ## channels/options
                    716: #>>>3      byte&0xC0       0x00           \b, Stereo
                    717: #>>>3      byte&0xC0       0x40           \b, JntStereo
                    718: #>>>3      byte&0xC0       0x80           \b, 2x Monaural
                    719: #>>>3      byte&0xC0       0xC0           \b, Monaural
                    720: ##>1     byte            ^0x01          \b, Data Verify
                    721: ##>2     byte            &0x02          \b, Packet Pad
                    722: ##>2     byte            &0x01          \b, Custom Flag
                    723: ##>3     byte            &0x08          \b, Copyrighted
                    724: ##>3     byte            &0x04          \b, Original Source
                    725: ##>3     byte&0x03       1              \b, NR: 50/15 ms
                    726: ##>3     byte&0x03       3              \b, NR: CCIT J.17
                    727: 
                    728: # MP3, M2A
                    729: 0       beshort&0xFFFE  0xFFF2         MPEG ADTS, layer III, v2
1.1.1.2   misho     730: !:mime audio/mpeg
1.1       misho     731: # rate
                    732: >2      byte&0xF0       0x10           \b,   8 kbps
                    733: >2      byte&0xF0       0x20           \b,  16 kbps
                    734: >2      byte&0xF0       0x30           \b,  24 kbps
                    735: >2      byte&0xF0       0x40           \b,  32 kbps
                    736: >2      byte&0xF0       0x50           \b,  40 kbps
                    737: >2      byte&0xF0       0x60           \b,  48 kbps
                    738: >2      byte&0xF0       0x70           \b,  56 kbps
                    739: >2      byte&0xF0       0x80           \b,  64 kbps
                    740: >2      byte&0xF0       0x90           \b,  80 kbps
                    741: >2      byte&0xF0       0xA0           \b,  96 kbps
                    742: >2      byte&0xF0       0xB0           \b, 112 kbps
                    743: >2      byte&0xF0       0xC0           \b, 128 kbps
                    744: >2      byte&0xF0       0xD0           \b, 144 kbps
                    745: >2      byte&0xF0       0xE0           \b, 160 kbps
                    746: # timing
                    747: >2      byte&0x0C       0x00           \b, 22.05 kHz
                    748: >2      byte&0x0C       0x04           \b, 24 kHz
                    749: >2      byte&0x0C       0x08           \b, 16 kHz
                    750: # channels/options
                    751: >3      byte&0xC0       0x00           \b, Stereo
                    752: >3      byte&0xC0       0x40           \b, JntStereo
                    753: >3      byte&0xC0       0x80           \b, 2x Monaural
                    754: >3      byte&0xC0       0xC0           \b, Monaural
                    755: #>1     byte            ^0x01          \b, Data Verify
                    756: #>2     byte            &0x02          \b, Packet Pad
                    757: #>2     byte            &0x01          \b, Custom Flag
                    758: #>3     byte            &0x08          \b, Copyrighted
                    759: #>3     byte            &0x04          \b, Original Source
                    760: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    761: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    762: 
                    763: # MP2, M2A
                    764: 0       beshort&0xFFFE  0xFFF4         MPEG ADTS, layer II, v2
                    765: # rate 
                    766: >2      byte&0xF0       0x10           \b,   8 kbps
                    767: >2      byte&0xF0       0x20           \b,  16 kbps 
                    768: >2      byte&0xF0       0x30           \b,  24 kbps
                    769: >2      byte&0xF0       0x40           \b,  32 kbps
                    770: >2      byte&0xF0       0x50           \b,  40 kbps
                    771: >2      byte&0xF0       0x60           \b,  48 kbps
                    772: >2      byte&0xF0       0x70           \b,  56 kbps
                    773: >2      byte&0xF0       0x80           \b,  64 kbps
                    774: >2      byte&0xF0       0x90           \b,  80 kbps
                    775: >2      byte&0xF0       0xA0           \b,  96 kbps
                    776: >2      byte&0xF0       0xB0           \b, 112 kbps
                    777: >2      byte&0xF0       0xC0           \b, 128 kbps
                    778: >2      byte&0xF0       0xD0           \b, 144 kbps
                    779: >2      byte&0xF0       0xE0           \b, 160 kbps
                    780: # timing
                    781: >2      byte&0x0C       0x00           \b, 22.05 kHz
                    782: >2      byte&0x0C       0x04           \b, 24 kHz
                    783: >2      byte&0x0C       0x08           \b, 16 kHz
                    784: # channels/options
                    785: >3      byte&0xC0       0x00           \b, Stereo
                    786: >3      byte&0xC0       0x40           \b, JntStereo
                    787: >3      byte&0xC0       0x80           \b, 2x Monaural
                    788: >3      byte&0xC0       0xC0           \b, Monaural
                    789: #>1     byte            ^0x01          \b, Data Verify
                    790: #>2     byte            &0x02          \b, Packet Pad
                    791: #>2     byte            &0x01          \b, Custom Flag
                    792: #>3     byte            &0x08          \b, Copyrighted
                    793: #>3     byte            &0x04          \b, Original Source
                    794: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    795: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    796: 
                    797: # MPA, M2A
                    798: 0       beshort&0xFFFE  0xFFF6         MPEG ADTS, layer I, v2
1.1.1.2   misho     799: !:mime audio/mpeg
1.1       misho     800: # rate
                    801: >2      byte&0xF0       0x10           \b,  32 kbps
                    802: >2      byte&0xF0       0x20           \b,  48 kbps
                    803: >2      byte&0xF0       0x30           \b,  56 kbps
                    804: >2      byte&0xF0       0x40           \b,  64 kbps
                    805: >2      byte&0xF0       0x50           \b,  80 kbps
                    806: >2      byte&0xF0       0x60           \b,  96 kbps
                    807: >2      byte&0xF0       0x70           \b, 112 kbps
                    808: >2      byte&0xF0       0x80           \b, 128 kbps
                    809: >2      byte&0xF0       0x90           \b, 144 kbps
                    810: >2      byte&0xF0       0xA0           \b, 160 kbps
                    811: >2      byte&0xF0       0xB0           \b, 176 kbps
                    812: >2      byte&0xF0       0xC0           \b, 192 kbps
                    813: >2      byte&0xF0       0xD0           \b, 224 kbps
                    814: >2      byte&0xF0       0xE0           \b, 256 kbps
                    815: # timing
                    816: >2      byte&0x0C       0x00           \b, 22.05 kHz
                    817: >2      byte&0x0C       0x04           \b, 24 kHz
                    818: >2      byte&0x0C       0x08           \b, 16 kHz
                    819: # channels/options
                    820: >3      byte&0xC0       0x00           \b, Stereo
                    821: >3      byte&0xC0       0x40           \b, JntStereo
                    822: >3      byte&0xC0       0x80           \b, 2x Monaural
                    823: >3      byte&0xC0       0xC0           \b, Monaural
                    824: #>1     byte            ^0x01          \b, Data Verify
                    825: #>2     byte            &0x02          \b, Packet Pad
                    826: #>2     byte            &0x01          \b, Custom Flag
                    827: #>3     byte            &0x08          \b, Copyrighted
                    828: #>3     byte            &0x04          \b, Original Source
                    829: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    830: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    831: 
                    832: # MP3, M25A
                    833: 0       beshort&0xFFFE  0xFFE2         MPEG ADTS, layer III,  v2.5
1.1.1.2   misho     834: !:mime audio/mpeg
1.1       misho     835: # rate  
                    836: >2      byte&0xF0       0x10           \b,   8 kbps
                    837: >2      byte&0xF0       0x20           \b,  16 kbps
                    838: >2      byte&0xF0       0x30           \b,  24 kbps
                    839: >2      byte&0xF0       0x40           \b,  32 kbps
                    840: >2      byte&0xF0       0x50           \b,  40 kbps
                    841: >2      byte&0xF0       0x60           \b,  48 kbps
                    842: >2      byte&0xF0       0x70           \b,  56 kbps
                    843: >2      byte&0xF0       0x80           \b,  64 kbps
                    844: >2      byte&0xF0       0x90           \b,  80 kbps
                    845: >2      byte&0xF0       0xA0           \b,  96 kbps
                    846: >2      byte&0xF0       0xB0           \b, 112 kbps
                    847: >2      byte&0xF0       0xC0           \b, 128 kbps
                    848: >2      byte&0xF0       0xD0           \b, 144 kbps
                    849: >2      byte&0xF0       0xE0           \b, 160 kbps
                    850: # timing
                    851: >2      byte&0x0C       0x00           \b, 11.025 kHz
                    852: >2      byte&0x0C       0x04           \b, 12 kHz
                    853: >2      byte&0x0C       0x08           \b, 8 kHz
                    854: # channels/options
                    855: >3      byte&0xC0       0x00           \b, Stereo
                    856: >3      byte&0xC0       0x40           \b, JntStereo
                    857: >3      byte&0xC0       0x80           \b, 2x Monaural
                    858: >3      byte&0xC0       0xC0           \b, Monaural
                    859: #>1     byte            ^0x01          \b, Data Verify
                    860: #>2     byte            &0x02          \b, Packet Pad
                    861: #>2     byte            &0x01          \b, Custom Flag
                    862: #>3     byte            &0x08          \b, Copyrighted
                    863: #>3     byte            &0x04          \b, Original Source
                    864: #>3     byte&0x03       1              \b, NR: 50/15 ms
                    865: #>3     byte&0x03       3              \b, NR: CCIT J.17
                    866: 
                    867: # AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
                    868: 
                    869: # Stored AAC streams (instead of the MP4 format)
                    870: 0       string          ADIF           MPEG ADIF, AAC
                    871: !:mime audio/x-hx-aac-adif
                    872: >4      byte            &0x80
                    873: >>13    byte            &0x10          \b, VBR
                    874: >>13    byte            ^0x10          \b, CBR
                    875: >>16    byte&0x1E       0x02           \b, single stream
                    876: >>16    byte&0x1E       0x04           \b, 2 streams
                    877: >>16    byte&0x1E       0x06           \b, 3 streams
                    878: >>16    byte            &0x08          \b, 4 or more streams
                    879: >>16    byte            &0x10          \b, 8 or more streams
                    880: >>4    byte            &0x80          \b, Copyrighted
                    881: >>13   byte            &0x40          \b, Original Source
                    882: >>13   byte            &0x20          \b, Home Flag
                    883: >4      byte            ^0x80
                    884: >>4     byte            &0x10          \b, VBR
                    885: >>4     byte            ^0x10          \b, CBR
                    886: >>7     byte&0x1E       0x02           \b, single stream
                    887: >>7     byte&0x1E       0x04           \b, 2 streams
                    888: >>7     byte&0x1E       0x06           \b, 3 streams
                    889: >>7     byte            &0x08          \b, 4 or more streams
                    890: >>7     byte            &0x10          \b, 8 or more streams
                    891: >>4    byte            &0x40          \b, Original Stream(s)
                    892: >>4    byte            &0x20          \b, Home Source
                    893: 
                    894: # Live or stored single AAC stream (used with MPEG-2 systems)
                    895: 0       beshort&0xFFF6  0xFFF0         MPEG ADTS, AAC
                    896: !:mime audio/x-hx-aac-adts
                    897: >1      byte            &0x08          \b, v2
                    898: >1      byte            ^0x08          \b, v4
                    899: # profile
                    900: >>2     byte            &0xC0          \b LTP
                    901: >2      byte&0xc0       0x00           \b Main
                    902: >2      byte&0xc0       0x40           \b LC
                    903: >2      byte&0xc0       0x80           \b SSR
                    904: # timing
                    905: >2      byte&0x3c       0x00           \b, 96 kHz
                    906: >2      byte&0x3c       0x04           \b, 88.2 kHz
                    907: >2      byte&0x3c       0x08           \b, 64 kHz
                    908: >2      byte&0x3c       0x0c           \b, 48 kHz
                    909: >2      byte&0x3c       0x10           \b, 44.1 kHz
                    910: >2      byte&0x3c       0x14           \b, 32 kHz
                    911: >2      byte&0x3c       0x18           \b, 24 kHz
                    912: >2      byte&0x3c       0x1c           \b, 22.05 kHz
                    913: >2      byte&0x3c       0x20           \b, 16 kHz
                    914: >2      byte&0x3c       0x24           \b, 12 kHz
                    915: >2      byte&0x3c       0x28           \b, 11.025 kHz
                    916: >2      byte&0x3c       0x2c           \b, 8 kHz
                    917: # channels
                    918: >2      beshort&0x01c0  0x0040         \b, monaural
                    919: >2      beshort&0x01c0  0x0080         \b, stereo
                    920: >2      beshort&0x01c0  0x00c0         \b, stereo + center
                    921: >2      beshort&0x01c0  0x0100         \b, stereo+center+LFE
                    922: >2      beshort&0x01c0  0x0140         \b, surround
                    923: >2      beshort&0x01c0  0x0180         \b, surround + LFE
                    924: >2      beshort         &0x01C0        \b, surround + side
                    925: #>1     byte            ^0x01           \b, Data Verify
                    926: #>2     byte            &0x02           \b, Custom Flag
                    927: #>3     byte            &0x20           \b, Original Stream
                    928: #>3     byte            &0x10           \b, Home Source
                    929: #>3     byte            &0x08           \b, Copyrighted
                    930: 
                    931: # Live MPEG-4 audio streams (instead of RTP FlexMux)
                    932: 0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
                    933: !:mime audio/x-mp4a-latm
                    934: #>1     beshort&0x1FFF  x              \b, %u byte packet
                    935: >3      byte&0xE0       0x40
                    936: >>4     byte&0x3C       0x04           \b, single stream
                    937: >>4     byte&0x3C       0x08           \b, 2 streams
                    938: >>4     byte&0x3C       0x0C           \b, 3 streams
                    939: >>4     byte            &0x08          \b, 4 or more streams
                    940: >>4     byte            &0x20          \b, 8 or more streams
                    941: >3      byte&0xC0       0
                    942: >>4     byte&0x78       0x08           \b, single stream
                    943: >>4     byte&0x78       0x10           \b, 2 streams
                    944: >>4     byte&0x78       0x18           \b, 3 streams
                    945: >>4     byte            &0x20          \b, 4 or more streams
                    946: >>4     byte            &0x40          \b, 8 or more streams
                    947: # This magic isn't strong enough (matches plausible ISO-8859-1 text)
                    948: #0       beshort         0x4DE1         MPEG-4 LO-EP audio stream
                    949: #!:mime        audio/x-mp4a-latm
                    950: 
                    951: # Summary: FLI animation format
                    952: # Created by: Daniel Quinlan <quinlan@yggdrasil.com>
                    953: # Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
                    954: 4      leshort         0xAF11
                    955: # standard FLI always has 320x200 resolution and 8 bit color
                    956: >8     leshort         320
                    957: >>10   leshort         200
                    958: >>>12  leshort         8                       FLI animation, 320x200x8
                    959: !:mime video/x-fli
                    960: >>>>6  leshort         x                       \b, %d frames
                    961: # frame speed is multiple of 1/70s
                    962: >>>>16 leshort         x                       \b, %d/70s per frame
                    963: 
                    964: # Summary: FLC animation format
                    965: # Created by: Daniel Quinlan <quinlan@yggdrasil.com>
                    966: # Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
                    967: 4      leshort         0xAF12
                    968: # standard FLC always use 8 bit color
                    969: >12    leshort         8                       FLC animation
                    970: !:mime video/x-flc
                    971: >>8    leshort         x                       \b, %d
                    972: >>10   leshort         x                       \bx%dx8
                    973: >>6    uleshort        x                       \b, %d frames
                    974: >>16   uleshort        x                       \b, %dms per frame
                    975: 
                    976: # DL animation format
                    977: # XXX - collision with most `mips' magic
                    978: #
                    979: # I couldn't find a real magic number for these, however, this
                    980: # -appears- to work.  Note that it might catch other files, too, so be
                    981: # careful!
                    982: #
                    983: # Note that title and author appear in the two 20-byte chunks
                    984: # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
                    985: # 255 (hex FF)!  The DL format is really bad.
                    986: #
                    987: #0     byte    1       DL version 1, medium format (160x100, 4 images/screen)
                    988: #!:mime        video/x-unknown
                    989: #>42   byte    x       - %d screens,
                    990: #>43   byte    x       %d commands
                    991: #0     byte    2       DL version 2
                    992: #!:mime        video/x-unknown
                    993: #>1    byte    1       - large format (320x200,1 image/screen),
                    994: #>1    byte    2       - medium format (160x100,4 images/screen),
                    995: #>1    byte    >2      - unknown format,
                    996: #>42   byte    x       %d screens,
                    997: #>43   byte    x       %d commands
                    998: # Based on empirical evidence, DL version 3 have several nulls following the
                    999: # \003.  Most of them start with non-null values at hex offset 0x34 or so.
                   1000: #0     string  \3\0\0\0\0\0\0\0\0\0\0\0        DL version 3
                   1001: 
                   1002: # iso 13818 transport stream
                   1003: #
                   1004: # from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
                   1005: # syncbyte      8 bit  0x47
                   1006: # error_ind     1 bit  -
                   1007: # payload_start 1 bit  1
                   1008: # priority      1 bit  -
                   1009: # PID          13 bit  0x0000
                   1010: # scrambling    2 bit  -
                   1011: # adaptfld_ctrl 2 bit  1 or 3
1.1.1.3   misho    1012: # conti_count   4 bit  -
                   1013: 0      belong&0xFF5FFF10       0x47400010
                   1014: >188   byte                    0x47            MPEG transport stream data
1.1       misho    1015: 
                   1016: # DIF digital video file format <mpruett@sgi.com>
                   1017: 0      belong&0xffffff00       0x1f070000      DIF
                   1018: >4     byte                    &0x01           (DVCPRO) movie file
                   1019: >4     byte                    ^0x01           (DV) movie file
                   1020: >3     byte                    &0x80           (PAL)
                   1021: >3     byte                    ^0x80           (NTSC)
                   1022: 
                   1023: # Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
                   1024: 0      belong                  0x3026b275      Microsoft ASF
1.1.1.2   misho    1025: !:mime  video/x-ms-asf
1.1       misho    1026: 
                   1027: # MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
                   1028: 0      string                  \x8aMNG         MNG video data,
                   1029: !:mime video/x-mng
                   1030: >4     belong                  !0x0d0a1a0a     CORRUPTED,
                   1031: >4     belong                  0x0d0a1a0a
                   1032: >>16    belong x                               %ld x
                   1033: >>20    belong x                               %ld
                   1034: 
                   1035: # JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
                   1036: 0      string                  \x8bJNG         JNG video data,
                   1037: !:mime video/x-jng
                   1038: >4     belong                  !0x0d0a1a0a     CORRUPTED,
                   1039: >4     belong                  0x0d0a1a0a
                   1040: >>16    belong x                               %ld x
                   1041: >>20    belong x                               %ld
                   1042: 
                   1043: # Vivo video (Wolfram Kleff)
                   1044: 3      string          \x0D\x0AVersion:Vivo    Vivo video data
                   1045: 
                   1046: # VRML (Virtual Reality Modelling Language)
1.1.1.2   misho    1047: 0       string/w        #VRML\ V1.0\ ascii     VRML 1 file
1.1       misho    1048: !:mime model/vrml
1.1.1.2   misho    1049: 0      string/w        #VRML\ V2.0\ utf8       ISO/IEC 14772 VRML 97 file
1.1       misho    1050: !:mime model/vrml
                   1051: 
                   1052: # X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
                   1053: # From Michel Briand <michelbriand@free.fr>
1.1.1.3   misho    1054: 0      string/t                \<?xml\ version="
1.1       misho    1055: !:strength +1
1.1.1.2   misho    1056: >20    search/1000/cw  \<!DOCTYPE\ X3D         X3D (Extensible 3D) model xml text
1.1       misho    1057: !:mime model/x3d
                   1058: 
                   1059: #---------------------------------------------------------------------------
                   1060: # HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
                   1061: # From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
                   1062: #
                   1063: 0      string          HVQM4           %s
                   1064: >6     string          >\0             v%s
                   1065: >0     byte            x               GameCube movie,
                   1066: >0x34  ubeshort        x               %d x
                   1067: >0x36  ubeshort        x               %d,
1.1.1.3   misho    1068: >0x26  ubeshort        x               %dus,
1.1       misho    1069: >0x42  ubeshort        0               no audio
                   1070: >0x42  ubeshort        >0              %dHz audio
                   1071: 
                   1072: # From: "Stefan A. Haubenthal" <polluks@web.de>
                   1073: 0      string          DVDVIDEO-VTS    Video title set,
                   1074: >0x21  byte            x               v%x
                   1075: 0      string          DVDVIDEO-VMG    Video manager,
                   1076: >0x21  byte            x               v%x
                   1077: 
                   1078: # From: Behan Webster <behanw@websterwood.com>
                   1079: # NuppelVideo used by Mythtv (*.nuv)
                   1080: # Note: there are two identical stanzas here differing only in the
                   1081: # initial string matched. It used to be done with a regex, but we're
                   1082: # trying to get rid of those.
                   1083: 0      string          NuppelVideo     MythTV NuppelVideo
                   1084: >12    string          x               v%s
                   1085: >20    lelong          x               (%d
                   1086: >24    lelong          x               \bx%d),
                   1087: >36    string          P               \bprogressive,
                   1088: >36    string          I               \binterlaced,
                   1089: >40    ledouble        x               \baspect:%.2f,
                   1090: >48    ledouble        x               \bfps:%.2f
                   1091: 0      string          MythTV          MythTV NuppelVideo
                   1092: >12    string          x               v%s
                   1093: >20    lelong          x               (%d
                   1094: >24    lelong          x               \bx%d),
                   1095: >36    string          P               \bprogressive,
                   1096: >36    string          I               \binterlaced,
                   1097: >40    ledouble        x               \baspect:%.2f,
                   1098: >48    ledouble        x               \bfps:%.2f
                   1099: 
                   1100: #                                              MPEG file
                   1101: # MPEG sequences
                   1102: # FIXME: This section is from the old magic.mime file and needs integrating with the rest
                   1103: 0       belong             0x000001BA
                   1104: >4      byte               &0x40
                   1105: !:mime video/mp2p
                   1106: >4      byte               ^0x40
                   1107: !:mime video/mpeg
                   1108: 0       belong             0x000001BB
                   1109: !:mime video/mpeg
                   1110: 0       belong             0x000001B0
                   1111: !:mime video/mp4v-es
                   1112: 0       belong             0x000001B5
                   1113: !:mime video/mp4v-es
                   1114: 0       belong             0x000001B3
                   1115: !:mime video/mpv
                   1116: 0       belong&0xFF5FFF1F  0x47400010
                   1117: !:mime video/mp2t
                   1118: 0       belong             0x00000001
                   1119: >4      byte&0x1F         0x07
                   1120: !:mime video/h264
                   1121: 
1.1.1.2   misho    1122: # Type: Bink Video
1.1.1.3   misho    1123: # Extension: .bik
                   1124: # URL:  http://wiki.multimedia.cx/index.php?title=Bink_Container
1.1.1.2   misho    1125: # From: <hoehle@users.sourceforge.net>  2008-07-18
                   1126: 0      string          BIK     Bink Video
                   1127: >3     regex           =[a-z]  rev.%s
                   1128: #>4    ulelong         x       size %d
                   1129: >20    ulelong         x       \b, %d
                   1130: >24    ulelong         x       \bx%d
                   1131: >8     ulelong         x       \b, %d frames
                   1132: >32    ulelong         x       at rate %d/
                   1133: >28    ulelong         >1      \b%d
                   1134: >40    ulelong         =0      \b, no audio
                   1135: >40    ulelong         !0      \b, %d audio track
                   1136: >>40   ulelong         !1      \bs
                   1137: # follow properties of the first audio track only
                   1138: >>48   uleshort        x       %dHz
                   1139: >>51   byte&0x20       0       mono
                   1140: >>51   byte&0x20       !0      stereo
                   1141: #>>51  byte&0x10       0       FFT
                   1142: #>>51  byte&0x10       !0      DCT
                   1143: 
                   1144: # Type:        NUT Container
                   1145: # URL: http://wiki.multimedia.cx/index.php?title=NUT
                   1146: # From:        Adam Buchbinder <adam.buchbinder@gmail.com>
                   1147: 0      string  nut/multimedia\ container\0     NUT multimedia container
                   1148: 
1.1.1.3   misho    1149: # Type: Nullsoft Video (NSV)
                   1150: # URL:  http://wiki.multimedia.cx/index.php?title=Nullsoft_Video
                   1151: # From: Mike Melanson <mike@multimedia.cx>
                   1152: 0      string  NSVf    Nullsoft Video
                   1153: 
                   1154: # Type: REDCode Video
                   1155: # URL:  http://www.red.com/ ; http://wiki.multimedia.cx/index.php?title=REDCode
                   1156: # From: Mike Melanson <mike@multimedia.cx>
                   1157: 4      string  RED1    REDCode Video
                   1158: 
                   1159: # Type: MTV Multimedia File
                   1160: # URL:  http://wiki.multimedia.cx/index.php?title=MTV
                   1161: # From: Mike Melanson <mike@multimedia.cx>
                   1162: 0      string  AMVS    MTV Multimedia File
                   1163: 
                   1164: # Type: ARMovie
                   1165: # URL:  http://wiki.multimedia.cx/index.php?title=ARMovie
                   1166: # From: Mike Melanson <mike@multimedia.cx>
                   1167: 0      string  ARMovie\012     ARMovie
                   1168: 
                   1169: # Type: Interplay MVE Movie
                   1170: # URL:  http://wiki.multimedia.cx/index.php?title=Interplay_MVE
                   1171: # From: Mike Melanson <mike@multimedia.cx>
                   1172: 0      string  Interplay\040MVE\040File\032    Interplay MVE Movie
                   1173: 
                   1174: # Type: Windows Television DVR File
                   1175: # URL:  http://wiki.multimedia.cx/index.php?title=WTV
                   1176: # From: Mike Melanson <mike@mutlimedia.cx>
                   1177: # This takes the form of a Windows-style GUID
                   1178: 0      bequad  0xB7D800203749DA11
                   1179: >8     bequad  0xA64E0007E95EAD8D      Windows Television DVR Media
                   1180: 
                   1181: # Type: Sega FILM/CPK Multimedia
                   1182: # URL:  http://wiki.multimedia.cx/index.php?title=Sega_FILM
                   1183: # From: Mike Melanson <mike@multimedia.cx>
                   1184: 0      string  FILM    Sega FILM/CPK Multimedia,
                   1185: >32    belong  x       %d x
                   1186: >28    belong  x       %d
                   1187: 
                   1188: # Type: Nintendo THP Multimedia
                   1189: # URL:  http://wiki.multimedia.cx/index.php?title=THP
                   1190: # From: Mike Melanson <mike@multimedia.cx>
                   1191: 0      string  THP\0   Nintendo THP Multimedia
                   1192: 
                   1193: # Type: BBC Dirac Video
                   1194: # URL:  http://wiki.multimedia.cx/index.php?title=Dirac
                   1195: # From: Mike Melanson <mike@multimedia.cx>
                   1196: 0      string  BBCD    BBC Dirac Video
                   1197: 
                   1198: # Type: RAD Game Tools Smacker Multimedia
                   1199: # URL:  http://wiki.multimedia.cx/index.php?title=Smacker
                   1200: # From: Mike Melanson <mike@multimedia.cx>
                   1201: 0      string  SMK     RAD Game Tools Smacker Multimedia
                   1202: >3     byte    x       version %c,
                   1203: >4     lelong  x       %d x
                   1204: >8     lelong  x       %d,
                   1205: >12    lelong  x       %d frames
                   1206: 
                   1207: #------------------------------------------------------------------------------
                   1208: # $File: aout,v 1.1 2013/01/09 22:37:23 christos Exp $
                   1209: # aout:  file(1) magic for a.out executable/object/etc entries that
                   1210: # handle executables on multiple platforms.
                   1211: #
                   1212: 
                   1213: #
                   1214: # Little-endian 32-bit-int a.out, merged from bsdi (for BSD/OS, from
                   1215: # BSDI), netbsd, and vax (for UNIX/32V and BSD)
                   1216: #
                   1217: # XXX - is there anything we can look at to distinguish BSD/OS 386 from
                   1218: # NetBSD 386 from various VAX binaries?  The BSD/OS shared library flag
                   1219: # works only for binaries using shared libraries.  Grabbing the entry
                   1220: # point from the a.out header, using it to find the first code executed
                   1221: # in the program, and looking at that might help.
                   1222: #
                   1223: 0      lelong          0407            a.out little-endian 32-bit executable
                   1224: >16    lelong          >0              not stripped
                   1225: >32    byte            0x6a            (uses BSD/OS shared libs)
                   1226: 
                   1227: 0      lelong          0410            a.out little-endian 32-bit pure executable
                   1228: >16    lelong          >0              not stripped
                   1229: >32    byte            0x6a            (uses BSD/OS shared libs)
                   1230: 
                   1231: 0      lelong          0413            a.out little-endian 32-bit demand paged pure executable
                   1232: >16    lelong          >0              not stripped
                   1233: >32    byte            0x6a            (uses BSD/OS shared libs)
                   1234: 
                   1235: #
                   1236: # Big-endian 32-bit-int a.out, merged from sun (for old 68010 SunOS a.out),
                   1237: # mips (for old 68020(!) SGI a.out), and netbsd (for old big-endian a.out).
                   1238: #
                   1239: # XXX - is there anything we can look at to distinguish old SunOS 68010
                   1240: # from old 68020 IRIX from old NetBSD?  Again, I guess we could look at
                   1241: # the first instruction or instructions in the program.
                   1242: #
                   1243: 0      belong          0407            a.out big-endian 32-bit executable
                   1244: >16    belong          >0              not stripped
                   1245: 
                   1246: 0      belong          0410            a.out big-endian 32-bit pure executable
                   1247: >16    belong          >0              not stripped
                   1248: 
                   1249: 0      belong          0413            a.out big-endian 32-bit demand paged executable
                   1250: >16    belong          >0              not stripped
                   1251: 
                   1252: 
1.1       misho    1253: #------------------------------------------------------------------------------
1.1.1.2   misho    1254: # $File: apl,v 1.6 2009/09/19 16:28:07 christos Exp $
1.1       misho    1255: # apl:  file(1) magic for APL (see also "pdp" and "vax" for other APL
                   1256: #       workspaces)
                   1257: #
                   1258: 0      long            0100554         APL workspace (Ken's original?)
1.1.1.2   misho    1259: 
1.1       misho    1260: #------------------------------------------------------------------------------
1.1.1.3   misho    1261: # $File: apple,v 1.27 2013/03/09 22:36:00 christos Exp $
1.1       misho    1262: # apple:  file(1) magic for Apple file formats
                   1263: #
1.1.1.3   misho    1264: 0      search/1/t      FiLeStArTfIlEsTaRt      binscii (apple ][) text
1.1       misho    1265: 0      string          \x0aGL                  Binary II (apple ][) data
                   1266: 0      string          \x76\xff                Squeezed (apple ][) data
                   1267: 0      string          NuFile                  NuFile archive (apple ][) data
                   1268: 0      string          N\xf5F\xe9l\xe5         NuFile archive (apple ][) data
                   1269: 0      belong          0x00051600              AppleSingle encoded Macintosh file
                   1270: 0      belong          0x00051607              AppleDouble encoded Macintosh file
                   1271: 
                   1272: # Type: Apple Emulator 2IMG format
                   1273: # From: Radek Vokal <rvokal@redhat.com>
                   1274: 0      string          2IMG    Apple ][ 2IMG Disk Image
                   1275: >4     string          XGS!    \b, XGS
                   1276: >4     string          CTKG    \b, Catakig
                   1277: >4     string          ShIm    \b, Sheppy's ImageMaker
                   1278: >4     string          WOOF    \b, Sweet 16
                   1279: >4     string          B2TR    \b, Bernie ][ the Rescue
                   1280: >4     string          !nfc    \b, ASIMOV2
                   1281: >4     string          x       \b, Unknown Format
                   1282: >0xc   byte            00      \b, DOS 3.3 sector order
                   1283: >>0x10 byte            00      \b, Volume 254
                   1284: >>0x10 byte&0x7f       x       \b, Volume %u
                   1285: >0xc   byte            01      \b, ProDOS sector order
                   1286: >>0x14 short           x       \b, %u Blocks
                   1287: >0xc   byte            02      \b, NIB data
                   1288: 
                   1289: # magic for Newton PDA package formats
                   1290: # from Ruda Moura <ruda@helllabs.org>
                   1291: 0      string  package0        Newton package, NOS 1.x,
                   1292: >12    belong  &0x80000000     AutoRemove,
                   1293: >12    belong  &0x40000000     CopyProtect,
                   1294: >12    belong  &0x10000000     NoCompression,
                   1295: >12    belong  &0x04000000     Relocation,
                   1296: >12    belong  &0x02000000     UseFasterCompression,
                   1297: >16    belong  x               version %d
                   1298: 
                   1299: 0      string  package1        Newton package, NOS 2.x,
                   1300: >12    belong  &0x80000000     AutoRemove,
                   1301: >12    belong  &0x40000000     CopyProtect,
                   1302: >12    belong  &0x10000000     NoCompression,
                   1303: >12    belong  &0x04000000     Relocation,
                   1304: >12    belong  &0x02000000     UseFasterCompression,
                   1305: >16    belong  x               version %d
                   1306: 
                   1307: 0      string  package4        Newton package,
                   1308: >8     byte    8               NOS 1.x,
                   1309: >8     byte    9               NOS 2.x,
                   1310: >12    belong  &0x80000000     AutoRemove,
                   1311: >12    belong  &0x40000000     CopyProtect,
                   1312: >12    belong  &0x10000000     NoCompression,
                   1313: 
                   1314: # The following entries for the Apple II are for files that have
                   1315: # been transferred as raw binary data from an Apple, without having
                   1316: # been encapsulated by any of the above archivers.
                   1317: #
                   1318: # In general, Apple II formats are hard to identify because Apple DOS
                   1319: # and especially Apple ProDOS have strong typing in the file system and
                   1320: # therefore programmers never felt much need to include type information
                   1321: # in the files themselves.
                   1322: #
                   1323: # Eric Fischer <enf@pobox.com>
                   1324: 
                   1325: # AppleWorks word processor:
                   1326: #
                   1327: # This matches the standard tab stops for an AppleWorks file, but if
                   1328: # a file has a tab stop set in the first four columns this will fail.
                   1329: #
                   1330: # The "O" is really the magic number, but that's so common that it's
                   1331: # necessary to check the tab stops that follow it to avoid false positives.
                   1332: 
                   1333: 4       string          O====   AppleWorks word processor data
                   1334: >85     byte&0x01       >0      \b, zoomed
                   1335: >90     byte&0x01       >0      \b, paginated
                   1336: >92     byte&0x01       >0      \b, with mail merge
                   1337: #>91    byte            x       \b, left margin %d
                   1338: 
                   1339: # AppleWorks database:
                   1340: #
                   1341: # This isn't really a magic number, but it's the closest thing to one
                   1342: # that I could find.  The 1 and 2 really mean "order in which you defined
                   1343: # categories" and "left to right, top to bottom," respectively; the D and R
                   1344: # mean that the cursor should move either down or right when you press Return.
                   1345: 
                   1346: #30    string          \x01D   AppleWorks database data
                   1347: #30    string          \x02D   AppleWorks database data
                   1348: #30    string          \x01R   AppleWorks database data
                   1349: #30    string          \x02R   AppleWorks database data
                   1350: 
                   1351: # AppleWorks spreadsheet:
                   1352: #
                   1353: # Likewise, this isn't really meant as a magic number.  The R or C means
                   1354: # row- or column-order recalculation; the A or M means automatic or manual
                   1355: # recalculation.
                   1356: 
                   1357: #131   string          RA      AppleWorks spreadsheet data
                   1358: #131   string          RM      AppleWorks spreadsheet data
                   1359: #131   string          CA      AppleWorks spreadsheet data
                   1360: #131   string          CM      AppleWorks spreadsheet data
                   1361: 
                   1362: # Applesoft BASIC:
                   1363: #
                   1364: # This is incredibly sloppy, but will be true if the program was
                   1365: # written at its usual memory location of 2048 and its first line
                   1366: # number is less than 256.  Yuck.
1.1.1.3   misho    1367: # update by Joerg Jenderek at Feb 2013
1.1       misho    1368: 
1.1.1.3   misho    1369: # GRR: this test is still too general as it catches also Gujin BOOT144.SYS (0xfa080000)
                   1370: #0       belong&0xff00ff 0x80000 Applesoft BASIC program data
                   1371: 0      belong&0x00ff00ff       0x00080000      
                   1372: # assuming that line number must be positive
                   1373: >2     leshort                 >0              Applesoft BASIC program data, first line number %d
1.1       misho    1374: #>2     leshort         x       \b, first line number %d
                   1375: 
                   1376: # ORCA/EZ assembler:
                   1377: # 
                   1378: # This will not identify ORCA/M source files, since those have
                   1379: # some sort of date code instead of the two zero bytes at 6 and 7
                   1380: # XXX Conflicts with ELF
                   1381: #4       belong&0xff00ffff       0x01000000      ORCA/EZ assembler source data
                   1382: #>5      byte                    x               \b, build number %d
                   1383: 
                   1384: # Broderbund Fantavision
                   1385: #
                   1386: # I don't know what these values really mean, but they seem to recur.
                   1387: # Will they cause too many conflicts?
                   1388: 
                   1389: # Probably :-)
                   1390: #2     belong&0xFF00FF         0x040008        Fantavision movie data
                   1391: 
                   1392: # Some attempts at images.
                   1393: #
                   1394: # These are actually just bit-for-bit dumps of the frame buffer, so
                   1395: # there's really no reasonably way to distinguish them except for their
                   1396: # address (if preserved) -- 8192 or 16384 -- and their length -- 8192
                   1397: # or, occasionally, 8184.
                   1398: #
                   1399: # Nevertheless this will manage to catch a lot of images that happen
                   1400: # to have a solid-colored line at the bottom of the screen.
                   1401: 
                   1402: # GRR: Magic too weak
                   1403: #8144  string  \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F        Apple II image with white background
                   1404: #8144  string  \x55\x2A\x55\x2A\x55\x2A\x55\x2A        Apple II image with purple background
                   1405: #8144  string  \x2A\x55\x2A\x55\x2A\x55\x2A\x55        Apple II image with green background
                   1406: #8144  string  \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA        Apple II image with blue background
                   1407: #8144  string  \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5        Apple II image with orange background
                   1408: 
                   1409: # Beagle Bros. Apple Mechanic fonts
                   1410: 
                   1411: 0      belong&0xFF00FFFF       0x6400D000      Apple Mechanic font
                   1412: 
                   1413: # Apple Universal Disk Image Format (UDIF) - dmg files.
                   1414: # From Johan Gade.
                   1415: # These entries are disabled for now until we fix the following issues.
                   1416: #
                   1417: # Note there might be some problems with the "VAX COFF executable" 
                   1418: # entry. Note this entry should be placed before the mac filesystem section, 
                   1419: # particularly the "Apple Partition data" entry.
                   1420: #
                   1421: # The intended meaning of these tests is, that the file is only of the 
                   1422: # specified type if both of the lines are correct - i.e. if the first
                   1423: # line matches and the second doesn't then it is not of that type.
                   1424: #
                   1425: #0     long    0x7801730d
                   1426: #>4    long    0x62626060      UDIF read-only zlib-compressed image (UDZO)
                   1427: #
                   1428: # Note that this entry is recognized correctly by the "Apple Partition 
                   1429: # data" entry - however since this entry is more specific - this
                   1430: # information seems to be more useful.
                   1431: #0     long    0x45520200
                   1432: #>0x410        string  disk\ image     UDIF read/write image (UDRW)
                   1433: 
                   1434: # From: Toby Peterson <toby@apple.com>
                   1435: 0      string  bplist00        Apple binary property list
                   1436: 
                   1437: # Apple binary property list (bplist)
                   1438: #  Assumes version bytes are hex.
                   1439: #  Provides content hints for version 0 files. Assumes that the root
                   1440: #  object is the first object (true for CoreFoundation implementation).
                   1441: # From: David Remahl <dremahl@apple.com>
                   1442: 0              string  bplist
                   1443: >6             byte    x       \bCoreFoundation binary property list data, version 0x%c
                   1444: >>7            byte    x       \b%c
                   1445: >6             string          00              \b
                   1446: >>8            byte&0xF0       0x00    \b
                   1447: >>>8   byte&0x0F       0x00    \b, root type: null
                   1448: >>>8   byte&0x0F       0x08    \b, root type: false boolean
                   1449: >>>8   byte&0x0F       0x09    \b, root type: true boolean
                   1450: >>8            byte&0xF0       0x10    \b, root type: integer
                   1451: >>8            byte&0xF0       0x20    \b, root type: real
                   1452: >>8            byte&0xF0       0x30    \b, root type: date
                   1453: >>8            byte&0xF0       0x40    \b, root type: data
                   1454: >>8            byte&0xF0       0x50    \b, root type: ascii string
                   1455: >>8            byte&0xF0       0x60    \b, root type: unicode string
                   1456: >>8            byte&0xF0       0x80    \b, root type: uid (CORRUPT)
                   1457: >>8            byte&0xF0       0xa0    \b, root type: array
                   1458: >>8            byte&0xF0       0xd0    \b, root type: dictionary
                   1459: 
                   1460: # Apple/NeXT typedstream data
                   1461: #  Serialization format used by NeXT and Apple for various
                   1462: #  purposes in YellowStep/Cocoa, including some nib files.
                   1463: # From: David Remahl <dremahl@apple.com>
                   1464: 2              string          typedstream     NeXT/Apple typedstream data, big endian
                   1465: >0             byte            x               \b, version %hhd
                   1466: >0             byte            <5              \b
                   1467: >>13   byte            0x81    \b
                   1468: >>>14  ubeshort        x               \b, system %hd
                   1469: 2              string          streamtyped NeXT/Apple typedstream data, little endian
                   1470: >0             byte            x               \b, version %hhd
                   1471: >0             byte            <5              \b
                   1472: >>13   byte            0x81    \b
                   1473: >>>14  uleshort        x               \b, system %hd
                   1474: 
                   1475: #------------------------------------------------------------------------------
                   1476: # CAF: Apple CoreAudio File Format
                   1477: #
                   1478: # Container format for high-end audio purposes.
                   1479: # From: David Remahl <dremahl@apple.com>
                   1480: #
                   1481: 0      string          caff            CoreAudio Format audio file
                   1482: >4     beshort         <10             version %d
                   1483: >6     beshort         x
                   1484: 
                   1485: 
                   1486: #------------------------------------------------------------------------------
                   1487: # Keychain database files
                   1488: 0      string          kych            Mac OS X Keychain File
                   1489: 
                   1490: #------------------------------------------------------------------------------
                   1491: # Code Signing related file types
                   1492: 0      belong          0xfade0c00      Mac OS X Code Requirement
                   1493: >8     belong          1                       (opExpr)
                   1494: >4     belong          x                       - %d bytes
                   1495: 
                   1496: 0      belong          0xfade0c01      Mac OS X Code Requirement Set
                   1497: >8     belong          >1                      containing %d items
                   1498: >4     belong          x                       - %d bytes
                   1499: 
                   1500: 0      belong          0xfade0c02      Mac OS X Code Directory
                   1501: >8     belong          x                       version %x
                   1502: >12    belong          >0                      flags 0x%x
                   1503: >4     belong          x                       - %d bytes
                   1504: 
                   1505: 0      belong          0xfade0cc0      Mac OS X Detached Code Signature (non-executable)
                   1506: >4     belong          x                       - %d bytes
                   1507: 
                   1508: 0      belong          0xfade0cc1      Mac OS X Detached Code Signature
                   1509: >8     belong          >1                      (%d elements)
                   1510: >4     belong          x                       - %d bytes
                   1511: 
                   1512: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   1513: # .vdi
                   1514: 4      string innotek\ VirtualBox\ Disk\ Image %s
                   1515: 
1.1.1.3   misho    1516: # Apple disk partition stuff, strengthen the magic using byte 4
                   1517: 0      beshort 0x4552
                   1518: >4     byte    0                       Apple Driver Map
                   1519: >>2    beshort x                       \b, blocksize %d
                   1520: >>4    belong  x                       \b, blockcount %d
                   1521: >>10   beshort x                       \b, devtype %d
                   1522: >>12   beshort x                       \b, devid %d
                   1523: >>20   beshort x                       \b, descriptors %d
                   1524: # Assume       8 partitions each at a multiple of the sector size.
                   1525: # We could glean this from the partition descriptors, but they are empty!?!?
                   1526: >>(2.S*1)      indirect                \b, contains[@0x%x]: 
                   1527: >>(2.S*2)      indirect                \b, contains[@0x%x]: 
                   1528: >>(2.S*3)      indirect                \b, contains[@0x%x]: 
                   1529: >>(2.S*4)      indirect                \b, contains[@0x%x]: 
                   1530: >>(2.S*5)      indirect                \b, contains[@0x%x]: 
                   1531: >>(2.S*6)      indirect                \b, contains[@0x%x]: 
                   1532: >>(2.S*7)      indirect                \b, contains[@0x%x]: 
                   1533: >>(2.S*8)      indirect                \b, contains[@0x%x]: 
                   1534: 
                   1535: # Yes, the 3rd and 4th bytes are reserved, but we use them to make the
                   1536: # magic stronger.
                   1537: 0      belong  0x504d0000              Apple Partition Map
                   1538: >4     belong  x                       \b, map block count %d
                   1539: >8     belong  x                       \b, start block %d
                   1540: >12    belong  x                       \b, block count %d
                   1541: >16    string >0                       \b, name %s
                   1542: >48    string >0                       \b, type %s
                   1543: >124   string >0                       \b, processor %s
                   1544: >140   string >0                       \b, boot arguments %s
                   1545: >92    belong  & 1                     \b, valid
                   1546: >92    belong  & 2                     \b, allocated
                   1547: >92    belong  & 4                     \b, in use
                   1548: >92    belong  & 8                     \b, has boot info
                   1549: >92    belong  & 16                    \b, readable
                   1550: >92    belong  & 32                    \b, writable
                   1551: >92    belong  & 64                    \b, pic boot code
                   1552: >92    belong  & 128                   \b, chain compatible driver
                   1553: >92    belong  & 256                   \b, real driver
                   1554: >92    belong  & 512                   \b, chain driver
                   1555: >92    belong  & 1024                  \b, mount at startup
                   1556: >92    belong  & 2048                  \b, is the startup partition
                   1557: 
                   1558: #http://wiki.mozilla.org/DS_Store_File_Format`
                   1559: #http://en.wikipedia.org/wiki/.DS_Store
                   1560: 0      string  \0\0\0\1Bud1\0          Apple Desktop Services Store
                   1561: 
1.1       misho    1562: #------------------------------------------------------------------------------
1.1.1.2   misho    1563: # $File: applix,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    1564: # applix:  file(1) magic for Applixware
                   1565: # From: Peter Soos <sp@osb.hu>
                   1566: #
                   1567: 0      string          *BEGIN          Applixware
                   1568: >7     string          WORDS                   Words Document
                   1569: >7     string          GRAPHICS                Graphic
                   1570: >7     string          RASTER                  Bitmap
                   1571: >7     string          SPREADSHEETS            Spreadsheet
                   1572: >7     string          MACRO                   Macro
                   1573: >7     string          BUILDER                 Builder Object
                   1574: #------------------------------------------------------------------------------
1.1.1.3   misho    1575: # $File: archive,v 1.79 2013/02/08 17:24:06 christos Exp $
1.1       misho    1576: # archive:  file(1) magic for archive formats (see also "msdos" for self-
                   1577: #           extracting compressed archives)
                   1578: #
                   1579: # cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
                   1580: # pre-POSIX "tar" archives are handled in the C code.
                   1581: 
                   1582: # POSIX tar archives
                   1583: 257    string          ustar\0         POSIX tar archive
                   1584: !:mime application/x-tar # encoding: posix
                   1585: 257    string          ustar\040\040\0 GNU tar archive
                   1586: !:mime application/x-tar # encoding: gnu
                   1587: 
1.1.1.3   misho    1588: # Incremental snapshot gnu-tar format from:
                   1589: # http://www.gnu.org/software/tar/manual/html_node/Snapshot-Files.html
                   1590: 0      string          GNU\ tar-       GNU tar incremental snapshot data
                   1591: >&0    regex           [0-9]\.[0-9]+-[0-9]+    version %s
                   1592: 
1.1       misho    1593: # cpio archives
                   1594: #
                   1595: # Yes, the top two "cpio archive" formats *are* supposed to just be "short".
                   1596: # The idea is to indicate archives produced on machines with the same
                   1597: # byte order as the machine running "file" with "cpio archive", and
                   1598: # to indicate archives produced on machines with the opposite byte order
                   1599: # from the machine running "file" with "byte-swapped cpio archive".
                   1600: #
                   1601: # The SVR4 "cpio(4)" hints that there are additional formats, but they
                   1602: # are defined as "short"s; I think all the new formats are
                   1603: # character-header formats and thus are strings, not numbers.
                   1604: 0      short           070707          cpio archive
                   1605: !:mime application/x-cpio
                   1606: 0      short           0143561         byte-swapped cpio archive
                   1607: !:mime application/x-cpio # encoding: swapped
                   1608: 0      string          070707          ASCII cpio archive (pre-SVR4 or odc)
                   1609: 0      string          070701          ASCII cpio archive (SVR4 with no CRC)
                   1610: 0      string          070702          ASCII cpio archive (SVR4 with CRC)
                   1611: 
1.1.1.3   misho    1612: #
                   1613: # Various archive formats used by various versions of the "ar"
                   1614: # command.
                   1615: #
                   1616: 
                   1617: #
                   1618: # Original UNIX archive formats.
                   1619: # They were written with binary values in host byte order, and
                   1620: # the magic number was a host "int", which might have been 16 bits
                   1621: # or 32 bits.  We don't say "PDP-11" or "VAX", as there might have
                   1622: # been ports to little-endian 16-bit-int or 32-bit-int platforms
                   1623: # (x86?) using some of those formats; if none existed, feel free
                   1624: # to use "PDP-11" for little-endian 16-bit and "VAX" for little-endian
                   1625: # 32-bit.  There might have been big-endian ports of that sort as
                   1626: # well.
                   1627: #
                   1628: 0      leshort         0177555         very old 16-bit-int little-endian archive
                   1629: 0      beshort         0177555         very old 16-bit-int big-endian archive
                   1630: 0      lelong          0177555         very old 32-bit-int little-endian archive
                   1631: 0      belong          0177555         very old 32-bit-int big-endian archive
                   1632: 
                   1633: 0      leshort         0177545         old 16-bit-int little-endian archive
                   1634: >2     string          __.SYMDEF       random library
                   1635: 0      beshort         0177545         old 16-bit-int big-endian archive
                   1636: >2     string          __.SYMDEF       random library
                   1637: 0      lelong          0177545         old 32-bit-int little-endian archive
                   1638: >4     string          __.SYMDEF       random library
                   1639: 0      belong          0177545         old 32-bit-int big-endian archive
                   1640: >4     string          __.SYMDEF       random library
                   1641: 
                   1642: #
                   1643: # From "pdp" (but why a 4-byte quantity?)
                   1644: #
                   1645: 0      lelong          0x39bed         PDP-11 old archive
                   1646: 0      lelong          0x39bee         PDP-11 4.0 archive
                   1647: 
                   1648: #
                   1649: # XXX - what flavor of APL used this, and was it a variant of
                   1650: # some ar archive format?  It's similar to, but not the same
                   1651: # as, the APL workspace magic numbers in pdp.
                   1652: #
                   1653: 0      long            0100554         apl workspace
                   1654: 
                   1655: #
                   1656: # System V Release 1 portable(?) archive format.
                   1657: #
                   1658: 0      string          =<ar>           System V Release 1 ar archive
                   1659: !:mime application/x-archive
                   1660: 
                   1661: #
                   1662: # Debian package; it's in the portable archive format, and needs to go
                   1663: # before the entry for regular portable archives, as it's recognized as
                   1664: # a portable archive whose first member has a name beginning with
                   1665: # "debian".
1.1       misho    1666: #
                   1667: 0      string          =!<arch>\ndebian
                   1668: !:mime application/x-debian-package
                   1669: >8     string          debian-split    part of multipart Debian package
                   1670: >8     string          debian-binary   Debian binary package
                   1671: >8     string          !debian
                   1672: >68    string          >\0             (format %s)
                   1673: # These next two lines do not work, because a bzip2 Debian archive
                   1674: # still uses gzip for the control.tar (first in the archive).  Only
                   1675: # data.tar varies, and the location of its filename varies too.
                   1676: # file/libmagic does not current have support for ascii-string based
                   1677: # (offsets) as of 2005-09-15.
                   1678: #>81   string          bz2             \b, uses bzip2 compression
                   1679: #>84   string          gz              \b, uses gzip compression
                   1680: #>136  ledate          x               created: %s
                   1681: 
1.1.1.3   misho    1682: #
                   1683: # MIPS archive; they're in the portable archive format, and need to go
                   1684: # before the entry for regular portable archives, as it's recognized as
                   1685: # a portable archive whose first member has a name beginning with
                   1686: # "__________E".
1.1       misho    1687: #
                   1688: 0      string  =!<arch>\n__________E   MIPS archive
1.1.1.3   misho    1689: !:mime application/x-archive
1.1       misho    1690: >20    string  U                       with MIPS Ucode members
                   1691: >21    string  L                       with MIPSEL members
                   1692: >21    string  B                       with MIPSEB members
                   1693: >19    string  L                       and an EL hash table
                   1694: >19    string  B                       and an EB hash table
                   1695: >22    string  X                       -- out of date
                   1696: 
                   1697: 0      search/1        -h-             Software Tools format archive text
                   1698: 
                   1699: #
1.1.1.3   misho    1700: # BSD/SVR2-and-later portable archive formats.
1.1       misho    1701: #
                   1702: 0      string          =!<arch>                current ar archive
                   1703: !:mime application/x-archive
                   1704: >8     string          __.SYMDEF       random library
1.1.1.3   misho    1705: >68    string          __.SYMDEF\ SORTED       random library
                   1706: 
1.1       misho    1707: #
1.1.1.3   misho    1708: # "Thin" archive, as can be produced by GNU ar.
1.1       misho    1709: #
1.1.1.3   misho    1710: 0      string          =!<thin>\n      thin archive with
                   1711: >68    belong          0               no symbol entries
                   1712: >68    belong          1               %d symbol entry
                   1713: >68    belong          >1              %d symbol entries
1.1       misho    1714: 
                   1715: # ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
                   1716: #
                   1717: # The first byte is the magic (0x1a), byte 2 is the compression type for
                   1718: # the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
                   1719: # filename of the first file (null terminated).  Since some types collide
                   1720: # we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
                   1721: # 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
                   1722: 0      lelong&0x8080ffff       0x0000081a      ARC archive data, dynamic LZW
                   1723: !:mime application/x-arc
                   1724: 0      lelong&0x8080ffff       0x0000091a      ARC archive data, squashed
                   1725: !:mime application/x-arc
                   1726: 0      lelong&0x8080ffff       0x0000021a      ARC archive data, uncompressed
                   1727: !:mime application/x-arc
                   1728: 0      lelong&0x8080ffff       0x0000031a      ARC archive data, packed
                   1729: !:mime application/x-arc
                   1730: 0      lelong&0x8080ffff       0x0000041a      ARC archive data, squeezed
                   1731: !:mime application/x-arc
                   1732: 0      lelong&0x8080ffff       0x0000061a      ARC archive data, crunched
                   1733: !:mime application/x-arc
                   1734: # [JW] stuff taken from idarc, obviously ARC successors:
                   1735: 0      lelong&0x8080ffff       0x00000a1a      PAK archive data
                   1736: !:mime application/x-arc
                   1737: 0      lelong&0x8080ffff       0x0000141a      ARC+ archive data
                   1738: !:mime application/x-arc
                   1739: 0      lelong&0x8080ffff       0x0000481a      HYP archive data
                   1740: !:mime application/x-arc
                   1741: 
                   1742: # Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
                   1743: # I can't create either SPARK or ArcFS archives so I have not tested this stuff
                   1744: # [GRR:  the original entries collide with ARC, above; replaced with combined
                   1745: #  version (not tested)]
                   1746: #0     byte            0x1a            RISC OS archive (spark format)
                   1747: 0      string          \032archive     RISC OS archive (ArcFS format)
                   1748: 0       string          Archive\000     RISC OS archive (ArcFS format)
                   1749: 
                   1750: # All these were taken from idarc, many could not be verified. Unfortunately,
                   1751: # there were many low-quality sigs, i.e. easy to trigger false positives.
                   1752: # Please notify me of any real-world fishy/ambiguous signatures and I'll try
                   1753: # to get my hands on the actual archiver and see if I find something better. [JW]
                   1754: # probably many can be enhanced by finding some 0-byte or control char near the start
                   1755: 
                   1756: # idarc calls this Crush/Uncompressed... *shrug*
                   1757: 0      string  CRUSH Crush archive data
                   1758: # Squeeze It (.sqz)
                   1759: 0      string  HLSQZ Squeeze It archive data
                   1760: # SQWEZ
                   1761: 0      string  SQWEZ SQWEZ archive data
                   1762: # HPack (.hpk)
                   1763: 0      string  HPAK HPack archive data
                   1764: # HAP
                   1765: 0      string  \x91\x33HF HAP archive data
                   1766: # MD/MDCD
                   1767: 0      string  MDmd MDCD archive data
                   1768: # LIM
                   1769: 0      string  LIM\x1a LIM archive data
                   1770: # SAR
                   1771: 3      string  LH5 SAR archive data
                   1772: # BSArc/BS2
1.1.1.3   misho    1773: 0      string  \212\3SB\020\0  BSArc/BS2 archive data
                   1774: # Bethesda Softworks Archive (Oblivion)
                   1775: 0      string  BSA\0           BSArc archive data
                   1776: >4     lelong  x               version %d
1.1       misho    1777: # MAR
                   1778: 2      string  =-ah MAR archive data
                   1779: # ACB
1.1.1.3   misho    1780: #0     belong&0x00f800ff       0x00800000 ACB archive data
1.1       misho    1781: # CPZ
                   1782: # TODO, this is what idarc says: 0     string  \0\0\0 CPZ archive data
                   1783: # JRC
                   1784: 0      string  JRchive JRC archive data
                   1785: # Quantum
                   1786: 0      string  DS\0 Quantum archive data
                   1787: # ReSOF
                   1788: 0      string  PK\3\6 ReSOF archive data
                   1789: # QuArk
                   1790: 0      string  7\4 QuArk archive data
                   1791: # YAC
                   1792: 14     string  YC YAC archive data
                   1793: # X1
                   1794: 0      string  X1 X1 archive data
                   1795: 0      string  XhDr X1 archive data
                   1796: # CDC Codec (.dqt)
                   1797: 0      belong&0xffffe000       0x76ff2000 CDC Codec archive data
                   1798: # AMGC
                   1799: 0      string  \xad6" AMGC archive data
                   1800: # NuLIB
1.1.1.3   misho    1801: 0      string  N\xc3\xb5F\xc3\xa9lx\xc3\xa5 NuLIB archive data
1.1       misho    1802: # PakLeo
                   1803: 0      string  LEOLZW PAKLeo archive data
                   1804: # ChArc
                   1805: 0      string  SChF ChArc archive data
                   1806: # PSA
                   1807: 0      string  PSA PSA archive data
                   1808: # CrossePAC
                   1809: 0      string  DSIGDCC CrossePAC archive data
                   1810: # Freeze
                   1811: 0      string  \x1f\x9f\x4a\x10\x0a Freeze archive data
                   1812: # KBoom
1.1.1.3   misho    1813: 0      string  \xc2\xa8MP\xc2\xa8 KBoom archive data
1.1       misho    1814: # NSQ, must go after CDC Codec
                   1815: 0      string  \x76\xff NSQ archive data
                   1816: # DPA
                   1817: 0      string  Dirk\ Paehl DPA archive data
                   1818: # BA
                   1819: # TODO: idarc says "bytes 0-2 == bytes 3-5"
                   1820: # TTComp
                   1821: 0      string  \0\6 TTComp archive data
                   1822: # ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
                   1823: 0      string  ESP ESP archive data
                   1824: # ZPack
                   1825: 0      string  \1ZPK\1 ZPack archive data
                   1826: # Sky
                   1827: 0      string  \xbc\x40 Sky archive data
                   1828: # UFA
                   1829: 0      string  UFA UFA archive data
                   1830: # Dry
                   1831: 0      string  =-H2O DRY archive data
                   1832: # FoxSQZ
                   1833: 0      string  FOXSQZ FoxSQZ archive data
                   1834: # AR7
                   1835: 0      string  ,AR7 AR7 archive data
                   1836: # PPMZ
                   1837: 0      string  PPMZ PPMZ archive data
                   1838: # MS Compress
                   1839: 4      string  \x88\xf0\x27 MS Compress archive data
                   1840: # updated by Joerg Jenderek
1.1.1.3   misho    1841: >9     string  \0
                   1842: >>0    string  KWAJ
1.1       misho    1843: >>>7   string  \321\003        MS Compress archive data
                   1844: >>>>14 ulong   >0              \b, original size: %ld bytes
1.1.1.3   misho    1845: >>>>18         ubyte   >0x65
                   1846: >>>>>18                string  x       \b, was %.8s
                   1847: >>>>>(10.b-4)  string  x       \b.%.3s
1.1       misho    1848: # MP3 (archiver, not lossy audio compression)
                   1849: 0      string  MP3\x1a MP3-Archiver archive data
                   1850: # ZET
1.1.1.3   misho    1851: 0      string  OZ\xc3\x9d ZET archive data
1.1       misho    1852: # TSComp
                   1853: 0      string  \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
                   1854: # ARQ
                   1855: 0      string  gW\4\1 ARQ archive data
                   1856: # Squash
                   1857: 3      string  OctSqu Squash archive data
                   1858: # Terse
                   1859: 0      string  \5\1\1\0 Terse archive data
                   1860: # PUCrunch
                   1861: 0      string  \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
                   1862: # UHarc
                   1863: 0      string  UHA UHarc archive data
                   1864: # ABComp
                   1865: 0      string  \2AB ABComp archive data
                   1866: 0      string  \3AB2 ABComp archive data
                   1867: # CMP
                   1868: 0      string  CO\0 CMP archive data
                   1869: # Splint
                   1870: 0      string  \x93\xb9\x06 Splint archive data
                   1871: # InstallShield
1.1.1.3   misho    1872: 0      string  \x13\x5d\x65\x8c InstallShield Z archive Data
1.1       misho    1873: # Gather
                   1874: 1      string  GTH Gather archive data
                   1875: # BOA
                   1876: 0      string  BOA BOA archive data
                   1877: # RAX
                   1878: 0      string  ULEB\xa RAX archive data
                   1879: # Xtreme
                   1880: 0      string  ULEB\0 Xtreme archive data
                   1881: # Pack Magic
1.1.1.3   misho    1882: 0      string  @\xc3\xa2\1\0 Pack Magic archive data
1.1       misho    1883: # BTS
                   1884: 0      belong&0xfeffffff       0x1a034465 BTS archive data
                   1885: # ELI 5750
                   1886: 0      string  Ora\  ELI 5750 archive data
                   1887: # QFC
                   1888: 0      string  \x1aFC\x1a QFC archive data
                   1889: 0      string  \x1aQF\x1a QFC archive data
                   1890: # PRO-PACK
                   1891: 0      string  RNC PRO-PACK archive data
                   1892: # 777
                   1893: 0      string  777 777 archive data
                   1894: # LZS221
                   1895: 0      string  sTaC LZS221 archive data
                   1896: # HPA
                   1897: 0      string  HPA HPA archive data
                   1898: # Arhangel
                   1899: 0      string  LG Arhangel archive data
                   1900: # EXP1, uses bzip2
                   1901: 0      string  0123456789012345BZh EXP1 archive data
                   1902: # IMP
                   1903: 0      string  IMP\xa IMP archive data
                   1904: # NRV
                   1905: 0      string  \x00\x9E\x6E\x72\x76\xFF NRV archive data
                   1906: # Squish
                   1907: 0      string  \x73\xb2\x90\xf4 Squish archive data
                   1908: # Par
                   1909: 0      string  PHILIPP Par archive data
                   1910: 0      string  PAR Par archive data
                   1911: # HIT
                   1912: 0      string  UB HIT archive data
                   1913: # SBX
                   1914: 0      belong&0xfffff000       0x53423000 SBX archive data
                   1915: # NaShrink
                   1916: 0      string  NSK NaShrink archive data
                   1917: # SAPCAR
                   1918: 0      string  #\ CAR\ archive\ header SAPCAR archive data
                   1919: 0      string  CAR\ 2.00RG SAPCAR archive data
                   1920: # Disintegrator
                   1921: 0      string  DST Disintegrator archive data
                   1922: # ASD
                   1923: 0      string  ASD ASD archive data
                   1924: # InstallShield CAB
                   1925: 0      string  ISc( InstallShield CAB
                   1926: # TOP4
                   1927: 0      string  T4\x1a TOP4 archive data
                   1928: # BatComp left out: sig looks like COM executable
                   1929: # so TODO: get real 4dos batcomp file and find sig
                   1930: # BlakHole
                   1931: 0      string  BH\5\7 BlakHole archive data
                   1932: # BIX
                   1933: 0      string  BIX0 BIX archive data
                   1934: # ChiefLZA
                   1935: 0      string  ChfLZ ChiefLZA archive data
                   1936: # Blink
                   1937: 0      string  Blink Blink archive data
                   1938: # Logitech Compress
                   1939: 0      string  \xda\xfa Logitech Compress archive data
                   1940: # ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
                   1941: 1      string  (C)\ STEPANYUK ARS-Sfx archive data
                   1942: # AKT/AKT32
                   1943: 0      string  AKT32 AKT32 archive data
                   1944: 0      string  AKT AKT archive data
                   1945: # NPack
                   1946: 0      string  MSTSM NPack archive data
                   1947: # PFT
                   1948: 0      string  \0\x50\0\x14 PFT archive data
                   1949: # SemOne
                   1950: 0      string  SEM SemOne archive data
                   1951: # PPMD
                   1952: 0      string  \x8f\xaf\xac\x84 PPMD archive data
                   1953: # FIZ
                   1954: 0      string  FIZ FIZ archive data
                   1955: # MSXiE
                   1956: 0      belong&0xfffff0f0       0x4d530000 MSXiE archive data
                   1957: # DeepFreezer
                   1958: 0      belong&0xfffffff0       0x797a3030 DeepFreezer archive data
                   1959: # DC
                   1960: 0      string  =<DC- DC archive data
                   1961: # TPac
                   1962: 0      string  \4TPAC\3 TPac archive data
                   1963: # Ai
                   1964: 0      string  Ai\1\1\0 Ai archive data
                   1965: 0      string  Ai\1\0\0 Ai archive data
                   1966: # Ai32
                   1967: 0      string  Ai\2\0 Ai32 archive data
                   1968: 0      string  Ai\2\1 Ai32 archive data
                   1969: # SBC
                   1970: 0      string  SBC SBC archive data
                   1971: # Ybs
                   1972: 0      string  YBS Ybs archive data
                   1973: # DitPack
                   1974: 0      string  \x9e\0\0 DitPack archive data
                   1975: # DMS
                   1976: 0      string  DMS! DMS archive data
                   1977: # EPC
                   1978: 0      string  \x8f\xaf\xac\x8c EPC archive data
                   1979: # VSARC
                   1980: 0      string  VS\x1a VSARC archive data
                   1981: # PDZ
                   1982: 0      string  PDZ PDZ archive data
                   1983: # ReDuq
                   1984: 0      string  rdqx ReDuq archive data
                   1985: # GCA
                   1986: 0      string  GCAX GCA archive data
                   1987: # PPMN
                   1988: 0      string  pN PPMN archive data
                   1989: # WinImage
                   1990: 3      string  WINIMAGE WinImage archive data
                   1991: # Compressia
                   1992: 0      string  CMP0CMP Compressia archive data
                   1993: # UHBC
                   1994: 0      string  UHB UHBC archive data
                   1995: # WinHKI
                   1996: 0      string  \x61\x5C\x04\x05 WinHKI archive data
                   1997: # WWPack data file
                   1998: 0      string  WWP WWPack archive data
                   1999: # BSN (BSA, PTS-DOS)
                   2000: 0      string  \xffBSG BSN archive data
                   2001: 1      string  \xffBSG BSN archive data
                   2002: 3      string  \xffBSG BSN archive data
                   2003: 1      string  \0\xae\2 BSN archive data
                   2004: 1      string  \0\xae\3 BSN archive data
                   2005: 1      string  \0\xae\7 BSN archive data
                   2006: # AIN
                   2007: 0      string  \x33\x18 AIN archive data
                   2008: 0      string  \x33\x17 AIN archive data
                   2009: # XPA32
                   2010: 0      string  xpa\0\1 XPA32 archive data
                   2011: # SZip (TODO: doesn't catch all versions)
                   2012: 0      string  SZ\x0a\4 SZip archive data
                   2013: # XPack DiskImage
                   2014: 0      string  jm XPack DiskImage archive data
                   2015: # XPack Data
                   2016: 0      string  xpa XPack archive data
                   2017: # XPack Single Data
1.1.1.3   misho    2018: 0      string  \xc3\x8d\ jm XPack single archive data
1.1       misho    2019: 
                   2020: # TODO: missing due to unknown magic/magic at end of file:
                   2021: #DWC
                   2022: #ARG
                   2023: #ZAR
                   2024: #PC/3270
                   2025: #InstallIt
                   2026: #RKive
                   2027: #RK
                   2028: #XPack Diskimage
                   2029: 
                   2030: # These were inspired by idarc, but actually verified
                   2031: # Dzip archiver (.dz)
                   2032: 0      string  DZ Dzip archive data
                   2033: >2     byte    x \b, version %i
                   2034: >3     byte    x \b.%i
                   2035: # ZZip archiver (.zz)
                   2036: 0      string  ZZ\ \0\0 ZZip archive data
                   2037: 0      string  ZZ0 ZZip archive data
                   2038: # PAQ archiver (.paq)
                   2039: 0      string  \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
                   2040: 0      string  PAQ PAQ archive data
                   2041: >3     byte&0xf0       0x30
                   2042: >>3    byte    x (v%c)
                   2043: # JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
                   2044: 0xe    string  \x1aJar\x1b JAR (ARJ Software, Inc.) archive data
                   2045: 0      string  JARCS JAR (ARJ Software, Inc.) archive data
                   2046: 
                   2047: # ARJ archiver (jason@jarthur.Claremont.EDU)
                   2048: 0      leshort         0xea60          ARJ archive data
                   2049: !:mime application/x-arj
                   2050: >5     byte            x               \b, v%d,
                   2051: >8     byte            &0x04           multi-volume,
                   2052: >8     byte            &0x10           slash-switched,
                   2053: >8     byte            &0x20           backup,
                   2054: >34    string          x               original name: %s,
                   2055: >7     byte            0               os: MS-DOS
                   2056: >7     byte            1               os: PRIMOS
                   2057: >7     byte            2               os: Unix
                   2058: >7     byte            3               os: Amiga
                   2059: >7     byte            4               os: Macintosh
                   2060: >7     byte            5               os: OS/2
                   2061: >7     byte            6               os: Apple ][ GS
                   2062: >7     byte            7               os: Atari ST
                   2063: >7     byte            8               os: NeXT
                   2064: >7     byte            9               os: VAX/VMS
                   2065: >3     byte            >0              %d]
                   2066: # [JW] idarc says this is also possible
                   2067: 2      leshort         0xea60          ARJ archive data
                   2068: 
                   2069: # HA archiver (Greg Roelofs, newt@uchicago.edu)
                   2070: # This is a really bad format. A file containing HAWAII will match this...
                   2071: #0     string          HA              HA archive data,
                   2072: #>2    leshort         =1              1 file,
                   2073: #>2    leshort         >1              %u files,
                   2074: #>4    byte&0x0f       =0              first is type CPY
                   2075: #>4    byte&0x0f       =1              first is type ASC
                   2076: #>4    byte&0x0f       =2              first is type HSC
                   2077: #>4    byte&0x0f       =0x0e           first is type DIR
                   2078: #>4    byte&0x0f       =0x0f           first is type SPECIAL
                   2079: # suggestion: at least identify small archives (<1024 files)
                   2080: 0  belong&0xffff00fc 0x48410000 HA archive data
                   2081: >2     leshort         =1              1 file,
                   2082: >2     leshort         >1              %u files,
                   2083: >4     byte&0x0f       =0              first is type CPY
                   2084: >4     byte&0x0f       =1              first is type ASC
                   2085: >4     byte&0x0f       =2              first is type HSC
                   2086: >4     byte&0x0f       =0x0e           first is type DIR
                   2087: >4     byte&0x0f       =0x0f           first is type SPECIAL
                   2088: 
                   2089: # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
                   2090: 0      string          HPAK            HPACK archive data
                   2091: 
                   2092: # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
                   2093: 0      string          \351,\001JAM\           JAM archive,
                   2094: >7     string          >\0                     version %.4s
                   2095: >0x26  byte            =0x27                   -
                   2096: >>0x2b string          >\0                     label %.11s,
                   2097: >>0x27 lelong          x                       serial %08x,
                   2098: >>0x36 string          >\0                     fstype %.8s
                   2099: 
                   2100: # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
                   2101: 2      string          -lh0-           LHarc 1.x/ARX archive data [lh0]
                   2102: !:mime application/x-lharc
                   2103: 2      string          -lh1-           LHarc 1.x/ARX archive data [lh1]
                   2104: !:mime application/x-lharc
                   2105: 2      string          -lz4-           LHarc 1.x archive data [lz4]
                   2106: !:mime application/x-lharc
                   2107: 2      string          -lz5-           LHarc 1.x archive data [lz5]
                   2108: !:mime application/x-lharc
                   2109: #      [never seen any but the last; -lh4- reported in comp.compression:]
                   2110: 2      string          -lzs-           LHa/LZS archive data [lzs]
                   2111: !:mime application/x-lha
                   2112: 2      string          -lh\40-         LHa 2.x? archive data [lh ]
                   2113: !:mime application/x-lha
                   2114: 2      string          -lhd-           LHa 2.x? archive data [lhd]
                   2115: !:mime application/x-lha
                   2116: 2      string          -lh2-           LHa 2.x? archive data [lh2]
                   2117: !:mime application/x-lha
                   2118: 2      string          -lh3-           LHa 2.x? archive data [lh3]
                   2119: !:mime application/x-lha
                   2120: 2      string          -lh4-           LHa (2.x) archive data [lh4]
                   2121: !:mime application/x-lha
                   2122: 2      string          -lh5-           LHa (2.x) archive data [lh5]
                   2123: !:mime application/x-lha
                   2124: 2      string          -lh6-           LHa (2.x) archive data [lh6]
                   2125: !:mime application/x-lha
                   2126: 2      string          -lh7-           LHa (2.x)/LHark archive data [lh7]
                   2127: !:mime application/x-lha
                   2128: >20    byte            x               - header level %d
                   2129: # taken from idarc [JW]
                   2130: 2   string      -lZ         PUT archive data
1.1.1.3   misho    2131: 2   string      -lz         LZS archive data
1.1       misho    2132: 2   string      -sw1-       Swag archive data
                   2133: 
                   2134: # RAR archiver (Greg Roelofs, newt@uchicago.edu)
                   2135: 0      string          Rar!            RAR archive data,
                   2136: !:mime application/x-rar
                   2137: >44    byte            x               v%0x,
                   2138: >10    byte            >0              flags:
                   2139: >>10   byte            &0x01           Archive volume,
                   2140: >>10   byte            &0x02           Commented,
                   2141: >>10   byte            &0x04           Locked,
                   2142: >>10   byte            &0x08           Solid,
                   2143: >>10   byte            &0x20           Authenticated,
                   2144: >35    byte            0               os: MS-DOS
                   2145: >35    byte            1               os: OS/2
                   2146: >35    byte            2               os: Win32
                   2147: >35    byte            3               os: Unix
                   2148: # some old version? idarc says:
                   2149: 0   string      RE\x7e\x5e  RAR archive data
                   2150: 
                   2151: # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
                   2152: 0      string          SQSH            squished archive data (Acorn RISCOS)
                   2153: 
                   2154: # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
                   2155: # [JW] see exe section for self-extracting version
                   2156: 0      string          UC2\x1a         UC2 archive data
                   2157: 
1.1.1.2   misho    2158: # PKZIP multi-volume archive
                   2159: 0      string          PK\x07\x08PK\x03\x04    Zip multi-volume archive data, at least PKZIP v2.50 to extract
                   2160: !:mime application/zip
                   2161: 
1.1.1.3   misho    2162: # Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
                   2163: 0      string          PK\005\006      Zip archive data (empty)
1.1       misho    2164: 0      string          PK\003\004
                   2165: 
1.1.1.3   misho    2166: # Specialised zip formats which start with a member named 'mimetype'
                   2167: # (stored uncompressed, with no 'extra field') containing the file's MIME type.
                   2168: # Check for have 8-byte name, 0-byte extra field, name "mimetype", and
                   2169: #  contents starting with "application/":
                   2170: >26    string          \x8\0\0\0mimetypeapplication/
                   2171: 
                   2172: #  KOffice / OpenOffice & StarOffice / OpenDocument formats
                   2173: #    From: Abel Cheung <abel@oaka.org>
1.1       misho    2174: 
1.1.1.3   misho    2175: #   KOffice (1.2 or above) formats
                   2176: #    (mimetype contains "application/vnd.kde.<SUBTYPE>")
1.1.1.2   misho    2177: >>50   string  vnd.kde.                KOffice (>=1.2)
                   2178: >>>58  string  karbon                  Karbon document
                   2179: >>>58  string  kchart                  KChart document
                   2180: >>>58  string  kformula                KFormula document
                   2181: >>>58  string  kivio                   Kivio document
                   2182: >>>58  string  kontour                 Kontour document
                   2183: >>>58  string  kpresenter              KPresenter document
                   2184: >>>58  string  kspread                 KSpread document
                   2185: >>>58  string  kword                   KWord document
1.1       misho    2186: 
1.1.1.3   misho    2187: #   OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
                   2188: #    (mimetype contains "application/vnd.sun.xml.<SUBTYPE>")
1.1.1.2   misho    2189: >>50   string  vnd.sun.xml.            OpenOffice.org 1.x
                   2190: >>>62  string  writer                  Writer
                   2191: >>>>68 byte    !0x2e                   document
                   2192: >>>>68 string  .template               template
                   2193: >>>>68 string  .global                 global document
                   2194: >>>62  string  calc                    Calc
                   2195: >>>>66 byte    !0x2e                   spreadsheet
                   2196: >>>>66 string  .template               template
                   2197: >>>62  string  draw                    Draw
                   2198: >>>>66 byte    !0x2e                   document
                   2199: >>>>66 string  .template               template
                   2200: >>>62  string  impress                 Impress
                   2201: >>>>69 byte    !0x2e                   presentation
                   2202: >>>>69 string  .template               template
                   2203: >>>62  string  math                    Math document
                   2204: >>>62  string  base                    Database file
1.1       misho    2205: 
1.1.1.3   misho    2206: #   OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
                   2207: #    http://lists.oasis-open.org/archives/office/200505/msg00006.html
                   2208: #    (mimetype contains "application/vnd.oasis.opendocument.<SUBTYPE>")
1.1.1.2   misho    2209: >>50   string  vnd.oasis.opendocument. OpenDocument
                   2210: >>>73  string  text
                   2211: >>>>77 byte    !0x2d                   Text
1.1       misho    2212: !:mime application/vnd.oasis.opendocument.text
1.1.1.2   misho    2213: >>>>77 string  -template               Text Template
                   2214: !:mime application/vnd.oasis.opendocument.text-template
                   2215: >>>>77 string  -web                    HTML Document Template
                   2216: !:mime application/vnd.oasis.opendocument.text-web
                   2217: >>>>77 string  -master                 Master Document
                   2218: !:mime application/vnd.oasis.opendocument.text-master
                   2219: >>>73  string  graphics
                   2220: >>>>81 byte    !0x2d                   Drawing
                   2221: !:mime application/vnd.oasis.opendocument.graphics
                   2222: >>>>81 string  -template               Template
                   2223: !:mime application/vnd.oasis.opendocument.graphics-template
                   2224: >>>73  string  presentation
                   2225: >>>>85 byte    !0x2d                   Presentation
                   2226: !:mime application/vnd.oasis.opendocument.presentation
                   2227: >>>>85 string  -template               Template
                   2228: !:mime application/vnd.oasis.opendocument.presentation-template
                   2229: >>>73  string  spreadsheet
                   2230: >>>>84 byte    !0x2d                   Spreadsheet
                   2231: !:mime application/vnd.oasis.opendocument.spreadsheet
                   2232: >>>>84 string  -template               Template
                   2233: !:mime application/vnd.oasis.opendocument.spreadsheet-template
                   2234: >>>73  string  chart
                   2235: >>>>78 byte    !0x2d                   Chart
                   2236: !:mime application/vnd.oasis.opendocument.chart
                   2237: >>>>78 string  -template               Template
                   2238: !:mime application/vnd.oasis.opendocument.chart-template
                   2239: >>>73  string  formula
                   2240: >>>>80 byte    !0x2d                   Formula
                   2241: !:mime application/vnd.oasis.opendocument.formula
                   2242: >>>>80 string  -template               Template
                   2243: !:mime application/vnd.oasis.opendocument.formula-template
                   2244: >>>73  string  database                Database
                   2245: !:mime application/vnd.oasis.opendocument.database
                   2246: >>>73  string  image
                   2247: >>>>78 byte    !0x2d                   Image
                   2248: !:mime application/vnd.oasis.opendocument.image
                   2249: >>>>78 string  -template               Template
                   2250: !:mime application/vnd.oasis.opendocument.image-template
1.1       misho    2251: 
1.1.1.3   misho    2252: #  EPUB (OEBPS) books using OCF (OEBPS Container Format)
                   2253: #    http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm, section 4.
                   2254: #    From: Ralf Brown <ralf.brown@gmail.com>
                   2255: >0x1E  string  mimetypeapplication/epub+zip    EPUB document
                   2256: !:mime application/epub+zip
                   2257: 
                   2258: #  Catch other ZIP-with-mimetype formats
                   2259: #      In a ZIP file, the bytes immediately after a member's contents are
                   2260: #      always "PK". The 2 regex rules here print the "mimetype" member's
                   2261: #      contents up to the first 'P'. Luckily, most MIME types don't contain
                   2262: #      any capital 'P's. This is a kludge.
                   2263: #    (mimetype contains "application/<OTHER>")
                   2264: >>50           string  !epub+zip
                   2265: >>>50          string  !vnd.oasis.opendocument.
                   2266: >>>>50         string  !vnd.sun.xml.
                   2267: >>>>>50                string  !vnd.kde.
                   2268: >>>>>>38       regex   [!-OQ-~]+               Zip data (MIME type "%s"?)
                   2269: !:mime application/zip
                   2270: #    (mimetype contents other than "application/*")
                   2271: >26            string  \x8\0\0\0mimetype
                   2272: >>38           string  !application/
                   2273: >>>38          regex   [!-OQ-~]+               Zip data (MIME type "%s"?)
                   2274: !:mime application/zip
                   2275: 
                   2276: # Java Jar files
                   2277: >(26.s+30)     leshort 0xcafe          Java Jar file data (zip)
                   2278: !:mime application/jar
                   2279: 
                   2280: # Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
                   2281: #   Next line excludes specialized formats:
                   2282: >(26.s+30)     leshort !0xcafe
                   2283: >>26    string          !\x8\0\0\0mimetype     Zip archive data
                   2284: !:mime application/zip
                   2285: >>>4   byte            0x09            \b, at least v0.9 to extract
                   2286: >>>4   byte            0x0a            \b, at least v1.0 to extract
                   2287: >>>4   byte            0x0b            \b, at least v1.1 to extract
                   2288: >>>4   byte            0x14            \b, at least v2.0 to extract
                   2289: >>>4   byte            0x2d            \b, at least v3.0 to extract
                   2290: >>>0x161       string          WINZIP          \b, WinZIP self-extracting
                   2291: 
                   2292: # StarView Metafile
                   2293: # From Pierre Ducroquet <pinaraf@pinaraf.info>
                   2294: 0      string  VCLMTF  StarView MetaFile
                   2295: >6     beshort x       \b, version %d
                   2296: >8     belong  x       \b, size %d
                   2297: 
1.1       misho    2298: # Zoo archiver
                   2299: 20     lelong          0xfdc4a7dc      Zoo archive data
                   2300: !:mime application/x-zoo
                   2301: >4     byte            >48             \b, v%c.
                   2302: >>6    byte            >47             \b%c
                   2303: >>>7   byte            >47             \b%c
                   2304: >32    byte            >0              \b, modify: v%d
                   2305: >>33   byte            x               \b.%d+
                   2306: >42    lelong          0xfdc4a7dc      \b,
                   2307: >>70   byte            >0              extract: v%d
                   2308: >>>71  byte            x               \b.%d+
                   2309: 
                   2310: # Shell archives
                   2311: 10     string          #\ This\ is\ a\ shell\ archive  shell archive text
                   2312: !:mime application/octet-stream
                   2313: 
                   2314: #
1.1.1.3   misho    2315: # LBR. NB: May conflict with the questionable
1.1       misho    2316: #          "binary Computer Graphics Metafile" format.
                   2317: #
                   2318: 0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
                   2319: #
                   2320: # PMA (CP/M derivative of LHA)
                   2321: #
                   2322: 2       string          -pm0-           PMarc archive data [pm0]
                   2323: 2       string          -pm1-           PMarc archive data [pm1]
                   2324: 2       string          -pm2-           PMarc archive data [pm2]
                   2325: 2       string          -pms-           PMarc SFX archive (CP/M, DOS)
                   2326: 5       string          -pc1-           PopCom compressed executable (CP/M)
                   2327: 
                   2328: # From Rafael Laboissiere <rafael@laboissiere.net>
                   2329: # The Project Revision Control System (see
                   2330: # http://prcs.sourceforge.net) generates a packaged project
1.1.1.3   misho    2331: # file which is recognized by the following entry:
1.1       misho    2332: 0      leshort         0xeb81  PRCS packaged project
                   2333: 
1.1.1.3   misho    2334: # Microsoft cabinets
1.1       misho    2335: # by David Necas (Yeti) <yeti@physics.muni.cz>
                   2336: #0     string  MSCF\0\0\0\0    Microsoft cabinet file data,
                   2337: #>25   byte    x               v%d
                   2338: #>24   byte    x               \b.%d
                   2339: # MPi: All CABs have version 1.3, so this is pointless.
                   2340: # Better magic in debian-additions.
                   2341: 
1.1.1.3   misho    2342: # GTKtalog catalogs
1.1       misho    2343: # by David Necas (Yeti) <yeti@physics.muni.cz>
                   2344: 4      string  gtktalog\       GTKtalog catalog data,
                   2345: >13    string  3               version 3
                   2346: >>14   beshort 0x677a          (gzipped)
                   2347: >>14   beshort !0x677a         (not gzipped)
                   2348: >13    string  >3              version %s
                   2349: 
                   2350: ############################################################################
                   2351: # Parity archive reconstruction file, the 'par' file format now used on Usenet.
                   2352: 0       string          PAR\0  PARity archive data
                   2353: >48    leshort         =0      - Index file
                   2354: >48    leshort         >0      - file number %d
                   2355: 
                   2356: # Felix von Leitner <felix-file@fefe.de>
                   2357: 0      string  d8:announce     BitTorrent file
                   2358: !:mime application/x-bittorrent
                   2359: 
                   2360: # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
1.1.1.3   misho    2361: 0      beshort 0x0e0f          Atari MSA archive data
                   2362: >2     beshort x               \b, %d sectors per track
                   2363: >4     beshort 0               \b, 1 sided
                   2364: >4     beshort 1               \b, 2 sided
                   2365: >6     beshort x               \b, starting track: %d
                   2366: >8     beshort x               \b, ending track: %d
1.1       misho    2367: 
                   2368: # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
                   2369: 0      string  PK00PK\003\004  Zip archive data
                   2370: 
                   2371: # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
                   2372: # by Stefan `Sec` Zehl <sec@42.org>
                   2373: 7      string          **ACE**         ACE archive data
                   2374: >15    byte    >0              version %d
                   2375: >16    byte    =0x00           \b, from MS-DOS
                   2376: >16    byte    =0x01           \b, from OS/2
                   2377: >16    byte    =0x02           \b, from Win/32
                   2378: >16    byte    =0x03           \b, from Unix
                   2379: >16    byte    =0x04           \b, from MacOS
                   2380: >16    byte    =0x05           \b, from WinNT
                   2381: >16    byte    =0x06           \b, from Primos
                   2382: >16    byte    =0x07           \b, from AppleGS
                   2383: >16    byte    =0x08           \b, from Atari
                   2384: >16    byte    =0x09           \b, from Vax/VMS
                   2385: >16    byte    =0x0A           \b, from Amiga
                   2386: >16    byte    =0x0B           \b, from Next
                   2387: >14    byte    x               \b, version %d to extract
                   2388: >5     leshort &0x0080         \b, multiple volumes,
                   2389: >>17   byte    x               \b (part %d),
                   2390: >5     leshort &0x0002         \b, contains comment
                   2391: >5     leshort &0x0200         \b, sfx
                   2392: >5     leshort &0x0400         \b, small dictionary
                   2393: >5     leshort &0x0800         \b, multi-volume
                   2394: >5     leshort &0x1000         \b, contains AV-String
                   2395: >>30   string  \x16*UNREGISTERED\x20VERSION*   (unregistered)
                   2396: >5     leshort &0x2000         \b, with recovery record
                   2397: >5     leshort &0x4000         \b, locked
                   2398: >5     leshort &0x8000         \b, solid
                   2399: # Date in MS-DOS format (whatever that is)
                   2400: #>18   lelong  x               Created on
                   2401: 
                   2402: # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
                   2403: # <doj@cubic.org>
                   2404: 0x1A   string  sfArk           sfArk compressed Soundfont
                   2405: >0x15  string  2
                   2406: >>0x1  string  >\0             Version %s
                   2407: >>0x2A string  >\0             : %s
                   2408: 
                   2409: # DR-DOS 7.03 Packed File *.??_
                   2410: 0      string  Packed\ File\   Personal NetWare Packed File
1.1.1.3   misho    2411: >12    string  x               \b, was "%.12s"
1.1       misho    2412: 
                   2413: # EET archive
                   2414: # From: Tilman Sauerbeck <tilman@code-monkey.de>
                   2415: 0      belong  0x1ee7ff00      EET archive
                   2416: !:mime application/x-eet
                   2417: 
                   2418: # rzip archives
                   2419: 0      string  RZIP            rzip compressed data
                   2420: >4     byte    x               - version %d
                   2421: >5     byte    x               \b.%d
                   2422: >6     belong  x               (%d bytes)
                   2423: 
                   2424: # From: "Robert Dale" <robdale@gmail.com>
                   2425: 0      belong  123             dar archive,
                   2426: >4     belong  x               label "%.8x
                   2427: >>8    belong  x               %.8x
                   2428: >>>12  beshort x               %.4x"
                   2429: >14    byte    0x54            end slice
                   2430: >14    beshort 0x4e4e          multi-part
                   2431: >14    beshort 0x4e53          multi-part, with -S
                   2432: 
                   2433: # Symbian installation files
                   2434: #  http://www.thouky.co.uk/software/psifs/sis.html
                   2435: #  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
                   2436: 8      lelong  0x10000419      Symbian installation file
                   2437: !:mime application/vnd.symbian.install
                   2438: >4     lelong  0x1000006D      (EPOC release 3/4/5)
                   2439: >4     lelong  0x10003A12      (EPOC release 6)
                   2440: 0      lelong  0x10201A7A      Symbian installation file (Symbian OS 9.x)
                   2441: !:mime x-epoc/x-sisx-app
                   2442: 
                   2443: # From "Nelson A. de Oliveira" <naoliv@gmail.com>
                   2444: 0      string  MPQ\032         MoPaQ (MPQ) archive
                   2445: 
                   2446: # From: Dirk Jagdmann <doj@cubic.org>
                   2447: # xar archive format: http://code.google.com/p/xar/
                   2448: 0      string  xar!            xar archive
                   2449: >6     beshort x               - version %ld
                   2450: 
                   2451: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   2452: # .kgb
                   2453: 0      string KGB_arch         KGB Archiver file
                   2454: >10    string x                with compression level %.1s
                   2455: 
                   2456: # xar (eXtensible ARchiver) archive
                   2457: # From: "David Remahl" <dremahl@apple.com>
                   2458: 0      string  xar!            xar archive
                   2459: #>4    beshort x               header size %d
                   2460: >6     beshort x               version %d,
                   2461: #>8    quad    x               compressed TOC: %d,
                   2462: #>16   quad    x               uncompressed TOC: %d,
                   2463: >24    belong  0               no checksum
                   2464: >24    belong  1               SHA-1 checksum
                   2465: >24    belong  2               MD5 checksum
                   2466: 
                   2467: # Type: Parity Archive
                   2468: # From: Daniel van Eeden <daniel_e@dds.nl>
1.1.1.2   misho    2469: 0      string  PAR2            Parity Archive Volume Set
                   2470: 
                   2471: # Bacula volume format. (Volumes always start with a block header.)
                   2472: # URL: http://bacula.org/3.0.x-manuals/en/developers/developers/Block_Header.html
                   2473: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   2474: 12     string  BB02            Bacula volume
                   2475: >20    bedate  x               \b, started %s
1.1       misho    2476: 
1.1.1.3   misho    2477: # ePub is XHTML + XML inside a ZIP archive.  The first member of the
                   2478: #   archive must be an uncompressed file called 'mimetype' with contents
                   2479: #   'application/epub+zip'
                   2480: 
                   2481: 
                   2482: # From: "Michael Gorny" <mgorny@gentoo.org>
                   2483: # ZPAQ: http://mattmahoney.net/dc/zpaq.html
                   2484: 0      string  zPQ     ZPAQ stream
                   2485: >3     byte    x       \b, level %d
                   2486: 
                   2487: # BBeB ebook, unencrypted (LRF format)
                   2488: # URL: http://www.sven.de/librie/Librie/LrfFormat
                   2489: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   2490: 0      string  L\0R\0F\0\0\0   BBeB ebook data, unencrypted
                   2491: >8     beshort x               \b, version %d
                   2492: >36    byte    1               \b, front-to-back
                   2493: >36    byte    16              \b, back-to-front
                   2494: >42    beshort x               \b, (%dx,
                   2495: >44    beshort x               %d)
                   2496: #------------------------------------------------------------------------------
                   2497: # $File: assembler,v 1.4 2013/01/04 23:31:11 christos Exp $
                   2498: # make:  file(1) magic for assembler source
                   2499: #
                   2500: 0      regex   \^[\020\t]*\\.asciiz            assembler source text
                   2501: !:mime text/x-asm
                   2502: 0      regex   \^[\020\t]*\\.byte              assembler source text
                   2503: !:mime text/x-asm
                   2504: 0      regex   \^[\020\t]*\\.even              assembler source text
                   2505: !:mime text/x-asm
                   2506: 0      regex   \^[\020\t]*\\.globl             assembler source text
                   2507: !:mime text/x-asm
                   2508: 0      regex   \^[\020\t]*\\.text              assembler source text
                   2509: !:mime text/x-asm
                   2510: 0      regex   \^[\020\t]*\\.file              assembler source text
                   2511: !:mime text/x-asm
                   2512: 0      regex   \^[\020\t]*\\.type              assembler source text
                   2513: !:mime text/x-asm
                   2514: 
1.1       misho    2515: #------------------------------------------------------------------------------
1.1.1.2   misho    2516: # $File: asterix,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    2517: # asterix:  file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
                   2518: # strings as "long" - we assume they're just strings:
                   2519: # From: guy@netapp.com (Guy Harris)
                   2520: #
                   2521: 0      string          *STA            Aster*x
                   2522: >7     string          WORD                    Words Document
                   2523: >7     string          GRAP                    Graphic
                   2524: >7     string          SPRE                    Spreadsheet
                   2525: >7     string          MACR                    Macro
                   2526: 0      string          2278            Aster*x Version 2
                   2527: >29    byte            0x36                    Words Document
                   2528: >29    byte            0x35                    Graphic
                   2529: >29    byte            0x32                    Spreadsheet
                   2530: >29    byte            0x38                    Macro
                   2531: 
                   2532: 
                   2533: #------------------------------------------------------------------------------
1.1.1.2   misho    2534: # $File: att3b,v 1.8 2009/09/19 16:28:08 christos Exp $
1.1       misho    2535: # att3b:  file(1) magic for AT&T 3B machines
                   2536: #
                   2537: # The `versions' should be un-commented if they work for you.
                   2538: # (Was the problem just one of endianness?)
                   2539: #
                   2540: # 3B20
                   2541: #
                   2542: # The 3B20 conflicts with SCCS.
                   2543: #0     beshort         0550            3b20 COFF executable
                   2544: #>12   belong          >0              not stripped
                   2545: #>22   beshort         >0              - version %ld
                   2546: #0     beshort         0551            3b20 COFF executable (TV)
                   2547: #>12   belong          >0              not stripped
                   2548: #>22   beshort         >0              - version %ld
                   2549: #
                   2550: # WE32K
                   2551: #
                   2552: 0      beshort         0560            WE32000 COFF
                   2553: >18    beshort         ^00000020       object
                   2554: >18    beshort         &00000020       executable
                   2555: >12    belong          >0              not stripped
                   2556: >18    beshort         ^00010000       N/A on 3b2/300 w/paging
                   2557: >18    beshort         &00020000       32100 required
                   2558: >18    beshort         &00040000       and MAU hardware required
                   2559: >20    beshort         0407            (impure)
                   2560: >20    beshort         0410            (pure)
                   2561: >20    beshort         0413            (demand paged)
                   2562: >20    beshort         0443            (target shared library)
                   2563: >22    beshort         >0              - version %ld
                   2564: 0      beshort         0561            WE32000 COFF executable (TV)
                   2565: >12    belong          >0              not stripped
                   2566: #>18   beshort         &00020000       - 32100 required
                   2567: #>18   beshort         &00040000       and MAU hardware required
                   2568: #>22   beshort         >0              - version %ld
                   2569: #
                   2570: # core file for 3b2 
                   2571: 0      string          \000\004\036\212\200    3b2 core file
                   2572: >364   string          >\0             of '%s'
1.1.1.2   misho    2573: 
1.1       misho    2574: #------------------------------------------------------------------------------
1.1.1.3   misho    2575: # $File: audio,v 1.66 2013/02/06 14:18:52 christos Exp $
1.1       misho    2576: # audio:  file(1) magic for sound formats (see also "iff")
                   2577: #
                   2578: # Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
                   2579: # and others
                   2580: #
                   2581: 
                   2582: # Sun/NeXT audio data
                   2583: 0      string          .snd            Sun/NeXT audio data:
                   2584: >12    belong          1               8-bit ISDN mu-law,
                   2585: !:mime audio/basic
                   2586: >12    belong          2               8-bit linear PCM [REF-PCM],
                   2587: !:mime audio/basic
                   2588: >12    belong          3               16-bit linear PCM,
                   2589: !:mime audio/basic
                   2590: >12    belong          4               24-bit linear PCM,
                   2591: !:mime audio/basic
                   2592: >12    belong          5               32-bit linear PCM,
                   2593: !:mime audio/basic
                   2594: >12    belong          6               32-bit IEEE floating point,
                   2595: !:mime audio/basic
                   2596: >12    belong          7               64-bit IEEE floating point,
                   2597: !:mime audio/basic
                   2598: >12    belong          8               Fragmented sample data,
                   2599: >12    belong          10              DSP program,
                   2600: >12    belong          11              8-bit fixed point,
                   2601: >12    belong          12              16-bit fixed point,
                   2602: >12    belong          13              24-bit fixed point,
                   2603: >12    belong          14              32-bit fixed point,
                   2604: >12    belong          18              16-bit linear with emphasis,
                   2605: >12    belong          19              16-bit linear compressed,
                   2606: >12    belong          20              16-bit linear with emphasis and compression,
                   2607: >12    belong          21              Music kit DSP commands,
                   2608: >12    belong          23              8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
                   2609: !:mime  audio/x-adpcm
                   2610: >12    belong          24              compressed (8-bit CCITT G.722 ADPCM)
                   2611: >12    belong          25              compressed (3-bit CCITT G.723.3 ADPCM),
                   2612: >12    belong          26              compressed (5-bit CCITT G.723.5 ADPCM),
                   2613: >12    belong          27              8-bit A-law (CCITT G.711),
                   2614: >20    belong          1               mono,
                   2615: >20    belong          2               stereo,
                   2616: >20    belong          4               quad,
                   2617: >16    belong          >0              %d Hz
                   2618: 
                   2619: # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
                   2620: # that uses little-endian encoding and has a different magic number
                   2621: 0      lelong          0x0064732E      DEC audio data:
                   2622: >12    lelong          1               8-bit ISDN mu-law,
                   2623: !:mime audio/x-dec-basic
                   2624: >12    lelong          2               8-bit linear PCM [REF-PCM],
                   2625: !:mime audio/x-dec-basic
                   2626: >12    lelong          3               16-bit linear PCM,
                   2627: !:mime audio/x-dec-basic
                   2628: >12    lelong          4               24-bit linear PCM,
                   2629: !:mime audio/x-dec-basic
                   2630: >12    lelong          5               32-bit linear PCM,
                   2631: !:mime audio/x-dec-basic
                   2632: >12    lelong          6               32-bit IEEE floating point,
                   2633: !:mime audio/x-dec-basic
                   2634: >12    lelong          7               64-bit IEEE floating point,
                   2635: !:mime audio/x-dec-basic
                   2636: >12    belong          8               Fragmented sample data,
                   2637: >12    belong          10              DSP program,
                   2638: >12    belong          11              8-bit fixed point,
                   2639: >12    belong          12              16-bit fixed point,
                   2640: >12    belong          13              24-bit fixed point,
                   2641: >12    belong          14              32-bit fixed point,
                   2642: >12    belong          18              16-bit linear with emphasis,
                   2643: >12    belong          19              16-bit linear compressed,
                   2644: >12    belong          20              16-bit linear with emphasis and compression,
                   2645: >12    belong          21              Music kit DSP commands,
                   2646: >12    lelong          23              8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
                   2647: !:mime audio/x-dec-basic
                   2648: >12    belong          24              compressed (8-bit CCITT G.722 ADPCM)
                   2649: >12    belong          25              compressed (3-bit CCITT G.723.3 ADPCM),
                   2650: >12    belong          26              compressed (5-bit CCITT G.723.5 ADPCM),
                   2651: >12    belong          27              8-bit A-law (CCITT G.711),
                   2652: >20    lelong          1               mono,
                   2653: >20    lelong          2               stereo,
                   2654: >20    lelong          4               quad,
                   2655: >16    lelong          >0              %d Hz
                   2656: 
                   2657: # Creative Labs AUDIO stuff
                   2658: 0      string  MThd                    Standard MIDI data
                   2659: !:mime audio/midi
                   2660: >8     beshort x                       (format %d)
                   2661: >10    beshort x                       using %d track
                   2662: >10    beshort         >1              \bs
                   2663: >12    beshort&0x7fff  x               at 1/%d
                   2664: >12    beshort&0x8000  >0              SMPTE
                   2665: 
                   2666: 0      string  CTMF                    Creative Music (CMF) data
                   2667: !:mime audio/x-unknown
                   2668: 0      string  SBI                     SoundBlaster instrument data
                   2669: !:mime audio/x-unknown
                   2670: 0      string  Creative\ Voice\ File   Creative Labs voice data
                   2671: !:mime audio/x-unknown
                   2672: # is this next line right?  it came this way...
                   2673: >19    byte    0x1A
                   2674: >23    byte    >0                      - version %d
                   2675: >22    byte    >0                      \b.%d
                   2676: 
                   2677: # first entry is also the string "NTRK"
                   2678: 0      belong          0x4e54524b      MultiTrack sound data
                   2679: >4     belong          x               - version %ld
                   2680: 
                   2681: # Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
                   2682: # [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
                   2683: 0      string          EMOD            Extended MOD sound data,
                   2684: >4     byte&0xf0       x               version %d
                   2685: >4     byte&0x0f       x               \b.%d,
                   2686: >45    byte            x               %d instruments
                   2687: >83    byte            0               (module)
                   2688: >83    byte            1               (song)
                   2689: 
                   2690: # Real Audio (Magic .ra\0375)
                   2691: 0      belong          0x2e7261fd      RealAudio sound file
                   2692: !:mime audio/x-pn-realaudio
                   2693: 0      string          .RMF\0\0\0      RealMedia file
                   2694: !:mime application/vnd.rn-realmedia
                   2695: #video/x-pn-realvideo
                   2696: #video/vnd.rn-realvideo
                   2697: #application/vnd.rn-realmedia
                   2698: #      sigh, there are many mimes for that but the above are the most common.
                   2699: 
                   2700: # MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
                   2701: # Oct 31, 1995
                   2702: # fixed by <doj@cubic.org> 2003-06-24
                   2703: # Too short...
                   2704: #0     string          MTM             MultiTracker Module sound file
                   2705: #0     string          if              Composer 669 Module sound data
                   2706: #0     string          JN              Composer 669 Module sound data (extended format)
                   2707: 0      string          MAS_U           ULT(imate) Module sound data
                   2708: 
                   2709: #0     string          FAR             Module sound data
                   2710: #>4    string          >\15            Title: "%s"
                   2711: 
                   2712: 0x2c   string          SCRM            ScreamTracker III Module sound data
                   2713: >0     string          >\0             Title: "%s"
                   2714: 
                   2715: # Gravis UltraSound patches
                   2716: # From <ache@nagual.ru>
                   2717: 
                   2718: 0      string          GF1PATCH110\0ID#000002\0        GUS patch
                   2719: 0      string          GF1PATCH100\0ID#000002\0        Old GUS patch
                   2720: 
                   2721: # mime types according to http://www.geocities.com/nevilo/mod.htm:
                   2722: #      audio/it        .it
                   2723: #      audio/x-zipped-it       .itz
                   2724: #      audio/xm        fasttracker modules
                   2725: #      audio/x-s3m     screamtracker modules
                   2726: #      audio/s3m       screamtracker modules
                   2727: #      audio/x-zipped-mod      mdz
                   2728: #      audio/mod       mod
                   2729: #      audio/x-mod     All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
                   2730: 
                   2731: #
                   2732: # Taken from loader code from mikmod version 2.14
                   2733: # by Steve McIntyre (stevem@chiark.greenend.org.uk)
                   2734: # <doj@cubic.org> added title printing on 2003-06-24
                   2735: 0      string  MAS_UTrack_V00
                   2736: >14    string  >/0             ultratracker V1.%.1s module sound data
                   2737: !:mime audio/x-mod
                   2738: #audio/x-tracker-module
                   2739: 
                   2740: 0      string  UN05            MikMod UNI format module sound data
                   2741: 
                   2742: 0      string  Extended\ Module: Fasttracker II module sound data
                   2743: !:mime audio/x-mod
                   2744: #audio/x-tracker-module
                   2745: >17    string  >\0             Title: "%s"
                   2746: 
                   2747: 21     string/c        =!SCREAM!       Screamtracker 2 module sound data
                   2748: !:mime audio/x-mod
                   2749: #audio/x-screamtracker-module
                   2750: 21     string  BMOD2STM        Screamtracker 2 module sound data
                   2751: !:mime audio/x-mod
                   2752: #audio/x-screamtracker-module
                   2753: 1080   string  M.K.            4-channel Protracker module sound data
                   2754: !:mime audio/x-mod
                   2755: #audio/x-protracker-module
                   2756: >0     string  >\0             Title: "%s"
                   2757: 1080   string  M!K!            4-channel Protracker module sound data
                   2758: !:mime audio/x-mod
                   2759: #audio/x-protracker-module
                   2760: >0     string  >\0             Title: "%s"
                   2761: 1080   string  FLT4            4-channel Startracker module sound data
                   2762: !:mime audio/x-mod
                   2763: #audio/x-startracker-module
                   2764: >0     string  >\0             Title: "%s"
                   2765: 1080   string  FLT8            8-channel Startracker module sound data
                   2766: !:mime audio/x-mod
                   2767: #audio/x-startracker-module
                   2768: >0     string  >\0             Title: "%s"
                   2769: 1080   string  4CHN            4-channel Fasttracker module sound data
                   2770: !:mime audio/x-mod
                   2771: #audio/x-fasttracker-module
                   2772: >0     string  >\0             Title: "%s"
                   2773: 1080   string  6CHN            6-channel Fasttracker module sound data
                   2774: !:mime audio/x-mod
                   2775: #audio/x-fasttracker-module
                   2776: >0     string  >\0             Title: "%s"
                   2777: 1080   string  8CHN            8-channel Fasttracker module sound data
                   2778: !:mime audio/x-mod
                   2779: #audio/x-fasttracker-module
                   2780: >0     string  >\0             Title: "%s"
                   2781: 1080   string  CD81            8-channel Octalyser module sound data
                   2782: !:mime audio/x-mod
                   2783: #audio/x-octalysertracker-module
                   2784: >0     string  >\0             Title: "%s"
                   2785: 1080   string  OKTA            8-channel Octalyzer module sound data
                   2786: !:mime audio/x-mod
                   2787: #audio/x-octalysertracker-module
                   2788: >0     string  >\0             Title: "%s"
                   2789: # Not good enough.
                   2790: #1082  string  CH
                   2791: #>1080 string  >/0             %.2s-channel Fasttracker "oktalyzer" module sound data
                   2792: 1080   string  16CN            16-channel Taketracker module sound data
                   2793: !:mime audio/x-mod
                   2794: #audio/x-taketracker-module
                   2795: >0     string  >\0             Title: "%s"
                   2796: 1080   string  32CN            32-channel Taketracker module sound data
                   2797: !:mime audio/x-mod
                   2798: #audio/x-taketracker-module
                   2799: >0     string  >\0             Title: "%s"
                   2800: 
                   2801: # TOC sound files -Trevor Johnson <trevor@jpj.net>
                   2802: #
                   2803: 0       string          TOC             TOC sound file
                   2804: 
                   2805: # sidfiles <pooka@iki.fi>
                   2806: # added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
                   2807: 0      string          SIDPLAY\ INFOFILE       Sidplay info file
                   2808: 
                   2809: 0      string          PSID                    PlaySID v2.2+ (AMIGA) sidtune
                   2810: >4     beshort         >0                      w/ header v%d,
                   2811: >14    beshort         =1                      single song,
                   2812: >14    beshort         >1                      %d songs,
                   2813: >16    beshort         >0                      default song: %d
                   2814: >0x16  string          >\0                     name: "%s"
                   2815: >0x36  string          >\0                     author: "%s"
                   2816: >0x56  string          >\0                     copyright: "%s"
                   2817: 
                   2818: 0      string          RSID                    RSID sidtune PlaySID compatible
                   2819: >4     beshort         >0                      w/ header v%d,
                   2820: >14    beshort         =1                      single song,
                   2821: >14    beshort         >1                      %d songs,
                   2822: >16    beshort         >0                      default song: %d
                   2823: >0x16  string          >\0                     name: "%s"
                   2824: >0x36  string          >\0                     author: "%s"
                   2825: >0x56  string          >\0                     copyright: "%s"
                   2826: 
1.1.1.3   misho    2827: # IRCAM sound files - Michael Pruett <michael@68k.org>
                   2828: # http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
                   2829: 0      belong          0x64a30100              IRCAM file (VAX little-endian)
                   2830: 0      belong          0x0001a364              IRCAM file (VAX big-endian)
                   2831: 0      belong          0x64a30200              IRCAM file (Sun big-endian)
                   2832: 0      belong          0x0002a364              IRCAM file (Sun little-endian)
1.1       misho    2833: 0      belong          0x64a30300              IRCAM file (MIPS little-endian)
1.1.1.3   misho    2834: 0      belong          0x0003a364              IRCAM file (MIPS big-endian)
                   2835: 0      belong          0x64a30400              IRCAM file (NeXT big-endian)
                   2836: 0      belong          0x64a30400              IRCAM file (NeXT big-endian)
                   2837: 0      belong          0x0004a364              IRCAM file (NeXT little-endian)
1.1       misho    2838: 
                   2839: # NIST SPHERE <mpruett@sgi.com>
                   2840: 0      string          NIST_1A\n\ \ \ 1024\n   NIST SPHERE file
                   2841: 
                   2842: # Sample Vision <mpruett@sgi.com>
                   2843: 0      string          SOUND\ SAMPLE\ DATA\    Sample Vision file
                   2844: 
                   2845: # Audio Visual Research <tonigonenstein@users.sourceforge.net>
                   2846: 0      string          2BIT                    Audio Visual Research file,
                   2847: >12    beshort         =0                      mono,
                   2848: >12    beshort         =-1                     stereo,
                   2849: >14    beshort         x                       %d bits
                   2850: >16    beshort         =0                      unsigned,
                   2851: >16    beshort         =-1                     signed,
                   2852: >22    belong&0x00ffffff       x               %d Hz,
                   2853: >18    beshort         =0                      no loop,
                   2854: >18    beshort         =-1                     loop,
                   2855: >21    ubyte           <128                    note %d,
                   2856: >22    byte            =0                      replay 5.485 KHz
                   2857: >22    byte            =1                      replay 8.084 KHz
1.1.1.2   misho    2858: >22    byte            =2                      replay 10.971 KHz
                   2859: >22    byte            =3                      replay 16.168 KHz
1.1       misho    2860: >22    byte            =4                      replay 21.942 KHz
                   2861: >22    byte            =5                      replay 32.336 KHz
                   2862: >22    byte            =6                      replay 43.885 KHz
                   2863: >22    byte            =7                      replay 47.261 KHz
                   2864: 
                   2865: # SGI SoundTrack <mpruett@sgi.com>
                   2866: 0      string          _SGI_SoundTrack         SGI SoundTrack project file
                   2867: # ID3 version 2 tags <waschk@informatik.uni-rostock.de>
1.1.1.2   misho    2868: 0      string          ID3     Audio file with ID3 version 2
                   2869: >3     byte            x       \b.%d
                   2870: >4     byte            x       \b.%d
                   2871: >>5    byte            &0x80   \b, unsynchronized frames
                   2872: >>5    byte            &0x40   \b, extended header
                   2873: >>5    byte            &0x20   \b, experimental
                   2874: >>5    byte            &0x10   \b, footer present
                   2875: >(6.I) indirect        x       \b, contains: 
1.1       misho    2876: 
                   2877: # NSF (NES sound file) magic
                   2878: 0      string          NESM\x1a        NES Sound File
                   2879: >14    string          >\0             ("%s" by
                   2880: >46    string          >\0             %s, copyright
                   2881: >78    string          >\0             %s),
                   2882: >5     byte            x               version %d,
                   2883: >6     byte            x               %d tracks,
                   2884: >122   byte&0x2        =1              dual PAL/NTSC
                   2885: >122   byte&0x1        =1              PAL
                   2886: >122   byte&0x1        =0              NTSC
                   2887: 
                   2888: # Type: SNES SPC700 sound files
                   2889: # From: Josh Triplett <josh@freedesktop.org>
                   2890: 0      string  SNES-SPC700\ Sound\ File\ Data\ v       SNES SPC700 sound file
                   2891: >&0    string  0.30                                    \b, version %s
                   2892: >>0x23 byte    0x1B                                    \b, without ID666 tag
                   2893: >>0x23 byte    0x1A                                    \b, with ID666 tag
                   2894: >>>0x2E        string  >\0                                     \b, song "%.32s"
                   2895: >>>0x4E        string  >\0                                     \b, game "%.32s"
                   2896: 
                   2897: # Impulse tracker module (audio/x-it)
                   2898: 0      string          IMPM            Impulse Tracker module sound data -
                   2899: !:mime audio/x-mod
                   2900: >4     string          >\0             "%s"
                   2901: >40    leshort         !0              compatible w/ITv%x
                   2902: >42    leshort         !0              created w/ITv%x
                   2903: 
                   2904: # Imago Orpheus module (audio/x-imf)
                   2905: 60     string          IM10            Imago Orpheus module sound data -
                   2906: >0     string          >\0             "%s"
                   2907: 
                   2908: # From <collver1@attbi.com>
                   2909: # These are the /etc/magic entries to decode modules, instruments, and
                   2910: # samples in Impulse Tracker's native format.
                   2911: 
                   2912: 0      string          IMPS            Impulse Tracker Sample
                   2913: >18    byte            &2              16 bit
                   2914: >18    byte            ^2              8 bit
                   2915: >18    byte            &4              stereo
                   2916: >18    byte            ^4              mono
                   2917: 0      string          IMPI            Impulse Tracker Instrument
                   2918: >28    leshort         !0              ITv%x
                   2919: >30    byte            !0              %d samples
                   2920: 
                   2921: # Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
                   2922: # From <collver1@attbi.com>
                   2923: 0      string          LM8953          Yamaha TX Wave
                   2924: >22    byte            0x49            looped
                   2925: >22    byte            0xC9            non-looped
                   2926: >23    byte            1               33kHz
                   2927: >23    byte            2               50kHz
                   2928: >23    byte            3               16kHz
                   2929: 
                   2930: # scream tracker:  file(1) magic for Scream Tracker sample files
                   2931: #
                   2932: # From <collver1@attbi.com>
                   2933: 76     string          SCRS            Scream Tracker Sample
                   2934: >0     byte            1               sample
                   2935: >0     byte            2               adlib melody
                   2936: >0     byte            >2              adlib drum
                   2937: >31    byte            &2              stereo
                   2938: >31    byte            ^2              mono
                   2939: >31    byte            &4              16bit little endian
                   2940: >31    byte            ^4              8bit
                   2941: >30    byte            0               unpacked
                   2942: >30    byte            1               packed
                   2943: 
                   2944: # audio
                   2945: # From: Cory Dikkers <cdikkers@swbell.net>
                   2946: 0      string          MMD0            MED music file, version 0
                   2947: 0      string          MMD1            OctaMED Pro music file, version 1
                   2948: 0      string          MMD3            OctaMED Soundstudio music file, version 3
                   2949: 0      string          OctaMEDCmpr     OctaMED Soundstudio compressed file
                   2950: 0      string          MED             MED_Song
                   2951: 0      string          SymM            Symphonie SymMOD music file
                   2952: #
                   2953: 0      string          THX             AHX version
                   2954: >3     byte            =0              1 module data
                   2955: >3     byte            =1              2 module data
                   2956: #
                   2957: 0      string          OKTASONG        Oktalyzer module data
                   2958: #
                   2959: 0      string          DIGI\ Booster\ module\0 %s
                   2960: >20    byte            >0              %c
                   2961: >>21   byte            >0              \b%c
                   2962: >>>22  byte            >0              \b%c
                   2963: >>>>23 byte            >0              \b%c
                   2964: >610   string          >\0             \b, "%s"
                   2965: #
                   2966: 0      string          DBM0            DIGI Booster Pro Module
                   2967: >4     byte            >0              V%X.
                   2968: >>5    byte            x               \b%02X
                   2969: >16    string          >\0             \b, "%s"
                   2970: #
                   2971: 0      string          FTMN            FaceTheMusic module
                   2972: >16    string          >\0d            \b, "%s"
                   2973: 
                   2974: # From: <doj@cubic.org> 2003-06-24
                   2975: 0      string          AMShdr\32       Velvet Studio AMS Module v2.2
                   2976: 0      string          Extreme         Extreme Tracker AMS Module v1.3
                   2977: 0      string          DDMF            Xtracker DMF Module
                   2978: >4     byte            x               v%i
                   2979: >0xD   string          >\0             Title: "%s"
                   2980: >0x2B  string          >\0             Composer: "%s"
                   2981: 0      string          DSM\32          Dynamic Studio Module DSM
                   2982: 0      string          SONG            DigiTrekker DTM Module
                   2983: 0      string          DMDL            DigiTrakker MDL Module
                   2984: 0      string          PSM\32          Protracker Studio PSM Module
                   2985: 44     string          PTMF            Poly Tracker PTM Module
                   2986: >0     string          >\32            Title: "%s"
                   2987: 0      string          MT20            MadTracker 2.0 Module MT2
                   2988: 0      string          RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
                   2989: 0      string          RTMM            RTM Module
                   2990: 0x426  string          MaDoKaN96       XMS Adlib Module
                   2991: >0     string          >\0             Composer: "%s"
                   2992: 0      string          AMF             AMF Module
                   2993: >4     string          >\0             Title: "%s"
                   2994: 0      string          MODINFO1        Open Cubic Player Module Inforation MDZ
                   2995: 0      string          Extended\40Instrument: Fast Tracker II Instrument
                   2996: 
                   2997: # From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
                   2998: # NOA Nancy Codec file
                   2999: 0      string          \210NOA\015\012\032     NOA Nancy Codec Movie file
                   3000: # Yamaha SMAF format
                   3001: 0      string          MMMD            Yamaha SMAF file
                   3002: # Sharp Jisaku Melody format for PDC
                   3003: 0      string          \001Sharp\040JisakuMelody       SHARP Cell-Phone ringing Melody
                   3004: >20    string          Ver01.00        Ver. 1.00
                   3005: >>32   byte            x               , %d tracks
                   3006: 
                   3007: # Free lossless audio codec <http://flac.sourceforge.net>
                   3008: # From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
                   3009: 0      string                  fLaC            FLAC audio bitstream data
                   3010: !:mime audio/x-flac
                   3011: >4     byte&0x7f               >0              \b, unknown version
                   3012: >4     byte&0x7f               0               \b
                   3013: # some common bits/sample values
                   3014: >>20   beshort&0x1f0           0x030           \b, 4 bit
                   3015: >>20   beshort&0x1f0           0x050           \b, 6 bit
                   3016: >>20   beshort&0x1f0           0x070           \b, 8 bit
                   3017: >>20   beshort&0x1f0           0x0b0           \b, 12 bit
                   3018: >>20   beshort&0x1f0           0x0f0           \b, 16 bit
                   3019: >>20   beshort&0x1f0           0x170           \b, 24 bit
                   3020: >>20   byte&0xe                0x0             \b, mono
                   3021: >>20   byte&0xe                0x2             \b, stereo
                   3022: >>20   byte&0xe                0x4             \b, 3 channels
                   3023: >>20   byte&0xe                0x6             \b, 4 channels
                   3024: >>20   byte&0xe                0x8             \b, 5 channels
                   3025: >>20   byte&0xe                0xa             \b, 6 channels
                   3026: >>20   byte&0xe                0xc             \b, 7 channels
                   3027: >>20   byte&0xe                0xe             \b, 8 channels
                   3028: # some common sample rates
                   3029: >>17   belong&0xfffff0         0x0ac440        \b, 44.1 kHz
                   3030: >>17   belong&0xfffff0         0x0bb800        \b, 48 kHz
                   3031: >>17   belong&0xfffff0         0x07d000        \b, 32 kHz
                   3032: >>17   belong&0xfffff0         0x056220        \b, 22.05 kHz
                   3033: >>17   belong&0xfffff0         0x05dc00        \b, 24 kHz
                   3034: >>17   belong&0xfffff0         0x03e800        \b, 16 kHz
                   3035: >>17   belong&0xfffff0         0x02b110        \b, 11.025 kHz
                   3036: >>17   belong&0xfffff0         0x02ee00        \b, 12 kHz
                   3037: >>17   belong&0xfffff0         0x01f400        \b, 8 kHz
                   3038: >>17   belong&0xfffff0         0x177000        \b, 96 kHz
                   3039: >>17   belong&0xfffff0         0x0fa000        \b, 64 kHz
                   3040: >>21   byte&0xf                >0              \b, >4G samples
                   3041: >>21   byte&0xf                0               \b
                   3042: >>>22  belong                  >0              \b, %u samples
                   3043: >>>22  belong                  0               \b, length unknown
                   3044: 
                   3045: # (ISDN) VBOX voice message file (Wolfram Kleff)
                   3046: 0       string          VBOX            VBOX voice message data
                   3047: 
                   3048: # ReBorn Song Files (.rbs)
                   3049: # David J. Singer <doc@deadvirgins.org.uk>
                   3050: 8       string          RB40             RBS Song file
                   3051: >29     string          ReBorn           created by ReBorn
                   3052: >37     string          Propellerhead    created by ReBirth
                   3053: 
                   3054: # Synthesizer Generator and Kimwitu share their file format
                   3055: 0      string          A#S#C#S#S#L#V#3     Synthesizer Generator or Kimwitu data
                   3056: # Kimwitu++ uses a slightly different magic
                   3057: 0      string          A#S#C#S#S#L#HUB     Kimwitu++ data
                   3058: 
                   3059: # From "Simon Hosie
                   3060: 0       string  TFMX-SONG       TFMX module sound data
                   3061: 
                   3062: # Monkey's Audio compressed audio format (.ape)
                   3063: # From danny.milo@gmx.net (Danny Milosavljevic)
                   3064: # New version from Abel Cheung <abel (@) oaka.org>
                   3065: 0              string          MAC\040         Monkey's Audio compressed format
1.1.1.3   misho    3066: !:mime audio/x-ape
1.1       misho    3067: >4             uleshort        >0x0F8B         version %d
                   3068: >>(0x08.l)     uleshort        =1000           with fast compression
                   3069: >>(0x08.l)     uleshort        =2000           with normal compression
                   3070: >>(0x08.l)     uleshort        =3000           with high compression
                   3071: >>(0x08.l)     uleshort        =4000           with extra high compression
                   3072: >>(0x08.l)     uleshort        =5000           with insane compression
                   3073: >>(0x08.l+18)  uleshort        =1              \b, mono
                   3074: >>(0x08.l+18)  uleshort        =2              \b, stereo
                   3075: >>(0x08.l+20)  ulelong         x               \b, sample rate %d
                   3076: >4             uleshort        <0x0F8C         version %d
                   3077: >>6            uleshort        =1000           with fast compression
                   3078: >>6            uleshort        =2000           with normal compression
                   3079: >>6            uleshort        =3000           with high compression
                   3080: >>6            uleshort        =4000           with extra high compression
                   3081: >>6            uleshort        =5000           with insane compression
                   3082: >>10           uleshort        =1              \b, mono
                   3083: >>10           uleshort        =2              \b, stereo
                   3084: >>12           ulelong         x               \b, sample rate %d
                   3085: 
                   3086: # adlib sound files
1.1.1.3   misho    3087: # From Gurkan Sengun <gurkan@linuks.mine.nu>, http://www.linuks.mine.nu
1.1       misho    3088: 0      string          RAWADATA        RdosPlay RAW
                   3089: 
                   3090: 1068   string          RoR             AMUSIC Adlib Tracker
                   3091: 
                   3092: 0      string          JCH             EdLib
                   3093: 
                   3094: 0      string          mpu401tr        MPU-401 Trakker
                   3095: 
                   3096: 0      string          SAdT            Surprise! Adlib Tracker
                   3097: >4     byte            x               Version %d
                   3098: 
                   3099: 0      string          XAD!            eXotic ADlib
                   3100: 
                   3101: 0      string          ofTAZ!          eXtra Simple Music
                   3102: 
                   3103: # Spectrum 128 tunes (.ay files).
                   3104: # From: Emanuel Haupt <ehaupt@critical.ch>
                   3105: 0      string          ZXAYEMUL        Spectrum 128 tune
                   3106: 
                   3107: 0      string          \0BONK          BONK,
                   3108: #>5    byte            x               version %d
                   3109: >14    byte            x               %d channel(s),
                   3110: >15    byte            =1              lossless,
                   3111: >15    byte            =0              lossy,
                   3112: >16    byte            x               mid-side
                   3113: 
                   3114: 384    string          LockStream      LockStream Embedded file (mostly MP3 on old Nokia phones)
                   3115: 
                   3116: # format VQF (proprietary codec for sound)
                   3117: # some infos on the header file available at :
                   3118: # http://www.twinvq.org/english/technology_format.html
                   3119: 0      string          TWIN97012000    VQF data
                   3120: >27    short           0               \b, Mono
                   3121: >27    short           1               \b, Stereo
                   3122: >31    short           >0              \b, %d kbit/s
                   3123: >35    short           >0              \b, %d kHz
                   3124: 
                   3125: # Nelson A. de Oliveira (naoliv@gmail.com)
                   3126: # .eqf
                   3127: 0      string  Winamp\ EQ\ library\ file       %s
                   3128: # it will match only versions like v<digit>.<digit>
                   3129: # Since I saw only eqf files with version v1.1 I think that it's OK
                   3130: >23    string  x       \b%.4s
                   3131: # .preset
                   3132: 0      string  [Equalizer\ preset]     XMMS equalizer preset
                   3133: # .m3u
                   3134: 0      search/1        #EXTM3U         M3U playlist text
                   3135: # .pls
                   3136: 0      search/1        [playlist]      PLS playlist text
                   3137: # licq.conf
                   3138: 1      string  [licq]                  LICQ configuration file
                   3139: 
                   3140: # Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
                   3141: 0      string          ICE!            SNDH Atari ST music
                   3142: 0      string          SC68\ Music-file\ /\ (c)\ (BeN)jami     sc68 Atari ST music
                   3143: 
                   3144: # musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
                   3145: 0       string          MP+     Musepack audio
1.1.1.3   misho    3146: !:mime audio/x-musepack
1.1       misho    3147: >3      byte            255     \b, SV pre8
                   3148: >3      byte&0xF        0x6     \b, SV 6
                   3149: >3      byte&0xF        0x8     \b, SV 8
                   3150: >3      byte&0xF        0x7     \b, SV 7
                   3151: >>3     byte&0xF0       0x0     \b.0
                   3152: >>3     byte&0xF0       0x10    \b.1
                   3153: >>3     byte&0xF0       240     \b.15
                   3154: >>10    byte&0xF0       0x0     \b, no profile
                   3155: >>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
                   3156: >>10    byte&0xF0       0x50    \b, quality 0
                   3157: >>10    byte&0xF0       0x60    \b, quality 1
                   3158: >>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
                   3159: >>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
                   3160: >>10    byte&0xF0       0x90    \b, quality 4 (Radio)
                   3161: >>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
                   3162: >>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
                   3163: >>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
                   3164: >>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
                   3165: >>10    byte&0xF0       0xE0    \b, quality 9
                   3166: >>10    byte&0xF0       0xF0    \b, quality 10
                   3167: >>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
                   3168: >>27    byte            102     \b, Beta 1.02
                   3169: >>27    byte            104     \b, Beta 1.04
                   3170: >>27    byte            105     \b, Alpha 1.05
                   3171: >>27    byte            106     \b, Beta 1.06
                   3172: >>27    byte            110     \b, Release 1.1
                   3173: >>27    byte            111     \b, Alpha 1.11
                   3174: >>27    byte            112     \b, Beta 1.12
                   3175: >>27    byte            113     \b, Alpha 1.13
                   3176: >>27    byte            114     \b, Beta 1.14
                   3177: >>27    byte            115     \b, Alpha 1.15
                   3178: 
                   3179: # IMY
                   3180: # from http://filext.com/detaillist.php?extdetail=IMY
                   3181: # http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
                   3182: # http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
                   3183: # http://www.wx800.com/msg/download/irda/iMelody.pdf
                   3184: 0      string  BEGIN:IMELODY   iMelody Ringtone Format
                   3185: 
                   3186: # From: "Mateus Caruccio" <mateus@caruccio.com>
                   3187: # guitar pro v3,4,5 from http://filext.com/file-extension/gp3
                   3188: 0      string  \030FICHIER\ GUITAR\ PRO\ v3.   Guitar Pro Ver. 3 Tablature
                   3189: 
                   3190: # From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
                   3191: 60     string  SONG            SoundFX Module sound file
                   3192: 
                   3193: # Type: Adaptive Multi-Rate Codec
                   3194: # URL:  http://filext.com/detaillist.php?extdetail=AMR
                   3195: # From: Russell Coker <russell@coker.com.au>
                   3196: 0      string  #!AMR           Adaptive Multi-Rate Codec (GSM telephony)
                   3197: 
                   3198: # Type: SuperCollider 3 Synth Definition File Format
                   3199: # From: Mario Lang <mlang@debian.org>
                   3200: 0      string  SCgf    SuperCollider3 Synth Definition file,
                   3201: >4     belong  x       version %d
1.1.1.2   misho    3202: 
1.1.1.3   misho    3203: # Type: True Audio Lossless Audio
                   3204: # URL:  http://wiki.multimedia.cx/index.php?title=True_Audio
                   3205: # From: Mike Melanson <mike@multimedia.cx>
                   3206: 0      string  TTA1    True Audio Lossless Audio
                   3207: 
                   3208: # Type: WavPack Lossless Audio
                   3209: # URL:  http://wiki.multimedia.cx/index.php?title=WavPack
                   3210: # From: Mike Melanson <mike@multimedia.cx>
                   3211: 0      string  wvpk    WavPack Lossless Audio
                   3212: 
1.1       misho    3213: #----------------------------------------------------------------
1.1.1.2   misho    3214: # $File: basis,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3215: # basis: file(1) magic for BBx/Pro5-files
                   3216: #      Oliver Dammer <dammer@olida.de>  2005/11/07
                   3217: # http://www.basis.com business-basic-files.
                   3218: #
                   3219: 0      string          \074\074bbx\076\076     BBx
                   3220: >7     string          \000                    indexed file
                   3221: >7     string          \001                    serial file
                   3222: >7     string          \002                    keyed file
                   3223: >>13   short           0                       (sort)
                   3224: >7     string          \004                    program
                   3225: >>18   byte            x                       (LEVEL %d)
                   3226: >>>23  string          >\000                   psaved
                   3227: >7     string          \006                    mkeyed file
                   3228: >>13   short           0                       (sort)
                   3229: >>8    string          \000                    (mkey)
1.1.1.2   misho    3230: 
1.1       misho    3231: #------------------------------------------------------------------------------
1.1.1.2   misho    3232: # $File: bflt,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3233: # bFLT: file(1) magic for BFLT uclinux binary files
                   3234: #
                   3235: # From Philippe De Muyter <phdm@macqel.be>
                   3236: #
                   3237: 0      string          bFLT            BFLT executable
                   3238: >4     belong          x               - version %ld
                   3239: >4     belong          4
                   3240: >>36   belong&0x1      0x1             ram
                   3241: >>36   belong&0x2      0x2             gotpic
                   3242: >>36   belong&0x4      0x4             gzip
                   3243: >>36   belong&0x8      0x8             gzdata
1.1.1.2   misho    3244: # Berkeley Lab Checkpoint Restart (BLCR) checkpoint context files
                   3245: # http://ftg.lbl.gov/checkpoint
                   3246: 0      string  C\0\0\0R\0\0\0  BLCR
                   3247: >16    lelong  1       x86
                   3248: >16    lelong  3       alpha
                   3249: >16    lelong  5       x86-64
                   3250: >16    lelong  7       ARM
                   3251: >8     lelong  x       context data (little endian, version %d)
                   3252: # Uncomment the following only of your "file" program supports "search"
                   3253: #>0    search/1024     VMA\06  for kernel
                   3254: #>>&1  byte    x       %d.
                   3255: #>>&2  byte    x       %d.
                   3256: #>>&3  byte    x       %d
                   3257: 0      string  \0\0\0C\0\0\0R  BLCR
                   3258: >16    belong  2       SPARC
                   3259: >16    belong  4       ppc
                   3260: >16    belong  6       ppc64
                   3261: >16    belong  7       ARMEB
                   3262: >16    belong  8       SPARC64
                   3263: >8     belong  x       context data (big endian, version %d)
                   3264: # Uncomment the following only of your "file" program supports "search"
                   3265: #>0    search/1024     VMA\06  for kernel
                   3266: #>>&1  byte    x       %d.
1.1.1.3   misho    3267: #>>&2  byte    x       \b%d.
                   3268: #>>&3  byte    x       \b%d
1.1.1.2   misho    3269: 
1.1       misho    3270: #------------------------------------------------------------------------------
1.1.1.2   misho    3271: # $File: blender,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    3272: # blender: file(1) magic for Blender 3D related files
                   3273: #
                   3274: # Native format rule v1.2. For questions use the developers list 
                   3275: # http://lists.blender.org/mailman/listinfo/bf-committers
                   3276: # GLOB chunk was moved near start and provides subversion info since 2.42 
                   3277: 
                   3278: 0              string  =BLENDER        Blender3D,
                   3279: >7             string  =_              saved as 32-bits
                   3280: >>8            string  =v              little endian
                   3281: >>>9           byte    x               with version %c.
                   3282: >>>10          byte    x               \b%c
                   3283: >>>11          byte    x               \b%c
                   3284: >>>0x40                string  =GLOB           \b.
                   3285: >>>>0x58       leshort x               \b%.4d
                   3286: >>8            string  =V              big endian
                   3287: >>>9           byte    x               with version %c.
                   3288: >>>10          byte    x               \b%c
                   3289: >>>11          byte    x               \b%c
                   3290: >>>0x40                string  =GLOB           \b.
                   3291: >>>>0x58       beshort x               \b%.4d
                   3292: >7             string  =-              saved as 64-bits
                   3293: >>8            string  =v              little endian
                   3294: >>9            byte    x               with version %c.
                   3295: >>10           byte    x               \b%c
                   3296: >>11           byte    x               \b%c
                   3297: >>0x44         string  =GLOB           \b.
                   3298: >>>0x60                leshort x               \b%.4d
                   3299: >>8            string  =V              big endian
                   3300: >>>9           byte    x               with version %c.
                   3301: >>>10          byte    x               \b%c
                   3302: >>>11          byte    x               \b%c
                   3303: >>>0x44                string  =GLOB           \b.
                   3304: >>>>0x60       beshort x               \b%.4d
                   3305: 
1.1.1.4 ! misho    3306: # Scripts that run in the embedded Python interpreter
1.1       misho    3307: 0              string  #!BPY           Blender3D BPython script
                   3308: 
                   3309: #------------------------------------------------------------------------------
1.1.1.2   misho    3310: # $File: blit,v 1.8 2009/09/19 16:28:08 christos Exp $
1.1       misho    3311: # blit:  file(1) magic for 68K Blit stuff as seen from 680x0 machine
                   3312: #
                   3313: # Note that this 0407 conflicts with several other a.out formats...
                   3314: #
                   3315: # XXX - should this be redone with "be" and "le", so that it works on
                   3316: # little-endian machines as well?  If so, what's the deal with
                   3317: # "VAX-order" and "VAX-order2"?
                   3318: #
                   3319: #0     long            0407            68K Blit (standalone) executable
                   3320: #0     short           0407            VAX-order2 68K Blit (standalone) executable
                   3321: 0      short           03401           VAX-order 68K Blit (standalone) executable
                   3322: 0      long            0406            68k Blit mpx/mux executable
                   3323: 0      short           0406            VAX-order2 68k Blit mpx/mux executable
                   3324: 0      short           03001           VAX-order 68k Blit mpx/mux executable
                   3325: # Need more values for WE32 DMD executables.
                   3326: # Note that 0520 is the same as COFF
                   3327: #0     short           0520            tty630 layers executable
1.1.1.2   misho    3328: 
                   3329: #------------------------------------------------------------------------------
                   3330: # $File: bout,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    3331: # i80960 b.out objects and archives
                   3332: #
                   3333: 0      long            0x10d           i960 b.out relocatable object
                   3334: >16    long            >0              not stripped
                   3335: #
                   3336: # b.out archive (hp-rt on i960)
                   3337: 0      string          =!<bout>        b.out archive
                   3338: >8     string          __.SYMDEF       random library
1.1.1.2   misho    3339: 
1.1       misho    3340: #------------------------------------------------------------------------------
1.1.1.3   misho    3341: # $File: bsdi,v 1.6 2013/01/09 22:37:24 christos Exp $
1.1       misho    3342: # bsdi:  file(1) magic for BSD/OS (from BSDI) objects
1.1.1.3   misho    3343: # Some object/executable formats use the same magic numbers as are used
                   3344: # in other OSes; those are handled by entries in aout.
1.1       misho    3345: #
                   3346: 
                   3347: 0      lelong          0314            386 compact demand paged pure executable
                   3348: >16    lelong          >0              not stripped
                   3349: >32    byte            0x6a            (uses shared libs)
                   3350: 
                   3351: # same as in SunOS 4.x, except for static shared libraries
                   3352: 0      belong&077777777        0600413         sparc demand paged
                   3353: >0     byte            &0x80
                   3354: >>20   belong          <4096           shared library
                   3355: >>20   belong          =4096           dynamically linked executable
                   3356: >>20   belong          >4096           dynamically linked executable
                   3357: >0     byte            ^0x80           executable
                   3358: >16    belong          >0              not stripped
                   3359: >36    belong          0xb4100001      (uses shared libs)
                   3360: 
                   3361: 0      belong&077777777        0600410         sparc pure
                   3362: >0     byte            &0x80           dynamically linked executable
                   3363: >0     byte            ^0x80           executable
                   3364: >16    belong          >0              not stripped
                   3365: >36    belong          0xb4100001      (uses shared libs)
                   3366: 
                   3367: 0      belong&077777777        0600407         sparc
                   3368: >0     byte            &0x80           dynamically linked executable
                   3369: >0     byte            ^0x80           executable
                   3370: >16    belong          >0              not stripped
                   3371: >36    belong          0xb4100001      (uses shared libs)
1.1.1.2   misho    3372: # Chiasmus is a encryption standard developed by the German Federal
                   3373: # Office for Information Security (Bundesamt fuer Sicherheit in der
                   3374: # Informationstechnik).
                   3375: 
                   3376: # Extension: .xia
                   3377: 0      string  XIA1    Chiasmus encrypted data
                   3378: 
                   3379: # Extension: .xis
                   3380: 0      string  XIS     Chiasmus key
                   3381: 
1.1       misho    3382: #------------------------------------------------------------------------------
1.1.1.2   misho    3383: # $File: btsnoop,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    3384: # BTSnoop:  file(1) magic for BTSnoop files
                   3385: #
                   3386: # From <marcel@holtmann.org>
                   3387: 0      string          btsnoop\0               BTSnoop
                   3388: >8     belong          x                       version %d,
                   3389: >12    belong          1001                    Unencapsulated HCI
                   3390: >12    belong          1002                    HCI UART (H4)
                   3391: >12    belong          1003                    HCI BCSP
                   3392: >12    belong          1004                    HCI Serial (H5)
                   3393: >>12   belong          x                       type %d
                   3394: 
                   3395: #------------------------------------------------------------------------------
1.1.1.2   misho    3396: # $File: c64,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    3397: # c64:  file(1) magic for various commodore 64 related files
                   3398: #
                   3399: # From: Dirk Jagdmann <doj@cubic.org>
                   3400: 
                   3401: 0x16500        belong          0x12014100      D64 Image
                   3402: 0x16500        belong          0x12014180      D71 Image
                   3403: 0x61800 belong         0x28034400      D81 Image
                   3404: 0      string          C64\40CARTRIDGE CCS C64 Emultar Cartridge Image
                   3405: 0      belong          0x43154164      X64 Image
                   3406: 
                   3407: 0      string          GCR-1541        GCR Image
                   3408: >8     byte            x               version: %i
                   3409: >9     byte            x               tracks: %i
                   3410: 
                   3411: 9      string          PSUR            ARC archive (c64)
                   3412: 2      string          -LH1-           LHA archive (c64)
                   3413: 
                   3414: 0      string          C64File         PC64 Emulator file
                   3415: >8     string          >\0             "%s"
                   3416: 0      string          C64Image        PC64 Freezer Image
                   3417: 
                   3418: 0      beshort         0x38CD          C64 PCLink Image
                   3419: 0      string          CBM\144\0\0     Power 64 C64 Emulator Snapshot
                   3420: 
                   3421: 0      belong          0xFF424CFF      WRAptor packer (c64)
                   3422: 
                   3423: 0      string          C64S\x20tape\x20file    T64 tape Image
                   3424: >32    leshort         x               Version:0x%x
                   3425: >36    leshort         !0              Entries:%i
                   3426: >40    string          x               Name:%.24s
                   3427: 
                   3428: 0      string          C64\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0        T64 tape Image
                   3429: >32    leshort         x               Version:0x%x
                   3430: >36    leshort         !0              Entries:%i
                   3431: >40    string          x               Name:%.24s
                   3432: 
                   3433: 0      string          C64S\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0  T64 tape Image
                   3434: >32    leshort         x               Version:0x%x
                   3435: >36    leshort         !0              Entries:%i
                   3436: >40    string          x               Name:%.24s
                   3437: 
                   3438: #------------------------------------------------------------------------------
1.1.1.3   misho    3439: # $File: cad,v 1.11 2011/12/08 12:12:46 rrt Exp $
1.1       misho    3440: # autocad:  file(1) magic for cad files
                   3441: #
                   3442: 
                   3443: # AutoCAD DWG versions R13/R14 (www.autodesk.com)
                   3444: # Written December 01, 2003 by Lester Hightower
                   3445: # Based on the DWG File Format Specifications at http://www.opendwg.org/
                   3446: 0      string         \101\103\061\060\061                AutoCAD
                   3447: >5     string         \062\000\000\000\000                DWG ver. R13
                   3448: >5     string         \064\000\000\000\000                DWG ver. R14
                   3449: 
                   3450: # Microstation DGN/CIT Files (www.bentley.com)
                   3451: # Last updated July 29, 2005 by Lester Hightower
                   3452: # DGN is the default file extension of Microstation/Intergraph CAD files.
                   3453: # CIT is the proprietary raster format (similar to TIFF) used to attach
                   3454: # raster underlays to Microstation DGN (vector) drawings.
                   3455: # 
                   3456: # http://www.wotsit.org/search.asp
                   3457: # http://filext.com/detaillist.php?extdetail=DGN
                   3458: # http://filext.com/detaillist.php?extdetail=CIT
                   3459: #
                   3460: # http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
                   3461: # 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
                   3462: # http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
                   3463: # 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
                   3464: 0      string  \010\011\376                    Microstation
                   3465: >3     string  \002
                   3466: >>30   string  \026\105                        DGNFile
                   3467: >>30   string  \034\105                        DGNFile
                   3468: >>30   string  \073\107                        DGNFile
                   3469: >>30   string  \073\110                        DGNFile
                   3470: >>30   string  \106\107                        DGNFile
                   3471: >>30   string  \110\103                        DGNFile
                   3472: >>30   string  \120\104                        DGNFile
                   3473: >>30   string  \172\104                        DGNFile
                   3474: >>30   string  \172\105                        DGNFile
                   3475: >>30   string  \172\106                        DGNFile
                   3476: >>30   string  \234\106                        DGNFile
                   3477: >>30   string  \273\105                        DGNFile
                   3478: >>30   string  \306\106                        DGNFile
                   3479: >>30   string  \310\104                        DGNFile
                   3480: >>30   string  \341\104                        DGNFile
                   3481: >>30   string  \372\103                        DGNFile
                   3482: >>30   string  \372\104                        DGNFile
                   3483: >>30   string  \372\106                        DGNFile
                   3484: >>30   string  \376\103                        DGNFile
                   3485: >4     string  \030\000\000                    CITFile
                   3486: >4     string  \030\000\003                    CITFile
                   3487: 
                   3488: # AutoCad, from Nahuel Greco
                   3489: # AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
1.1.1.3   misho    3490: 0      string  AC1012          DWG AutoDesk AutoCad (release 12)
                   3491: 0      string  AC1013          DWG AutoDesk AutoCad (release 13)
                   3492: 0      string  AC1014          DWG AutoDesk AutoCad (release 14)
                   3493: # A new version of AutoCAD DWG
                   3494: # Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
                   3495: # ICQ 358572321)
                   3496: # From various sources like:
                   3497: # http://autodesk.blogs.com/between_the_lines/autocad-release-history.html
                   3498: 0      string  AC1018          DWG AutoDesk AutoCAD 2004/2005/2006
                   3499: 0      string  AC1021          DWG AutoDesk AutoCAD 2007/2008/2009
                   3500: 0      string  AC1024          DWG AutoDesk AutoCAD 2010/2011
                   3501: 
                   3502: # KOMPAS 2D drawing from ASCON 
                   3503: # This is KOMPAS 2D drawing or fragment of drawing but is not detailed nor
                   3504: # gathered nor specification
                   3505: # ASCON http://ascon.net/main/ in English,
                   3506: #      http://ascon.ru/ main site in Russian
                   3507: # Extension is CDW for drawing and FRW for fragment of drawing 
                   3508: # Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
                   3509: # ICQ 358572321, http://vkontakte.ru/id16076543)
                   3510: # From:
                   3511: # http://sd.ascon.ru/otrs/customer.pl?Action=CustomerFAQ&CategoryID=4&ItemID=292
                   3512: # (in russian) and my experiments
                   3513: 0      string  KF
                   3514: >2     belong  0x4E00000C      Kompas drawing 12.0 SP1 
                   3515: >2     belong  0x4D00000C      Kompas drawing 12.0 
                   3516: >2     belong  0x3200000B      Kompas drawing 11.0 SP1 
                   3517: >2     belong  0x3100000B      Kompas drawing 11.0 
                   3518: >2     belong  0x2310000A      Kompas drawing 10.0 SP1 
                   3519: >2     belong  0x2110000A      Kompas drawing 10.0 
                   3520: >2     belong  0x08000009      Kompas drawing 9.0 SP1 
                   3521: >2     belong  0x05000009      Kompas drawing 9.0 
                   3522: >2     belong  0x33010008      Kompas drawing 8+ 
                   3523: >2     belong  0x1A000008      Kompas drawing 8.0 
                   3524: >2     belong  0x2C010107      Kompas drawing 7+ 
                   3525: >2     belong  0x05000007      Kompas drawing 7.0 
                   3526: >2     belong  0x32000006      Kompas drawing 6+ 
                   3527: >2     belong  0x09000006      Kompas drawing 6.0 
                   3528: >2     belong  0x5C009005      Kompas drawing 5.11R03 
                   3529: >2     belong  0x54009005      Kompas drawing 5.11R02 
                   3530: >2     belong  0x51009005      Kompas drawing 5.11R01 
                   3531: >2     belong  0x22009005      Kompas drawing 5.10R03 
                   3532: >2     belong  0x22009005      Kompas drawing 5.10R02 mar 
                   3533: >2     belong  0x21009005      Kompas drawing 5.10R02 febr 
                   3534: >2     belong  0x19009005      Kompas drawing 5.10R01 
                   3535: >2     belong  0xF4008005      Kompas drawing 5.9R01.003 
                   3536: >2     belong  0x1C008005      Kompas drawing 5.9R01.002 
                   3537: >2     belong  0x11008005      Kompas drawing 5.8R01.003 
1.1       misho    3538: 
                   3539: # CAD: file(1) magic for computer aided design files
                   3540: # Phillip Griffith <phillip dot griffith at gmail dot com>
                   3541: # AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
                   3542: #
                   3543: 0      belong  0x08051700      Bentley/Intergraph MicroStation DGN cell library
                   3544: 0      belong  0x0809fe02      Bentley/Intergraph MicroStation DGN vector CAD
                   3545: 0      belong  0xc809fe02      Bentley/Intergraph MicroStation DGN vector CAD
                   3546: 0      beshort 0x0809          Bentley/Intergraph MicroStation
                   3547: >0x02  byte    0xfe
                   3548: >>0x04 beshort 0x1800          CIT raster CAD
                   3549: 0      string  AC1012          AutoDesk AutoCAD R13
                   3550: 0      string  AC1014          AutoDesk AutoCAD R14 
                   3551: 0      string  AC1015          AutoDesk AutoCAD R2000
1.1.1.2   misho    3552: 
1.1.1.3   misho    3553: # 3DS (3d Studio files) Conflicts with diff output 0x3d '='
                   3554: #16    beshort         0x3d3d          image/x-3ds
                   3555: 
1.1       misho    3556: #------------------------------------------------------------------------------
1.1.1.3   misho    3557: # $File: cafebabe,v 1.14 2013/02/27 16:59:59 christos Exp $
1.1       misho    3558: # Cafe Babes unite!
                   3559: #
1.1.1.3   misho    3560: # Since Java bytecode and Mach-O universal binaries have the same magic number,
                   3561: # the test must be performed in the same "magic" sequence to get both right.
                   3562: # The long at offset 4 in a Mach-O universal binary tells the number of
                   3563: # architectures; the short at offset 4 in a Java bytecode file is the JVM minor
                   3564: # version and the short at offset 6 is the JVM major version.  Since there are only 
1.1       misho    3565: # only 18 labeled Mach-O architectures at current, and the first released 
                   3566: # Java class format was version 43.0, we can safely choose any number
                   3567: # between 18 and 39 to test the number of architectures against
                   3568: # (and use as a hack). Let's not use 18, because the Mach-O people
                   3569: # might add another one or two as time goes by...
                   3570: #
1.1.1.3   misho    3571: ### JAVA START ###
1.1.1.2   misho    3572: 0      belong          0xcafebabe
1.1       misho    3573: !:mime application/x-java-applet
1.1.1.2   misho    3574: >4     belong          >30             compiled Java class data,
                   3575: >>6    beshort         x               version %d.
                   3576: >>4    beshort         x               \b%d
                   3577: # Which is which?
                   3578: #>>4   belong          0x032d          (Java 1.0)
                   3579: #>>4   belong          0x032d          (Java 1.1)
                   3580: >>4    belong          0x002e          (Java 1.2)
                   3581: >>4    belong          0x002f          (Java 1.3)
                   3582: >>4    belong          0x0030          (Java 1.4)
                   3583: >>4    belong          0x0031          (Java 1.5)
                   3584: >>4    belong          0x0032          (Java 1.6)
                   3585: 
1.1.1.3   misho    3586: 0      belong          0xcafed00d      JAR compressed with pack200,
                   3587: >5     byte            x               version %d.
                   3588: >4     byte            x               \b%d
                   3589: !:mime application/x-java-pack200
1.1.1.2   misho    3590: 
                   3591: 
                   3592: 0      belong          0xcafed00d      JAR compressed with pack200,
1.1.1.3   misho    3593: >5     byte            x               version %d.
                   3594: >4     byte            x               \b%d
1.1       misho    3595: !:mime application/x-java-pack200
1.1.1.2   misho    3596: 
1.1.1.3   misho    3597: ### JAVA END ###
                   3598: ### MACH-O START ###
                   3599: 
                   3600: 0      name            mach-o          \b [
                   3601: >0     use             mach-o-cpu      \b
                   3602: >&(8.L)        indirect                        \b: 
                   3603: >0     belong          x               \b]
                   3604: 
                   3605: 0      belong          0xcafebabe
                   3606: >4     belong          1               Mach-O universal binary with 1 architecture:
                   3607: >>8    use             mach-o          \b
                   3608: >4     belong          >1
                   3609: >>4    belong          <20             Mach-O universal binary with %ld architectures:
                   3610: >>>8   use             mach-o          \b
                   3611: >>>28  use             mach-o          \b
                   3612: >>4    belong          >2
                   3613: >>>48  use             mach-o          \b
                   3614: >>4    belong          >3
                   3615: >>>68  use             mach-o          \b
                   3616: 
                   3617: ### MACH-O END ###
                   3618: 
1.1       misho    3619: #------------------------------------------------------------------------------
1.1.1.2   misho    3620: # $File: cddb,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3621: # CDDB: file(1) magic for CDDB(tm) format CD text data files
                   3622: #
                   3623: # From <steve@gracenote.com>
                   3624: #
                   3625: # This is the /etc/magic entry to decode datafiles as used by
                   3626: # CDDB-enabled CD player applications.
                   3627: #
                   3628: 
1.1.1.2   misho    3629: 0      search/1/w      #\040xmcd       CDDB(tm) format CD text data
1.1       misho    3630: 
                   3631: #------------------------------------------------------------------------------
1.1.1.3   misho    3632: # $File: chord,v 1.5 2010/09/20 19:19:16 rrt Exp $
1.1       misho    3633: # chord: file(1) magic for Chord music sheet typesetting utility input files
                   3634: #
                   3635: # From Philippe De Muyter <phdm@macqel.be>
                   3636: # File format is actually free, but many distributed files begin with `{title'
                   3637: #
                   3638: 0      string          {title          Chord text file
                   3639: 
                   3640: # Type:        PowerTab file format
                   3641: # URL: http://www.power-tab.net/
                   3642: # From:        Jelmer Vernooij <jelmer@samba.org>
                   3643: 0      string          ptab\003\000    Power-Tab v3 Tablature File
                   3644: 0      string          ptab\004\000    Power-Tab v4 Tablature File
1.1.1.2   misho    3645: 
1.1       misho    3646: #------------------------------------------------------------------------------
1.1.1.2   misho    3647: # $File: cisco,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3648: # cisco:  file(1) magic for cisco Systems routers
                   3649: #
                   3650: # Most cisco file-formats are covered by the generic elf code
                   3651: #
                   3652: # Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
                   3653: 0      belong&0xffffff00       0x85011400  cisco IOS microcode
                   3654: >7     string          >\0                 for '%s'
                   3655: 0      belong&0xffffff00       0x8501cb00  cisco IOS experimental microcode
                   3656: >7     string          >\0                 for '%s'
1.1.1.2   misho    3657: 
1.1       misho    3658: #------------------------------------------------------------------------------
1.1.1.2   misho    3659: # $File: citrus,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3660: # citrus locale declaration
                   3661: #
                   3662: 
                   3663: 0      string          RuneCT          Citrus locale declaration for LC_CTYPE
                   3664: 
                   3665: #------------------------------------------------------------------------------
1.1.1.3   misho    3666: # $File: c-lang,v 1.17 2012/04/28 21:20:26 christos Exp $
                   3667: # c-lang:  file(1) magic for C and related languages programs
1.1.1.2   misho    3668: #
                   3669: 
1.1.1.3   misho    3670: # BCPL
                   3671: 0      search/8192     "libhdr"        BCPL source text
                   3672: !:mime text/x-bcpl
                   3673: 0      search/8192     "LIBHDR"        BCPL source text
                   3674: !:mime text/x-bcpl
                   3675: 
                   3676: # C
                   3677: 0      regex   \^#include      C source text
                   3678: !:mime text/x-c
                   3679: 0      regex   \^char          C source text
                   3680: !:mime text/x-c
                   3681: 0      regex   \^double                C source text
                   3682: !:mime text/x-c
                   3683: 0      regex   \^extern                C source text
                   3684: !:mime text/x-c
                   3685: 0      regex   \^float         C source text
                   3686: !:mime text/x-c
                   3687: 0      regex   \^struct                C source text
                   3688: !:mime text/x-c
                   3689: 0      regex   \^union         C source text
                   3690: !:mime text/x-c
                   3691: 0      search/8192     main(           C source text
                   3692: !:mime text/x-c
                   3693: 
                   3694: # C++
                   3695: # The strength of these rules is increased so they beat the C rules above
                   3696: 0      regex   \^template      C++ source text
                   3697: !:strength + 5
                   3698: !:mime text/x-c++
                   3699: 0      regex   \^virtual               C++ source text
                   3700: !:strength + 5
                   3701: !:mime text/x-c++
                   3702: 0      regex   \^class         C++ source text
                   3703: !:strength + 5
                   3704: !:mime text/x-c++
                   3705: 0      regex   \^public:               C++ source text
                   3706: !:strength + 5
                   3707: !:mime text/x-c++
                   3708: 0      regex   \^private:              C++ source text
                   3709: !:strength + 5
                   3710: !:mime text/x-c++
1.1.1.2   misho    3711: 
                   3712: # From: Mikhail Teterin <mi@aldan.algebra.com> 
                   3713: 0      string          cscope          cscope reference data
                   3714: >7     string          x               version %.2s
                   3715: # We skip the path here, because it is often long (so file will
                   3716: # truncate it) and mostly redundant.
                   3717: # The inverted index functionality was added some time betwen
                   3718: # versions 11 and 15, so look for -q if version is above 14:
                   3719: >7     string          >14
                   3720: >>10   search/100      \ -q\           with inverted index
                   3721: >10    search/100      \ -c\           text (non-compressed)
                   3722: 
                   3723: #------------------------------------------------------------------------------
                   3724: # $File: clarion,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    3725: # clarion:  file(1) magic for # Clarion Personal/Professional Developer
                   3726: # (v2 and above)
                   3727: # From: Julien Blache <jb@jblache.org>
                   3728: 
                   3729: # Database files
                   3730: # signature
                   3731: 0      leshort 0x3343  Clarion Developer (v2 and above) data file
                   3732: # attributes
                   3733: >2     leshort &0x0001 \b, locked
                   3734: >2     leshort &0x0004 \b, encrypted
                   3735: >2     leshort &0x0008 \b, memo file exists
                   3736: >2     leshort &0x0010 \b, compressed
                   3737: >2     leshort &0x0040 \b, read only
                   3738: # number of records
                   3739: >5     lelong  x       \b, %ld records
                   3740: 
                   3741: # Memo files
                   3742: 0      leshort 0x334d  Clarion Developer (v2 and above) memo data
                   3743: 
                   3744: # Key/Index files
                   3745: # No magic? :(
                   3746: 
                   3747: # Help files
                   3748: 0      leshort 0x49e0  Clarion Developer (v2 and above) help data
                   3749: 
                   3750: #------------------------------------------------------------------------------
1.1.1.3   misho    3751: # $File: claris,v 1.6 2012/06/20 21:19:05 christos Exp $
1.1       misho    3752: # claris:  file(1) magic for claris
                   3753: # "H. Nanosecond" <aldomel@ix.netcom.com>
                   3754: # Claris Works a word processor, etc.
                   3755: # Version 3.0
                   3756: 
                   3757: # .pct claris works clip art files
                   3758: #0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
                   3759: #*
                   3760: #0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
                   3761: #null to byte 1000 octal
1.1.1.3   misho    3762: 514    string  \377\377\377\377\000
                   3763: >0     string  \0\0\0\0\0\0\0\0\0\0\0\0\0      Claris clip art
                   3764: 514    string  \377\377\377\377\001
                   3765: >0     string  \0\0\0\0\0\0\0\0\0\0\0\0\0      Claris clip art
1.1       misho    3766: 
                   3767: # Claris works files
                   3768: # .cwk
                   3769: 0      string  \002\000\210\003\102\117\102\117\000\001\206 Claris works document
                   3770: # .plt
                   3771: 0      string  \020\341\000\000\010\010        Claris Works pallete files .plt
                   3772: 
                   3773: # .msp a dictionary file I am not sure about this I have only one .msp file
                   3774: 0      string  \002\271\262\000\040\002\000\164        Claris works dictionary
                   3775: 
                   3776: # .usp are user dictionary bits
                   3777: # I am not sure about a magic header:
                   3778: #0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
                   3779: #        soh   S   p   f   8   U   D  sp   ^   S  cr  nl   p   o   d   i
                   3780: #0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
                   3781: #          a   t   r   i   s   t  sp   ^   S  cr  nl   d   i   v  sp   #
                   3782: 
                   3783: # .mth Thesaurus
                   3784: # starts with \0 but no magic header
                   3785: 
                   3786: # .chy Hyphenation file
                   3787: # I am not sure: 000 210 034 000 000
                   3788: 
                   3789: # other claris files
                   3790: #./windows/claris/useng.ndx: data
                   3791: #./windows/claris/xtndtran.l32: data
                   3792: #./windows/claris/xtndtran.lst: data
                   3793: #./windows/claris/clworks.lbl: data
                   3794: #./windows/claris/clworks.prf: data
                   3795: #./windows/claris/userd.spl: data
                   3796: 
                   3797: #------------------------------------------------------------------------------
1.1.1.2   misho    3798: # $File: clipper,v 1.6 2009/09/19 16:28:08 christos Exp $
1.1       misho    3799: # clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
                   3800: #
                   3801: # XXX - what byte order does the Clipper use?
                   3802: #
                   3803: # XXX - what's the "!" stuff:
                   3804: #
                   3805: # >18  short           !074000,000000  C1 R1 
                   3806: # >18  short           !074000,004000  C2 R1
                   3807: # >18  short           !074000,010000  C3 R1
                   3808: # >18  short           !074000,074000  TEST
                   3809: #
                   3810: # I shall assume it's ANDing the field with the first value and
                   3811: # comparing it with the second, and rewrite it as:
                   3812: #
                   3813: # >18  short&074000    000000          C1 R1 
                   3814: # >18  short&074000    004000          C2 R1
                   3815: # >18  short&074000    010000          C3 R1
                   3816: # >18  short&074000    074000          TEST
                   3817: #
                   3818: # as SVR3.1's "file" doesn't support anything of the "!074000,000000"
                   3819: # sort, nor does SunOS 4.x, so either it's something Intergraph added
                   3820: # in CLIX, or something AT&T added in SVR3.2 or later, or something
                   3821: # somebody else thought was a good idea; it's not documented in the
                   3822: # man page for this version of "magic", nor does it appear to be
                   3823: # implemented (at least not after I blew off the bogus code to turn
                   3824: # old-style "&"s into new-style "&"s, which just didn't work at all).
                   3825: #
                   3826: 0      short           0575            CLIPPER COFF executable (VAX #)
                   3827: >20    short           0407            (impure)
                   3828: >20    short           0410            (5.2 compatible)
                   3829: >20    short           0411            (pure)
                   3830: >20    short           0413            (demand paged)
                   3831: >20    short           0443            (target shared library)
                   3832: >12    long            >0              not stripped
                   3833: >22    short           >0              - version %ld
                   3834: 0      short           0577            CLIPPER COFF executable
                   3835: >18    short&074000    000000          C1 R1 
                   3836: >18    short&074000    004000          C2 R1
                   3837: >18    short&074000    010000          C3 R1
                   3838: >18    short&074000    074000          TEST
                   3839: >20    short           0407            (impure)
                   3840: >20    short           0410            (pure)
                   3841: >20    short           0411            (separate I&D)
                   3842: >20    short           0413            (paged)
                   3843: >20    short           0443            (target shared library)
                   3844: >12    long            >0              not stripped
                   3845: >22    short           >0              - version %ld
                   3846: >48    long&01         01              alignment trap enabled
                   3847: >52    byte            1               -Ctnc
                   3848: >52    byte            2               -Ctsw
                   3849: >52    byte            3               -Ctpw
                   3850: >52    byte            4               -Ctcb
                   3851: >53    byte            1               -Cdnc
                   3852: >53    byte            2               -Cdsw
                   3853: >53    byte            3               -Cdpw
                   3854: >53    byte            4               -Cdcb
                   3855: >54    byte            1               -Csnc
                   3856: >54    byte            2               -Cssw
                   3857: >54    byte            3               -Cspw
                   3858: >54    byte            4               -Cscb
                   3859: 4      string          pipe            CLIPPER instruction trace
                   3860: 4      string          prof            CLIPPER instruction profile
                   3861: 
                   3862: #------------------------------------------------------------------------------
1.1.1.3   misho    3863: # $File: commands,v 1.45 2013/02/06 14:18:52 christos Exp $
1.1       misho    3864: # commands:  file(1) magic for various shells and interpreters
                   3865: #
1.1.1.3   misho    3866: #0     string/w        :                       shell archive or script for antique kernel text
                   3867: 0      string/wt       #!\ /bin/sh             POSIX shell script text executable
1.1       misho    3868: !:mime text/x-shellscript
1.1.1.3   misho    3869: 0      string/wt       #!\ /bin/csh            C shell script text executable
1.1       misho    3870: !:mime text/x-shellscript
                   3871: # korn shell magic, sent by George Wu, gwu@clyde.att.com
1.1.1.3   misho    3872: 0      string/wt       #!\ /bin/ksh            Korn shell script text executable
1.1       misho    3873: !:mime text/x-shellscript
1.1.1.3   misho    3874: 0      string/wt       #!\ /bin/tcsh           Tenex C shell script text executable
1.1       misho    3875: !:mime text/x-shellscript
1.1.1.3   misho    3876: 0      string/wt       #!\ /usr/bin/tcsh       Tenex C shell script text executable
1.1       misho    3877: !:mime text/x-shellscript
1.1.1.3   misho    3878: 0      string/wt       #!\ /usr/local/tcsh     Tenex C shell script text executable
1.1       misho    3879: !:mime text/x-shellscript
1.1.1.3   misho    3880: 0      string/wt       #!\ /usr/local/bin/tcsh Tenex C shell script text executable
1.1       misho    3881: !:mime text/x-shellscript
                   3882: 
                   3883: #
                   3884: # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
1.1.1.3   misho    3885: 0      string/wt       #!\ /bin/zsh            Paul Falstad's zsh script text executable
1.1       misho    3886: !:mime text/x-shellscript
1.1.1.3   misho    3887: 0      string/wt       #!\ /usr/bin/zsh        Paul Falstad's zsh script text executable
1.1       misho    3888: !:mime text/x-shellscript
1.1.1.3   misho    3889: 0      string/wt       #!\ /usr/local/bin/zsh  Paul Falstad's zsh script text executable
1.1       misho    3890: !:mime text/x-shellscript
1.1.1.3   misho    3891: 0      string/wt       #!\ /usr/local/bin/ash  Neil Brown's ash script text executable
1.1       misho    3892: !:mime text/x-shellscript
1.1.1.3   misho    3893: 0      string/wt       #!\ /usr/local/bin/ae   Neil Brown's ae script text executable
1.1       misho    3894: !:mime text/x-shellscript
1.1.1.3   misho    3895: 0      string/wt       #!\ /bin/nawk           new awk script text executable
1.1       misho    3896: !:mime text/x-nawk
1.1.1.3   misho    3897: 0      string/wt       #!\ /usr/bin/nawk       new awk script text executable
1.1       misho    3898: !:mime text/x-nawk
1.1.1.3   misho    3899: 0      string/wt       #!\ /usr/local/bin/nawk new awk script text executable
1.1       misho    3900: !:mime text/x-nawk
1.1.1.3   misho    3901: 0      string/wt       #!\ /bin/gawk           GNU awk script text executable
1.1       misho    3902: !:mime text/x-gawk
1.1.1.3   misho    3903: 0      string/wt       #!\ /usr/bin/gawk       GNU awk script text executable
1.1       misho    3904: !:mime text/x-gawk
1.1.1.3   misho    3905: 0      string/wt       #!\ /usr/local/bin/gawk GNU awk script text executable
1.1       misho    3906: !:mime text/x-gawk
                   3907: #
1.1.1.3   misho    3908: 0      string/wt       #!\ /bin/awk            awk script text executable
1.1       misho    3909: !:mime text/x-awk
1.1.1.3   misho    3910: 0      string/wt       #!\ /usr/bin/awk        awk script text executable
1.1       misho    3911: !:mime text/x-awk
                   3912: 0      regex           =^\\s*BEGIN\\s*[{]      awk script text
                   3913: 
                   3914: # AT&T Bell Labs' Plan 9 shell
1.1.1.3   misho    3915: 0      string/wt       #!\ /bin/rc     Plan 9 rc shell script text executable
1.1       misho    3916: 
                   3917: # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
1.1.1.3   misho    3918: 0      string/wt       #!\ /bin/bash   Bourne-Again shell script text executable
1.1.1.2   misho    3919: !:mime text/x-shellscript
1.1.1.3   misho    3920: 0      string/wt       #!\ /usr/bin/bash       Bourne-Again shell script text executable
1.1.1.2   misho    3921: !:mime text/x-shellscript
1.1.1.3   misho    3922: 0      string/wt       #!\ /usr/local/bash     Bourne-Again shell script text executable
1.1       misho    3923: !:mime text/x-shellscript
1.1.1.3   misho    3924: 0      string/wt       #!\ /usr/local/bin/bash Bourne-Again shell script text executable
1.1       misho    3925: !:mime text/x-shellscript
                   3926: 
                   3927: # PHP scripts
                   3928: # Ulf Harnhammar <ulfh@update.uu.se>
                   3929: 0      search/1/c      =<?php                  PHP script text
1.1.1.3   misho    3930: !:strength + 10
1.1       misho    3931: !:mime text/x-php
                   3932: 0      search/1        =<?\n                   PHP script text
                   3933: !:mime text/x-php
                   3934: 0      search/1        =<?\r                   PHP script text
                   3935: !:mime text/x-php
1.1.1.2   misho    3936: 0      search/1/w      #!\ /usr/local/bin/php  PHP script text executable
1.1.1.3   misho    3937: !:strength + 10
1.1       misho    3938: !:mime text/x-php
1.1.1.2   misho    3939: 0      search/1/w      #!\ /usr/bin/php        PHP script text executable
1.1.1.3   misho    3940: !:strength + 10
                   3941: !:mime text/x-php
                   3942: # Smarty compiled template, http://www.smarty.net/
                   3943: # Elan Ruusamae <glen@delfi.ee>
                   3944: 0      string  =<?php\ /*\ Smarty\ version     Smarty compiled template
                   3945: >24    regex   [0-9.]+                         \b, version %s
1.1       misho    3946: !:mime text/x-php
                   3947: 
                   3948: 0      string          Zend\x00                PHP script Zend Optimizer data
                   3949: 
1.1.1.3   misho    3950: 0      string/t        $!                      DCL command file
1.1       misho    3951: 
                   3952: # Type: Pdmenu
                   3953: # URL:  http://packages.debian.org/pdmenu
                   3954: # From: Edward Betts <edward@debian.org>
1.1.1.3   misho    3955: 0      string          #!/usr/bin/pdmenu       Pdmenu configuration file text
1.1       misho    3956: 
                   3957: #----------------------------------------------------------------------------
1.1.1.2   misho    3958: # $File: communications,v 1.5 2009/09/19 16:28:08 christos Exp $
1.1       misho    3959: # communication
                   3960: 
                   3961: # TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
                   3962: # It is used for conformance testing of communication protocols.
                   3963: # Added by W. Borgert <debacle@debian.org>.
                   3964: 0      string          $Suite                  TTCN Abstract Test Suite
                   3965: >&1    string          $SuiteId
                   3966: >>&1   string          >\n                     %s
                   3967: >&2    string          $SuiteId
                   3968: >>&1   string          >\n                     %s
                   3969: >&3    string          $SuiteId
                   3970: >>&1   string          >\n                     %s
                   3971: 
                   3972: # MSC (message sequence charts) are a formal description technique,
                   3973: # described in ITU-T Z.120, mainly used for communication protocols.
                   3974: # Added by W. Borgert <debacle@debian.org>.
                   3975: 0      string          mscdocument     Message Sequence Chart (document)
                   3976: 0      string          msc             Message Sequence Chart (chart)
                   3977: 0      string          submsc          Message Sequence Chart (subchart)
                   3978: #------------------------------------------------------------------------------
1.1.1.3   misho    3979: # $File: compress,v 1.49 2011/12/07 22:04:27 christos Exp $
1.1       misho    3980: # compress:  file(1) magic for pure-compression formats (no archives)
                   3981: #
                   3982: # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
                   3983: #
                   3984: # Formats for various forms of compressed data
                   3985: # Formats for "compress" proper have been moved into "compress.c",
                   3986: # because it tries to uncompress it to figure out what's inside.
                   3987: 
                   3988: # standard unix compress
                   3989: 0      string          \037\235        compress'd data
                   3990: !:mime application/x-compress
1.1.1.2   misho    3991: !:apple        LZIVZIVU
1.1       misho    3992: >2     byte&0x80       >0              block compressed
                   3993: >2     byte&0x1f       x               %d bits
                   3994: 
                   3995: # gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
                   3996: #   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
                   3997: #      * Original filename is only at offset 10 if "extra field" absent
                   3998: #      * Produce shorter output - notably, only report compression methods
1.1.1.3   misho    3999: #         other than 8 ("deflate", the only method defined in RFC 1952).
1.1       misho    4000: 0       string          \037\213        gzip compressed data
                   4001: !:mime application/x-gzip
                   4002: >2     byte            <8              \b, reserved method
                   4003: >2     byte            >8              \b, unknown method
                   4004: >3     byte            &0x01           \b, ASCII
                   4005: >3     byte            &0x02           \b, has CRC
                   4006: >3     byte            &0x04           \b, extra field
                   4007: >3     byte&0xC        =0x08
                   4008: >>10   string          x               \b, was "%s"
                   4009: >3     byte            &0x10           \b, has comment
                   4010: >9     byte            =0x00           \b, from FAT filesystem (MS-DOS, OS/2, NT)
                   4011: >9     byte            =0x01           \b, from Amiga
                   4012: >9     byte            =0x02           \b, from VMS
                   4013: >9     byte            =0x03           \b, from Unix
                   4014: >9     byte            =0x04           \b, from VM/CMS
                   4015: >9     byte            =0x05           \b, from Atari
                   4016: >9     byte            =0x06           \b, from HPFS filesystem (OS/2, NT)
                   4017: >9     byte            =0x07           \b, from MacOS
                   4018: >9     byte            =0x08           \b, from Z-System
                   4019: >9     byte            =0x09           \b, from CP/M
                   4020: >9     byte            =0x0A           \b, from TOPS/20
                   4021: >9     byte            =0x0B           \b, from NTFS filesystem (NT)
                   4022: >9     byte            =0x0C           \b, from QDOS
                   4023: >9     byte            =0x0D           \b, from Acorn RISCOS
                   4024: >3     byte            &0x10           \b, comment
                   4025: >3     byte            &0x20           \b, encrypted
                   4026: >4     ledate          >0              \b, last modified: %s
                   4027: >8     byte            2               \b, max compression
                   4028: >8     byte            4               \b, max speed
                   4029: 
                   4030: # packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
                   4031: 0      string          \037\036        packed data
                   4032: !:mime application/octet-stream
                   4033: >2     belong          >1              \b, %d characters originally
                   4034: >2     belong          =1              \b, %d character originally
                   4035: #
                   4036: # This magic number is byte-order-independent.
                   4037: 0      short           0x1f1f          old packed data
                   4038: !:mime application/octet-stream
                   4039: 
                   4040: # XXX - why *two* entries for "compacted data", one of which is
                   4041: # byte-order independent, and one of which is byte-order dependent?
                   4042: #
                   4043: 0      short           0x1fff          compacted data
                   4044: !:mime application/octet-stream
                   4045: # This string is valid for SunOS (BE) and a matching "short" is listed
                   4046: # in the Ultrix (LE) magic file.
                   4047: 0      string          \377\037        compacted data
                   4048: !:mime application/octet-stream
                   4049: 0      short           0145405         huf output
                   4050: !:mime application/octet-stream
                   4051: 
                   4052: # bzip2
                   4053: 0      string          BZh             bzip2 compressed data
                   4054: !:mime application/x-bzip2
                   4055: >3     byte            >47             \b, block size = %c00k
                   4056: 
1.1.1.2   misho    4057: # lzip
                   4058: 0      string          LZIP            lzip compressed data
                   4059: !:mime application/x-lzip
                   4060: >4     byte            x               \b, version: %d
                   4061: 
1.1       misho    4062: # squeeze and crunch
                   4063: # Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
                   4064: 0      beshort         0x76FF          squeezed data,
                   4065: >4     string          x               original name %s
                   4066: 0      beshort         0x76FE          crunched data,
                   4067: >2     string          x               original name %s
                   4068: 0      beshort         0x76FD          LZH compressed data,
                   4069: >2     string          x               original name %s
                   4070: 
                   4071: # Freeze
                   4072: 0      string          \037\237        frozen file 2.1
                   4073: 0      string          \037\236        frozen file 1.0 (or gzip 0.5)
                   4074: 
                   4075: # SCO compress -H (LZH)
                   4076: 0      string          \037\240        SCO compress -H (LZH) data
                   4077: 
                   4078: # European GSM 06.10 is a provisional standard for full-rate speech
                   4079: # transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
                   4080: # excitation/long term prediction) coding at 13 kbit/s.
                   4081: #
                   4082: # There's only a magic nibble (4 bits); that nibble repeats every 33
                   4083: # bytes.  This isn't suited for use, but maybe we can use it someday.
                   4084: #
                   4085: # This will cause very short GSM files to be declared as data and
                   4086: # mismatches to be declared as data too!
                   4087: #0     byte&0xF0       0xd0            data
                   4088: #>33   byte&0xF0       0xd0
                   4089: #>66   byte&0xF0       0xd0
                   4090: #>99   byte&0xF0       0xd0
                   4091: #>132  byte&0xF0       0xd0            GSM 06.10 compressed audio
                   4092: 
                   4093: # bzip a block-sorting file compressor
                   4094: #      by Julian Seward <sewardj@cs.man.ac.uk> and others
                   4095: #
                   4096: #0     string          BZ              bzip compressed data
                   4097: #>2    byte            x               \b, version: %c
                   4098: #>3    string          =1              \b, compression block size 100k
                   4099: #>3    string          =2              \b, compression block size 200k
                   4100: #>3    string          =3              \b, compression block size 300k
                   4101: #>3    string          =4              \b, compression block size 400k
                   4102: #>3    string          =5              \b, compression block size 500k
                   4103: #>3    string          =6              \b, compression block size 600k
                   4104: #>3    string          =7              \b, compression block size 700k
                   4105: #>3    string          =8              \b, compression block size 800k
                   4106: #>3    string          =9              \b, compression block size 900k
                   4107: 
                   4108: # lzop from <markus.oberhumer@jk.uni-linz.ac.at>
                   4109: 0      string          \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a    lzop compressed data
                   4110: >9     beshort         <0x0940
                   4111: >>9    byte&0xf0       =0x00           - version 0.
                   4112: >>9    beshort&0x0fff  x               \b%03x,
                   4113: >>13   byte            1               LZO1X-1,
                   4114: >>13   byte            2               LZO1X-1(15),
                   4115: >>13   byte            3               LZO1X-999,
                   4116: ## >>22        bedate          >0              last modified: %s,
                   4117: >>14   byte            =0x00           os: MS-DOS
                   4118: >>14   byte            =0x01           os: Amiga
                   4119: >>14   byte            =0x02           os: VMS
                   4120: >>14   byte            =0x03           os: Unix
                   4121: >>14   byte            =0x05           os: Atari
                   4122: >>14   byte            =0x06           os: OS/2
                   4123: >>14   byte            =0x07           os: MacOS
                   4124: >>14   byte            =0x0A           os: Tops/20
                   4125: >>14   byte            =0x0B           os: WinNT
                   4126: >>14   byte            =0x0E           os: Win32
                   4127: >9     beshort         >0x0939
                   4128: >>9    byte&0xf0       =0x00           - version 0.
                   4129: >>9    byte&0xf0       =0x10           - version 1.
                   4130: >>9    byte&0xf0       =0x20           - version 2.
                   4131: >>9    beshort&0x0fff  x               \b%03x,
                   4132: >>15   byte            1               LZO1X-1,
                   4133: >>15   byte            2               LZO1X-1(15),
                   4134: >>15   byte            3               LZO1X-999,
                   4135: ## >>25        bedate          >0              last modified: %s,
                   4136: >>17   byte            =0x00           os: MS-DOS
                   4137: >>17   byte            =0x01           os: Amiga
                   4138: >>17   byte            =0x02           os: VMS
                   4139: >>17   byte            =0x03           os: Unix
                   4140: >>17   byte            =0x05           os: Atari
                   4141: >>17   byte            =0x06           os: OS/2
                   4142: >>17   byte            =0x07           os: MacOS
                   4143: >>17   byte            =0x0A           os: Tops/20
                   4144: >>17   byte            =0x0B           os: WinNT
                   4145: >>17   byte            =0x0E           os: Win32
                   4146: 
                   4147: # 4.3BSD-Quasijarus Strong Compression
                   4148: # http://minnie.tuhs.org/Quasijarus/compress.html
                   4149: 0      string          \037\241        Quasijarus strong compressed data
                   4150: 
                   4151: # From: Cory Dikkers <cdikkers@swbell.net>
                   4152: 0      string          XPKF            Amiga xpkf.library compressed data
                   4153: 0      string          PP11            Power Packer 1.1 compressed data
                   4154: 0      string          PP20            Power Packer 2.0 compressed data,
                   4155: >4     belong          0x09090909      fast compression
                   4156: >4     belong          0x090A0A0A      mediocre compression
                   4157: >4     belong          0x090A0B0B      good compression
                   4158: >4     belong          0x090A0C0C      very good compression
                   4159: >4     belong          0x090A0C0D      best compression
                   4160: 
                   4161: # 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
1.1.1.3   misho    4162: # http://www.7-zip.org or DOC/7zFormat.txt
1.1       misho    4163: #
                   4164: 0      string          7z\274\257\047\034      7-zip archive data,
                   4165: >6     byte            x                       version %d
                   4166: >7     byte            x                       \b.%d
1.1.1.2   misho    4167: !:mime application/x-7z-compressed
1.1       misho    4168: 
                   4169: # Type: LZMA
1.1.1.3   misho    4170: 0      lelong&0xffffff =0x5d
                   4171: >12    leshort         =0xff                   LZMA compressed data,
                   4172: >>5    lequad          =0xffffffffffffffff     streamed
                   4173: >>5    lequad          !0xffffffffffffffff     non-streamed, size %lld
                   4174: !:mime application/x-lzma
1.1.1.2   misho    4175: 
                   4176: # http://tukaani.org/xz/xz-file-format.txt
                   4177: 0      ustring         \xFD7zXZ\x00            XZ compressed data
                   4178: !:mime application/x-xz
1.1       misho    4179: 
1.1.1.3   misho    4180: # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt
                   4181: 0      string          LRZI                    LRZIP compressed data
                   4182: >4     byte            x                       - version %d
                   4183: >5     byte            x                       \b.%d
                   4184: !:mime application/x-lrzip
                   4185: 
1.1       misho    4186: # AFX compressed files (Wolfram Kleff)
                   4187: 2      string          -afx-           AFX compressed file data
                   4188: 
                   4189: # Supplementary magic data for the file(1) command to support
                   4190: # rzip(1).  The format is described in magic(5).
                   4191: #
                   4192: # Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
                   4193: # this file.
                   4194: #
                   4195: 0      string          RZIP            rzip compressed data
                   4196: >4     byte            x               - version %d
                   4197: >5     byte            x               \b.%d
                   4198: >6     belong          x               (%d bytes)
1.1.1.2   misho    4199: 
1.1.1.3   misho    4200: 0      string          ArC\x01         FreeArc archive <http://freearc.org>
1.1.1.2   misho    4201: 
                   4202: # Type:        DACT compressed files
                   4203: 0      long    0x444354C3      DACT compressed data
                   4204: >4     byte    >-1             (version %i.
                   4205: >5     byte    >-1             %i.
                   4206: >6     byte    >-1             %i)
                   4207: >7     long    >0              , original size: %i bytes
                   4208: >15    long    >30             , block size: %i bytes
                   4209: 
1.1       misho    4210: #------------------------------------------------------------------------------
1.1.1.3   misho    4211: # $File: console,v 1.19 2013/02/06 14:18:52 christos Exp $
1.1       misho    4212: # Console game magic
                   4213: # Toby Deshane <hac@shoelace.digivill.net>
                   4214: #    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
                   4215: #           ROM dump format
                   4216: 
                   4217: 0 string NES\032 iNES ROM dump,
                   4218: >4 byte  x     %dx16k PRG
                   4219: >5 byte  x     \b, %dx8k CHR
                   4220: >6 byte&0x01  =0x1  \b, [Vert.]
                   4221: >6 byte&0x01  =0x0  \b, [Horiz.]
                   4222: >6 byte&0x02  =0x2  \b, [SRAM]
                   4223: >6 byte&0x04  =0x4  \b, [Trainer]
                   4224: >6 byte&0x04  =0x8  \b, [4-Scr]
                   4225: 
                   4226: #------------------------------------------------------------------------------
                   4227: # gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
                   4228: #
                   4229: 0x104 belong 0xCEED6666 Gameboy ROM:
                   4230: >0x134 string >\0 "%.16s"
                   4231: >0x146 byte 0x03  \b,[SGB]
                   4232: >0x147 byte 0x00  \b, [ROM ONLY]
                   4233: >0x147 byte 0x01  \b, [ROM+MBC1]
                   4234: >0x147 byte 0x02  \b, [ROM+MBC1+RAM]
                   4235: >0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
                   4236: >0x147 byte 0x05  \b, [ROM+MBC2]
                   4237: >0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
                   4238: >0x147 byte 0x08  \b, [ROM+RAM]
                   4239: >0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
                   4240: >0x147 byte 0x0B  \b, [ROM+MMM01]
                   4241: >0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
                   4242: >0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
                   4243: >0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
                   4244: >0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
                   4245: >0x147 byte 0x11  \b, [ROM+MBC3]
                   4246: >0x147 byte 0x12  \b, [ROM+MBC3+RAM]
                   4247: >0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
                   4248: >0x147 byte 0x19  \b, [ROM+MBC5]
                   4249: >0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
                   4250: >0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
                   4251: >0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
                   4252: >0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
                   4253: >0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
                   4254: >0x147 byte 0x1F  \b, [Pocket Camera]
                   4255: >0x147 byte 0xFD  \b, [Bandai TAMA5]
                   4256: >0x147 byte 0xFE  \b, [Hudson HuC-3]
                   4257: >0x147 byte 0xFF  \b, [Hudson HuC-1]
                   4258: 
                   4259: >0x148 byte 0     \b, ROM: 256Kbit
                   4260: >0x148 byte 1     \b, ROM: 512Kbit
                   4261: >0x148 byte 2     \b, ROM: 1Mbit
                   4262: >0x148 byte 3     \b, ROM: 2Mbit
                   4263: >0x148 byte 4     \b, ROM: 4Mbit
                   4264: >0x148 byte 5     \b, ROM: 8Mbit
                   4265: >0x148 byte 6     \b, ROM: 16Mbit
                   4266: >0x148 byte 0x52  \b, ROM: 9Mbit
                   4267: >0x148 byte 0x53  \b, ROM: 10Mbit
                   4268: >0x148 byte 0x54  \b, ROM: 12Mbit
                   4269: 
                   4270: >0x149 byte 1     \b, RAM: 16Kbit
                   4271: >0x149 byte 2     \b, RAM: 64Kbit
                   4272: >0x149 byte 3     \b, RAM: 128Kbit
                   4273: >0x149 byte 4     \b, RAM: 1Mbit
                   4274: 
                   4275: #>0x14e long  x     \b, CRC: %x
                   4276: 
                   4277: #------------------------------------------------------------------------------
                   4278: # genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
                   4279: #
                   4280: 0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
                   4281: >0x120 string >\0 Name: "%.16s"
                   4282: >0x110 string >\0 %.16s
                   4283: >0x1B0 string RA with SRAM
                   4284: 
                   4285: #------------------------------------------------------------------------------
                   4286: # genesis:  file(1) magic for the Super MegaDrive ROM dump format
                   4287: #
                   4288: 0x280 string EAGN  Super MagicDrive ROM dump
                   4289: >0 byte x %dx16k blocks
                   4290: >2 byte 0 \b, last in series or standalone
                   4291: >2 byte >0 \b, split ROM
                   4292: >8 byte 0xAA
                   4293: >9 byte 0xBB
                   4294: 
                   4295: #------------------------------------------------------------------------------
                   4296: # genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
                   4297: #
                   4298: 0x280 string EAMG  Super MagicDrive ROM dump
                   4299: >0 byte x %dx16k blocks
                   4300: >2 byte x \b, last in series or standalone
                   4301: >8 byte 0xAA
                   4302: >9 byte 0xBB
                   4303: 
                   4304: #------------------------------------------------------------------------------
                   4305: # smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
                   4306: #
                   4307: # Does not detect all images.  Very preliminary guesswork.  Need more data
                   4308: # on format.
                   4309: #
                   4310: # FIXME: need a little more info...;P
                   4311: #
                   4312: #0 byte 0xF3
                   4313: #>1 byte 0xED  Sega Master System/Game Gear ROM dump
                   4314: #>1 byte 0x31  Sega Master System/Game Gear ROM dump
                   4315: #>1 byte 0xDB  Sega Master System/Game Gear ROM dump
                   4316: #>1 byte 0xAF  Sega Master System/Game Gear ROM dump
                   4317: #>1 byte 0xC3  Sega Master System/Game Gear ROM dump
                   4318: 
                   4319: #------------------------------------------------------------------------------
                   4320: # dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
                   4321: #
                   4322: 0 belong 0x21068028   Sega Dreamcast VMU game image
                   4323: 0 string LCDi         Dream Animator file
                   4324: 
                   4325: #------------------------------------------------------------------------------
                   4326: # v64: file(1) uncertain magic for the V64 format N64 ROM dumps
                   4327: #
                   4328: 0 belong 0x37804012    V64 Nintendo 64 ROM dump
                   4329: 
                   4330: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   4331: # Nintendo .nds
                   4332: 192    string  \044\377\256Qi\232      Nintendo DS Game ROM Image
                   4333: # Nintendo .gba
                   4334: 0      string  \056\000\000\352$\377\256Qi     Nintendo Game Boy Advance ROM Image
                   4335: 
                   4336: #------------------------------------------------------------------------------
                   4337: # msx: file(1) magic for MSX game cartridge dumps
                   4338: # Too simple - MPi
                   4339: #0 beshort 0x4142 MSX game cartridge dump 
                   4340: 
                   4341: #------------------------------------------------------------------------------
                   4342: # Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
                   4343: 0      string  PS-X\ EXE       Sony Playstation executable
                   4344: #  Area:
                   4345: >113   string  x               (%s)
                   4346: 
                   4347: #------------------------------------------------------------------------------
1.1.1.3   misho    4348: # Microsoft Xbox executables .xbe (Esa Hyytia <ehyytia@cc.hut.fi>)
1.1       misho    4349: 0       string          XBEH            XBE, Microsoft Xbox executable
                   4350: # probabilistic checks whether signed or not
                   4351: >0x0004 ulelong =0x0
                   4352: >>&2    ulelong =0x0
                   4353: >>>&2   ulelong =0x0  \b, not signed
                   4354: >0x0004 ulelong >0
                   4355: >>&2    ulelong >0
                   4356: >>>&2   ulelong >0    \b, signed
                   4357: # expect base address of 0x10000
                   4358: >0x0104               ulelong =0x10000
                   4359: >>(0x0118-0x0FF60)    ulelong&0x80000007  0x80000007 \b, all regions
                   4360: >>(0x0118-0x0FF60)    ulelong&0x80000007  !0x80000007
                   4361: >>>(0x0118-0x0FF60)   ulelong >0           (regions:
                   4362: >>>>(0x0118-0x0FF60)  ulelong &0x00000001  NA
                   4363: >>>>(0x0118-0x0FF60)  ulelong &0x00000002  Japan
                   4364: >>>>(0x0118-0x0FF60)  ulelong &0x00000004  Rest_of_World
                   4365: >>>>(0x0118-0x0FF60)  ulelong &0x80000000  Manufacturer
                   4366: >>>(0x0118-0x0FF60)   ulelong >0           \b)
                   4367: 
                   4368: # --------------------------------
                   4369: # Microsoft Xbox data file formats
                   4370: 0       string          XIP0            XIP, Microsoft Xbox data
                   4371: 0       string          XTF0            XTF, Microsoft Xbox data
                   4372: 
                   4373: # Atari Lynx cartridge dump (EXE/BLL header)
                   4374: # From: "Stefan A. Haubenthal" <polluks@web.de>
                   4375: 
1.1.1.3   misho    4376: # Double-check that the image type matches too, 0x8008 conflicts with
                   4377: # 8 character OMF-86 object file headers.
                   4378: 0      beshort         0x8008          
                   4379: >6     string          BS93            Lynx homebrew cartridge
                   4380: >>2    beshort         x               \b, RAM start $%04x
                   4381: >6     string          LYNX            Lynx cartridge
                   4382: >>2    beshort         x               \b, RAM start $%04x
1.1       misho    4383: 
                   4384: # Opera file system that is used on the 3DO console
                   4385: # From: Serge van den Boom <svdb@stack.nl>
                   4386: 0      string          \x01ZZZZZ\x01   3DO "Opera" file system
                   4387: 
1.1.1.3   misho    4388: # From Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
1.1       misho    4389: 0      string          GBS             Nintendo Gameboy Music/Audio Data
                   4390: 12     string          GameBoy\ Music\ Module  Nintendo Gameboy Music Module
                   4391: 
                   4392: # Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at>
                   4393: 0      string  PPF30                   Playstation Patch File version 3.0
                   4394: >5     byte    0                       \b, PPF 1.0 patch
                   4395: >5     byte    1                       \b, PPF 2.0 patch
                   4396: >5     byte    2                       \b, PPF 3.0 patch
                   4397: >>56   byte    0                       \b, Imagetype BIN (any)
                   4398: >>56   byte    1                       \b, Imagetype GI (PrimoDVD)
                   4399: >>57   byte    0                       \b, Blockcheck disabled
                   4400: >>57   byte    1                       \b, Blockcheck enabled
                   4401: >>58   byte    0                       \b, Undo data not available
                   4402: >>58   byte    1                       \b, Undo data available
                   4403: >6     string  x                       \b, description: %s
                   4404: 
                   4405: 0      string  PPF20                   Playstation Patch File version 2.0
                   4406: >5     byte    0                       \b, PPF 1.0 patch
                   4407: >5     byte    1                       \b, PPF 2.0 patch
                   4408: >>56   lelong  >0                      \b, size of file to patch %d
                   4409: >6     string  x                       \b, description: %s
                   4410: 
                   4411: 0      string  PPF10                   Playstation Patch File version 1.0
                   4412: >5     byte    0                       \b, Simple Encoding
                   4413: >6     string  x                       \b, description: %s
                   4414: 
                   4415: # From: Daniel Dawson <ddawson@icehouse.net>
                   4416: # SNES9x .smv "movie" file format.
                   4417: 0              string          SMV\x1A SNES9x input recording
                   4418: >0x4           lelong          x       \b, version %d
                   4419: # version 4 is latest so far 
                   4420: >0x4           lelong          <5
                   4421: >>0x8          ledate          x       \b, recorded at %s
                   4422: >>0xc          lelong          >0      \b, rerecorded %d times
                   4423: >>0x10         lelong          x       \b, %d frames long
                   4424: >>0x14         byte            >0      \b, data for controller(s):
                   4425: >>>0x14                byte            &0x1    #1
                   4426: >>>0x14                byte            &0x2    #2
                   4427: >>>0x14                byte            &0x4    #3
                   4428: >>>0x14                byte            &0x8    #4
                   4429: >>>0x14                byte            &0x10   #5
                   4430: >>0x15         byte            ^0x1    \b, begins from snapshot
                   4431: >>0x15         byte            &0x1    \b, begins from reset
                   4432: >>0x15         byte            ^0x2    \b, NTSC standard
                   4433: >>0x15         byte            &0x2    \b, PAL standard
                   4434: >>0x17         byte            &0x1    \b, settings:
                   4435: # WIP1Timing not used as of version 4
                   4436: >>>0x4         lelong          <4
                   4437: >>>>0x17       byte            &0x2    WIP1Timing
                   4438: >>>0x17                byte            &0x4    Left+Right
                   4439: >>>0x17                byte            &0x8    VolumeEnvX
                   4440: >>>0x17                byte            &0x10   FakeMute
                   4441: >>>0x17                byte            &0x20   SyncSound
                   4442: # New flag as of version 4
                   4443: >>>0x4         lelong          >3
                   4444: >>>>0x17       byte            &0x80   NoCPUShutdown
                   4445: >>0x4          lelong          <4
                   4446: >>>0x18                lelong          >0x23
                   4447: >>>>0x20       leshort         !0
                   4448: >>>>>0x20      lestring16      x       \b, metadata: "%s"
                   4449: >>0x4          lelong          >3
                   4450: >>>0x24                byte            >0      \b, port 1:
                   4451: >>>>0x24       byte            1       joypad
                   4452: >>>>0x24       byte            2       mouse
                   4453: >>>>0x24       byte            3       SuperScope
                   4454: >>>>0x24       byte            4       Justifier
                   4455: >>>>0x24       byte            5       multitap
                   4456: >>>0x24                byte            >0      \b, port 2:
                   4457: >>>>0x25       byte            1       joypad
                   4458: >>>>0x25       byte            2       mouse
                   4459: >>>>0x25       byte            3       SuperScope
                   4460: >>>>0x25       byte            4       Justifier
                   4461: >>>>0x25       byte            5       multitap
                   4462: >>>0x18                lelong          >0x43
                   4463: >>>>0x40       leshort         !0
                   4464: >>>>>0x40      lestring16      x       \b, metadata: "%s"
                   4465: >>0x17         byte            &0x40   \b, ROM:
                   4466: >>>(0x18.l-26) lelong          x       CRC32 0x%08x
                   4467: >>>(0x18.l-23) string          x       "%s"
                   4468: 
                   4469: # Type: scummVM savegame files
                   4470: # From: Sven Hartge <debian@ds9.argh.org>
1.1.1.2   misho    4471: 0      string  SCVM    ScummVM savegame
1.1       misho    4472: >12    string  >\0     "%s"
1.1.1.2   misho    4473: 
1.1       misho    4474: #------------------------------------------------------------------------------
1.1.1.3   misho    4475: # $File: convex,v 1.8 2012/10/03 23:44:43 christos Exp $
1.1       misho    4476: # convex:  file(1) magic for Convex boxes
                   4477: #
                   4478: # Convexes are big-endian.
                   4479: #
                   4480: # /*\
                   4481: #  * Below are the magic numbers and tests added for Convex.
                   4482: #  * Added at beginning, because they are expected to be used most.
                   4483: # \*/
                   4484: 0      belong  0507    Convex old-style object
                   4485: >16    belong  >0      not stripped
                   4486: 0      belong  0513    Convex old-style demand paged executable
                   4487: >16    belong  >0      not stripped
                   4488: 0      belong  0515    Convex old-style pre-paged executable
                   4489: >16    belong  >0      not stripped
                   4490: 0      belong  0517    Convex old-style pre-paged, non-swapped executable
                   4491: >16    belong  >0      not stripped
                   4492: 0      belong  0x011257        Core file
                   4493: #
                   4494: # The following are a series of dump format magic numbers.  Each one
                   4495: # corresponds to a drastically different dump format.  The first on is
                   4496: # the original dump format on a 4.1 BSD or earlier file system.  The
                   4497: # second marks the change between the 4.1 file system and the 4.2 file
                   4498: # system.  The Third marks the changing of the block size from 1K
                   4499: # to 2K to be compatible with an IDC file system.  The fourth indicates
                   4500: # a dump that is dependent on Convex Storage Manager, because data in
                   4501: # secondary storage is not physically contained within the dump.
                   4502: # The restore program uses these number to determine how the data is
                   4503: # to be extracted.
                   4504: #
                   4505: 24     belong  =60013  dump format, 4.2 or 4.3 BSD (IDC compatible)
                   4506: 24     belong  =60014  dump format, Convex Storage Manager by-reference dump
                   4507: #
                   4508: # what follows is a bunch of bit-mask checks on the flags field of the opthdr.
                   4509: # If there is no `=' sign, assume just checking for whether the bit is set?
                   4510: #
                   4511: 0      belong  0601            Convex SOFF
                   4512: >88    belong&0x000f0000       =0x00000000     c1
                   4513: >88    belong                  &0x00010000     c2
                   4514: >88    belong                  &0x00020000     c2mp
                   4515: >88    belong                  &0x00040000     parallel
                   4516: >88    belong                  &0x00080000     intrinsic
                   4517: >88    belong                  &0x00000001     demand paged
                   4518: >88    belong                  &0x00000002     pre-paged
                   4519: >88    belong                  &0x00000004     non-swapped
                   4520: >88    belong                  &0x00000008     POSIX
                   4521: #
                   4522: >84    belong                  &0x80000000     executable
                   4523: >84    belong                  &0x40000000     object
                   4524: >84    belong&0x20000000       =0              not stripped
                   4525: >84    belong&0x18000000       =0x00000000     native fpmode
                   4526: >84    belong&0x18000000       =0x10000000     ieee fpmode
                   4527: >84    belong&0x18000000       =0x18000000     undefined fpmode
                   4528: #
                   4529: 0      belong                  0605            Convex SOFF core
                   4530: #
                   4531: 0      belong                  0607            Convex SOFF checkpoint
                   4532: >88    belong&0x000f0000       =0x00000000     c1
                   4533: >88    belong                  &0x00010000     c2
                   4534: >88    belong                  &0x00020000     c2mp
                   4535: >88    belong                  &0x00040000     parallel
                   4536: >88    belong                  &0x00080000     intrinsic
                   4537: >88    belong                  &0x00000008     POSIX
                   4538: #
                   4539: >84    belong&0x18000000       =0x00000000     native fpmode
                   4540: >84    belong&0x18000000       =0x10000000     ieee fpmode
                   4541: >84    belong&0x18000000       =0x18000000     undefined fpmode
                   4542: 
                   4543: #------------------------------------------------------------------------------
1.1.1.2   misho    4544: # $File: cracklib,v 1.7 2009/09/19 16:28:08 christos Exp $
1.1       misho    4545: # cracklib:  file (1) magic for cracklib v2.7
                   4546: 
                   4547: 0      lelong  0x70775631      Cracklib password index, little endian
                   4548: >4     long    >0              (%i words)
                   4549: >4     long    0               ("64-bit")
                   4550: >>8    long    >-1             (%i words)
                   4551: 0      belong  0x70775631      Cracklib password index, big endian
                   4552: >4     belong  >-1             (%i words)
                   4553: # really bellong 0x0000000070775631
                   4554: 0      search/1        \0\0\0\0pwV1    Cracklib password index, big endian ("64-bit")
                   4555: >12    belong  >0              (%i words)
1.1.1.2   misho    4556: 
1.1       misho    4557: # ----------------------------------------------------------------------------
1.1.1.2   misho    4558: # $File: ctags,v 1.6 2009/09/19 16:28:08 christos Exp $
1.1       misho    4559: # ctags:  file (1) magic for Exuberant Ctags files
                   4560: # From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
                   4561: 0      search/1        =!_TAG  Exuberant Ctags tag file text
                   4562: 
                   4563: #------------------------------------------------------------------------------
1.1.1.3   misho    4564: # $File: cubemap,v 1.1 2012/06/06 13:03:20 christos Exp $
                   4565: # file(1) magic(5) data for cubemaps  Martin Erik Werner <martinerikwerner@gmail.com>
                   4566: #
                   4567: 0      string  ACMP    Map file for the AssaultCube FPS game
                   4568: 0      string  CUBE    Map file for cube and cube2 engine games
                   4569: 0      string  MAPZ)   Map file for the Blood Frontier/Red Eclipse FPS games
                   4570: 
                   4571: #------------------------------------------------------------------------------
                   4572: # $File: cups,v 1.2 2012/11/02 21:50:29 christos Exp $
                   4573: # Cups: file(1) magic for the cups raster file format
                   4574: # From: Laurent Martelli <martellilaurent@gmail.com>
                   4575: # http://www.cups.org/documentation.php/spec-raster.html
                   4576: #
                   4577: 
                   4578: 0      name            cups-be
                   4579: >280   lelong          x               \b, %d
                   4580: >284   lelong          x               \bx%d dpi
                   4581: >376   lelong          x               \b, %dx
                   4582: >380   lelong          x               \b%d pixels
                   4583: >388   lelong          x               %d bits/color
                   4584: >392   lelong          x               %d bits/pixel
                   4585: >400   lelong          0               ColorOrder=Chunky
                   4586: >400   lelong          1               ColorOrder=Banded
                   4587: >400   lelong          2               ColorOrder=Planar
                   4588: >404   lelong          0               ColorSpace=gray
                   4589: >404   lelong          1               ColorSpace=RGB
                   4590: >404   lelong          2               ColorSpace=RGBA
                   4591: >404   lelong          3               ColorSpace=black
                   4592: >404   lelong          4               ColorSpace=CMY
                   4593: >404   lelong          5               ColorSpace=YMC
                   4594: >404   lelong          6               ColorSpace=CMYK
                   4595: >404   lelong          7               ColorSpace=YMCK
                   4596: >404   lelong          8               ColorSpace=KCMY
                   4597: >404   lelong          9               ColorSpace=KCMYcm
                   4598: >404   lelong          10              ColorSpace=GMCK
                   4599: >404   lelong          11              ColorSpace=GMCS
                   4600: >404   lelong          12              ColorSpace=WHITE
                   4601: >404   lelong          13              ColorSpace=GOLD
                   4602: >404   lelong          14              ColorSpace=SILVER
                   4603: >404   lelong          15              ColorSpace=CIE XYZ
                   4604: >404   lelong          16              ColorSpace=CIE Lab
                   4605: >404   lelong          17              ColorSpace=RGBW
                   4606: >404   lelong          18              ColorSpace=sGray
                   4607: >404   lelong          19              ColorSpace=sRGB
                   4608: >404   lelong          20              ColorSpace=AdobeRGB
                   4609: 
                   4610: # Cups Raster image format, Big Endian
                   4611: 0      string          RaS             
                   4612: >3     string          t               Cups Raster version 1, Big Endian
                   4613: >3     string          2               Cups Raster version 2, Big Endian
                   4614: >3     string          3               Cups Raster version 3, Big Endian
                   4615: !:mime application/vnd.cups-raster
                   4616: >0     use             ^cups-be
                   4617: 
                   4618: 
                   4619: # Cups Raster image format, Little Endian
                   4620: 1      string          SaR             
                   4621: >0     string          t               Cups Raster version 1, Little Endian
                   4622: >0     string          2               Cups Raster version 2, Little Endian
                   4623: >0     string          3               Cups Raster version 3, Little Endian
                   4624: !:mime application/vnd.cups-raster
                   4625: >0     use             \^cups-be
                   4626: 
                   4627: #------------------------------------------------------------------------------
1.1.1.2   misho    4628: # $File: dact,v 1.4 2009/09/19 16:28:08 christos Exp $
1.1       misho    4629: # dact:  file(1) magic for DACT compressed files
                   4630: #
                   4631: 0      long            0x444354C3      DACT compressed data
                   4632: >4     byte            >-1             (version %i.
                   4633: >5     byte            >-1             $BS%i.
                   4634: >6     byte            >-1             $BS%i)
                   4635: >7     long            >0              $BS, original size: %i bytes
                   4636: >15    long            >30             $BS, block size: %i bytes
                   4637: 
                   4638: #------------------------------------------------------------------------------
1.1.1.3   misho    4639: # $File: database,v 1.33 2013/03/09 22:36:00 christos Exp $
1.1       misho    4640: # database:  file(1) magic for various databases
                   4641: #
                   4642: # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
                   4643: #
                   4644: #
                   4645: # GDBM magic numbers
                   4646: #  Will be maintained as part of the GDBM distribution in the future.
                   4647: #  <downsj@teeny.org>
                   4648: 0      belong  0x13579ace      GNU dbm 1.x or ndbm database, big endian
                   4649: !:mime application/x-gdbm
                   4650: 0      lelong  0x13579ace      GNU dbm 1.x or ndbm database, little endian
                   4651: !:mime application/x-gdbm
                   4652: 0      string  GDBM            GNU dbm 2.x database
                   4653: !:mime application/x-gdbm
                   4654: #
                   4655: # Berkeley DB
                   4656: #
                   4657: # Ian Darwin's file /etc/magic files: big/little-endian version.
                   4658: #
                   4659: # Hash 1.85/1.86 databases store metadata in network byte order.
                   4660: # Btree 1.85/1.86 databases store the metadata in host byte order.
                   4661: # Hash and Btree 2.X and later databases store the metadata in host byte order.
                   4662: 
                   4663: 0      long    0x00061561      Berkeley DB
                   4664: !:mime application/x-dbm
                   4665: >8     belong  4321
                   4666: >>4    belong  >2              1.86
                   4667: >>4    belong  <3              1.85
                   4668: >>4    belong  >0              (Hash, version %d, native byte-order)
                   4669: >8     belong  1234
                   4670: >>4    belong  >2              1.86
                   4671: >>4    belong  <3              1.85
                   4672: >>4    belong  >0              (Hash, version %d, little-endian)
                   4673: 
                   4674: 0      belong  0x00061561      Berkeley DB
                   4675: >8     belong  4321
                   4676: >>4    belong  >2              1.86
                   4677: >>4    belong  <3              1.85
                   4678: >>4    belong  >0              (Hash, version %d, big-endian)
                   4679: >8     belong  1234
                   4680: >>4    belong  >2              1.86
                   4681: >>4    belong  <3              1.85
                   4682: >>4    belong  >0              (Hash, version %d, native byte-order)
                   4683: 
                   4684: 0      long    0x00053162      Berkeley DB 1.85/1.86
                   4685: >4     long    >0              (Btree, version %d, native byte-order)
                   4686: 0      belong  0x00053162      Berkeley DB 1.85/1.86
                   4687: >4     belong  >0              (Btree, version %d, big-endian)
                   4688: 0      lelong  0x00053162      Berkeley DB 1.85/1.86
                   4689: >4     lelong  >0              (Btree, version %d, little-endian)
                   4690: 
                   4691: 12     long    0x00061561      Berkeley DB
                   4692: >16    long    >0              (Hash, version %d, native byte-order)
                   4693: 12     belong  0x00061561      Berkeley DB
                   4694: >16    belong  >0              (Hash, version %d, big-endian)
                   4695: 12     lelong  0x00061561      Berkeley DB
                   4696: >16    lelong  >0              (Hash, version %d, little-endian)
                   4697: 
                   4698: 12     long    0x00053162      Berkeley DB
                   4699: >16    long    >0              (Btree, version %d, native byte-order)
                   4700: 12     belong  0x00053162      Berkeley DB
                   4701: >16    belong  >0              (Btree, version %d, big-endian)
                   4702: 12     lelong  0x00053162      Berkeley DB
                   4703: >16    lelong  >0              (Btree, version %d, little-endian)
                   4704: 
                   4705: 12     long    0x00042253      Berkeley DB
                   4706: >16    long    >0              (Queue, version %d, native byte-order)
                   4707: 12     belong  0x00042253      Berkeley DB
                   4708: >16    belong  >0              (Queue, version %d, big-endian)
                   4709: 12     lelong  0x00042253      Berkeley DB
                   4710: >16    lelong  >0              (Queue, version %d, little-endian)
                   4711: 
                   4712: # From Max Bowsher.
                   4713: 12     long    0x00040988      Berkeley DB
                   4714: >16    long    >0              (Log, version %d, native byte-order)
                   4715: 12     belong  0x00040988      Berkeley DB 
                   4716: >16    belong  >0              (Log, version %d, big-endian)
                   4717: 12     lelong  0x00040988      Berkeley DB
                   4718: >16    lelong  >0              (Log, version %d, little-endian)
                   4719: 
                   4720: #
                   4721: #
                   4722: # Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
                   4723: 0      string  RRD             RRDTool DB
                   4724: >4     string  x               version %s
                   4725: #----------------------------------------------------------------------
                   4726: # ROOT: file(1) magic for ROOT databases
                   4727: #
                   4728: 0       string  root\0  ROOT file
                   4729: >4      belong  x       Version %d
                   4730: >33     belong  x       (Compression: %d)
                   4731: 
                   4732: # XXX: Weak magic.
                   4733: # Alex Ott <ott@jet.msk.su>
                   4734: ## Paradox file formats
                   4735: #2       leshort       0x0800  Paradox 
                   4736: #>0x39   byte          3       v. 3.0 
                   4737: #>0x39   byte          4       v. 3.5 
                   4738: #>0x39   byte          9       v. 4.x 
                   4739: #>0x39   byte          10      v. 5.x 
                   4740: #>0x39   byte          11      v. 5.x 
                   4741: #>0x39   byte          12      v. 7.x 
                   4742: #>>0x04          byte          0       indexed .DB data file 
                   4743: #>>0x04          byte          1       primary index .PX file 
                   4744: #>>0x04          byte          2       non-indexed .DB data file 
                   4745: #>>0x04          byte          3       non-incrementing secondary index .Xnn file 
                   4746: #>>0x04          byte          4       secondary index .Ynn file 
                   4747: #>>0x04          byte          5       incrementing secondary index .Xnn file 
                   4748: #>>0x04          byte          6       non-incrementing secondary index .XGn file 
                   4749: #>>0x04          byte          7       secondary index .YGn file 
                   4750: #>>>0x04         byte          8       incrementing secondary index .XGn file 
                   4751: 
                   4752: ## XBase database files
1.1.1.3   misho    4753: # updated by Joerg Jenderek at Feb 2013
                   4754: # http://www.dbase.com/Knowledgebase/INT/db7_file_fmt.htm
                   4755: # http://www.clicketyclick.dk/databases/xbase/format/dbf.html
                   4756: # http://home.f1.htw-berlin.de/scheibl/db/intern/dBase.htm
                   4757: # inspect VVYYMMDD , where 1<= MM <= 12 and 1<= DD <= 31
                   4758: 0      ubelong&0x0000FFFF              <0x00000C20     
                   4759: # skip Infocom game Z-machine
                   4760: >2             ubyte                   >0              
                   4761: # skip Androids *.xml
                   4762: >>3            ubyte                   >0              
                   4763: >>>3           ubyte                   <32             
                   4764: # 1 < version VV
                   4765: >>>>0          ubyte                   >1              
                   4766: # skip HELP.CA3 by test for reserved byte ( NULL )
                   4767: >>>>>27                ubyte                   0               
                   4768: # reserved bytes not always 0 ; also found 0x3901 (T4.DBF) ,0x7101 (T5.DBF,T6.DBF)
                   4769: #>>>>>30               ubeshort                x               30NULL?%x
                   4770: # possible production flag,tag numbers(<=0x30),tag length(<=0x20), reserved (NULL) 
                   4771: >>>>>>24       ubelong&0xffFFFFff      >0x01302000     
                   4772: # .DBF or .MDX
                   4773: >>>>>>24       ubelong&0xffFFFFff      <0x01302001     
                   4774: # for Xbase Database file (*.DBF) reserved (NULL) for multi-user
                   4775: >>>>>>>24      ubelong&0xffFFFFff      =0              
                   4776: # test for 2 reserved NULL bytes,transaction and encryption byte flag
                   4777: >>>>>>>>12     ubelong&0xFFFFfEfE      0               
                   4778: # test for MDX flag
                   4779: >>>>>>>>>28    ubyte                   x               
                   4780: >>>>>>>>>28    ubyte&0xf8              0               
                   4781: # header size >= 32
                   4782: >>>>>>>>>>8    uleshort                >31             
                   4783: # skip PIC15736.PCX by test for language driver name or field name
                   4784: >>>>>>>>>>>32  ubyte                   >0              
                   4785: !:mime application/x-dbf
                   4786: #!:mime        application/x-dbf; charset=unknown-8bit ??
                   4787: #!:mime        application/x-dbase
                   4788: >>>>>>>>>>>>0  use                     xbase-type
                   4789: # database file
                   4790: >>>>>>>>>>>>0  ubyte                   x               \b DBF
                   4791: >>>>>>>>>>>>4  lelong                  0               \b, no records
                   4792: >>>>>>>>>>>>4  lelong                  >0              \b, %ld record
                   4793: # plural s appended
                   4794: >>>>>>>>>>>>>4 lelong                  >1              \bs
                   4795: # http://www.clicketyclick.dk/databases/xbase/format/dbf_check.html#CHECK_DBF
                   4796: # 1 <= record size <= 4000 (dBase 3,4) or 32 * KB (=0x8000)
                   4797: >>>>>>>>>>>>10 uleshort                x               * %d
                   4798: # file size = records * record size + header size
                   4799: >>>>>>>>>>>>1  ubyte                   x               \b, update-date
                   4800: >>>>>>>>>>>>1  use                     xbase-date
                   4801: # http://msdn.microsoft.com/de-de/library/cc483186(v=vs.71).aspx
                   4802: #>>>>>>>>>>>>29        ubyte                   =0              \b, codepage ID=0x%x
                   4803: # 2~cp850 , 3~cp1252 , 0x1b~?? ; what code page is 0x1b ?
                   4804: >>>>>>>>>>>>29 ubyte                   >0              \b, codepage ID=0x%x
                   4805: #>>>>>>>>>>>>28        ubyte&0x01              0               \b, no index file
                   4806: >>>>>>>>>>>>28 ubyte&0x01              1               \b, with index file .MDX
                   4807: >>>>>>>>>>>>28 ubyte&0x02              2               \b, with memo .FPT
                   4808: >>>>>>>>>>>>28 ubyte&0x04              4               \b, DataBaseContainer
                   4809: # 1st record offset + 1 = header size
                   4810: >>>>>>>>>>>>8  uleshort                >0              
                   4811: >>>>>>>>>>>>(8.s+1)    ubyte           >0              
                   4812: >>>>>>>>>>>>>8         uleshort        >0              \b, at offset %d
                   4813: >>>>>>>>>>>>>(8.s+1)   ubyte           >0              
                   4814: >>>>>>>>>>>>>>&-1      string          >\0             1st record "%s"
                   4815: # for multiple index files (*.MDX) Production flag,tag numbers(<=0x30),tag length(<=0x20), reserverd (NULL) 
                   4816: >>>>>>>24      ubelong&0x0133f7ff      >0              
                   4817: # test for reserved NULL byte
                   4818: >>>>>>>>47     ubyte                   x               
                   4819: # test for valid TAG key format (0x10 or 0)
                   4820: >>>>>>>>>559   ubyte&0xeF              0               
                   4821: # test MM <= 12
                   4822: >>>>>>>>>45    ubeshort                <0x0C20         
                   4823: >>>>>>>>>>45   ubyte                   >0              
                   4824: >>>>>>>>>>>46  ubyte                   <32             
                   4825: >>>>>>>>>>>>46 ubyte                   >0              
                   4826: #!:mime        application/x-mdx
                   4827: >>>>>>>>>>>>>0 use                     xbase-type
                   4828: >>>>>>>>>>>>>0 ubyte                   x               \b MDX
                   4829: >>>>>>>>>>>>>1 ubyte                   x               \b, creation-date
                   4830: >>>>>>>>>>>>>1 use                     xbase-date
                   4831: >>>>>>>>>>>>>44        ubyte                   x               \b, update-date
                   4832: >>>>>>>>>>>>>44        use                     xbase-date
                   4833: # No.of tags in use (1,2,5,12)
                   4834: >>>>>>>>>>>>>28        uleshort                x               \b, %d
                   4835: # No. of entries in tag (0x30)
                   4836: >>>>>>>>>>>>>25        ubyte                   x               \b/%d tags
                   4837: #  Length of tag
                   4838: >>>>>>>>>>>>>26        ubyte                   x               * %d
                   4839: # 1st tag name_
                   4840: >>>>>>>>>>>>>548       string          x               \b, 1st tag "%.11s"
                   4841: # 2nd tag name
                   4842: #>>>>>>>>>>>>(26.b+548)        string          x               \b, 2nd tag "%.11s"
                   4843: #
                   4844: #              Print the xBase names of different version variants 
                   4845: 0      name                            xbase-type
                   4846: >0     ubyte           <2              
                   4847: # 1 < version
                   4848: >0     ubyte           >1              
                   4849: >>0    ubyte           0x02            FoxBase
                   4850: # FoxBase+/dBaseIII+, no memo
                   4851: >>0    ubyte           0x03            FoxBase+/dBase III
                   4852: # dBASE IV no memo file
                   4853: >>0    ubyte           0x04            dBase IV
                   4854: # dBASE V no memo file
                   4855: >>0    ubyte           0x05            dBase V
                   4856: >>0    ubyte           0x30            Visual FoxPro
                   4857: >>0    ubyte           0x31            Visual FoxPro, autoincrement
                   4858: # Visual FoxPro, with field type Varchar or Varbinary
                   4859: >>0    ubyte           0x32            Visual FoxPro, with field type Varchar
                   4860: # dBASE IV SQL, no memo;dbv memo var size (Flagship)
                   4861: >>0    ubyte           0x43            dBase IV, with SQL table
                   4862: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4863: #>>0   ubyte           0x62            dBase IV, with SQL table
                   4864: # dBASE IV, with memo!!
                   4865: >>0    ubyte           0x7b            dBase IV, with memo
                   4866: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4867: #>>0   ubyte           0x82            dBase IV, with SQL system
                   4868: # FoxBase+/dBaseIII+ with memo .DBT!
                   4869: >>0    ubyte           0x83            FoxBase+/dBase III, with memo .DBT
                   4870: # VISUAL OBJECTS (first 1.0 versions) for the Dbase III files (NTX clipper driver); memo file
                   4871: >>0    ubyte           0x87            VISUAL OBJECTS, with memo file
                   4872: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4873: #>>0   ubyte           0x8A            FoxBase+/dBase III, with memo .DBT
                   4874: # dBASE IV with memo!
                   4875: >>0    ubyte           0x8B            dBase IV, with memo .DBT
                   4876: # dBase IV with SQL Table,no memo?
                   4877: >>0    ubyte           0x8E            dBase IV, with SQL table
                   4878: # .dbv and .dbt memo (Flagship)?
                   4879: >>0    ubyte           0xB3            Flagship
                   4880: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4881: #>>0   ubyte           0xCA            dBase IV with memo .DBT
                   4882: # dBASE IV with SQL table, with memo .DBT
                   4883: >>0    ubyte           0xCB            dBase IV with SQL table, with memo .DBT
                   4884: # HiPer-Six format;Clipper SIX, with SMT memo file             
                   4885: >>0    ubyte           0xE5            Clipper SIX with memo
                   4886: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4887: #>>0   ubyte           0xF4            dBase IV, with SQL table, with memo
                   4888: >>0    ubyte           0xF5            FoxPro with memo
                   4889: # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
                   4890: #>>0   ubyte           0xFA            FoxPro 2.x, with memo
                   4891: # unkown version (should not happen)
                   4892: >>0    default         x               xBase
                   4893: >>>0   ubyte           x               (0x%x)
                   4894: # flags in version byte
                   4895: # DBT flag (with dBASE III memo .DBT)!!
                   4896: # >>0  ubyte&0x80      >0              DBT_FLAG=%x
                   4897: # memo flag ??
                   4898: # >>0  ubyte&0x08      >0              MEMO_FLAG=%x
                   4899: # SQL flag ??
                   4900: # >>0  ubyte&0x70      >0              SQL_FLAG=%x
                   4901: #              test and print the date of xBase .DBF .MDX
                   4902: 0      name                            xbase-date
                   4903: # inspect YYMMDD , where 1<= MM <= 12 and 1<= DD <= 31
                   4904: >0     ubelong         x               
                   4905: >1     ubyte           <13             
                   4906: >>1    ubyte           >0              
                   4907: >>>2   ubyte           >0              
                   4908: >>>>2  ubyte           <32             
                   4909: >>>>>0 ubyte           x               
                   4910: # YY is interpreted as 20YY or 19YY
                   4911: >>>>>>0        ubyte           <100            \b %.2d
                   4912: # YY is interpreted 1900+YY; TODO: display yy or 20yy instead 1YY
                   4913: >>>>>>0        ubyte           >99             \b %d
                   4914: >>>>>1 ubyte           x               \b-%d
                   4915: >>>>>2 ubyte           x               \b-%d
                   4916: 
                   4917: #      dBase memo files .DBT or .FPT
                   4918: # http://msdn.microsoft.com/en-us/library/8599s21w(v=vs.80).aspx
                   4919: 16             ubyte           <4              
                   4920: >16            ubyte           !2              
                   4921: >>16           ubyte           !1              
                   4922: # next free block index is positive
                   4923: >>>0           ulelong         >0              
                   4924: # skip many JPG. ZIP, BZ2 by test for reserved bytes NULL , 0|2 , 0|1 , low byte of block size
                   4925: >>>>17         ubelong&0xFFfdFE00      0x00000000      
                   4926: # skip many RAR by test for low byte 0 ,high byte 0|2|even of block size, 0|a|e|d7 , 0|64h
                   4927: >>>>>20                ubelong&0xFF01209B      0x00000000      
                   4928: # dBASE III
                   4929: >>>>>>16       ubyte           3               
                   4930: # dBASE III DBT
                   4931: >>>>>>>0       use             xbase-memo-print
                   4932: # dBASE IV DBT , FoxPro FPT or many PNG , ZIP , DBF garbage
                   4933: >>>>>>16       ubyte           0               
                   4934: # dBASE IV DBT with DBF name or DBF garbage
                   4935: >>>>>>>8       ubelong         >0x40000000     
                   4936: # skip DBF and catch dBASE IV DBT with DBF name and with non big index of next free block
                   4937: >>>>>>>>0      ulelong         <0x01010002     
                   4938: >>>>>>>>>0     use             xbase-memo-print
                   4939: >>>>>>>8       ubelong         0               
                   4940: # skip MM*DD*.bin by test for for reserved NULL byte
                   4941: >>>>>>>>508    ubelong         0               
                   4942: >>>>>>>>>0     use             xbase-memo-print
                   4943: # garbage PCX , ZIP , JAR , XPI 
                   4944: >>>>>>>8       default         x               
                   4945: 
                   4946: #              Print the information of dBase DBT or FoxPro FPT memo files 
                   4947: 0      name                            xbase-memo-print
                   4948: >0     ubyte                   x               
                   4949: # test version
                   4950: # memo file
                   4951: >>16   ubyte                   3               dBase III DBT
                   4952: >>16   ubyte                   0               
                   4953: >>>512 ubelong                 <0x00000003     FoxPro FPT
                   4954: # Size of blocks for FoxPro
                   4955: >>>>6  ubeshort                x               \b, blocks size %lu
                   4956: # Number of next available block for appending data for FoxPro
                   4957: >>>>0  ubelong                 =0              \b, next free block index %lu
                   4958: >>>>0  ubelong                 !0              \b, next free block index %lu
                   4959: >>>512 default                 x               dBase IV DBT
                   4960: # DBF file name without extension 
                   4961: >>>>8  string                  >\0             \b of %-.8s.DBF
                   4962: # size of blocks  ; not reliable 0x2020204C
                   4963: #>>>>4 ulelong                 =0              \b, blocks size %lu
                   4964: >>>>4  ulelong                 !0              \b, blocks size %lu
                   4965: # Block length found 0 , 512
                   4966: #>>>>20        uleshort                =0              \b, block length %u
                   4967: >>>>20 uleshort                !0              \b, block length %u
                   4968: # Number of next available block for appending data
                   4969: >>>>0  ulelong                 =0              \b, next free block index %lu
                   4970: >>>>0  ulelong                 !0              \b, next free block index %lu
                   4971: >>512  ubelong                 x               
                   4972: >>>512 ubelong                 =0xFFFF0800     
                   4973: >>>>520        string                  >\0             \b, 1st used item "%s"
                   4974: # FoxPro
                   4975: >>>512 ubelong                 <3              
                   4976: # FoxPro memo
                   4977: >>>>512        ubelong                 =1              
                   4978: >>>>520        string                  >\0             \b, 1st used item "%s"
                   4979: >>>512 default                 x               
                   4980: # may be deleted memo field
                   4981: >>>>512        string                  >\0             \b, 1st item "%s"
                   4982: 
                   4983: # TODO: 
                   4984: # DBASE index file *.NDX
                   4985: # DBASE Compound Index file *.CDX
                   4986: # dBASE IV Printer Driver *.PRF
                   4987: ## End of XBase database stuff
1.1       misho    4988: 
                   4989: # MS Access database
                   4990: 4      string  Standard\ Jet\ DB       Microsoft Access Database
                   4991: !:mime application/x-msaccess
1.1.1.3   misho    4992: 4      string  Standard\ ACE\ DB       Microsoft Access Database
                   4993: !:mime application/x-msaccess
1.1       misho    4994: 
                   4995: # TDB database from Samba et al - Martin Pool <mbp@samba.org>
                   4996: 0      string  TDB\ file               TDB database
                   4997: >32    lelong  0x2601196D              version 6, little-endian
                   4998: >>36   lelong  x                       hash size %d bytes
                   4999: 
                   5000: # SE Linux policy database
                   5001: 0       lelong  0xf97cff8c      SE Linux policy
                   5002: >16     lelong  x               v%d
                   5003: >20     lelong  1      MLS
                   5004: >24     lelong  x       %d symbols
                   5005: >28     lelong  x       %d ocons
                   5006: 
                   5007: # ICE authority file data (Wolfram Kleff)
                   5008: 2      string          ICE             ICE authority data
                   5009: 
                   5010: # X11 Xauthority file (Wolfram Kleff)
                   5011: 10     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5012: 11     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5013: 12     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5014: 13     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5015: 14     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5016: 15     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5017: 16     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5018: 17     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5019: 18     string          MIT-MAGIC-COOKIE-1      X11 Xauthority data
                   5020: 
                   5021: # From: Maxime Henrion <mux@FreeBSD.org>
                   5022: # PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
                   5023: 0      string          PGDMP           PostgreSQL custom database dump
                   5024: >5     byte            x               - v%d
                   5025: >6     byte            x               \b.%d
                   5026: >5     beshort         <0x101          \b-0
                   5027: >5     beshort         >0x100
                   5028: >>7    byte            x               \b-%d
                   5029: 
                   5030: # Type: Advanced Data Format (ADF) database
                   5031: # URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
                   5032: # From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
                   5033: 0      string  @(#)ADF\ Database       CGNS Advanced Data Format
                   5034: 
1.1.1.2   misho    5035: # Tokyo Cabinet magic data
                   5036: # http://tokyocabinet.sourceforge.net/index.html
                   5037: 0      string          ToKyO\ CaBiNeT\n        Tokyo Cabinet
                   5038: >14    string          x                       \b (%s)
                   5039: >32    byte            0                       \b, Hash
                   5040: !:mime application/x-tokyocabinet-hash
                   5041: >32    byte            1                       \b, B+ tree
                   5042: !:mime application/x-tokyocabinet-btree
                   5043: >32    byte            2                       \b, Fixed-length
                   5044: !:mime application/x-tokyocabinet-fixed
                   5045: >32    byte            3                       \b, Table
                   5046: !:mime application/x-tokyocabinet-table
                   5047: >33    byte            &1                      \b, [open]
                   5048: >33    byte            &2                      \b, [fatal]
                   5049: >34    byte            x                       \b, apow=%d
                   5050: >35    byte            x                       \b, fpow=%d
                   5051: >36    byte            &0x01                   \b, [large]
                   5052: >36    byte            &0x02                   \b, [deflate]
                   5053: >36    byte            &0x04                   \b, [bzip]
                   5054: >36    byte            &0x08                   \b, [tcbs]
                   5055: >36    byte            &0x10                   \b, [excodec]
                   5056: >40    lequad          x                       \b, bnum=%lld
                   5057: >48    lequad          x                       \b, rnum=%lld
                   5058: >56    lequad          x                       \b, fsiz=%lld
                   5059: 
1.1       misho    5060: # Type:        QDBM Quick Database Manager
                   5061: # From:        Benoit Sibaud <bsibaud@april.org>
1.1.1.2   misho    5062: 0      string          \\[depot\\]\n\f         Quick Database Manager, little endian
                   5063: 0      string          \\[DEPOT\\]\n\f         Quick Database Manager, big endian
1.1       misho    5064: 
                   5065: # Type:        TokyoCabinet database
                   5066: # URL: http://tokyocabinet.sourceforge.net/
                   5067: # From:        Benoit Sibaud <bsibaud@april.org>
1.1.1.2   misho    5068: 0      string          ToKyO\ CaBiNeT\n        TokyoCabinet database
                   5069: >14    string          x                       (version %s)
1.1       misho    5070: 
1.1.1.3   misho    5071: # From:  Stephane Blondon http://www.yaal.fr
                   5072: # Database file for Zope (done by FileStorage)
                   5073: 0      string          FS21    Zope Object Database File Storage (data)
                   5074: # Cache file for the database of Zope (done by ClientStorage)
                   5075: 0      string          ZEC3    Zope Object Database Client Cache File (data)
                   5076: 
                   5077: # IDA (Interactive Disassembler) database
                   5078: 0      string          IDA1    IDA (Interactive Disassembler) database
                   5079: 
1.1       misho    5080: #------------------------------------------------------------------------------
1.1.1.2   misho    5081: # $File: diamond,v 1.7 2009/09/19 16:28:08 christos Exp $
1.1       misho    5082: # diamond:  file(1) magic for Diamond system
                   5083: #
                   5084: # ... diamond is a multi-media mail and electronic conferencing system....
                   5085: #
                   5086: # XXX - I think it was either renamed Slate, or replaced by Slate....
                   5087: #
                   5088: #      The full deal is too long...
                   5089: #0     string  <list>\n<protocol\ bbn-multimedia-format>       Diamond Multimedia Document
                   5090: 0      string  =<list>\n<protocol\ bbn-m       Diamond Multimedia Document
1.1.1.2   misho    5091: 
1.1       misho    5092: #------------------------------------------------------------------------------
1.1.1.3   misho    5093: # $File: diff,v 1.14 2012/09/16 23:08:54 christos Exp $
1.1       misho    5094: # diff:  file(1) magic for diff(1) output
                   5095: #
                   5096: 0      search/1        diff\           diff output text
                   5097: !:mime text/x-diff
                   5098: 0      search/1        ***\            diff output text
                   5099: !:mime text/x-diff
                   5100: 0      search/1        Only\ in\       diff output text
                   5101: !:mime text/x-diff
                   5102: 0      search/1        Common\ subdirectories:\        diff output text
                   5103: !:mime text/x-diff
                   5104: 
                   5105: 0      search/1        Index:          RCS/CVS diff output text
                   5106: !:mime text/x-diff
1.1.1.2   misho    5107: 
                   5108: # bsdiff:  file(1) magic for bsdiff(1) output
1.1.1.3   misho    5109: 0      string/b                BSDIFF40        bsdiff(1) patch file
                   5110: 
                   5111: 
                   5112: # unified diff
                   5113: 0      search/4096     ---\ 
                   5114: >&0    search/1024 \n
                   5115: >>&0   search/1 +++\ 
                   5116: >>>&0  search/1024 \n
                   5117: >>>>&0 search/1 @@     unified diff output text
                   5118: !:mime text/x-diff
                   5119: !:strength + 90
                   5120: 
                   5121: # librsync -- the library for network deltas
                   5122: #
                   5123: # Copyright (C) 2001 by Martin Pool.  You may do whatever you want with
                   5124: # this file.
                   5125: #
                   5126: 0      belong          0x72730236      rdiff network-delta data
                   5127: 
                   5128: 0      belong          0x72730136      rdiff network-delta signature data
                   5129: >4     belong          x               (block length=%d,
                   5130: >8     belong          x               signature strength=%d)
1.1.1.2   misho    5131: 
                   5132: #------------------------------------------------------------------------------
1.1.1.3   misho    5133: # $File: digital,v 1.11 2013/01/11 16:45:23 christos Exp $
1.1       misho    5134: #  Digital UNIX - Info
                   5135: #
                   5136: 0      string  =!<arch>\n________64E   Alpha archive
                   5137: >22    string  X                       -- out of date
                   5138: #
1.1.1.3   misho    5139: 
                   5140: 0      leshort         0603
                   5141: >24    leshort         0410            COFF format alpha pure
                   5142: >24    leshort         0413            COFF format alpha demand paged
                   5143: >>22   leshort&030000  !020000         executable
                   5144: >>22   leshort&020000  !0              dynamically linked
                   5145: >>16   lelong          !0              not stripped
                   5146: >>16   lelong          0               stripped
                   5147: >>27   byte            x               - version %d
                   5148: >>26   byte            x               \b.%d
                   5149: >>28   byte            x               \b-%d
                   5150: >24    leshort         0407            COFF format alpha object
                   5151: >>22   leshort&030000  020000          shared library
                   5152: >>27   byte            x               - version %d
                   5153: >>26   byte            x               \b.%d
                   5154: >>28   byte            x               \b-%d
                   5155: 
                   5156: # Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
                   5157: #
                   5158: # The actual magic number is just "Core", followed by a 2-byte version
                   5159: # number; however, treating any file that begins with "Core" as a Digital
                   5160: # UNIX core dump file may produce too many false hits, so we include one
                   5161: # byte of the version number as well; DU 5.0 appears only to be up to
                   5162: # version 2.
                   5163: #
                   5164: 0      string          Core\001        Alpha COFF format core dump (Digital UNIX)
                   5165: >24    string          >\0             \b, from '%s'
                   5166: 0      string          Core\002        Alpha COFF format core dump (Digital UNIX)
                   5167: >24    string          >\0             \b, from '%s'
1.1       misho    5168: #
                   5169: # The next is incomplete, we could tell more about this format,
                   5170: # but its not worth it.
                   5171: 0      leshort         0x188   Alpha compressed COFF
                   5172: 0      leshort         0x18f   Alpha u-code object
                   5173: #
                   5174: #
                   5175: # Some other interesting Digital formats,
                   5176: 0      string  \377\377\177            ddis/ddif
                   5177: 0      string  \377\377\174            ddis/dots archive
                   5178: 0      string  \377\377\176            ddis/dtif table data
                   5179: 0      string  \033c\033               LN03 output
                   5180: 0      long    04553207                X image
                   5181: #
                   5182: 0      string  =!<PDF>!\n              profiling data file
                   5183: #
                   5184: # Locale data tables (MIPS and Alpha).
                   5185: #
                   5186: 0      short           0x0501          locale data table
                   5187: >6     short           0x24            for MIPS
                   5188: >6     short           0x40            for Alpha
1.1.1.2   misho    5189: 
                   5190: #------------------------------------------------------------------------------
1.1.1.3   misho    5191: # $File: dolby,v 1.6 2012/10/31 13:39:42 christos Exp $
1.1       misho    5192: # ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
                   5193: # from http://www.atsc.org/standards/a_52a.pdf
                   5194: # corrections, additions, etc. are always welcome!
                   5195: #
                   5196: # syncword
                   5197: 0       beshort         0x0b77  ATSC A/52 aka AC-3 aka Dolby Digital stream,
1.1.1.3   misho    5198: !:mime audio/vnd.dolby.dd-raw
1.1       misho    5199: # fscod
                   5200: >4      byte&0xc0       0x00    48 kHz,
                   5201: >4      byte&0xc0       0x40    44.1 kHz,
                   5202: >4      byte&0xc0       0x80    32 kHz,
                   5203: # is this one used for 96 kHz?
                   5204: >4      byte&0xc0       0xc0    reserved frequency,
                   5205: #
                   5206: >5     byte&7 = 0              \b, complete main (CM)
                   5207: >5     byte&7 = 1              \b, music and effects (ME)
                   5208: >5     byte&7 = 2              \b, visually impaired (VI)
                   5209: >5     byte&7 = 3              \b, hearing impaired (HI)
                   5210: >5     byte&7 = 4              \b, dialogue (D)
                   5211: >5     byte&7 = 5              \b, commentary (C)
                   5212: >5     byte&7 = 6              \b, emergency (E)
                   5213: # acmod
                   5214: >6      byte&0xe0       0x00    1+1 front,
                   5215: >6      byte&0xe0       0x20    1 front/0 rear,
                   5216: >6      byte&0xe0       0x40    2 front/0 rear,
                   5217: >6      byte&0xe0       0x60    3 front/0 rear,
                   5218: >6      byte&0xe0       0x80    2 front/1 rear,
                   5219: >6      byte&0xe0       0xa0    3 front/1 rear,
                   5220: >6      byte&0xe0       0xc0    2 front/2 rear,
                   5221: >6      byte&0xe0       0xe0    3 front/2 rear,
                   5222: # lfeon (these may be incorrect)
                   5223: >7      byte&0x40       0x00    LFE off,
                   5224: >7      byte&0x40       0x40    LFE on,
                   5225: #
                   5226: >4     byte&0x3e = 0x00        \b, 32 kbit/s
                   5227: >4     byte&0x3e = 0x02        \b, 40 kbit/s
                   5228: >4     byte&0x3e = 0x04        \b, 48 kbit/s
                   5229: >4     byte&0x3e = 0x06        \b, 56 kbit/s
                   5230: >4     byte&0x3e = 0x08        \b, 64 kbit/s
                   5231: >4     byte&0x3e = 0x0a        \b, 80 kbit/s
                   5232: >4     byte&0x3e = 0x0c        \b, 96 kbit/s
                   5233: >4     byte&0x3e = 0x0e        \b, 112 kbit/s
                   5234: >4     byte&0x3e = 0x10        \b, 128 kbit/s
                   5235: >4     byte&0x3e = 0x12        \b, 160 kbit/s
                   5236: >4     byte&0x3e = 0x14        \b, 192 kbit/s
                   5237: >4     byte&0x3e = 0x16        \b, 224 kbit/s
                   5238: >4     byte&0x3e = 0x18        \b, 256 kbit/s
                   5239: >4     byte&0x3e = 0x1a        \b, 320 kbit/s
                   5240: >4     byte&0x3e = 0x1c        \b, 384 kbit/s
                   5241: >4     byte&0x3e = 0x1e        \b, 448 kbit/s
                   5242: >4     byte&0x3e = 0x20        \b, 512 kbit/s
                   5243: >4     byte&0x3e = 0x22        \b, 576 kbit/s
                   5244: >4     byte&0x3e = 0x24        \b, 640 kbit/s
                   5245: # dsurmod (these may be incorrect)
                   5246: >6      beshort&0x0180  0x0000  Dolby Surround not indicated
                   5247: >6      beshort&0x0180  0x0080  not Dolby Surround encoded
                   5248: >6      beshort&0x0180  0x0100  Dolby Surround encoded
                   5249: >6      beshort&0x0180  0x0180  reserved Dolby Surround mode
                   5250: 
                   5251: #------------------------------------------------------------------------------
1.1.1.3   misho    5252: # $File: dump,v 1.12 2012/11/01 04:26:40 christos Exp $
1.1       misho    5253: # dump:  file(1) magic for dump file format--for new and old dump filesystems
                   5254: #
                   5255: # We specify both byte orders in order to recognize byte-swapped dumps.
                   5256: #
1.1.1.3   misho    5257: 0      name    new-dump-be
1.1       misho    5258: >4     bedate  x               Previous dump %s,
                   5259: >8     bedate  x               This dump %s,
                   5260: >12    belong  >0              Volume %ld,
                   5261: >692   belong  0               Level zero, type:
                   5262: >692   belong  >0              Level %d, type:
                   5263: >0     belong  1               tape header,
                   5264: >0     belong  2               beginning of file record,
                   5265: >0     belong  3               map of inodes on tape,
                   5266: >0     belong  4               continuation of file record,
                   5267: >0     belong  5               end of volume,
                   5268: >0     belong  6               map of inodes deleted,
                   5269: >0     belong  7               end of medium (for floppy),
                   5270: >676   string  >\0             Label %s,
                   5271: >696   string  >\0             Filesystem %s,
                   5272: >760   string  >\0             Device %s,
                   5273: >824   string  >\0             Host %s,
                   5274: >888   belong  >0              Flags %x
                   5275: 
1.1.1.3   misho    5276: 0      name    old-dump-be
1.1       misho    5277: #>4    bedate  x               Previous dump %s,
                   5278: #>8    bedate  x               This dump %s,
                   5279: >12    belong  >0              Volume %ld,
                   5280: >692   belong  0               Level zero, type:
                   5281: >692   belong  >0              Level %d, type:
                   5282: >0     belong  1               tape header,
                   5283: >0     belong  2               beginning of file record,
                   5284: >0     belong  3               map of inodes on tape,
                   5285: >0     belong  4               continuation of file record,
                   5286: >0     belong  5               end of volume,
                   5287: >0     belong  6               map of inodes deleted,
                   5288: >0     belong  7               end of medium (for floppy),
                   5289: >676   string  >\0             Label %s,
                   5290: >696   string  >\0             Filesystem %s,
                   5291: >760   string  >\0             Device %s,
                   5292: >824   string  >\0             Host %s,
                   5293: >888   belong  >0              Flags %x
                   5294: 
1.1.1.3   misho    5295: 0      name    ufs2-dump-be
1.1       misho    5296: >896   beqdate x               Previous dump %s,
                   5297: >904   beqdate x               This dump %s,
                   5298: >12    belong  >0              Volume %ld,
                   5299: >692   belong  0               Level zero, type:
                   5300: >692   belong  >0              Level %d, type:
                   5301: >0     belong  1               tape header,
                   5302: >0     belong  2               beginning of file record,
                   5303: >0     belong  3               map of inodes on tape,
                   5304: >0     belong  4               continuation of file record,
                   5305: >0     belong  5               end of volume,
                   5306: >0     belong  6               map of inodes deleted,
                   5307: >0     belong  7               end of medium (for floppy),
                   5308: >676   string  >\0             Label %s,
                   5309: >696   string  >\0             Filesystem %s,
                   5310: >760   string  >\0             Device %s,
                   5311: >824   string  >\0             Host %s,
                   5312: >888   belong  >0              Flags %x
                   5313: 
1.1.1.3   misho    5314: 24     belong  60012           new-fs dump file (big endian), 
                   5315: >0     use     new-dump-be
                   5316: 
                   5317: 24     belong  60011           old-fs dump file (big endian), 
                   5318: >0     use     old-dump-be
                   5319: 
                   5320: 24     lelong  60012           new-fs dump file (little endian), 
                   5321: >0     use     \^new-dump-be
                   5322: 
                   5323: 24     lelong  60011           old-fs dump file (little endian), 
                   5324: >0     use     \^old-dump-be
                   5325: 
                   5326: 
                   5327: 24     belong  0x19540119      new-fs dump file (ufs2, big endian), 
                   5328: >0     use     ufs2-dump-be
                   5329: 
                   5330: 24     lelong  0x19540119      new-fs dump file (ufs2, little endian), 
                   5331: >0     use     \^ufs2-dump-be
                   5332: 
                   5333: 18     leshort 60011           old-fs dump file (16-bit, assuming PDP-11 endianness),
                   5334: >2     medate  x               Previous dump %s,
                   5335: >6     medate  x               This dump %s,
                   5336: >10    leshort >0              Volume %ld,
                   5337: >0     leshort 1               tape header.
                   5338: >0     leshort 2               beginning of file record.
                   5339: >0     leshort 3               map of inodes on tape.
                   5340: >0     leshort 4               continuation of file record.
                   5341: >0     leshort 5               end of volume.
                   5342: >0     leshort 6               map of inodes deleted.
                   5343: >0     leshort 7               end of medium (for floppy).
1.1       misho    5344: 
                   5345: #------------------------------------------------------------------------------
1.1.1.3   misho    5346: # $File: dyadic,v 1.5 2010/09/20 18:55:20 rrt Exp $
1.1       misho    5347: # Dyadic: file(1) magic for Dyalog APL.
                   5348: #
1.1.1.2   misho    5349: 0      byte    0xaa
1.1       misho    5350: >1     byte    <4              Dyalog APL
                   5351: >>1    byte    0x00            incomplete workspace
                   5352: >>1    byte    0x01            component file
                   5353: >>1    byte    0x02            external variable
                   5354: >>1    byte    0x03            workspace
                   5355: >>2    byte    x               version %d
                   5356: >>3    byte    x               .%d
                   5357: 
1.1.1.2   misho    5358: 0      beshort         0xaa03          Dyalog APL
                   5359: >2     byte            x               workspace type %d
                   5360: >3     byte            x               subtype %d
                   5361: >7     byte&0x28       0x00            32-bit
                   5362: >7     byte&0x28       0x20            64-bit
                   5363: >7     byte&0x0c       0x00            classic
                   5364: >7     byte&0x0c       0x04            unicode
                   5365: >7     byte&0x88       0x00            big-endian
                   5366: >7     byte&0x88       0x80            little-endian
                   5367: 
                   5368: 0      byte            0xaa            Dyalog APL
                   5369: >1     byte            0x00            aplcore
                   5370: >1     byte            0x01            component file 32-bit non-journaled non-checksummed
                   5371: >1     byte            0x02            external variable exclusive
                   5372: >1     byte            0x06            external variable shared
                   5373: >1     byte            0x07            session
                   5374: >1     byte            0x08            mapped file 32-bit
                   5375: >1     byte            0x09            component file 64-bit non-journaled non-checksummed
                   5376: >1     byte            0x0a            mapped file 64-bit
                   5377: >1     byte            0x0b            component file 32-bit level 1 journaled non-checksummed
                   5378: >1     byte            0x0c            component file 64-bit level 1 journaled non-checksummed
                   5379: >1     byte            0x0d            component file 32-bit level 1 journaled checksummed
                   5380: >1     byte            0x0e            component file 64-bit level 1 journaled checksummed
                   5381: >1     byte            0x0f            component file 32-bit level 2 journaled checksummed
                   5382: >1     byte            0x10            component file 64-bit level 2 journaled checksummed
                   5383: >1     byte            0x11            component file 32-bit level 3 journaled checksummed
                   5384: >1     byte            0x12            component file 64-bit level 3 journaled checksummed
                   5385: >1     byte            0x13            component file 32-bit non-journaled checksummed
                   5386: >1     byte            0x14            component file 64-bit non-journaled checksummed
                   5387: >1     byte            0x80            DDB
                   5388: 
                   5389: 0      short           0x6060          Dyalog APL transfer
                   5390: 
1.1       misho    5391: #------------------------------------------------------------------------------
1.1.1.3   misho    5392: # $File: ebml,v 1.1 2010/07/02 00:07:03 christos Exp $
                   5393: # ebml:  file(1) magic for various Extensible Binary Meta Language
                   5394: # http://www.matroska.org/technical/specs/index.html#track
                   5395: 0      belong  0x1a45dfa3      EBML file
                   5396: >4     search/b/100    \102\202
                   5397: >>&1   string  x               \b, creator %.8s
                   5398: 
                   5399: #------------------------------------------------------------------------------
1.1.1.2   misho    5400: # $File: editors,v 1.8 2009/09/19 16:28:09 christos Exp $
1.1       misho    5401: # T602 editor documents 
                   5402: # by David Necas <yeti@physics.muni.cz>
                   5403: 0      string  @CT\    T602 document data,
                   5404: >4     string  0       Kamenicky
                   5405: >4     string  1       CP 852
                   5406: >4     string  2       KOI8-CS
                   5407: >4     string  >2      unknown encoding
                   5408: 
                   5409: # Vi IMproved Encrypted file 
                   5410: # by David Necas <yeti@physics.muni.cz>
                   5411: 0      string  VimCrypt~       Vim encrypted file data
                   5412: # Vi IMproved Swap file
                   5413: # by Sven Wegener <swegener@gentoo.org>
                   5414: 0      string  b0VIM\          Vim swap file
                   5415: >&0    string  >\0             \b, version %s
                   5416: 
                   5417: #------------------------------------------------------------------------------
1.1.1.2   misho    5418: # $File: efi,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    5419: # efi:  file(1) magic for Universal EFI binaries
                   5420: 
                   5421: 0      lelong  0x0ef1fab9
                   5422: >4     lelong  1               Universal EFI binary with 1 architecture
                   5423: >>&0   lelong  7               \b, i386
                   5424: >>&0   lelong  0x01000007      \b, x86_64
                   5425: >4     lelong  2               Universal EFI binary with 2 architectures
                   5426: >>&0   lelong  7               \b, i386
                   5427: >>&0   lelong  0x01000007      \b, x86_64
                   5428: >>&20  lelong  7               \b, i386
                   5429: >>&20  lelong  0x01000007      \b, x86_64
                   5430: >4     lelong  >2              Universal EFI binary with %ld architectures
                   5431: 
                   5432: #------------------------------------------------------------------------------
1.1.1.3   misho    5433: # $File: elf,v 1.59 2013/03/21 17:50:02 christos Exp $
1.1       misho    5434: # elf:  file(1) magic for ELF executables
                   5435: #
                   5436: # We have to check the byte order flag to see what byte order all the
                   5437: # other stuff in the header is in.
                   5438: #
                   5439: # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
                   5440: #
                   5441: # Created by: unknown
                   5442: # Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
                   5443: # Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
                   5444: # Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
                   5445: # Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
                   5446: # Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
1.1.1.3   misho    5447: 
                   5448: 0      name            elf-le
                   5449: >16    leshort         0               no file type,
1.1       misho    5450: !:mime application/octet-stream
1.1.1.3   misho    5451: >16    leshort         1               relocatable,
1.1       misho    5452: !:mime application/x-object
1.1.1.3   misho    5453: >16    leshort         2               executable,
1.1       misho    5454: !:mime application/x-executable
1.1.1.3   misho    5455: >16    leshort         3               shared object,
1.1       misho    5456: !:mime application/x-sharedlib
1.1.1.3   misho    5457: >16    leshort         4               core file
1.1       misho    5458: !:mime application/x-coredump
                   5459: # Core file detection is not reliable.
                   5460: #>>>(0x38+0xcc) string >\0             of '%s'
                   5461: #>>>(0x38+0x10) lelong >0              (signal %d),
1.1.1.3   misho    5462: >16    leshort         &0xff00         processor-specific,
                   5463: >18    leshort         0               no machine,
                   5464: >18    leshort         1               AT&T WE32100
                   5465: >18    leshort         2               SPARC
                   5466: >18    leshort         3               Intel 80386,
                   5467: >18    leshort         4               Motorola
                   5468: >>4    byte            1
1.1       misho    5469: >>>36  lelong          &0x01000000     68000 - invalid byte order,
                   5470: >>>36  lelong          &0x00810000     CPU32 - invalid byte order,
                   5471: >>>36  lelong          0               68020 - invalid byte order,
1.1.1.3   misho    5472: >18    leshort         5               Motorola 88000 - invalid byte order,
                   5473: >18    leshort         6               Intel 80486,
                   5474: >18    leshort         7               Intel 80860,
1.1       misho    5475: # The official e_machine number for MIPS is now #8, regardless of endianness.
                   5476: # The second number (#10) will be deprecated later. For now, we still
                   5477: # say something if #10 is encountered, but only gory details for #8.
1.1.1.3   misho    5478: >18    leshort         8               MIPS,
                   5479: >>4    byte            1
1.1       misho    5480: >>>36  lelong          &0x20           N32
1.1.1.3   misho    5481: >18    leshort         10              MIPS,
                   5482: >>4    byte            1
1.1       misho    5483: >>>36  lelong          &0x20           N32
1.1.1.3   misho    5484: >18    leshort         8
1.1       misho    5485: # only for 32-bit
1.1.1.3   misho    5486: >>4    byte            1
                   5487: >>>36  lelong&0xf0000000       0x00000000      MIPS-I
                   5488: >>>36  lelong&0xf0000000       0x10000000      MIPS-II
                   5489: >>>36  lelong&0xf0000000       0x20000000      MIPS-III
                   5490: >>>36  lelong&0xf0000000       0x30000000      MIPS-IV
                   5491: >>>36  lelong&0xf0000000       0x40000000      MIPS-V
                   5492: >>>36  lelong&0xf0000000       0x50000000      MIPS32
                   5493: >>>36  lelong&0xf0000000       0x60000000      MIPS64
                   5494: >>>36  lelong&0xf0000000       0x70000000      MIPS32 rel2
                   5495: >>>36  lelong&0xf0000000       0x80000000      MIPS64 rel2
1.1       misho    5496: # only for 64-bit
1.1.1.3   misho    5497: >>4    byte            2
                   5498: >>>48  lelong&0xf0000000       0x00000000      MIPS-I
                   5499: >>>48  lelong&0xf0000000       0x10000000      MIPS-II
                   5500: >>>48  lelong&0xf0000000       0x20000000      MIPS-III
                   5501: >>>48  lelong&0xf0000000       0x30000000      MIPS-IV
                   5502: >>>48  lelong&0xf0000000       0x40000000      MIPS-V
                   5503: >>>48  lelong&0xf0000000       0x50000000      MIPS32
                   5504: >>>48  lelong&0xf0000000       0x60000000      MIPS64
                   5505: >>>48  lelong&0xf0000000       0x70000000      MIPS32 rel2
                   5506: >>>48  lelong&0xf0000000       0x80000000      MIPS64 rel2
                   5507: >18    leshort         9               Amdahl - invalid byte order,
                   5508: >18    leshort         10              MIPS (deprecated),
                   5509: >18    leshort         11              RS6000 - invalid byte order,
                   5510: >18    leshort         15              PA-RISC - invalid byte order,
                   5511: # only for 32-bit
                   5512: >>4    byte            1
                   5513: >>>38  leshort         0x0214          2.0
                   5514: >>>36  leshort         &0x0008         (LP64)
                   5515: # only for 64-bit
                   5516: >>4    byte            2
1.1       misho    5517: >>>50  leshort         0x0214          2.0
1.1.1.3   misho    5518: >>>48  leshort         &0x0008         (LP64)
                   5519: >18    leshort         16              nCUBE,
                   5520: >18    leshort         17              Fujitsu VPP500,
                   5521: >18    leshort         18              SPARC32PLUS,
1.1       misho    5522: # only for 32-bit
1.1.1.3   misho    5523: >>4    byte            1
                   5524: >>>36  lelong&0xffff00 0x000100        V8+ Required,
                   5525: >>>36  lelong&0xffff00 0x000200        Sun UltraSPARC1 Extensions Required,
                   5526: >>>36  lelong&0xffff00 0x000400        HaL R1 Extensions Required,
                   5527: >>>36  lelong&0xffff00 0x000800        Sun UltraSPARC3 Extensions Required,
                   5528: >18    leshort         20              PowerPC or cisco 4500,
                   5529: >18    leshort         21              64-bit PowerPC or cisco 7500,
                   5530: >18    leshort         22              IBM S/390,
                   5531: >18    leshort         23              Cell SPU,
                   5532: >18    leshort         24              cisco SVIP,
                   5533: >18    leshort         25              cisco 7200,
                   5534: >18    leshort         36              NEC V800 or cisco 12000,
                   5535: >18    leshort         37              Fujitsu FR20,
                   5536: >18    leshort         38              TRW RH-32,
                   5537: >18    leshort         39              Motorola RCE,
                   5538: >18    leshort         40              ARM,
                   5539: >>4    byte            1
                   5540: >>>36  lelong&0xff000000       0x04000000      EABI4
                   5541: >>>36  lelong&0xff000000       0x05000000      EABI5
                   5542: >18    leshort         41              Alpha,
                   5543: >18    leshort         0xa390          IBM S/390 (obsolete),
                   5544: >18    leshort         42              Renesas SH,
                   5545: >18    leshort         43              SPARC V9,
                   5546: >>4    byte            2
                   5547: >>>48  lelong&0xffff00 0x000200        Sun UltraSPARC1 Extensions Required,
                   5548: >>>48  lelong&0xffff00 0x000400        HaL R1 Extensions Required,
                   5549: >>>48  lelong&0xffff00 0x000800        Sun UltraSPARC3 Extensions Required,
                   5550: >>>48  lelong&0x3      0               total store ordering,
                   5551: >>>48  lelong&0x3      1               partial store ordering,
                   5552: >>>48  lelong&0x3      2               relaxed memory ordering,
                   5553: >18    leshort         44              Siemens Tricore Embedded Processor,
                   5554: >18    leshort         45              Argonaut RISC Core, Argonaut Technologies Inc.,
                   5555: >18    leshort         46              Renesas H8/300,
                   5556: >18    leshort         47              Renesas H8/300H,
                   5557: >18    leshort         48              Renesas H8S,
                   5558: >18    leshort         49              Renesas H8/500,
                   5559: >18    leshort         50              IA-64,
                   5560: >18    leshort         51              Stanford MIPS-X,
                   5561: >18    leshort         52              Motorola Coldfire,
                   5562: >18    leshort         53              Motorola M68HC12,
                   5563: >18    leshort         54              Fujitsu MMA,
                   5564: >18    leshort         55              Siemens PCP,
                   5565: >18    leshort         56              Sony nCPU,
                   5566: >18    leshort         57              Denso NDR1,
                   5567: >18    leshort         58              Start*Core,
                   5568: >18    leshort         59              Toyota ME16,
                   5569: >18    leshort         60              ST100,
                   5570: >18    leshort         61              Tinyj emb.,
                   5571: >18    leshort         62              x86-64,
                   5572: >18    leshort         63              Sony DSP,
                   5573: >18    leshort         66              FX66,
                   5574: >18    leshort         67              ST9+ 8/16 bit,
                   5575: >18    leshort         68              ST7 8 bit,
                   5576: >18    leshort         69              MC68HC16,
                   5577: >18    leshort         70              MC68HC11,
                   5578: >18    leshort         71              MC68HC08,
                   5579: >18    leshort         72              MC68HC05,
                   5580: >18    leshort         73              SGI SVx or Cray NV1,
                   5581: >18    leshort         74              ST19 8 bit,
                   5582: >18    leshort         75              Digital VAX,
                   5583: >18    leshort         76              Axis cris,
                   5584: >18    leshort         77              Infineon 32-bit embedded,
                   5585: >18    leshort         78              Element 14 64-bit DSP,
                   5586: >18    leshort         79              LSI Logic 16-bit DSP,
                   5587: >18    leshort         80              MMIX,
                   5588: >18    leshort         81              Harvard machine-independent,
                   5589: >18    leshort         82              SiTera Prism,
                   5590: >18    leshort         83              Atmel AVR 8-bit,
                   5591: >18    leshort         84              Fujitsu FR30,
                   5592: >18    leshort         85              Mitsubishi D10V,
                   5593: >18    leshort         86              Mitsubishi D30V,
                   5594: >18    leshort         87              NEC v850,
                   5595: >18    leshort         88              Renesas M32R,
                   5596: >18    leshort         89              Matsushita MN10300,
                   5597: >18    leshort         90              Matsushita MN10200,
                   5598: >18    leshort         91              picoJava,
                   5599: >18    leshort         92              OpenRISC,
                   5600: >18    leshort         93              ARC Cores Tangent-A5,
                   5601: >18    leshort         94              Tensilica Xtensa,
                   5602: >18    leshort         97              NatSemi 32k,
                   5603: >18    leshort         106             Analog Devices Blackfin,
                   5604: >18    leshort         113             Altera Nios II,
                   5605: >18    leshort         174             META,
                   5606: >18    leshort         183             ARM aarch64,
                   5607: >18    leshort         187             Tilera TILE64,
                   5608: >18    leshort         188             Tilera TILEPro,
                   5609: >18    leshort         191             Tilera TILE-Gx,
                   5610: >18    leshort         0x3426          OpenRISC (obsolete),
                   5611: >18    leshort         0x8472          OpenRISC (obsolete),
                   5612: >18    leshort         0x9026          Alpha (unofficial),
                   5613: >20    lelong          0               invalid version
                   5614: >20    lelong          1               version 1
                   5615: 
                   5616: 0      string          \177ELF         ELF
                   5617: !:strength *2
                   5618: >4     byte            0               invalid class
                   5619: >4     byte            1               32-bit
                   5620: >4     byte            2               64-bit
                   5621: >5     byte            0               invalid byte order
                   5622: >5     byte            1               LSB 
                   5623: >>0    use             elf-le
                   5624: >5     byte            2               MSB 
                   5625: >>0    use             \^elf-le
1.1       misho    5626: # Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
                   5627: # like proper ELF, but extracting the string had bad results.
                   5628: >4      byte            <0x80
                   5629: >>8    string          >\0             (%s)
                   5630: >8     string          \0
                   5631: >>7    byte            0               (SYSV)
                   5632: >>7    byte            1               (HP-UX)
                   5633: >>7    byte            2               (NetBSD)
                   5634: >>7    byte            3               (GNU/Linux)
                   5635: >>7    byte            4               (GNU/Hurd)
                   5636: >>7    byte            5               (86Open)
                   5637: >>7    byte            6               (Solaris)
                   5638: >>7    byte            7               (Monterey)
                   5639: >>7    byte            8               (IRIX)
                   5640: >>7    byte            9               (FreeBSD)
                   5641: >>7    byte            10              (Tru64)
                   5642: >>7    byte            11              (Novell Modesto)
                   5643: >>7    byte            12              (OpenBSD)
                   5644: >8      string          \2
                   5645: >>7     byte            13              (OpenVMS)
                   5646: >>7    byte            97              (ARM)
                   5647: >>7    byte            255             (embedded)
                   5648: 
                   5649: #------------------------------------------------------------------------------
1.1.1.2   misho    5650: # $File: encore,v 1.6 2009/09/19 16:28:09 christos Exp $
1.1       misho    5651: # encore:  file(1) magic for Encore machines
                   5652: #
                   5653: # XXX - needs to have the byte order specified (NS32K was little-endian,
                   5654: # dunno whether they run the 88K in little-endian mode or not).
                   5655: #
                   5656: 0      short           0x154           Encore
                   5657: >20    short           0x107           executable
                   5658: >20    short           0x108           pure executable
                   5659: >20    short           0x10b           demand-paged executable
                   5660: >20    short           0x10f           unsupported executable
                   5661: >12    long            >0              not stripped
                   5662: >22    short           >0              - version %ld
                   5663: >22    short           0               -
                   5664: #>4    date            x               stamp %s
                   5665: 0      short           0x155           Encore unsupported executable
                   5666: >12    long            >0              not stripped
                   5667: >22    short           >0              - version %ld
                   5668: >22    short           0               -
                   5669: #>4    date            x               stamp %s
                   5670: 
                   5671: #------------------------------------------------------------------------------
1.1.1.3   misho    5672: # $File: epoc,v 1.8 2012/06/16 14:43:36 christos Exp $
1.1.1.2   misho    5673: # EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1]
                   5674: # Stefan Praszalowicz <hpicollo@worldnet.fr> and Peter Breitenlohner <peb@mppmu.mpg.de>
                   5675: # Useful information for improving this file can be found at:
                   5676: # http://software.frodo.looijaard.name/psiconv/formats/Index.html
                   5677: #------------------------------------------------------------------------------
                   5678: 0      lelong          0x10000037      Psion Series 5
                   5679: >4     lelong          0x10000039      font file
                   5680: >4     lelong          0x1000003A      printer driver
                   5681: >4     lelong          0x1000003B      clipboard
                   5682: >4     lelong          0x10000042      multi-bitmap image
                   5683: !:mime image/x-epoc-mbm
                   5684: >4     lelong          0x1000006A      application information file
1.1       misho    5685: >4     lelong          0x1000006D
1.1.1.2   misho    5686: >>8    lelong          0x1000007D      Sketch image
                   5687: !:mime image/x-epoc-sketch
                   5688: >>8    lelong          0x1000007E      voice note
                   5689: >>8    lelong          0x1000007F      Word file
                   5690: !:mime application/x-epoc-word
                   5691: >>8    lelong          0x10000085      OPL program (TextEd)
                   5692: !:mime application/x-epoc-opl
1.1.1.3   misho    5693: >>8    lelong          0x10000087      Comms settings
1.1.1.2   misho    5694: >>8    lelong          0x10000088      Sheet file
                   5695: !:mime application/x-epoc-sheet
                   5696: >>8    lelong          0x100001C4      EasyFax initialisation file
                   5697: >4     lelong          0x10000073      OPO module
                   5698: !:mime application/x-epoc-opo
                   5699: >4     lelong          0x10000074      OPL application
                   5700: !:mime application/x-epoc-app
                   5701: >4     lelong          0x1000008A      exported multi-bitmap image
1.1.1.3   misho    5702: >4     lelong          0x1000016D      
                   5703: >>8    lelong          0x10000088      Comms names
1.1.1.2   misho    5704: 
                   5705: 0      lelong          0x10000041      Psion Series 5 ROM multi-bitmap image
                   5706: 
                   5707: 0      lelong          0x10000050      Psion Series 5
                   5708: >4     lelong          0x1000006D      database
1.1.1.3   misho    5709: >>8    lelong          0x10000084      Agenda file
                   5710: !:mime application/x-epoc-agenda
                   5711: >>8    lelong          0x10000086      Data file
                   5712: !:mime application/x-epoc-data
                   5713: >>8    lelong          0x10000CEA      Jotter file
                   5714: !:mime application/x-epoc-jotter
1.1.1.2   misho    5715: >4     lelong          0x100000E4      ini file
                   5716: 
                   5717: 0      lelong          0x10000079      Psion Series 5 binary:
                   5718: >4     lelong          0x00000000      DLL
                   5719: >4     lelong          0x10000049      comms hardware library
                   5720: >4     lelong          0x1000004A      comms protocol library
                   5721: >4     lelong          0x1000005D      OPX
                   5722: >4     lelong          0x1000006C      application
                   5723: >4     lelong          0x1000008D      DLL
                   5724: >4     lelong          0x100000AC      logical device driver
                   5725: >4     lelong          0x100000AD      physical device driver
                   5726: >4     lelong          0x100000E5      file transfer protocol
                   5727: >4     lelong          0x100000E5      file transfer protocol
                   5728: >4     lelong          0x10000140      printer definition
                   5729: >4     lelong          0x10000141      printer definition
                   5730: 
                   5731: 0      lelong          0x1000007A      Psion Series 5 executable
1.1       misho    5732: 
                   5733: #------------------------------------------------------------------------------
1.1.1.3   misho    5734: # $File: erlang,v 1.6 2010/09/20 19:19:17 rrt Exp $
1.1       misho    5735: # erlang:  file(1) magic for Erlang JAM and BEAM files
                   5736: # URL:  http://www.erlang.org/faq/x779.html#AEN812
                   5737: 
                   5738: # OTP R3-R4
                   5739: 0      string  \0177BEAM!      Old Erlang BEAM file
                   5740: >6     short   >0              - version %d
                   5741: 
                   5742: # OTP R5 and onwards
                   5743: 0      string  FOR1
                   5744: >8     string  BEAM            Erlang BEAM file
                   5745: 
                   5746: # 4.2 version may have a copyright notice!
1.1.1.2   misho    5747: 4      string  Tue\ Jan\ 22\ 14:32:44\ MET\ 1991       Erlang JAM file - version 4.2
                   5748: 79     string  Tue\ Jan\ 22\ 14:32:44\ MET\ 1991       Erlang JAM file - version 4.2
1.1       misho    5749: 
1.1.1.2   misho    5750: 4      string  1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995   Erlang JAM file - version 4.3
                   5751: 
                   5752: 0      bequad  0x0000000000ABCDEF      Erlang DETS file
1.1       misho    5753: 
                   5754: #------------------------------------------------------------------------------
1.1.1.2   misho    5755: # $File: esri,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    5756: # ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
                   5757: # Based on info from
                   5758: # <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
                   5759: 0      belong  9994    ESRI Shapefile
                   5760: >4     belong  =0
                   5761: >8     belong  =0
                   5762: >12    belong  =0
                   5763: >16    belong  =0
                   5764: >20    belong  =0
                   5765: >28    lelong  x       version %d
                   5766: >24    belong  x       length %d
                   5767: >32    lelong  =0      type Null Shape
                   5768: >32    lelong  =1      type Point
                   5769: >32    lelong  =3      type PolyLine
                   5770: >32    lelong  =5      type Polygon
                   5771: >32    lelong  =8      type MultiPoint
                   5772: >32    lelong  =11     type PointZ
                   5773: >32    lelong  =13     type PolyLineZ
                   5774: >32    lelong  =15     type PolygonZ
                   5775: >32    lelong  =18     type MultiPointZ
                   5776: >32    lelong  =21     type PointM
                   5777: >32    lelong  =23     type PolyLineM
                   5778: >32    lelong  =25     type PolygonM
                   5779: >32    lelong  =28     type MultiPointM
                   5780: >32    lelong  =31     type MultiPatch
                   5781: 
                   5782: #------------------------------------------------------------------------------
1.1.1.2   misho    5783: # $File: fcs,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    5784: # fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
                   5785: # From Roger Leigh <roger@whinlatter.uklinux.net>
                   5786: 0       string          FCS1.0          Flow Cytometry Standard (FCS) data, version 1.0
                   5787: 0       string          FCS2.0          Flow Cytometry Standard (FCS) data, version 2.0
                   5788: 0       string          FCS3.0          Flow Cytometry Standard (FCS) data, version 3.0
                   5789: 
                   5790: 
                   5791: #------------------------------------------------------------------------------
1.1.1.3   misho    5792: # $File: filesystems,v 1.77 2013/03/14 01:38:30 christos Exp $
1.1       misho    5793: # filesystems:  file(1) magic for different filesystems
                   5794: #
                   5795: 0      string  \366\366\366\366        PC formatted floppy with no filesystem
                   5796: # Sun disk labels
                   5797: # From /usr/include/sun/dklabel.h:
                   5798: 0774   beshort         0xdabe          
                   5799: # modified by Joerg Jenderek, because original test
                   5800: # succeeds for Cabinet archive dao360.dl_ with negative blocks
                   5801: >0770  long            >0              Sun disk label
                   5802: >>0    string          x               '%s
                   5803: >>>31  string          >\0             \b%s
                   5804: >>>>63 string          >\0             \b%s
                   5805: >>>>>95        string          >\0             \b%s
                   5806: >>0    string          x               \b'
                   5807: >>0734 short           >0              %d rpm,
                   5808: >>0736 short           >0              %d phys cys,
                   5809: >>0740 short           >0              %d alts/cyl,
                   5810: >>0746 short           >0              %d interleave,
                   5811: >>0750 short           >0              %d data cyls,
                   5812: >>0752 short           >0              %d alt cyls,
                   5813: >>0754 short           >0              %d heads/partition,
                   5814: >>0756 short           >0              %d sectors/track,
                   5815: >>0764 long            >0              start cyl %ld,
                   5816: >>0770 long            x               %ld blocks
                   5817: # Is there a boot block written 1 sector in?
                   5818: >512    belong&077777777       0600407 \b, boot block present
1.1.1.3   misho    5819: 
                   5820: # Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk
1.1       misho    5821: # (http://btmgr.sourceforge.net/docs/user-guide-3.html)
                   5822: 0              string  SBMBAKUP_       Smart Boot Manager backup file
                   5823: >9             string  x               \b, version %-5.5s
                   5824: >>14           string  =_              
                   5825: >>>15          string  x               %-.1s
                   5826: >>>>16         string  =_              \b.
                   5827: >>>>>17                string  x               \b%-.1s
                   5828: >>>>>>18       string  =_              \b.
                   5829: >>>>>>>19      string  x               \b%-.1s
                   5830: >>>22          ubyte   0               
                   5831: >>>>21         ubyte   x               \b, from drive 0x%x
                   5832: >>>22          ubyte   >0              
                   5833: >>>>21         string  x               \b, from drive %s
1.1.1.3   misho    5834: >>>535         search/17       \x55\xAA        
                   5835: >>>>&-512      indirect        x       \b; contains 
1.1       misho    5836: 
1.1.1.3   misho    5837: # updated by Joerg Jenderek at Nov 2012
1.1       misho    5838: # DOS Emulator image is 128 byte, null right padded header + harddisc image
                   5839: 0      string  DOSEMU\0                        
                   5840: >0x27E leshort 0xAA55                  
                   5841: #offset is 128
                   5842: >>19   ubyte   128                     
                   5843: >>>(19.b-1)    ubyte   0x0     DOS Emulator image
                   5844: >>>>7  ulelong >0              \b, %u heads
                   5845: >>>>11 ulelong >0              \b, %d sectors/track
                   5846: >>>>15 ulelong >0              \b, %d cylinders
1.1.1.3   misho    5847: >>>>128        indirect        x       \b; contains 
1.1       misho    5848: 
1.1.1.3   misho    5849: # x86 boot sector updated by Joerg Jenderek at Sep 2007,May 2011
                   5850: # for any allowed sector sizes
                   5851: 30             search/481      \x55\xAA        
                   5852: # to display x86 boot sector (40) before old one (strength=50+21),Syslinux bootloader (71),SYSLINUX MBR (37+36),NetBSD mbr (110),AdvanceMAME mbr (111)
                   5853: # DOS BPB information (70) and after DOS floppy (120) like in previous file version
                   5854: !:strength +72
                   5855: # for sector sizes < 512 Bytes
                   5856: >11            uleshort        <512            
                   5857: >>(11.s-2)     uleshort        0xAA55          x86 boot sector
                   5858: # for sector sizes with 512 or more Bytes
                   5859: >0x1FE         leshort         0xAA55          x86 boot sector
                   5860: # keep old x86 boot sector as dummy for mbr and bootloader displaying
1.1       misho    5861: # only for sector sizes with 512 or more Bytes
1.1.1.3   misho    5862: 0x1FE  leshort 0xAA55                  
                   5863: # to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
                   5864: !:strength +21
1.1       misho    5865: >2     string  OSBS                    \b, OS/BS MBR
1.1.1.3   misho    5866: # added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/
                   5867: # and http://en.wikipedia.org/wiki/Master_Boot_Record
                   5868: # test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by 
                   5869: # characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00
                   5870: >0     search/2        \x33\xc0\x8e\xd0\xbc\x00\x7c    MS-MBR
                   5871: # Microsoft Windows 95A and early ( http://thestarman.pcministry.com/asm/mbr/STDMBR.htm )
                   5872: # assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld
                   5873: >>8    ubequad         0x8bf45007501ffbfc              
                   5874: # http://thestarman.pcministry.com/asm/mbr/200MBR.htm
                   5875: >>>0x16        ubyte           0xF3                            \b,DOS 2
                   5876: >>>>219        regex           Author\ -\                      Author:
                   5877: # found "David Litton" , "A Pehrsson  "
                   5878: >>>>>&0        string          x                               "%s"
                   5879: >>>0x16        ubyte           0xF2                            
                   5880: # NEC MS-DOS 3.30 Rev. 3 . See http://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm
                   5881: # assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz
                   5882: >>>>0x22       ubequad 0xbf7c07813d5aa575              \b,NEC 3.3
                   5883: # version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111)
                   5884: >>>>0x22       default x                               \b,D0S version 3.3-7.0
                   5885: # error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...)
                   5886: # where nn is string offset varying for different languages
                   5887: # "Invalid partition table"                            nn=0x8b for english version
                   5888: >>>>>(0x49.b)  string          Invalid\ partition\ table               english
                   5889: >>>>>(0x49.b)  string          Ung\201ltige\ Partitionstabelle         german
                   5890: >>>>>(0x49.b)  string          Table\ de\ partition\ invalide          french
                   5891: >>>>>(0x49.b)  string          Tabela\ de\ parti\207ao\ inv\240lida    portuguese
                   5892: >>>>>(0x49.b)  string          Tabla\ de\ partici\242n\ no\ v\240lida  spanish
                   5893: >>>>>(0x49.b)  string          Tavola\ delle\ partizioni\ non\ valida  italian
                   5894: >>>>>0x49      ubyte           >0                      at offset 0x%x
                   5895: >>>>>>(0x49.b) string          >\0                     "%s"
                   5896: # "Error loading operating system"                     nn=0xa3 for english version
                   5897: # "Fehler beim Laden des Betriebssystems"              nn=0xa7 for german version
                   5898: # "Erreur en chargeant syst\212me d'exploitation"      nn=0xa7 for french version
                   5899: # "Erro na inicializa\207ao do sistema operacional"    nn=0xa7 for portuguese Brazilian version
                   5900: # "Error al cargar sistema operativo"                  nn=0xa8 for spanish version
                   5901: # "Errore durante il caricamento del sistema operativo"        nn=0xae for italian version
                   5902: >>>>>0x74      ubyte           >0                      at offset 0x%x
                   5903: >>>>>>(0x74.b) string          >\0                     "%s"
                   5904: # "Missing operating system"                           nn=0xc2 for english version
                   5905: # "Betriebssystem fehlt"                               nn=0xcd for german version
                   5906: # "Syst\212me d'exploitation absent"                   nn=0xd2 for french version
                   5907: # "Sistema operacional nao encontrado"                 nn=0xd4 for portuguese Brazilian version
                   5908: # "Falta sistema operativo"                            nn=0xca for spanish version
                   5909: # "Sistema operativo mancante"                         nn=0xe2 for italian version
                   5910: >>>>>0x79      ubyte           >0                      at offset 0x%x
                   5911: >>>>>>(0x79.b) string          >\0                     "%s"
                   5912: # Microsoft Windows 95B to XP (http://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm)
                   5913: # assembler instructions: push ax;pop es;push  ax;pop ds;cld;mov si,7c1b
                   5914: >>8    ubequad         0x5007501ffcbe1b7c              
                   5915: # assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
                   5916: >>>24          ubequad 0xf3a4cbbebe07b104              9M
                   5917: # "Invalid partition table"                            nn=0x10F for english version
                   5918: # "Ungültige Partitionstabelle"                               nn=0x10F for german version
                   5919: # "Table de partition erronée"                                nn=0x10F for french version
                   5920: # "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"        nn=0x10F for russian version
                   5921: >>>>(0x3C.b+0x0FF)     string  Invalid\ partition\ table               english
                   5922: >>>>(0x3C.b+0x0FF)     string  Ung\201ltige\ Partitionstabelle         german
                   5923: >>>>(0x3C.b+0x0FF)     string  Table\ de\ partition\ erron\202e        french
                   5924: >>>>(0x3C.b+0x0FF)     string  \215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240  russian
                   5925: >>>>0x3C               ubyte   x                       at offset 0x%x+0xFF
                   5926: >>>>(0x3C.b+0x0FF)     string  >\0                     "%s"
                   5927: # "Error loading operating system"                     nn=0x127 for english version
                   5928: # "Fehler beim Laden des Betriebssystems"              nn=0x12b for german version
                   5929: # "Erreur lors du chargement du système d'exploitation"       nn=0x12a for french version
                   5930: # "\216\350\250\241\252\240 \257\340\250 \247\240\243\340\343\247\252\245 \256\257\245\340\240\346\250\256\255\255\256\251 \341\250\341\342\245\254\353"       nn=0x12d for russian version
                   5931: >>>>0xBD               ubyte   x                       at offset 0x1%x
                   5932: >>>>(0xBD.b+0x100)     string  >\0                     "%s"
                   5933: # "Missing operating system"                           nn=0x146 for english version
                   5934: # "Betriebssystem fehlt"                               nn=0x151 for german version
                   5935: # "Système d'exploitation manquant"                   nn=0x15e for french version
                   5936: # "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"        nn=0x156 for russian version
                   5937: >>>>0xA9               ubyte   x                       at offset 0x1%x
                   5938: >>>>(0xA9.b+0x100)     string  >\0                     "%s"
                   5939: # http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm
                   5940: # assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04
                   5941: >>>24          ubequad 0xf3a4cbbdbe07b104              XP
                   5942: # where xxyyzz are lower bits from offsets of error messages varying for different languages
                   5943: >>>>0x1B4      ubelong&0x00FFFFFF      0x002c4463      english
                   5944: >>>>0x1B4      ubelong&0x00FFFFFF      0x002c486e      german
                   5945: # "Invalid partition table"                            xx=0x12C for english version
                   5946: # "Ungültige Partitionstabelle"                               xx=0x12C for german version
                   5947: >>>>0x1b5      ubyte           >0                      at offset 0x1%x
                   5948: >>>>(0x1b5.b+0x100)    string  >\0                     "%s"
                   5949: # "Error loading operating system"                     yy=0x144 for english version
                   5950: # "Fehler beim Laden des Betriebssystems"              yy=0x148 for german version
                   5951: >>>>0x1b6      ubyte           >0                      at offset 0x1%x
                   5952: >>>>(0x1b6.b+0x100)    string  >\0                     "%s"
                   5953: # "Missing operating system"                           zz=0x163 for english version
                   5954: # "Betriebssystem nicht vorhanden"                     zz=0x16e for german version
                   5955: >>>>0x1b7      ubyte           >0                      at offset 0x1%x
                   5956: >>>>(0x1b7.b+0x100)    string  >\0                     "%s"
                   5957: # Microsoft Windows Vista or 7
                   5958: # assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00
                   5959: >>8    ubequad         0xc08ed8be007cbf00              
                   5960: # Microsoft Windows Vista (http://thestarman.pcministry.com/asm/mbr/VistaMBR.htm)
                   5961: # assembler instructions: jnz 0729;cmp ebx,"TCPA"
                   5962: >>>0xEC                ubequad 0x753b6681fb544350              Vista
                   5963: # where xxyyzz are lower bits from offsets of error messages varying for different languages
                   5964: >>>>0x1B4      ubelong&0x00FFFFFF      0x00627a99      english
                   5965: #>>>>0x1B4     ubelong&0x00FFFFFF      ?               german
                   5966: # "Invalid partition table"                            xx=0x162 for english version
                   5967: # "Ungültige Partitionstabelle"                               xx=0x1?? for german version
                   5968: >>>>0x1b5      ubyte           >0                      at offset 0x1%x
                   5969: >>>>(0x1b5.b+0x100)    string  >\0                     "%s"
                   5970: # "Error loading operating system"                     yy=0x17a for english version
                   5971: # "Fehler beim Laden des Betriebssystems"              yy= 0x1?? for german version
                   5972: >>>>0x1b6      ubyte           >0                      at offset 0x1%x
                   5973: >>>>(0x1b6.b+0x100)    string  >\0                     "%s"
                   5974: # "Missing operating system"                           zz=0x199 for english version
                   5975: # "Betriebssystem nicht vorhanden"                     zz=0x1?? for german version
                   5976: >>>>0x1b7      ubyte           >0                      at offset 0x1%x
                   5977: >>>>(0x1b7.b+0x100)    string  >\0                     "%s"
                   5978: # Microsoft Windows 7 (http://thestarman.pcministry.com/asm/mbr/W7MBR.htm)
                   5979: # assembler instructions: cmp ebx,"TCPA";cmp
                   5980: >>>0xEC                ubequad 0x6681fb5443504175              Windows 7
                   5981: # where xxyyzz are lower bits from offsets of error messages varying for different languages
                   5982: >>>>0x1B4      ubelong&0x00FFFFFF      0x00637b9a      english
                   5983: #>>>>0x1B4     ubelong&0x00FFFFFF      ?               german
                   5984: # "Invalid partition table"                            xx=0x163 for english version
                   5985: # "Ungültige Partitionstabelle"                               xx=0x1?? for german version
                   5986: >>>>0x1b5      ubyte           >0                      at offset 0x1%x
                   5987: >>>>(0x1b5.b+0x100)    string  >\0                     "%s"
                   5988: # "Error loading operating system"                     yy=0x17b for english version
                   5989: # "Fehler beim Laden des Betriebssystems"              yy=0x1?? for german version
                   5990: >>>>0x1b6      ubyte           >0                      at offset 0x1%x
                   5991: >>>>(0x1b6.b+0x100)    string  >\0                     "%s"
                   5992: # "Missing operating system"                           zz=0x19a for english version
                   5993: # "Betriebssystem nicht vorhanden"                     zz=0x1?? for german version
                   5994: >>>>0x1b7      ubyte           >0                      at offset 0x1%x
                   5995: >>>>(0x1b7.b+0x100)    string  >\0                     "%s"
                   5996: # http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs
                   5997: # http://en.wikipedia.org/wiki/MBR_disk_signature#ID
                   5998: >>0x1b8        ulelong         >0                              \b, disk signature 0x%-.4x
                   5999: # driveID/timestamp for Win 95B,98,98SE and ME. See http://thestarman.pcministry.com/asm/mbr/mystery.htm
                   6000: >>0xDA uleshort                0                       
                   6001: >>>0xDC        ulelong         >0                      \b, created
                   6002: # physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive
                   6003: >>>>0xDC       ubyte           x                       with driveID 0x%x
                   6004: # hours, minutes and seconds 
                   6005: >>>>0xDf       ubyte           x                       at %x
                   6006: >>>>0xDe       ubyte           x                       \b:%x
                   6007: >>>>0xDd       ubyte           x                       \b:%x
                   6008: # special case for Microsoft MS-DOS 3.21 spanish
                   6009: # assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov 
                   6010: >0     ubequad         0xfab830008ed0bc00              
                   6011: # assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov 
                   6012: >>8    ubequad         0x1fbfcb800008ed8               MS-MBR,D0S version 3.21 spanish
                   6013: # Microsoft MBR IPL end
                   6014: 
1.1       misho    6015: # dr-dos with some upper-, lowercase variants
                   6016: >0x9D  string  Invalid\ partition\ table$      
                   6017: >>181  string  No\ Operating\ System$          
                   6018: >>>201 string  Operating\ System\ load\ error$ \b, DR-DOS MBR, Version 7.01 to 7.03
                   6019: >0x9D  string  Invalid\ partition\ table$      
                   6020: >>181  string  No\ operating\ system$          
                   6021: >>>201 string  Operating\ system\ load\ error$ \b, DR-DOS MBR, Version 7.01 to 7.03
                   6022: >342   string  Invalid\ partition\ table$      
                   6023: >>366  string  No\ operating\ system$          
                   6024: >>>386 string  Operating\ system\ load\ error$ \b, DR-DOS MBR, version 7.01 to 7.03
                   6025: >295   string  NEWLDR\0                                
                   6026: >>302  string  Bad\ PT\ $                              
                   6027: >>>310 string  No\ OS\ $                               
                   6028: >>>>317        string  OS\ load\ err$                          
                   6029: >>>>>329       string  Moved\ or\ missing\ IBMBIO.LDR\n\r      
                   6030: >>>>>>358      string  Press\ any\ key\ to\ continue.\n\r$     
                   6031: >>>>>>>387     string  Copyright\ (c)\ 1984,1998       
                   6032: >>>>>>>>411    string  Caldera\ Inc.\0         \b, DR-DOS MBR (IBMBIO.LDR)
1.1.1.3   misho    6033: #
                   6034: # tests for different MS-DOS Master Boot Records (MBR) moved and merged
                   6035: #
1.1.1.2   misho    6036: #>0x145        string  Default:\ F                             \b, FREE-DOS MBR
                   6037: #>0x14B        string  Default:\ F                             \b, FREE-DOS 1.0 MBR
                   6038: >0x145 search/7        Default:\ F                     \b, FREE-DOS MBR
                   6039: #>>313         string  F0\ .\ .\ .                     
                   6040: #>>>322                string  disk\ 1                         
                   6041: #>>>>382       string  FAT3                            
1.1       misho    6042: >64    string  no\ active\ partition\ found    
                   6043: >>96   string  read\ error\ while\ reading\ drive      \b, FREE-DOS Beta 0.9 MBR
1.1.1.2   misho    6044: # Ranish Partition Manager http://www.ranish.com/part/
                   6045: >387   search/4        \0\ Error!\r                    
                   6046: >>378  search/7        Virus!                          
                   6047: >>>397 search/4        Booting\                        
                   6048: >>>>408        search/4        HD1/\0                          \b, Ranish MBR (
                   6049: >>>>>416       string  Writing\ changes...             \b2.37
                   6050: >>>>>>438      ubyte           x                       \b,0x%x dots
                   6051: >>>>>>440      ubyte           >0                      \b,virus check
                   6052: >>>>>>441      ubyte           >0                      \b,partition %c
                   6053: #2.38,2.42,2.44
                   6054: >>>>>416       string  !Writing\ changes...            \b
                   6055: >>>>>>418      ubyte   1                               \bvirus check,
                   6056: >>>>>>419      ubyte   x                               \b0x%x seconds
                   6057: >>>>>>420      ubyte&0x0F      >0                      \b,partition
                   6058: >>>>>>>420     ubyte&0x0F      <5                      \b %x
                   6059: >>>>>>>420     ubyte&0x0F      0Xf                     \b ask
                   6060: >>>>>420       ubyte           x                       \b)
                   6061: #
1.1.1.3   misho    6062: # SYSLINUX MBR moved
1.1       misho    6063: # http://www.acronis.de/
                   6064: >362   string  MBR\ Error\ \0\r                        
                   6065: >>376  string  ress\ any\ key\ to\                     
                   6066: >>>392 string  boot\ from\ floppy...\0                 \b, Acronis MBR
                   6067: # added by Joerg Jenderek
                   6068: # http://www.visopsys.org/
                   6069: # http://partitionlogic.org.uk/
                   6070: >309   string  No\ bootable\ partition\ found\r        
                   6071: >>339  string  I/O\ Error\ reading\ boot\ sector\r     \b, Visopsys MBR
                   6072: >349   string  No\ bootable\ partition\ found\r        
                   6073: >>379  string  I/O\ Error\ reading\ boot\ sector\r     \b, simple Visopsys MBR
                   6074: # bootloader, bootmanager
                   6075: >0x40  string  SBML                            
                   6076: # label with 11 characters of FAT 12 bit filesystem
                   6077: >>43   string  SMART\ BTMGR                    
1.1.1.2   misho    6078: >>>430 string  SBMK\ Bad!\r                    \b, Smart Boot Manager
                   6079: # OEM-ID not always "SBM"
                   6080: #>>>>3 strings SBM                             
                   6081: >>>>6  string  >\0                             \b, version %s
1.1       misho    6082: >382   string  XOSLLOADXCF                     \b, eXtended Operating System Loader
                   6083: >6     string  LILO                            \b, LInux i386 boot LOader
                   6084: >>120  string  LILO                            \b, version 22.3.4 SuSe
                   6085: >>172  string  LILO                            \b, version 22.5.8 Debian
1.1.1.2   misho    6086: # updated by Joerg Jenderek at Oct 2008
1.1       misho    6087: # variables according to grub-0.97/stage1/stage1.S or
                   6088: # http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
                   6089: # usual values are marked with comments to get only informations of strange GRUB loaders
1.1.1.2   misho    6090: >342           search/60       \0Geom\0        
                   6091: #>0            ulelong         x               %x=0x009048EB , 0x2a9048EB  0
1.1       misho    6092: >>0x41         ubyte           <2              
                   6093: >>>0x3E                ubyte           >2              \b; GRand Unified Bootloader
                   6094: # 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
                   6095: >>>>0x3E       ubyte           x               \b, stage1 version 0x%x
                   6096: #If it is 0xFF, use a drive passed by BIOS
                   6097: >>>>0x40       ubyte           <0xFF           \b, boot drive 0x%x
                   6098: # in most case 0,1,0x2e for GRUB 0.5.95
                   6099: >>>>0x41       ubyte           >0              \b, LBA flag 0x%x
                   6100: >>>>0x42       uleshort        <0x8000         \b, stage2 address 0x%x
                   6101: #>>>>0x42      uleshort        =0x8000         \b, stage2 address 0x%x (usual)
                   6102: >>>>0x42       uleshort        >0x8000         \b, stage2 address 0x%x
                   6103: #>>>>0x44      ulelong         =1              \b, 1st sector stage2 0x%x (default)
                   6104: >>>>0x44       ulelong         >1              \b, 1st sector stage2 0x%x
                   6105: >>>>0x48       uleshort        <0x800          \b, stage2 segment 0x%x
                   6106: #>>>>0x48      uleshort        =0x800          \b, stage2 segment 0x%x (usual)
                   6107: >>>>0x48       uleshort        >0x800          \b, stage2 segment 0x%x
                   6108: >>>>402                string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6109: >>>>>394       string  stage1                  \b, GRUB version 0.5.95
                   6110: >>>>382                string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6111: >>>>>376       string  GRUB\ \0                \b, GRUB version 0.93 or 1.94
                   6112: >>>>383                string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6113: >>>>>377       string  GRUB\ \0                \b, GRUB version 0.94
                   6114: >>>>385                string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6115: >>>>>379       string  GRUB\ \0                \b, GRUB version 0.95 or 0.96
                   6116: >>>>391                string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6117: >>>>>385       string  GRUB\ \0                \b, GRUB version 0.97
                   6118: #unkown version
                   6119: >>>343         string  Geom\0Read\0\ Error\0   
                   6120: >>>>321                string  Loading\ stage1.5       \b, GRUB version x.y
                   6121: >>>380         string  Geom\0Hard\ Disk\0Read\0\ Error\0
                   6122: >>>>374                string  GRUB\ \0                \b, GRUB version n.m
1.1.1.3   misho    6123: # SYSLINUX bootloader moved
1.1       misho    6124: >395   string  chksum\0\ ERROR!\0              \b, Gujin bootloader
                   6125: # http://www.bcdwb.de/bcdw/index_e.htm
                   6126: >3     string  BCDL                            
                   6127: >>498  string  BCDL\ \ \ \ BIN                 \b, Bootable CD Loader (1.50Z)
1.1.1.2   misho    6128: # mbr partition table entries
                   6129: # OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs
1.1       misho    6130: >3                     string          !MS
                   6131: >>3                    string          !SYSLINUX
                   6132: >>>3                   string          !MTOOL
1.1.1.2   misho    6133: >>>>3                  string          !NEWLDR
                   6134: >>>>>5                 string          !DOS
1.1       misho    6135: # not FAT (32 bit)
1.1.1.2   misho    6136: >>>>>>82               string          !FAT32
1.1       misho    6137: #not Linux kernel
                   6138: >>>>>>>514             string          !HdrS
                   6139: #not BeOS
                   6140: >>>>>>>>422            string          !Be\ Boot\ Loader
                   6141: # active flag 0 or 0x80 and type > 0
                   6142: >>>>>>>>>446           ubyte           <0x81   
                   6143: >>>>>>>>>>446          ubyte&0x7F      0       
                   6144: >>>>>>>>>>>450         ubyte           >0      \b; partition 1: ID=0x%x
                   6145: >>>>>>>>>>>>446                ubyte           0x80    \b, active
                   6146: >>>>>>>>>>>>447                ubyte           x       \b, starthead %u
                   6147: #>>>>>>>>>>>>448               ubyte           x       \b, start C_S: 0x%x
                   6148: #>>>>>>>>>>>>448               ubeshort&1023   x       \b, startcylinder? %d
                   6149: >>>>>>>>>>>>454                ulelong         x       \b, startsector %u
                   6150: >>>>>>>>>>>>458                ulelong         x       \b, %u sectors
                   6151: #
                   6152: >>>>>>>>>462           ubyte           <0x81   
                   6153: >>>>>>>>>>462          ubyte&0x7F      0               
                   6154: >>>>>>>>>>>466         ubyte           >0      \b; partition 2: ID=0x%x
                   6155: >>>>>>>>>>>>462                ubyte           0x80    \b, active
                   6156: >>>>>>>>>>>>463                ubyte           x       \b, starthead %u
                   6157: #>>>>>>>>>>>>464               ubyte           x       \b, start C_S: 0x%x
                   6158: #>>>>>>>>>>>>464               ubeshort&1023   x       \b, startcylinder? %d
                   6159: >>>>>>>>>>>>470                ulelong         x       \b, startsector %u
                   6160: >>>>>>>>>>>>474                ulelong         x       \b, %u sectors
                   6161: #
                   6162: >>>>>>>>>478           ubyte           <0x81           
                   6163: >>>>>>>>>>478          ubyte&0x7F      0               
                   6164: >>>>>>>>>>>482         ubyte           >0      \b; partition 3: ID=0x%x
                   6165: >>>>>>>>>>>>478                ubyte           0x80    \b, active
                   6166: >>>>>>>>>>>>479                ubyte           x       \b, starthead %u
                   6167: #>>>>>>>>>>>>480               ubyte           x       \b, start C_S: 0x%x
                   6168: #>>>>>>>>>>>>481               ubyte           x       \b, start C2S: 0x%x
                   6169: #>>>>>>>>>>>>480               ubeshort&1023   x       \b, startcylinder? %d
                   6170: >>>>>>>>>>>>486                ulelong         x       \b, startsector %u
                   6171: >>>>>>>>>>>>490                ulelong         x       \b, %u sectors
                   6172: #
                   6173: >>>>>>>>>494           ubyte           <0x81   
                   6174: >>>>>>>>>>494          ubyte&0x7F      0               
                   6175: >>>>>>>>>>>498         ubyte           >0      \b; partition 4: ID=0x%x
                   6176: >>>>>>>>>>>>494                ubyte           0x80    \b, active
                   6177: >>>>>>>>>>>>495                ubyte           x       \b, starthead %u
                   6178: #>>>>>>>>>>>>496               ubyte           x       \b, start C_S: 0x%x
                   6179: #>>>>>>>>>>>>496               ubeshort&1023   x       \b, startcylinder? %d
                   6180: >>>>>>>>>>>>502                ulelong         x       \b, startsector %u
                   6181: >>>>>>>>>>>>506                ulelong         x       \b, %u sectors
1.1.1.2   misho    6182: # mbr partition table entries end
1.1       misho    6183: # http://www.acronis.de/
                   6184: #FAT label=ACRONIS\ SZ
                   6185: #OEM-ID=BOOTWIZ0
                   6186: >442   string  Non-system\ disk,\      
                   6187: >>459  string  press\ any\ key...\x7\0         \b, Acronis Startup Recovery Loader
1.1.1.3   misho    6188: # updated by Joerg Jenderek at Nov 2012
                   6189: # DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
1.1       misho    6190: >>>477         ubyte&0xDF      >0              
                   6191: >>>>477                string          x               \b %-.3s
                   6192: >>>>>480       ubyte&0xDF      >0              
1.1.1.3   misho    6193: >>>>>>480      string          x               \b%-.4s
                   6194: >>>>>>>484     ubyte&0xDF      >0              
                   6195: >>>>>>>>484    string          x               \b%-.1s
1.1       misho    6196: >>>>485                ubyte&0xDF      >0              
                   6197: >>>>>485       string          x               \b.%-.3s
                   6198: #
                   6199: >185   string  FDBOOT\ Version\                        
                   6200: >>204  string  \rNo\ Systemdisk.\                      
                   6201: >>>220 string  Booting\ from\ harddisk.\n\r            
                   6202: >>>245 string  Cannot\ load\ from\ harddisk.\n\r       
                   6203: >>>>273 string Insert\ Systemdisk\                     
                   6204: >>>>>291 string and\ press\ any\ key.\n\r              \b, FDBOOT harddisk Bootloader
                   6205: >>>>>>200 string       >\0                             \b, version %-3s
                   6206: >242   string  Bootsector\ from\ C.H.\ Hochst\204      
1.1.1.3   misho    6207: # http://freecode.com/projects/dosfstools      dosfstools-n.m/src/mkdosfs.c
                   6208: # updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string
                   6209: # skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut
                   6210: >242   search/127      Bootsector\ from\ C.H.\ Hochst                  
                   6211: >>278  search/127      No\ Systemdisk.\ Booting\ from\ harddisk        
                   6212: # followed by variants with point,CR-NL or NL-CR
                   6213: >>>208 search/261      Cannot\ load\ from\ harddisk.                   
                   6214: # followed by variants CR-NL or NL-CR
                   6215: >>>>236        search/235      Insert\ Systemdisk\ and\ press\ any\ key.       
                   6216: # followed by variants with point,CR-NL or NL-CR
                   6217: >>>>>180       search/96       Disk\ formatted\ with\ WinImage\        \b, WinImage harddisk Bootloader
                   6218: # followed by string like "6.50 (c) 1993-2004 Gilles Vollant"
                   6219: >>>>>>&0       string          x                                       \b, version %-4.4s
1.1       misho    6220: >(1.b+2)       ubyte           0xe                     
                   6221: >>(1.b+3)      ubyte           0x1f                    
                   6222: >>>(1.b+4)     ubyte           0xbe                    
1.1.1.3   misho    6223: # message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others
                   6224: >>>>(1.b+5)    ubyte&0xd3      0x53                    
                   6225: >>>>>(1.b+6)   ubyte           0x7c                    
                   6226: # assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah,
                   6227: >>>>>>(1.b+7)  ubyte           0xac                    
                   6228: >>>>>>>(1.b+8) ubyte           0x22                    
                   6229: >>>>>>>>(1.b+9)        ubyte           0xc0                    
                   6230: >>>>>>>>>(1.b+10)      ubyte   0x74                    
                   6231: >>>>>>>>>>(1.b+11)     ubyte   0x0b                    
                   6232: >>>>>>>>>>>(1.b+12)    ubyte   0x56                    
                   6233: >>>>>>>>>>>>(1.b+13)   ubyte   0xb4                    \b, mkdosfs boot message display
                   6234: # FAT1X version
                   6235: >>>>>>>>>>>>>(1.b+5)   ubyte   0x5b                    
                   6236: >>>>>>>>>>>>>>0x5b     string  >\0                     "%-s"
                   6237: # FAT32 version
                   6238: >>>>>>>>>>>>>(1.b+5)   ubyte   0x77                    
                   6239: >>>>>>>>>>>>>>0x77     string  >\0                     "%-s"
1.1.1.2   misho    6240: >214   string  Please\ try\ to\ install\ FreeDOS\      \b, DOS Emulator boot message display
                   6241: #>>244 string  from\ dosemu-freedos-*-bin.tgz\r        
                   6242: #>>>170        string  Sorry,\ could\ not\ load\ an\           
                   6243: #>>>>195       string  operating\ system.\r\n          
                   6244: #
1.1       misho    6245: >103   string  This\ is\ not\ a\ bootable\ disk.\      
                   6246: >>132  string  Please\ insert\ a\ bootable\            
                   6247: >>>157 string  floppy\ and\r\n                         
                   6248: >>>>169        string  press\ any\ key\ to\ try\ again...\r    \b, FREE-DOS message display
                   6249: #
                   6250: >66    string  Solaris\ Boot\ Sector                   
                   6251: >>99   string  Incomplete\ MDBoot\ load.               
                   6252: >>>89  string  Version                                 \b, Sun Solaris Bootloader
                   6253: >>>>97 byte    x                                       version %c
                   6254: #
                   6255: >408   string  OS/2\ !!\ SYS01475\r\0                  
                   6256: >>429  string  OS/2\ !!\ SYS02025\r\0                  
                   6257: >>>450 string  OS/2\ !!\ SYS02027\r\0                  
                   6258: >>>469 string  OS2BOOT\ \ \ \                          \b, IBM OS/2 Warp bootloader
                   6259: #
                   6260: >409   string  OS/2\ !!\ SYS01475\r\0                  
                   6261: >>430  string  OS/2\ !!\ SYS02025\r\0                  
                   6262: >>>451 string  OS/2\ !!\ SYS02027\r\0                  
                   6263: >>>470 string  OS2BOOT\ \ \ \                          \b, IBM OS/2 Warp Bootloader
                   6264: >112           string  This\ disk\ is\ not\ bootable\r                 
                   6265: >>142          string  If\ you\ wish\ to\ make\ it\ bootable           
                   6266: >>>176         string  run\ the\ DOS\ program\ SYS\                    
                   6267: >>>200         string  after\ the\r                                    
                   6268: >>>>216                string  system\ has\ been\ loaded\r\n                   
                   6269: >>>>>242       string  Please\ insert\ a\ DOS\ diskette\               
                   6270: >>>>>271       string  into\r\n\ the\ drive\ and\                      
                   6271: >>>>>>292      string  strike\ any\ key...\0           \b, IBM OS/2 Warp message display
                   6272: # XP
                   6273: >430   string  NTLDR\ is\ missing\xFF\r\n              
                   6274: >>449  string  Disk\ error\xFF\r\n                     
                   6275: >>>462 string  Press\ any\ key\ to\ restart\r          \b, Microsoft Windows XP Bootloader
                   6276: # DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
                   6277: >>>>417                ubyte&0xDF      >0                      
                   6278: >>>>>417       string          x                       %-.5s
                   6279: >>>>>>422      ubyte&0xDF      >0                      
                   6280: >>>>>>>422     string          x                       \b%-.3s
                   6281: >>>>>425       ubyte&0xDF      >0                      
                   6282: >>>>>>425      string          >\                      \b.%-.3s
                   6283: #
                   6284: >>>>371                ubyte           >0x20                   
                   6285: >>>>>368       ubyte&0xDF      >0                      
                   6286: >>>>>>368      string          x                       %-.5s
                   6287: >>>>>>>373     ubyte&0xDF      >0                      
                   6288: >>>>>>>>373    string          x                       \b%-.3s
                   6289: >>>>>>376      ubyte&0xDF      >0                      
                   6290: >>>>>>>376     string          x                       \b.%-.3s
                   6291: #
                   6292: >430   string  NTLDR\ nicht\ gefunden\xFF\r\n          
                   6293: >>453  string  Datentr\204gerfehler\xFF\r\n            
                   6294: >>>473 string  Neustart\ mit\ beliebiger\ Taste\r      \b, Microsoft Windows XP Bootloader (german)
                   6295: >>>>417                ubyte&0xDF      >0                      
                   6296: >>>>>417       string          x                       %-.5s
                   6297: >>>>>>422      ubyte&0xDF      >0                      
                   6298: >>>>>>>422     string          x                       \b%-.3s
                   6299: >>>>>425       ubyte&0xDF      >0                      
                   6300: >>>>>>425      string          >\                      \b.%-.3s
                   6301: # offset variant
                   6302: >>>>379        string  \0                                      
                   6303: >>>>>368       ubyte&0xDF      >0                      
                   6304: >>>>>>368      string          x                       %-.5s
                   6305: >>>>>>>373     ubyte&0xDF      >0                      
                   6306: >>>>>>>>373    string          x                       \b%-.3s
                   6307: #
                   6308: >430   string  NTLDR\ fehlt\xFF\r\n                    
                   6309: >>444  string  Datentr\204gerfehler\xFF\r\n            
                   6310: >>>464 string  Neustart\ mit\ beliebiger\ Taste\r      \b, Microsoft Windows XP Bootloader (2.german)
                   6311: >>>>417                ubyte&0xDF      >0                      
                   6312: >>>>>417       string          x                       %-.5s
                   6313: >>>>>>422      ubyte&0xDF      >0                      
                   6314: >>>>>>>422     string          x                       \b%-.3s
                   6315: >>>>>425       ubyte&0xDF      >0                      
                   6316: >>>>>>425      string          >\                      \b.%-.3s
                   6317: # variant
                   6318: >>>>371                ubyte           >0x20                   
                   6319: >>>>>368       ubyte&0xDF      >0                      
                   6320: >>>>>>368      string          x                       %-.5s
                   6321: >>>>>>>373     ubyte&0xDF      >0                      
                   6322: >>>>>>>>373    string          x                       \b%-.3s
                   6323: >>>>>>376      ubyte&0xDF      >0                      
                   6324: >>>>>>>376     string          x                       \b.%-.3s
                   6325: #
                   6326: >430   string  NTLDR\ fehlt\xFF\r\n                    
                   6327: >>444  string  Medienfehler\xFF\r\n                    
                   6328: >>>459 string  Neustart:\ Taste\ dr\201cken\r          \b, Microsoft Windows XP Bootloader (3.german)
                   6329: >>>>371                ubyte           >0x20                   
                   6330: >>>>>368       ubyte&0xDF      >0                      
                   6331: >>>>>>368      string          x                       %-.5s
                   6332: >>>>>>>373     ubyte&0xDF      >0                      
                   6333: >>>>>>>>373    string          x                       \b%-.3s
                   6334: >>>>>>376      ubyte&0xDF      >0                      
                   6335: >>>>>>>376     string          x                       \b.%-.3s
                   6336: # variant
                   6337: >>>>417                ubyte&0xDF      >0                      
                   6338: >>>>>417       string          x                       %-.5s
                   6339: >>>>>>422      ubyte&0xDF      >0                      
                   6340: >>>>>>>422     string          x                       \b%-.3s
                   6341: >>>>>425       ubyte&0xDF      >0                      
                   6342: >>>>>>425      string          >\                      \b.%-.3s
                   6343: #
                   6344: >430   string  Datentr\204ger\ entfernen\xFF\r\n       
                   6345: >>454  string  Medienfehler\xFF\r\n                    
                   6346: >>>469 string  Neustart:\ Taste\ dr\201cken\r          \b, Microsoft Windows XP Bootloader (4.german)
1.1.1.2   misho    6347: >>>>379                string          \0                      
                   6348: >>>>>368       ubyte&0xDF      >0                      
                   6349: >>>>>>368      string          x                       %-.5s
                   6350: >>>>>>>373     ubyte&0xDF      >0                      
                   6351: >>>>>>>>373    string          x                       \b%-.3s
                   6352: >>>>>>376      ubyte&0xDF      >0                      
                   6353: >>>>>>>376     string          x                       \b.%-.3s
                   6354: # variant
                   6355: >>>>417                ubyte&0xDF      >0                      
                   6356: >>>>>417       string          x                       %-.5s
                   6357: >>>>>>422      ubyte&0xDF      >0                      
                   6358: >>>>>>>422     string          x                       \b%-.3s
                   6359: >>>>>425       ubyte&0xDF      >0                      
                   6360: >>>>>>425      string          >\                      \b.%-.3s
                   6361: #
                   6362: 
1.1       misho    6363: #>3    string  NTFS\ \ \ \                             
                   6364: >389   string  Fehler\ beim\ Lesen\ 
                   6365: >>407  string  des\ Datentr\204gers
                   6366: >>>426 string  NTLDR\ fehlt                            
                   6367: >>>>440        string  NTLDR\ ist\ komprimiert
                   6368: >>>>>464 string        Neustart\ mit\ Strg+Alt+Entf\r          \b, Microsoft Windows XP Bootloader NTFS (german)
                   6369: #>3    string  NTFS\ \ \ \                             
                   6370: >313   string  A\ disk\ read\ error\ occurred.\r
                   6371: >>345  string  A\ kernel\ file\ is\ missing\   
                   6372: >>>370 string  from\ the\ disk.\r              
                   6373: >>>>484        string  NTLDR\ is\ compressed           
                   6374: >>>>>429 string        Insert\ a\ system\ diskette\    
                   6375: >>>>>>454 string and\ restart\r\nthe\ system.\r                \b, Microsoft Windows XP Bootloader NTFS
                   6376: # DOS loader variants different languages,offsets
                   6377: >472   ubyte&0xDF      >0
                   6378: >>389  string  Invalid\ system\ disk\xFF\r\n           
                   6379: >>>411 string  Disk\ I/O\ error                        
                   6380: >>>>428        string  Replace\ the\ disk,\ and\               
                   6381: >>>>>455 string        press\ any\ key                         \b, Microsoft Windows 98 Bootloader
                   6382: #IO.SYS
                   6383: >>>>>>472      ubyte&0xDF      >0                      
                   6384: >>>>>>>472     string          x                       \b %-.2s
                   6385: >>>>>>>>474    ubyte&0xDF      >0                      
                   6386: >>>>>>>>>474   string          x                       \b%-.5s
                   6387: >>>>>>>>>>479  ubyte&0xDF      >0                      
                   6388: >>>>>>>>>>>479 string          x                       \b%-.1s
                   6389: >>>>>>>480     ubyte&0xDF      >0                      
                   6390: >>>>>>>>480    string          x                       \b.%-.3s
                   6391: #MSDOS.SYS
                   6392: >>>>>>>483     ubyte&0xDF      >0                      \b+
                   6393: >>>>>>>>483    string          x                       \b%-.5s
                   6394: >>>>>>>>>488   ubyte&0xDF      >0                      
                   6395: >>>>>>>>>>488  string          x                       \b%-.3s
                   6396: >>>>>>>>491    ubyte&0xDF      >0                      
                   6397: >>>>>>>>>491   string          x                       \b.%-.3s
                   6398: #
                   6399: >>390  string  Invalid\ system\ disk\xFF\r\n           
                   6400: >>>412 string  Disk\ I/O\ error\xFF\r\n                
                   6401: >>>>429        string  Replace\ the\ disk,\ and\               
                   6402: >>>>>451 string        then\ press\ any\ key\r                 \b, Microsoft Windows 98 Bootloader
                   6403: >>388  string  Ungueltiges\ System\ \xFF\r\n           
                   6404: >>>410 string  E/A-Fehler\ \ \ \ \xFF\r\n              
                   6405: >>>>427        string  Datentraeger\ wechseln\ und\            
                   6406: >>>>>453 string        Taste\ druecken\r                       \b, Microsoft Windows 95/98/ME Bootloader (german)
                   6407: #WINBOOT.SYS only not spaces (0xDF)
                   6408: >>>>>>497      ubyte&0xDF      >0                      
                   6409: >>>>>>>497     string          x                       %-.5s
                   6410: >>>>>>>>502    ubyte&0xDF      >0                      
                   6411: >>>>>>>>>502   string          x                       \b%-.1s
                   6412: >>>>>>>>>>503  ubyte&0xDF      >0                      
                   6413: >>>>>>>>>>>503 string          x                       \b%-.1s
                   6414: >>>>>>>>>>>>504        ubyte&0xDF      >0                      
                   6415: >>>>>>>>>>>>>504 string                x                       \b%-.1s
                   6416: >>>>>>505      ubyte&0xDF      >0                      
                   6417: >>>>>>>505     string          x                       \b.%-.3s
                   6418: #IO.SYS
                   6419: >>>>>>472      ubyte&0xDF      >0                      or
                   6420: >>>>>>>472     string          x                       \b %-.2s
                   6421: >>>>>>>>474    ubyte&0xDF      >0                      
                   6422: >>>>>>>>>474   string          x                       \b%-.5s
                   6423: >>>>>>>>>>479  ubyte&0xDF      >0                      
                   6424: >>>>>>>>>>>479 string          x                       \b%-.1s
                   6425: >>>>>>>480     ubyte&0xDF      >0                      
                   6426: >>>>>>>>480    string          x                       \b.%-.3s
                   6427: #MSDOS.SYS
                   6428: >>>>>>>483     ubyte&0xDF      >0                      \b+
                   6429: >>>>>>>>483    string          x                       \b%-.5s
                   6430: >>>>>>>>>488   ubyte&0xDF      >0                      
                   6431: >>>>>>>>>>488  string          x                       \b%-.3s
                   6432: >>>>>>>>491    ubyte&0xDF      >0                      
                   6433: >>>>>>>>>491   string          x                       \b.%-.3s
                   6434: #
                   6435: >>390  string  Ungueltiges\ System\ \xFF\r\n           
                   6436: >>>412 string  E/A-Fehler\ \ \ \ \xFF\r\n              
                   6437: >>>>429        string  Datentraeger\ wechseln\ und\            
                   6438: >>>>>455 string        Taste\ druecken\r                       \b, Microsoft Windows 95/98/ME Bootloader (German)
                   6439: #WINBOOT.SYS only not spaces (0xDF)
                   6440: >>>>>>497      ubyte&0xDF      >0                      
                   6441: >>>>>>>497     string          x                       %-.7s
                   6442: >>>>>>>>504    ubyte&0xDF      >0                      
                   6443: >>>>>>>>>504   string          x                       \b%-.1s
                   6444: >>>>>>505      ubyte&0xDF      >0                      
                   6445: >>>>>>>505     string          x                       \b.%-.3s
                   6446: #IO.SYS
                   6447: >>>>>>472      ubyte&0xDF      >0                      or
                   6448: >>>>>>>472     string          x                       \b %-.2s
                   6449: >>>>>>>>474    ubyte&0xDF      >0                      
                   6450: >>>>>>>>>474   string          x                       \b%-.6s
                   6451: >>>>>>>480     ubyte&0xDF      >0                      
                   6452: >>>>>>>>480    string          x                       \b.%-.3s
                   6453: #MSDOS.SYS
                   6454: >>>>>>>483     ubyte&0xDF      >0                      \b+
                   6455: >>>>>>>>483    string          x                       \b%-.5s
                   6456: >>>>>>>>>488   ubyte&0xDF      >0                      
                   6457: >>>>>>>>>>488  string          x                       \b%-.3s
                   6458: >>>>>>>>491    ubyte&0xDF      >0                      
                   6459: >>>>>>>>>491   string          x                       \b.%-.3s
                   6460: #
                   6461: >>389  string  Ungueltiges\ System\ \xFF\r\n           
                   6462: >>>411 string  E/A-Fehler\ \ \ \ \xFF\r\n              
                   6463: >>>>428        string  Datentraeger\ wechseln\ und\            
                   6464: >>>>>454 string        Taste\ druecken\r                       \b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
                   6465: # DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
                   6466: >>>>>>472      string          x                       %-.2s
                   6467: >>>>>>>474     ubyte&0xDF      >0                      
                   6468: >>>>>>>>474    string          x                       \b%-.5s
                   6469: >>>>>>>>479    ubyte&0xDF      >0                      
                   6470: >>>>>>>>>479   string          x                       \b%-.1s
                   6471: >>>>>>480      ubyte&0xDF      >0                      
                   6472: >>>>>>>480     string          x                       \b.%-.3s
                   6473: >>>>>>483      ubyte&0xDF      >0                      \b+
                   6474: >>>>>>>483     string          x                       \b%-.5s
                   6475: >>>>>>>488     ubyte&0xDF      >0                      
                   6476: >>>>>>>>488    string          x                       \b%-.2s
                   6477: >>>>>>>>490    ubyte&0xDF      >0                      
                   6478: >>>>>>>>>490   string          x                       \b%-.1s
                   6479: >>>>>>>491     ubyte&0xDF      >0                      
                   6480: >>>>>>>>491    string          x                       \b.%-.3s
                   6481: >479   ubyte&0xDF      >0
                   6482: >>416  string  Kein\ System\ oder\                     
                   6483: >>>433 string  Laufwerksfehler                         
                   6484: >>>>450        string  Wechseln\ und\ Taste\ dr\201cken        \b, Microsoft DOS Bootloader (german)
                   6485: #IO.SYS
                   6486: >>>>>479       string          x                       \b %-.2s
                   6487: >>>>>>481      ubyte&0xDF      >0                      
                   6488: >>>>>>>481     string          x                       \b%-.6s
                   6489: >>>>>487       ubyte&0xDF      >0                      
                   6490: >>>>>>487      string          x                       \b.%-.3s
                   6491: #MSDOS.SYS
                   6492: >>>>>>490      ubyte&0xDF      >0                      \b+
                   6493: >>>>>>>490     string          x                       \b%-.5s
                   6494: >>>>>>>>495    ubyte&0xDF      >0                      
                   6495: >>>>>>>>>495   string          x                       \b%-.3s
                   6496: >>>>>>>498     ubyte&0xDF      >0                      
                   6497: >>>>>>>>498    string          x                       \b.%-.3s
                   6498: #
                   6499: >376   search/41       Non-System\ disk\ or\           
                   6500: >>395  search/41       disk\ error\r                   
                   6501: >>>407 search/41       Replace\ and\                   
                   6502: >>>>419        search/41       press\                          \b,
                   6503: >>>>419        search/41       strike\                         \b, old
                   6504: >>>>426        search/41       any\ key\ when\ ready\r         MS or PC-DOS bootloader
                   6505: #449                   Disk\ Boot\ failure\r           MS 3.21
                   6506: #466                   Boot\ Failure\r                 MS 3.30
                   6507: >>>>>468 search/18     \0                              
                   6508: #IO.SYS,IBMBIO.COM
                   6509: >>>>>>&0       string          x                       \b %-.2s
                   6510: >>>>>>>&-20    ubyte&0xDF      >0                      
                   6511: >>>>>>>>&-1    string          x                       \b%-.4s
                   6512: >>>>>>>>>&-16  ubyte&0xDF      >0                      
                   6513: >>>>>>>>>>&-1  string          x                       \b%-.2s
                   6514: >>>>>>&8       ubyte&0xDF      >0                      \b.
                   6515: >>>>>>>&-1     string          x                       \b%-.3s
                   6516: #MSDOS.SYS,IBMDOS.COM
                   6517: >>>>>>&11      ubyte&0xDF      >0                      \b+
                   6518: >>>>>>>&-1     string          x                       \b%-.5s
                   6519: >>>>>>>>&-6    ubyte&0xDF      >0                      
                   6520: >>>>>>>>>&-1   string          x                       \b%-.1s
                   6521: >>>>>>>>>>&-5  ubyte&0xDF      >0                      
                   6522: >>>>>>>>>>>&-1 string          x                       \b%-.2s
                   6523: >>>>>>>&7      ubyte&0xDF      >0                      \b.
                   6524: >>>>>>>>&-1    string          x                       \b%-.3s
                   6525: >441   string  Cannot\ load\ from\ harddisk.\n\r
                   6526: >>469  string  Insert\ Systemdisk\                     
                   6527: >>>487 string  and\ press\ any\ key.\n\r               \b, MS (2.11) DOS bootloader
                   6528: #>43   string  \224R-LOADER\ \ SYS                     =label                                  
                   6529: >54    string  SYS
                   6530: >>324  string  VASKK
                   6531: >>>495 string  NEWLDR\0                                \b, DR-DOS Bootloader (LOADER.SYS)
                   6532: #
                   6533: >98    string  Press\ a\ key\ to\ retry\0\r            
                   6534: >>120  string  Cannot\ find\ file\ \0\r                
                   6535: >>>139 string  Disk\ read\ error\0\r                   
                   6536: >>>>156        string  Loading\ ...\0                          \b, DR-DOS (3.41) Bootloader
                   6537: #DRBIOS.SYS
                   6538: >>>>>44                ubyte&0xDF      >0                      
                   6539: >>>>>>44       string          x                       \b %-.6s
                   6540: >>>>>>>50      ubyte&0xDF      >0                      
                   6541: >>>>>>>>50     string          x                       \b%-.2s
                   6542: >>>>>>52       ubyte&0xDF      >0                      
                   6543: >>>>>>>52      string          x                       \b.%-.3s
                   6544: #
                   6545: >70    string  IBMBIO\ \ COM                           
                   6546: >>472  string  Cannot\ load\ DOS!\                     
                   6547: >>>489 string  Any\ key\ to\ retry                     \b, DR-DOS Bootloader
                   6548: >>471  string  Cannot\ load\ DOS\                      
                   6549: >>487  string  press\ key\ to\ retry                   \b, Open-DOS Bootloader
1.1.1.2   misho    6550: #??
1.1       misho    6551: >444   string  KERNEL\ \ SYS                                   
                   6552: >>314  string  BOOT\ error!                            \b, FREE-DOS Bootloader
                   6553: >499   string  KERNEL\ \ SYS                           
                   6554: >>305  string  BOOT\ err!\0                            \b, Free-DOS Bootloader
                   6555: >449   string  KERNEL\ \ SYS                           
                   6556: >>319  string  BOOT\ error!                            \b, FREE-DOS 0.5 Bootloader
1.1.1.2   misho    6557: #
                   6558: >449   string  Loading\ FreeDOS                        
                   6559: >>0x1AF                ulelong         >0                      \b, FREE-DOS 0.95,1.0 Bootloader
                   6560: >>>497         ubyte&0xDF      >0                      
                   6561: >>>>497                string          x                       \b %-.6s
                   6562: >>>>>503       ubyte&0xDF      >0                      
                   6563: >>>>>>503      string          x                       \b%-.1s
                   6564: >>>>>>>504     ubyte&0xDF      >0                      
                   6565: >>>>>>>>504    string          x                       \b%-.1s
                   6566: >>>>505                ubyte&0xDF      >0                      
                   6567: >>>>>505       string          x                       \b.%-.3s
                   6568: #
                   6569: >331   string  Error!.0                                \b, FREE-DOS 1.0 bootloader
                   6570: #
1.1       misho    6571: >125   string  Loading\ FreeDOS...\r                   
                   6572: >>311  string  BOOT\ error!\r                          \b, FREE-DOS bootloader
                   6573: >>>441         ubyte&0xDF      >0                      
                   6574: >>>>441                string          x                       \b %-.6s
                   6575: >>>>>447       ubyte&0xDF      >0                      
                   6576: >>>>>>447      string          x                       \b%-.1s
                   6577: >>>>>>>448     ubyte&0xDF      >0                      
                   6578: >>>>>>>>448    string          x                       \b%-.1s
                   6579: >>>>449                ubyte&0xDF      >0                      
                   6580: >>>>>449       string          x                       \b.%-.3s
                   6581: >124   string  FreeDOS\0                               
                   6582: >>331  string  \ err\0                                 \b, FREE-DOS BETa 0.9 Bootloader
                   6583: # DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
                   6584: >>>497         ubyte&0xDF      >0                      
                   6585: >>>>497                string          x                       \b %-.6s
                   6586: >>>>>503       ubyte&0xDF      >0                      
                   6587: >>>>>>503      string          x                       \b%-.1s
                   6588: >>>>>>>504     ubyte&0xDF      >0                      
                   6589: >>>>>>>>504    string          x                       \b%-.1s
                   6590: >>>>505                ubyte&0xDF      >0                      
                   6591: >>>>>505       string          x                       \b.%-.3s
                   6592: >>333  string  \ err\0                                 \b, FREE-DOS BEta 0.9 Bootloader
                   6593: >>>497         ubyte&0xDF      >0                      
                   6594: >>>>497                string          x                       \b %-.6s
                   6595: >>>>>503       ubyte&0xDF      >0                      
                   6596: >>>>>>503      string          x                       \b%-.1s
                   6597: >>>>>>>504     ubyte&0xDF      >0                      
                   6598: >>>>>>>>504    string          x                       \b%-.1s
                   6599: >>>>505                ubyte&0xDF      >0                      
                   6600: >>>>>505       string          x                       \b.%-.3s
                   6601: >>334  string  \ err\0                                 \b, FREE-DOS Beta 0.9 Bootloader
                   6602: >>>497         ubyte&0xDF      >0                      
                   6603: >>>>497                string          x                       \b %-.6s
                   6604: >>>>>503       ubyte&0xDF      >0                      
                   6605: >>>>>>503      string          x                       \b%-.1s
                   6606: >>>>>>>504     ubyte&0xDF      >0                      
                   6607: >>>>>>>>504    string          x                       \b%-.1s
                   6608: >>>>505                ubyte&0xDF      >0                      
                   6609: >>>>>505       string          x                       \b.%-.3s
                   6610: >336   string  Error!\                                 
                   6611: >>343  string  Hit\ a\ key\ to\ reboot.                \b, FREE-DOS Beta 0.9sr1 Bootloader
                   6612: >>>497         ubyte&0xDF      >0                      
                   6613: >>>>497                string          x                       \b %-.6s
                   6614: >>>>>503       ubyte&0xDF      >0                      
                   6615: >>>>>>503      string          x                       \b%-.1s
                   6616: >>>>>>>504     ubyte&0xDF      >0                      
                   6617: >>>>>>>>504    string          x                       \b%-.1s
                   6618: >>>>505                ubyte&0xDF      >0                      
                   6619: >>>>>505       string          x                       \b.%-.3s
                   6620: # added by Joerg Jenderek
                   6621: # http://www.visopsys.org/
                   6622: # http://partitionlogic.org.uk/
                   6623: # OEM-ID=Visopsys
                   6624: >478           ulelong 0                                       
                   6625: >>(1.b+326)    string  I/O\ Error\ reading\                    
                   6626: >>>(1.b+344)   string  Visopsys\ loader\r                      
                   6627: >>>>(1.b+361)  string  Press\ any\ key\ to\ continue.\r        \b, Visopsys loader
                   6628: # http://alexfru.chat.ru/epm.html#bootprog
                   6629: >494   ubyte   >0x4D                                   
                   6630: >>495  string  >E                                      
                   6631: >>>495 string  <S                                      
                   6632: #OEM-ID is not reliable
                   6633: >>>>3  string  BootProg                                
                   6634: # It just looks for a program file name at the root directory
                   6635: # and loads corresponding file with following execution.
                   6636: # DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
                   6637: >>>>499                        ubyte&0xDF      >0              \b, COM/EXE Bootloader
                   6638: >>>>>499               string          x               \b %-.1s
                   6639: >>>>>>500              ubyte&0xDF      >0              
                   6640: >>>>>>>500             string          x               \b%-.1s
                   6641: >>>>>>>>501            ubyte&0xDF      >0              
                   6642: >>>>>>>>>501           string          x               \b%-.1s
                   6643: >>>>>>>>>>502          ubyte&0xDF      >0              
                   6644: >>>>>>>>>>>502         string          x               \b%-.1s
                   6645: >>>>>>>>>>>>503                ubyte&0xDF      >0              
                   6646: >>>>>>>>>>>>>503       string          x               \b%-.1s
                   6647: >>>>>>>>>>>>>>504      ubyte&0xDF      >0              
                   6648: >>>>>>>>>>>>>>>504     string          x               \b%-.1s
                   6649: >>>>>>>>>>>>>>>>505    ubyte&0xDF      >0              
                   6650: >>>>>>>>>>>>>>>>>505   string          x               \b%-.1s
                   6651: >>>>>>>>>>>>>>>>>>506  ubyte&0xDF      >0              
                   6652: >>>>>>>>>>>>>>>>>>>506 string          x               \b%-.1s
                   6653: #name extension
                   6654: >>>>>507               ubyte&0xDF      >0              \b.
                   6655: >>>>>>507              string          x               \b%-.1s
                   6656: >>>>>>>508             ubyte&0xDF      >0              
                   6657: >>>>>>>>508            string          x               \b%-.1s
                   6658: >>>>>>>>>509           ubyte&0xDF      >0              
                   6659: >>>>>>>>>>509          string          x               \b%-.1s
                   6660: #If the boot sector fails to read any other sector,
                   6661: #it prints a very short message ("RE") to the screen and hangs the computer.
                   6662: #If the boot sector fails to find needed program in the root directory,
                   6663: #it also hangs with another message ("NF").
                   6664: >>>>>492               string          RENF            \b, FAT (12 bit)
                   6665: >>>>>495               string          RENF            \b, FAT (16 bit)
                   6666: # http://alexfru.chat.ru/epm.html#bootprog
                   6667: >494   ubyte   >0x4D                                   
                   6668: >>495  string  >E                                      
                   6669: >>>495 string  <S                                      
                   6670: #OEM-ID is not reliable
                   6671: >>>>3  string  BootProg                                
                   6672: # It just looks for a program file name at the root directory
                   6673: # and loads corresponding file with following execution.
                   6674: # DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
                   6675: >>>>499                        ubyte&0xDF      >0              \b, COM/EXE Bootloader
                   6676: >>>>>499               string          x               \b %-.1s
                   6677: >>>>>>500              ubyte&0xDF      >0              
                   6678: >>>>>>>500             string          x               \b%-.1s
                   6679: >>>>>>>>501            ubyte&0xDF      >0              
                   6680: >>>>>>>>>501           string          x               \b%-.1s
                   6681: >>>>>>>>>>502          ubyte&0xDF      >0              
                   6682: >>>>>>>>>>>502         string          x               \b%-.1s
                   6683: >>>>>>>>>>>>503                ubyte&0xDF      >0              
                   6684: >>>>>>>>>>>>>503       string          x               \b%-.1s
                   6685: >>>>>>>>>>>>>>504      ubyte&0xDF      >0              
                   6686: >>>>>>>>>>>>>>>504     string          x               \b%-.1s
                   6687: >>>>>>>>>>>>>>>>505    ubyte&0xDF      >0              
                   6688: >>>>>>>>>>>>>>>>>505   string          x               \b%-.1s
                   6689: >>>>>>>>>>>>>>>>>>506  ubyte&0xDF      >0              
                   6690: >>>>>>>>>>>>>>>>>>>506 string          x               \b%-.1s
                   6691: #name extension
                   6692: >>>>>507               ubyte&0xDF      >0              \b.
                   6693: >>>>>>507              string          x               \b%-.1s
                   6694: >>>>>>>508             ubyte&0xDF      >0              
                   6695: >>>>>>>>508            string          x               \b%-.1s
                   6696: >>>>>>>>>509           ubyte&0xDF      >0              
                   6697: >>>>>>>>>>509          string          x               \b%-.1s
                   6698: #If the boot sector fails to read any other sector,
                   6699: #it prints a very short message ("RE") to the screen and hangs the computer.
                   6700: #If the boot sector fails to find needed program in the root directory,
                   6701: #it also hangs with another message ("NF").
                   6702: >>>>>492               string          RENF            \b, FAT (12 bit)
                   6703: >>>>>495               string          RENF            \b, FAT (16 bit)
1.1.1.2   misho    6704: # x86 bootloader end
1.1.1.3   misho    6705: 
                   6706: # added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
                   6707: # and http://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
                   6708: >0             string          RRaA            
                   6709: >>0x1E4                string          rrAa            \b, FSInfosector
                   6710: #>>0x1FC       uleshort        =0              SHOULD BE ZERO
                   6711: >>>0x1E8       ulelong         <0xffffffff     \b, %u free clusters
                   6712: >>>0x1EC       ulelong         <0xffffffff     \b, last allocated cluster %u
                   6713: 
                   6714: # added by Joerg Jenderek at Nov 2012
                   6715: # http://www.thenakedpc.com/articles/v04/08/0408-05.html
                   6716: # Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data
                   6717: 0      string  PNCIHISK\0              Norton Utilities disc image data
                   6718: # real x86 boot sector with jump instruction
                   6719: >509   search/1026     \x55\xAA\xeb    
                   6720: >>&-1  indirect        x               \b; contains 
                   6721: # http://file-extension.net/seeker/file_extension_dat
                   6722: 0      string  PNCIUNDO                Norton Disk Doctor UnDo file
                   6723: #
                   6724: 
1.1       misho    6725: # updated by Joerg Jenderek at Sep 2007
                   6726: >3     ubyte   0                       
                   6727: #no active flag
                   6728: >>446  ubyte   0                       
                   6729: # partition 1 not empty
                   6730: >>>450 ubyte   >0                      
                   6731: # partitions 3,4 empty
                   6732: >>>>482                ubyte   0                       
                   6733: >>>>>498       ubyte   0                       
                   6734: # partition 2 ID=0,5,15
                   6735: >>>>>>466      ubyte   <0x10                   
                   6736: >>>>>>>466     ubyte   0x05                    \b, extended partition table
                   6737: >>>>>>>466     ubyte   0x0F                    \b, extended partition table (LBA)
                   6738: >>>>>>>466     ubyte   0x0                     \b, extended partition table (last)     
1.1.1.3   misho    6739: 
                   6740: # DOS x86 sector separated and moved from "x86 boot sector" by Joerg Jenderek at May 2011
                   6741: 
1.1       misho    6742: >0x200 lelong  0x82564557              \b, BSD disklabel
                   6743: # FATX 
                   6744: 0              string          FATX            FATX filesystem data
                   6745: 
                   6746: # romfs filesystems - Juan Cespedes <cespedes@debian.org>
1.1.1.2   misho    6747: 0      string          -rom1fs-        romfs filesystem, version 1
1.1       misho    6748: >8     belong  x                       %d bytes,
                   6749: >16    string  x                       named %s.
                   6750: 
                   6751: # netboot image - Juan Cespedes <cespedes@debian.org>
                   6752: 0      lelong          0x1b031336L     Netboot image,
                   6753: >4     lelong&0xFFFFFF00       0
                   6754: >>4    lelong&0x100    0x000           mode 2
                   6755: >>4    lelong&0x100    0x100           mode 3
                   6756: >4     lelong&0xFFFFFF00       !0      unknown mode
                   6757: 
                   6758: 0x18b  string  OS/2    OS/2 Boot Manager
                   6759: 
1.1.1.3   misho    6760: # updated by Joerg Jenderek at Oct 2008 and Sep 2012
1.1.1.2   misho    6761: # http://syslinux.zytor.com/iso.php
1.1.1.3   misho    6762: # tested with versions 1.47,1.48,1.49,1.50,1.62,1.76,2.00,2.10;3.00,3.11,3.31,;3.70,3.71,3.73,3.75,3.80,3.82,3.84,3.86,4.01,4.03 and 4.05
                   6763: # assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop
                   6764: 0      ulequad&0x909000007cc0eafa      0x909000007c40eafa      
                   6765: >631   search/689      ISOLINUX\       isolinux Loader
                   6766: >>&0   string          x               (version %-4.4s)
1.1.1.2   misho    6767: # http://syslinux.zytor.com/pxe.php
1.1.1.3   misho    6768: # assembler instructions: jmp 7C05
                   6769: 0      ulelong 0x007c05ea              pxelinux loader (version 2.13 or older)
                   6770: # assembler instructions: pushfd;pushad
                   6771: 0      ulelong 0x60669c66              pxelinux loader
                   6772: # assembler instructions: jmp 05
                   6773: 0      ulelong 0xc00005ea              pxelinux loader (version 3.70 or newer)
                   6774: # http://syslinux.zytor.com/wiki/index.php/SYSLINUX
                   6775: 0      string  LDLINUX\ SYS\           SYSLINUX loader
                   6776: >12    string  x                       (older version %-4.4s)
                   6777: 0      string  \r\nSYSLINUX\           SYSLINUX loader
                   6778: >11    string  x                       (version %-4.4s)
                   6779: # syslinux updated and separated from "x86 boot sector" by Joerg Jenderek at Sep 2012
                   6780: # assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX"
                   6781: 0      ulelong&0x80909bEB      0x009018EB      
                   6782: # OEM-ID not always "SYSLINUX"
                   6783: >434   search/47       Boot\ failed            
                   6784: # followed by \r\n\0 or :\ 
                   6785: >>482  search/132      \0LDLINUX\ SYS          Syslinux bootloader (version 2.13 or older)
                   6786: >>1    ubyte           0x58                    Syslinux bootloader (version 3.0-3.9)
                   6787: >459   search/30       Boot\ error\r\n\0       
                   6788: >>1    ubyte           0x58                    Syslinux bootloader (version 3.10 or newer)
                   6789: # SYSLINUX MBR updated and separated from "x86 boot sector" by Joerg Jenderek at Sep 2012
                   6790: # assembler instructions: mov di,0600h;mov cx,0100h
                   6791: 16     search/4        \xbf\x00\x06\xb9\x00\x01                
                   6792: # to display SYSLINUX MBR (36) before old x86 boot sector one with partition table (strength=50+21)
                   6793: !:strength +36
                   6794: >94    search/249      Missing\ operating\ system              
                   6795: # followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other
                   6796: # skip Ranish MBR
                   6797: >>408  search/4        HD1/\0                                  
                   6798: >>408  default         x                                       
                   6799: >>>250 search/118      \0Operating\ system\ load               SYSLINUX MBR
                   6800: # followed by "ing " or space
                   6801: >>>>292        search/98       error                                   
                   6802: >>>>>&0        string          \r                                      (version 3.35 or older)
                   6803: >>>>>&0        string          .\r                                     (version 3.52 or newer)
                   6804: >>>>>&0        default         x                                       (version 3.36-3.51 )
                   6805: >368   search/106      \0Disk\ error\ on\ boot\r\n             SYSLINUX GPT-MBR
                   6806: >>156  search/10       \0Boot\ partition\ not\ found\r\n       
                   6807: >>>270 search/10       \0OS\ not\ bootable\r\n                 (version 3.86 or older)
                   6808: >>174  search/10       \0Missing\ OS\r\n                       
                   6809: >>>189 search/10       \0Multiple\ active\ partitions\r\n      (version 4.00 or newer)
                   6810: # SYSLINUX END
                   6811: 
                   6812: # NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012
                   6813: # assembler instructions: xor ax,ax;mov        ax,ss;mov sp,0x7c00;mov ax,
                   6814: 0      ubequad         0x31c08ed0bc007c8e                      
                   6815: # mbr_bootsel magic before partition table not reliable with small ipl fragments
                   6816: #>444  uleshort        0xb5e1                                  
                   6817: >0004  uleshort        x                                       
                   6818: # ERRorTeXT
                   6819: >>181  search/166              Error\ \0\r\n                           NetBSD mbr
                   6820: # NT Drive Serial Number http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS
                   6821: >>>0x1B8       ubelong         >0                                      \b,Serial 0x%-.8x
                   6822: # BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx
                   6823: >>>0xbb                search/71       \xcd\x13\x5a\x52\x52                    \b,bootselector
                   6824: # BOOT_EXTENDED definitions contains assembler instructions: 
                   6825: # xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13
                   6826: >>>0x96        search/1        \x66\x87\xca\x66\x01\xca\x66\x89\x16\x3a\x07\xbe\x32\x07\xb4\x42\x5a\x52\xcd\x13        \b,boot extended
                   6827: # COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al
                   6828: >>>0x130       search/55       \xee\x80\xc2\x05\xec\xa8\x40            \b,serial IO
                   6829: # not TERSE_ERROR
                   6830: >>>196         search/106      No\ active\ partition\0                 
                   6831: >>>>&0         string          Disk\ read\ error\0                     
                   6832: >>>>>&0                string          No\ operating\ system\0                 \b,verbose
                   6833: # not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13
                   6834: >>>0x7d                search/7        \x5a\x52\xb4\x08\xcd\x13                \b,CHS
                   6835: # not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop        dx;push dx;int 0x13
                   6836: >>>0xa4                search/84       \xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13    \b,LBA-check
                   6837: # assembler instructions: movw nametab,bx
                   6838: >>>0x26            search/21   \xBB\x94\x07                                    
                   6839: # not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf
                   6840: >>>>&-9        ubequad&0xBE00f0E800febb94      0xBE0000E80000bb94              
                   6841: >>>>>181       search/166              Error\ \0                       
                   6842: # "a: disk" , "Fn: diskn" or "NetBSD MBR boot"
                   6843: >>>>>>&3       string                  x                               \b,"%s"
                   6844: # Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html
                   6845: # added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4
                   6846: # assembler instructions: jmp short 0x58;nop;ASCII
                   6847: 0      ubequad&0xeb58908000000000      0xeb58900000000000      
                   6848: # assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss,
                   6849: >(1.b+2)       ubequad                 0xfa31c08ed88ec08e      
                   6850: # Error messages at end of code
                   6851: >>376          string  No\ operating\ system\r\n\0             
                   6852: >>>398         string  Disk\ error\r\n\0FDD\0HDD\0             
                   6853: >>>>419                string  \ EBIOS\r\n\0                           AdvanceMAME mbr
                   6854: 
                   6855: # Neil Turton mbr loader variant of http://www.chiark.greenend.org.uk/~neilt/mbr/ 
                   6856: # added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11
                   6857: # for 1st version assembler instructions:      cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI,
                   6858: # or                                           cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS,
                   6859: 0      ulequad&0xcE1b40D48EC031FC      0x8E0000D08EC031FC      
                   6860: # pointer to the data starting with Neil Turton signature string
                   6861: >(0x1BC.s)             string          NDTmbr                  
                   6862: >>&-14                 string          1234F\0                 Turton mbr (
                   6863: # parameters also viewed by install-mbr --list
                   6864: >>>(0x1BC.s+7)         ubyte           x                       \b%u<=
                   6865: >>>(0x1BC.s+9)         ubyte           x                       \bVersion<=%u
                   6866: #>>>(0x1BC.s+8)                ubyte           x                       asm_flag_%x
                   6867: >>>(0x1BC.s+8)         ubyte&1         1                       \b,Y2K-Fix
                   6868: # variant used by testdisk of http://www.cgsecurity.org/wiki/Menu_MBRCode
                   6869: >>>(0x1BC.s+8)         ubyte&2         2                       \b,TestDisk
                   6870: #0x1~1,..,0x8~4,0x10~F,0x80~A enabled
                   6871: #>>>(0x1BC.s+10)               ubyte           x                       \b,flags 0x%x
                   6872: #0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot
                   6873: #>>>(0x1BC.s+11)               ubyte           x                       \b,cfg_def 0x%x
                   6874: # for older versions
                   6875: >>>(0x1BC.s+9)         ubyte           <2                      
                   6876: #>>>>(0x1BC.s+12)      ubyte           18                      \b,%u/18 seconds
                   6877: >>>>(0x1BC.s+12)       ubyte           !18                     \b,%u/18 seconds
                   6878: # floppy A: or B:
                   6879: >>>>(0x1BC.s+13)       ubyte           <2                      \b,floppy 0x%x
                   6880: >>>>(0x1BC.s+13)       ubyte           >1                      
                   6881: # 1st hard disc
                   6882: #>>>>>(0x1BC.s+13)     ubyte           0x80                    \b,drive 0x%x
                   6883: # not 1st hard disc
                   6884: >>>>>(0x1BC.s+13)      ubyte           !0x80                   \b,drive 0x%x
                   6885: # for version >= 2 maximal timeout can be 65534
                   6886: >>>(0x1BC.s+9)         ubyte           >1                      
                   6887: #>>>>(0x1BC.s+12)      uleshort        18                      \b,%u/18 seconds
                   6888: >>>>(0x1BC.s+12)       uleshort        !18                     \b,%u/18 seconds
                   6889: # floppy A: or B:
                   6890: >>>>(0x1BC.s+14)       ubyte           <2                      \b,floppy 0x%x
                   6891: >>>>(0x1BC.s+14)       ubyte           >1                      
                   6892: # 1st hard disc
                   6893: #>>>>>(0x1BC.s+14)     ubyte           0x80                    \b,drive 0x%x
                   6894: # not 1st hard disc
                   6895: >>>>>(0x1BC.s+14)      ubyte           !0x80                   \b,drive 0x%x
                   6896: >>>0   ubyte           x                                       \b)
1.1.1.2   misho    6897: 
1.1       misho    6898: # added by Joerg Jenderek
                   6899: # In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
                   6900: # grub-1.94/kern/i386/pc/startup.S
                   6901: # http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
                   6902: # usual values are marked with comments to get only informations of strange GRUB loaders
                   6903: 0x200  uleshort                0x70EA          
                   6904: # found only version 3.{1,2}
                   6905: >0x206         ubeshort        >0x0300         
                   6906: # GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
                   6907: >>0x212        ubyte           >0x29           
                   6908: >>>0x213       ubyte           >0x29           
                   6909: # not iso9660_stage1_5
                   6910: #>>>0  ulelong&0x00BE5652      0x00BE5652      
                   6911: >>>>0x213      ubyte           >0x29           GRand Unified Bootloader
                   6912: # config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
                   6913: >>>>0x217      ubyte           0xFF            stage1_5
                   6914: >>>>0x217      ubyte           <0xFF           stage2
                   6915: >>>>0x206      ubyte           x               \b version %u
                   6916: >>>>0x207      ubyte           x               \b.%u
                   6917: # module_size for 1.94
                   6918: >>>>0x208      ulelong         <0xffffff       \b, installed partition %u
                   6919: #>>>>0x208     ulelong         =0xffffff       \b, %u (default)
                   6920: >>>>0x208      ulelong         >0xffffff       \b, installed partition %u
                   6921: # GRUB 0.5.95 unofficial
                   6922: >>>>0x20C      ulelong&0x2E300000 0x2E300000   
                   6923: # 0=stage2     1=ffs   2=e2fs  3=fat   4=minix 5=reiserfs
                   6924: >>>>>0x20C     ubyte           x               \b, identifier 0x%x
                   6925: #>>>>>0x20D    ubyte           =0              \b, LBA flag 0x%x (default)
                   6926: >>>>>0x20D     ubyte           >0              \b, LBA flag 0x%x
                   6927: # GRUB version as string
                   6928: >>>>>0x20E     string          >\0             \b, GRUB version %-s
                   6929: # for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
                   6930: >>>>>>0x215    ulong           0xffffffff      
                   6931: >>>>>>>0x219   string          >\0             \b, configuration file %-s
                   6932: >>>>>>0x215    ulong           !0xffffffff     
                   6933: >>>>>>>0x215   string          >\0             \b, configuration file %-s
                   6934: # newer GRUB versions
                   6935: >>>>0x20C      ulelong&0x2E300000 !0x2E300000  
                   6936: ##>>>>>0x20C   ulelong         =0              \b, saved entry %d (usual)
                   6937: >>>>>0x20C     ulelong         >0              \b, saved entry %d
                   6938: # for 1.94 contains kernel image size
                   6939: # for 0.93,0.94,0.96,0.97
                   6940: # 0=stage2     1=ffs   2=e2fs  3=fat   4=minix 5=reiserfs      6=vstafs        7=jfs   8=xfs   9=iso9660       a=ufs2  
                   6941: >>>>>0x210     ubyte           x               \b, identifier 0x%x
                   6942: # The flag for LBA forcing is in most cases 0
                   6943: #>>>>>0x211    ubyte           =0              \b, LBA flag 0x%x (default)
                   6944: >>>>>0x211     ubyte           >0              \b, LBA flag 0x%x
                   6945: # GRUB version as string
                   6946: >>>>>0x212     string          >\0             \b, GRUB version %-s
                   6947: # for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
                   6948: >>>>>0x217     ulong           0xffffffff      
                   6949: >>>>>>0x21b    string          >\0             \b, configuration file %-s
                   6950: >>>>>0x217     ulong           !0xffffffff     
                   6951: >>>>>>0x217    string          >\0             \b, configuration file %-s
                   6952: 
1.1.1.3   misho    6953: # DOS x86 sector updated and separated from "x86 boot sector" by Joerg Jenderek at May 2011
                   6954: # JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
                   6955: # over BIOS parameter block (BPB)
                   6956: # http://thestarman.pcministry.com/asm/2bytejumps.htm#FWD
                   6957: # older drives may use Near JuMP instruction E9 xx xx
                   6958: # minimal short forward jump found 0x29 for bootloaders or 0x0
                   6959: # maximal short forward jump is 0x7f
                   6960: # OEM-ID is empty or contain readable bytes
                   6961: 0              ulelong&0x804000E9      0x000000E9      
                   6962: # mtools-3.9.8/msdos.h
                   6963: # usual values are marked with comments to get only informations of strange FAT systems
                   6964: # valid sectorsize must be a power of 2 from 32 to 32768
                   6965: >11            uleshort&0xf001f        0       
                   6966: >>11           uleshort        <32769          
                   6967: >>>11          uleshort        >31             
                   6968: >>>>21         ubyte&0xf0      0xF0            
                   6969: >>>>>0         ubyte           0xEB            
                   6970: >>>>>>1                ubyte           x               \b, code offset 0x%x+2
                   6971: >>>>>0         ubyte           0xE9            
                   6972: >>>>>>1                uleshort        x               \b, code offset 0x%x+2
                   6973: >>>>>3         string          >\0             \b, OEM-ID "%-.8s"
                   6974: #http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
                   6975: >>>>>>8                string          IHC             \b cached by Windows 9M
                   6976: >>>>>11                uleshort        >512            \b, Bytes/sector %u
                   6977: #>>>>>11       uleshort        =512            \b, Bytes/sector %u=512 (usual)
                   6978: >>>>>11                uleshort        <512            \b, Bytes/sector %u
                   6979: >>>>>13                ubyte           >1              \b, sectors/cluster %u
                   6980: #>>>>>13       ubyte           =1              \b, sectors/cluster %u (usual on Floppies)
                   6981: >>>>>82                string          FAT32           
                   6982: >>>>>>14       uleshort        !32             \b, reserved sectors %u
                   6983: #>>>>>>14      uleshort        =32             \b, reserved sectors %u (usual Fat32)
                   6984: >>>>>82                string          !FAT32          
                   6985: >>>>>>14       uleshort        >1              \b, reserved sectors %u
                   6986: #>>>>>>14      uleshort        =1              \b, reserved sectors %u (usual FAT12,FAT16)
                   6987: #>>>>>>14      uleshort        0               \b, reserved sectors %u (usual NTFS)
                   6988: >>>>>16                ubyte           >2              \b, FATs %u
                   6989: #>>>>>16       ubyte           =2              \b, FATs %u (usual)
                   6990: >>>>>16                ubyte           =1              \b, FAT  %u
                   6991: >>>>>16                ubyte           >0
                   6992: >>>>>17                uleshort        >0              \b, root entries %u
                   6993: #>>>>>17       uleshort        =0              \b, root entries %u=0 (usual Fat32)
                   6994: >>>>>19                uleshort        >0              \b, sectors %u (volumes <=32 MB) 
                   6995: #>>>>>19       uleshort        =0              \b, sectors %u=0 (usual Fat32)
                   6996: >>>>>21                ubyte           >0xF0           \b, Media descriptor 0x%x
                   6997: #>>>>>21       ubyte           =0xF0           \b, Media descriptor 0x%x (usual floppy)
                   6998: >>>>>21                ubyte           <0xF0           \b, Media descriptor 0x%x
                   6999: >>>>>22                uleshort        >0              \b, sectors/FAT %u
                   7000: #>>>>>22       uleshort        =0              \b, sectors/FAT %u=0 (usual Fat32)
                   7001: >>>>>24                uleshort        x               \b, sectors/track %u
                   7002: >>>>>26                ubyte           >2              \b, heads %u
                   7003: #>>>>>26       ubyte           =2              \b, heads %u (usual floppy)
                   7004: >>>>>26                ubyte           =1              \b, heads %u
                   7005: # valid only for sector sizes with more then 32 Bytes
                   7006: >>>>>11                uleshort        >32             
                   7007: # skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
                   7008: >>>>>>38       ubyte           !0x70           
                   7009: >>>>>>>28      ulelong         >0              \b, hidden sectors %u
                   7010: #>>>>>>>28     ulelong         =0              \b, hidden sectors %u (usual floppy)
                   7011: >>>>>>>32      ulelong         >0              \b, sectors %u (volumes > 32 MB) 
                   7012: #>>>>>>>32     ulelong         =0              \b, sectors %u (volumes > 32 MB)
                   7013: # FAT<32 bit specific 
                   7014: >>>>>>>82      string          !FAT32
                   7015: #>>>>>>>>36    ubyte           0x80            \b, physical drive 0x%x=0x80 (usual harddisk)
                   7016: #>>>>>>>>36    ubyte           0               \b, physical drive 0x%x=0 (usual floppy)
                   7017: >>>>>>>>36     ubyte           !0x80           
                   7018: >>>>>>>>>36    ubyte           !0              \b, physical drive 0x%x
                   7019: >>>>>>>>37     ubyte           >0              \b, reserved 0x%x
                   7020: #>>>>>>>>37    ubyte           =0              \b, reserved 0x%x
                   7021: # value is 0x80 for NTFS
                   7022: >>>>>>>>38     ubyte           !0x29           \b, dos < 4.0 BootSector (0x%x)
                   7023: >>>>>>>>38     ubyte           =0x29
                   7024: >>>>>>>>>39    ulelong         x               \b, serial number 0x%x
                   7025: >>>>>>>>>43    string          <NO\ NAME       \b, label: "%11.11s"
                   7026: >>>>>>>>>43    string          >NO\ NAME       \b, label: "%11.11s"
                   7027: >>>>>>>>>43    string          =NO\ NAME       \b, unlabeled
                   7028: # there exist some old floppies without word FAT at offset 54
                   7029: # a word like "FATnm   " is only a hint for a FAT size on nm-bits
                   7030: # Normally the number of clusters is calculated by the values of BPP.
                   7031: # if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit,
                   7032: # otherwise FAT is 16 bit.
                   7033: # http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html
                   7034: >>>>>>54       string          FAT             \b, FAT
                   7035: >>>>>>>54      string          FAT12           \b (12 bit)
                   7036: >>>>>>>54      string          FAT16           \b (16 bit)
                   7037: # FAT32 bit specific
                   7038: >>>>>82                string          FAT32           \b, FAT (32 bit)
                   7039: >>>>>>36       ulelong         x               \b, sectors/FAT %u
                   7040: # http://technet.microsoft.com/en-us/library/cc977221.aspx
                   7041: >>>>>>40       uleshort        >0              \b, extension flags 0x%x
                   7042: #>>>>>>40      uleshort        =0              \b, extension flags %u
                   7043: >>>>>>42       uleshort        >0              \b, fsVersion %u
                   7044: #>>>>>>42      uleshort        =0              \b, fsVersion %u (usual)
                   7045: >>>>>>44       ulelong         >2              \b, rootdir cluster %u
                   7046: #>>>>>>44      ulelong         =2              \b, rootdir cluster %u
                   7047: #>>>>>>44      ulelong         =1              \b, rootdir cluster %u
                   7048: >>>>>>48       uleshort        >1              \b, infoSector %u
                   7049: #>>>>>>48      uleshort        =1              \b, infoSector %u (usual)
                   7050: >>>>>>48       uleshort        <1              \b, infoSector %u
                   7051: >>>>>>50       uleshort        >6              \b, Backup boot sector %u
                   7052: #>>>>>>50      uleshort        =6              \b, Backup boot sector %u (usual) 
                   7053: >>>>>>50       uleshort        <6              \b, Backup boot sector %u
                   7054: # corrected by Joerg Jenderek at Feb 2011 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
                   7055: >>>>>>52       ulelong         >0              \b, reserved1 0x%x
                   7056: >>>>>>56       ulelong         >0              \b, reserved2 0x%x
                   7057: >>>>>>60       ulelong         >0              \b, reserved3 0x%x
                   7058: # same structure as FAT1X 
                   7059: #>>>>>>64      ubyte           =0x80           \b, physical drive 0x%x=80 (usual harddisk)
                   7060: #>>>>>>64      ubyte           =0              \b, physical drive 0x%x=0 (usual floppy)
                   7061: >>>>>>64       ubyte           !0x80           
                   7062: >>>>>>>64      ubyte           >0              \b, physical drive 0x%x
                   7063: # in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
                   7064: >>>>>>65       ubyte           >0              \b, reserved 0x%x
                   7065: >>>>>>66       ubyte           !0x29           \b, dos < 4.0 BootSector (0x%x)
                   7066: >>>>>>66       ubyte           =0x29
                   7067: >>>>>>>67      ulelong         x               \b, serial number 0x%x
                   7068: >>>>>>>71      string          <NO\ NAME       \b, label: "%11.11s"
                   7069: >>>>>>>71      string          >NO\ NAME       \b, label: "%11.11s"
                   7070: >>>>>>>71      string          =NO\ NAME       \b, unlabeled
                   7071: # additional tests for floppy image added by Joerg Jenderek
                   7072: # no fixed disk 
                   7073: >>>>>21                ubyte           !0xF8           
                   7074: # floppy media with 12 bit FAT
                   7075: >>>>>>54       string          !FAT16          
                   7076: # test for FAT after bootsector
                   7077: >>>>>>>(11.s)  ulelong&0x00ffffF0      0x00ffffF0      \b, followed by FAT
                   7078: # floppy image
                   7079: !:mime application/x-ima
                   7080: # NTFS specific added by Joerg Jenderek at Mar 2011 according to http://thestarman.pcministry.com/asm/mbr/NTFSBR.htm
                   7081: # and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html
                   7082: # 0 FATs
                   7083: >>>>>16        ubyte           =0              
                   7084: # 0 root entries
                   7085: >>>>>>17       uleshort        =0              
                   7086: # 0 DOS sectors
                   7087: >>>>>>>19      uleshort        =0              
                   7088: # 0 sectors/FAT
                   7089: # dos < 4.0 BootSector value found is 0x80
                   7090: #38    ubyte           =0x80                   \b, dos < 4.0 BootSector (0x%x)
                   7091: >>>>>>>>22     uleshort        =0              \b; NTFS
                   7092: >>>>>>>>>24    uleshort        >0              \b, sectors/track %u
                   7093: >>>>>>>>>36    ulelong         !0x800080       \b, physical drive 0x%x
                   7094: >>>>>>>>>40    ulequad         >0              \b, sectors %lld
                   7095: >>>>>>>>>48    ulequad         >0              \b, $MFT start cluster %lld
                   7096: >>>>>>>>>56    ulequad         >0              \b, $MFTMirror start cluster %lld
                   7097: # Values 0 to 127 represent MFT record sizes of 0 to 127 clusters.
                   7098: # Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes. 
                   7099: >>>>>>>>>64    lelong          <256            
                   7100: >>>>>>>>>>64   lelong          <128            \b, clusters/RecordSegment %d
                   7101: >>>>>>>>>>64   ubyte           >127            \b, bytes/RecordSegment 2^(-1*%hhi)
                   7102: # Values 0 to 127 represent index block sizes of 0 to 127 clusters.
                   7103: # Values 128 to 255 represent index block sizes of 2^(256-N) byte
                   7104: >>>>>>>>>68    ulelong         <256            
                   7105: >>>>>>>>>>68   ulelong         <128            \b, clusters/index block %d
                   7106: #>>>>>>>>>>68  ulelong         >127            \b, bytes/index block 2^(256-%d)
                   7107: >>>>>>>>>>68   ubyte           >127            \b, bytes/index block 2^(-1*%hhi)
                   7108: >>>>>>>>>72    ulequad         x               \b, serial number 0%llx
                   7109: >>>>>>>>>80    ulelong         >0              \b, checksum 0x%x
                   7110: #>>>>>>>>>80   ulelong         =0              \b, checksum 0x%x=0 (usual)
                   7111: >>>>>>>>>0x258 ulelong&0x00009090      =0x00009090     
                   7112: >>>>>>>>>>&-92         indirect        x       \b; contains 
                   7113: # For 2nd NTFS sector added by Joerg Jenderek at Jan 2013
                   7114: # http://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm
                   7115: # unused assembler instructions JMP y2;NOP;NOP
                   7116: 0x056          ulelong&0xFFFF0FFF      0x909002EB      
                   7117: # unicode loadername terminated by CTRL-D
                   7118: >(0.s*2)       ulelong&0xFFFFFF00      0x00040000              
                   7119: # loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR
                   7120: >>0x002                lestring16      x       Microsoft Windows XP/VISTA bootloader %-5.5s
                   7121: >>0x12         string          $       
                   7122: >>>0x0c                lestring16      x       \b%-2.2s
                   7123: ### DOS,NTFS boot sectors end
                   7124: 
1.1       misho    7125: 9564   lelong          0x00011954      Unix Fast File system [v1] (little-endian),
                   7126: >8404  string          x               last mounted on %s,
                   7127: #>9504 ledate          x               last checked at %s,
                   7128: >8224  ledate          x               last written at %s,
                   7129: >8401  byte            x               clean flag %d,
                   7130: >8228  lelong          x               number of blocks %d,
                   7131: >8232  lelong          x               number of data blocks %d,
                   7132: >8236  lelong          x               number of cylinder groups %d,
                   7133: >8240  lelong          x               block size %d,
                   7134: >8244  lelong          x               fragment size %d,
                   7135: >8252  lelong          x               minimum percentage of free blocks %d,
                   7136: >8256  lelong          x               rotational delay %dms,
                   7137: >8260  lelong          x               disk rotational speed %drps,
                   7138: >8320  lelong          0               TIME optimization
                   7139: >8320  lelong          1               SPACE optimization
                   7140: 
                   7141: 42332  lelong          0x19540119      Unix Fast File system [v2] (little-endian)
                   7142: >&-1164        string          x               last mounted on %s,
                   7143: >&-696 string          >\0             volume name %s,
                   7144: >&-304 leqldate        x               last written at %s,
                   7145: >&-1167        byte            x               clean flag %d,
                   7146: >&-1168        byte            x               readonly flag %d,
                   7147: >&-296 lequad          x               number of blocks %lld,
                   7148: >&-288 lequad          x               number of data blocks %lld,
                   7149: >&-1332        lelong          x               number of cylinder groups %d,
                   7150: >&-1328        lelong          x               block size %d,
                   7151: >&-1324        lelong          x               fragment size %d,
                   7152: >&-180 lelong          x               average file size %d,
                   7153: >&-176 lelong          x               average number of files in dir %d,
                   7154: >&-272 lequad          x               pending blocks to free %lld,
                   7155: >&-264 lelong          x               pending inodes to free %ld,
                   7156: >&-664 lequad          x               system-wide uuid %0llx,
                   7157: >&-1316        lelong          x               minimum percentage of free blocks %d,
                   7158: >&-1248        lelong          0               TIME optimization
                   7159: >&-1248        lelong          1               SPACE optimization
                   7160: 
                   7161: 66908  lelong          0x19540119      Unix Fast File system [v2] (little-endian)
                   7162: >&-1164        string          x               last mounted on %s,
                   7163: >&-696 string          >\0             volume name %s,
                   7164: >&-304 leqldate        x               last written at %s,
                   7165: >&-1167        byte            x               clean flag %d,
                   7166: >&-1168        byte            x               readonly flag %d,
                   7167: >&-296 lequad          x               number of blocks %lld,
                   7168: >&-288 lequad          x               number of data blocks %lld,
                   7169: >&-1332        lelong          x               number of cylinder groups %d,
                   7170: >&-1328        lelong          x               block size %d,
                   7171: >&-1324        lelong          x               fragment size %d,
                   7172: >&-180 lelong          x               average file size %d,
                   7173: >&-176 lelong          x               average number of files in dir %d,
                   7174: >&-272 lequad          x               pending blocks to free %lld,
                   7175: >&-264 lelong          x               pending inodes to free %ld,
                   7176: >&-664 lequad          x               system-wide uuid %0llx,
                   7177: >&-1316        lelong          x               minimum percentage of free blocks %d,
                   7178: >&-1248        lelong          0               TIME optimization
                   7179: >&-1248        lelong          1               SPACE optimization
                   7180: 
                   7181: 9564   belong          0x00011954      Unix Fast File system [v1] (big-endian),
                   7182: >7168   belong         0x4c41424c      Apple UFS Volume
                   7183: >>7186  string         x               named %s,
                   7184: >>7176  belong         x               volume label version %d,
                   7185: >>7180  bedate         x               created on %s,
                   7186: >8404  string          x               last mounted on %s,
                   7187: #>9504 bedate          x               last checked at %s,
                   7188: >8224  bedate          x               last written at %s,
                   7189: >8401  byte            x               clean flag %d,
                   7190: >8228  belong          x               number of blocks %d,
                   7191: >8232  belong          x               number of data blocks %d,
                   7192: >8236  belong          x               number of cylinder groups %d,
                   7193: >8240  belong          x               block size %d,
                   7194: >8244  belong          x               fragment size %d,
                   7195: >8252  belong          x               minimum percentage of free blocks %d,
                   7196: >8256  belong          x               rotational delay %dms,
                   7197: >8260  belong          x               disk rotational speed %drps,
                   7198: >8320  belong          0               TIME optimization
                   7199: >8320  belong          1               SPACE optimization
                   7200: 
                   7201: 42332  belong          0x19540119      Unix Fast File system [v2] (big-endian)
                   7202: >&-1164        string          x               last mounted on %s,
                   7203: >&-696 string          >\0             volume name %s,
                   7204: >&-304 beqldate        x               last written at %s,
                   7205: >&-1167        byte            x               clean flag %d,
                   7206: >&-1168        byte            x               readonly flag %d,
                   7207: >&-296 bequad          x               number of blocks %lld,
                   7208: >&-288 bequad          x               number of data blocks %lld,
                   7209: >&-1332        belong          x               number of cylinder groups %d,
                   7210: >&-1328        belong          x               block size %d,
                   7211: >&-1324        belong          x               fragment size %d,
                   7212: >&-180 belong          x               average file size %d,
                   7213: >&-176 belong          x               average number of files in dir %d,
                   7214: >&-272 bequad          x               pending blocks to free %lld,
                   7215: >&-264 belong          x               pending inodes to free %ld,
                   7216: >&-664 bequad          x               system-wide uuid %0llx,
                   7217: >&-1316        belong          x               minimum percentage of free blocks %d,
                   7218: >&-1248        belong          0               TIME optimization
                   7219: >&-1248        belong          1               SPACE optimization
                   7220: 
                   7221: 66908  belong          0x19540119      Unix Fast File system [v2] (big-endian)
                   7222: >&-1164        string          x               last mounted on %s,
                   7223: >&-696 string          >\0             volume name %s,
                   7224: >&-304 beqldate        x               last written at %s,
                   7225: >&-1167        byte            x               clean flag %d,
                   7226: >&-1168        byte            x               readonly flag %d,
                   7227: >&-296 bequad          x               number of blocks %lld,
                   7228: >&-288 bequad          x               number of data blocks %lld,
                   7229: >&-1332        belong          x               number of cylinder groups %d,
                   7230: >&-1328        belong          x               block size %d,
                   7231: >&-1324        belong          x               fragment size %d,
                   7232: >&-180 belong          x               average file size %d,
                   7233: >&-176 belong          x               average number of files in dir %d,
                   7234: >&-272 bequad          x               pending blocks to free %lld,
                   7235: >&-264 belong          x               pending inodes to free %ld,
                   7236: >&-664 bequad          x               system-wide uuid %0llx,
                   7237: >&-1316        belong          x               minimum percentage of free blocks %d,
                   7238: >&-1248        belong          0               TIME optimization
                   7239: >&-1248        belong          1               SPACE optimization
                   7240: 
                   7241: # ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
                   7242: # ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
                   7243: # volume label and UUID Russell Coker
                   7244: # http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
                   7245: 0x438   leshort         0xEF53          Linux
                   7246: >0x44c  lelong          x               rev %d
                   7247: >0x43e  leshort         x               \b.%d
                   7248: # No journal?  ext2
                   7249: >0x45c  lelong          ^0x0000004      ext2 filesystem data
                   7250: >>0x43a leshort         ^0x0000001      (mounted or unclean)
                   7251: # Has a journal?  ext3 or ext4
                   7252: >0x45c  lelong          &0x0000004
                   7253: #  and small INCOMPAT?
                   7254: >>0x460 lelong          <0x0000040
                   7255: #   and small RO_COMPAT?
                   7256: >>>0x464 lelong         <0x0000008      ext3 filesystem data
                   7257: #   else large RO_COMPAT?
                   7258: >>>0x464 lelong         >0x0000007      ext4 filesystem data
                   7259: #  else large INCOMPAT?
                   7260: >>0x460        lelong          >0x000003f      ext4 filesystem data
1.1.1.2   misho    7261: >0x468 belong          x               \b, UUID=%08x
                   7262: >0x46c beshort         x               \b-%04x
                   7263: >0x46e beshort         x               \b-%04x
                   7264: >0x470 beshort         x               \b-%04x
                   7265: >0x472 belong          x               \b-%08x
                   7266: >0x476 beshort         x               \b%04x
1.1       misho    7267: >0x478 string          >0              \b, volume name "%s"
                   7268: # General flags for any ext* fs
                   7269: >0x460 lelong          &0x0000004      (needs journal recovery)
                   7270: >0x43a leshort         &0x0000002      (errors)
                   7271: # INCOMPAT flags
                   7272: >0x460 lelong          &0x0000001      (compressed)
                   7273: #>0x460        lelong          &0x0000002      (filetype)
                   7274: #>0x460        lelong          &0x0000010      (meta bg)
                   7275: >0x460 lelong          &0x0000040      (extents)
                   7276: >0x460 lelong          &0x0000080      (64bit)
                   7277: #>0x460        lelong          &0x0000100      (mmp)
                   7278: #>0x460        lelong          &0x0000200      (flex bg)
                   7279: # RO_INCOMPAT flags
                   7280: #>0x464        lelong          &0x0000001      (sparse super)
                   7281: >0x464 lelong          &0x0000002      (large files)
                   7282: >0x464 lelong          &0x0000008      (huge files)
                   7283: #>0x464        lelong          &0x0000010      (gdt checksum)
                   7284: #>0x464        lelong          &0x0000020      (many subdirs)
                   7285: #>0x463        lelong          &0x0000040      (extra isize)
                   7286: 
1.1.1.3   misho    7287: # Minix filesystems - Juan Cespedes <cespedes@debian.org>
                   7288: 0x410  leshort         0x137f
                   7289: !:strength / 2
                   7290: >0x402 beshort         < 100
                   7291: >0x402 beshort         > -1            Minix filesystem, V1, %d zones
                   7292: >0x1e  string          minix           \b, bootable
                   7293: 0x410  beshort         0x137f
                   7294: !:strength / 2
                   7295: >0x402 beshort         < 100
                   7296: >0x402 beshort         > -1            Minix filesystem, V1 (big endian), %d zones
                   7297: >0x1e  string          minix           \b, bootable
                   7298: 0x410  leshort         0x138f
                   7299: !:strength / 2
                   7300: >0x402 beshort         < 100
                   7301: >0x402 beshort         > -1            Minix filesystem, V1, 30 char names, %d zones
                   7302: >0x1e  string          minix           \b, bootable
                   7303: 0x410  beshort         0x138f
                   7304: !:strength / 2
                   7305: >0x402 beshort         < 100
                   7306: >0x402 beshort         > -1            Minix filesystem, V1, 30 char names (big endian), %d zones
                   7307: >0x1e  string          minix           \b, bootable
                   7308: 0x410  leshort         0x2468
                   7309: >0x402 beshort         < 100
                   7310: >>0x402        beshort         > -1            Minix filesystem, V2, %d zones
                   7311: >0x1e  string          minix           \b, bootable
                   7312: 0x410  beshort         0x2468
                   7313: >0x402 beshort         < 100
                   7314: >0x402 beshort         > -1            Minix filesystem, V2 (big endian), %d zones
                   7315: >0x1e  string          minix           \b, bootable
                   7316: 
                   7317: 0x410  leshort         0x2478
                   7318: >0x402 beshort         < 100
                   7319: >0x402 beshort         > -1            Minix filesystem, V2, 30 char names, %d zones
                   7320: >0x1e  string          minix           \b, bootable
                   7321: 0x410  leshort         0x2478
                   7322: >0x402 beshort         < 100
                   7323: >0x402 beshort         > -1            Minix filesystem, V2, 30 char names, %d zones
                   7324: >0x1e  string          minix           \b, bootable
                   7325: 0x410  beshort         0x2478
                   7326: >0x402 beshort         !0              Minix filesystem, V2, 30 char names (big endian), %d zones
                   7327: >0x1e  string          minix           \b, bootable
                   7328: 0x410  leshort         0x4d5a
                   7329: >0x402 beshort         !0              Minix filesystem, V3, %d zones
                   7330: >0x1e  string          minix           \b, bootable
                   7331: 
1.1       misho    7332: # SGI disk labels - Nathan Scott <nathans@debian.org>
                   7333: 0      belong          0x0BE5A941      SGI disk label (volume header)
                   7334: 
                   7335: # SGI XFS filesystem - Nathan Scott <nathans@debian.org>
                   7336: 0      belong          0x58465342      SGI XFS filesystem data
                   7337: >0x4   belong          x               (blksz %d,
                   7338: >0x68  beshort         x               inosz %d,
                   7339: >0x64  beshort         ^0x2004         v1 dirs)
                   7340: >0x64  beshort         &0x2004         v2 dirs)
                   7341: 
                   7342: ############################################################################
                   7343: # Minix-ST kernel floppy
                   7344: 0x800  belong          0x46fc2700      Atari-ST Minix kernel image
                   7345: >19    string          \240\5\371\5\0\011\0\2\0        \b, 720k floppy
                   7346: >19    string          \320\2\370\5\0\011\0\1\0        \b, 360k floppy
                   7347: 
                   7348: ############################################################################
                   7349: # Hmmm, is this a better way of detecting _standard_ floppy images ?
                   7350: 19     string          \320\2\360\3\0\011\0\1\0        DOS floppy 360k
                   7351: >0x1FE leshort         0xAA55          \b, x86 hard disk boot sector
                   7352: 19     string          \240\5\371\3\0\011\0\2\0        DOS floppy 720k
                   7353: >0x1FE leshort         0xAA55          \b, x86 hard disk boot sector
                   7354: 19     string          \100\013\360\011\0\022\0\2\0    DOS floppy 1440k
                   7355: >0x1FE leshort         0xAA55          \b, x86 hard disk boot sector
                   7356: 
                   7357: 19     string          \240\5\371\5\0\011\0\2\0        DOS floppy 720k, IBM
                   7358: >0x1FE leshort         0xAA55          \b, x86 hard disk boot sector
                   7359: 19     string          \100\013\371\5\0\011\0\2\0      DOS floppy 1440k, mkdosfs
                   7360: >0x1FE leshort         0xAA55          \b, x86 hard disk boot sector
                   7361: 
                   7362: 19     string          \320\2\370\5\0\011\0\1\0        Atari-ST floppy 360k
                   7363: 19     string          \240\5\371\5\0\011\0\2\0        Atari-ST floppy 720k
                   7364: 
                   7365: #  Valid media descriptor bytes for MS-DOS:
                   7366: #
                   7367: #     Byte   Capacity   Media Size and Type
                   7368: #     -------------------------------------------------
                   7369: #
                   7370: #     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
                   7371: #     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
                   7372: #     F9     720K       3.5-inch, 2-sided, 9-sector
                   7373: #     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
                   7374: #     FD     360K       5.25-inch, 2-sided, 9-sector
                   7375: #     FF     320K       5.25-inch, 2-sided, 8-sector
                   7376: #     FC     180K       5.25-inch, 1-sided, 9-sector
                   7377: #     FE     160K       5.25-inch, 1-sided, 8-sector
                   7378: #     FE     250K       8-inch, 1-sided, single-density
                   7379: #     FD     500K       8-inch, 2-sided, single-density
                   7380: #     FE     1.2 MB     8-inch, 2-sided, double-density
                   7381: #     F8     -----      Fixed disk 
                   7382: #
                   7383: #     FC     xxxK       Apricot 70x1x9 boot disk.
                   7384: #
                   7385: # Originally a bitmap:
                   7386: #  xxxxxxx0    Not two sided
                   7387: #  xxxxxxx1    Double sided
                   7388: #  xxxxxx0x    Not 8 SPT
                   7389: #  xxxxxx1x    8 SPT
                   7390: #  xxxxx0xx    Not Removable drive
                   7391: #  xxxxx1xx    Removable drive
                   7392: #  11111xxx    Must be one.
                   7393: #
                   7394: # But now it's rather random:
                   7395: #  111111xx    Low density disk
                   7396: #        00    SS, Not 8 SPT
                   7397: #        01    DS, Not 8 SPT
                   7398: #        10    SS, 8 SPT
                   7399: #        11    DS, 8 SPT
                   7400: #
1.1.1.3   misho    7401: #  11111001    Double density 3 1/2 floppy disk, high density 5 1/4
                   7402: #  11110000    High density 3 1/2 floppy disk
1.1       misho    7403: #  11111000    Hard disk any format
                   7404: #
                   7405: 
                   7406: # CDROM Filesystems
                   7407: # Modified for UDF by gerardo.cacciari@gmail.com
1.1.1.3   misho    7408: 32769  string    CD001     #
1.1       misho    7409: !:mime application/x-iso9660-image
                   7410: >38913 string   !NSR0      ISO 9660 CD-ROM filesystem data
                   7411: >38913 string    NSR0      UDF filesystem data
                   7412: >>38917        string    1         (version 1.0)
                   7413: >>38917        string    2         (version 1.5)
                   7414: >>38917        string    3         (version 2.0)
                   7415: >>38917        byte     >0x33      (unknown version, ID 0x%X)
                   7416: >>38917        byte     <0x31      (unknown version, ID 0x%X)
                   7417: # "application id" which appears to be used as a volume label
1.1.1.3   misho    7418: >32808 string/T  >\0       '%s'
1.1       misho    7419: >34816 string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
                   7420: 37633  string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
                   7421: !:mime application/x-iso9660-image
                   7422: 32776  string    CDROM     High Sierra CD-ROM filesystem data
                   7423: 
1.1.1.2   misho    7424: # .cso files
                   7425: 0    string    CISO    Compressed ISO CD image
                   7426: 
1.1       misho    7427: # cramfs filesystem - russell@coker.com.au
                   7428: 0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
                   7429: >4      lelong  x size %lu
                   7430: >8      lelong  &1 version #2
                   7431: >8      lelong  &2 sorted_dirs
                   7432: >8      lelong  &4 hole_support
                   7433: >32     lelong  x CRC 0x%x,
                   7434: >36     lelong  x edition %lu,
                   7435: >40     lelong  x %lu blocks,
                   7436: >44     lelong  x %lu files
                   7437: 
                   7438: 0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
                   7439: >4      belong  x size %lu
                   7440: >8      belong  &1 version #2
                   7441: >8      belong  &2 sorted_dirs
                   7442: >8      belong  &4 hole_support
                   7443: >32     belong  x CRC 0x%x,
                   7444: >36     belong  x edition %lu,
                   7445: >40     belong  x %lu blocks,
                   7446: >44     belong  x %lu files
                   7447: 
                   7448: # reiserfs - russell@coker.com.au
                   7449: 0x10034                string  ReIsErFs        ReiserFS V3.5
                   7450: 0x10034                string  ReIsEr2Fs       ReiserFS V3.6
                   7451: 0x10034                string  ReIsEr3Fs       ReiserFS V3.6.19
                   7452: >0x1002c       leshort x               block size %d
                   7453: >0x10032       leshort &2              (mounted or unclean)
                   7454: >0x10000       lelong  x               num blocks %d
                   7455: >0x10040       lelong  1               tea hash
                   7456: >0x10040       lelong  2               yura hash
                   7457: >0x10040       lelong  3               r5 hash
                   7458: 
                   7459: # JFFS - russell@coker.com.au
                   7460: 0      lelong  0x34383931      Linux Journalled Flash File system, little endian
                   7461: 0      belong  0x34383931      Linux Journalled Flash File system, big endian
                   7462: 
                   7463: # EST flat binary format (which isn't, but anyway)
                   7464: # From: Mark Brown <broonie@sirena.org.uk>
                   7465: 0      string  ESTFBINR        EST flat binary
                   7466: 
                   7467: # Aculab VoIP firmware
                   7468: # From: Mark Brown <broonie@sirena.org.uk>
                   7469: 0      string  VoIP\ Startup\ and      Aculab VoIP firmware
                   7470: >35    string  x       format %s
                   7471: 
1.1.1.2   misho    7472: # From: Mark Brown <broonie@sirena.org.uk> [old]
                   7473: # From: Behan Webster <behanw@websterwood.com>
                   7474: 0      belong  0x27051956      u-boot legacy uImage,
                   7475: >32    string  x               %s,
                   7476: >28    byte    0               Invalid os/
                   7477: >28    byte    1               OpenBSD/
                   7478: >28    byte    2               NetBSD/
                   7479: >28    byte    3               FreeBSD/
                   7480: >28    byte    4               4.4BSD/
                   7481: >28    byte    5               Linux/
                   7482: >28    byte    6               SVR4/
                   7483: >28    byte    7               Esix/
                   7484: >28    byte    8               Solaris/
                   7485: >28    byte    9               Irix/
                   7486: >28    byte    10              SCO/
                   7487: >28    byte    11              Dell/
                   7488: >28    byte    12              NCR/
                   7489: >28    byte    13              LynxOS/
                   7490: >28    byte    14              VxWorks/
                   7491: >28    byte    15              pSOS/
                   7492: >28    byte    16              QNX/
                   7493: >28    byte    17              Firmware/
                   7494: >28    byte    18              RTEMS/
                   7495: >28    byte    19              ARTOS/
                   7496: >28    byte    20              Unity OS/
                   7497: >28    byte    21              INTEGRITY/
                   7498: >29    byte    0               \bInvalid CPU,
                   7499: >29    byte    1               \bAlpha,
                   7500: >29    byte    2               \bARM,
                   7501: >29    byte    3               \bIntel x86,
                   7502: >29    byte    4               \bIA64,
                   7503: >29    byte    5               \bMIPS,
                   7504: >29    byte    6               \bMIPS 64-bit,
                   7505: >29    byte    7               \bPowerPC,
                   7506: >29    byte    8               \bIBM S390,
                   7507: >29    byte    9               \bSuperH,
                   7508: >29    byte    10              \bSparc,
                   7509: >29    byte    11              \bSparc 64-bit,
                   7510: >29    byte    12              \bM68K,
                   7511: >29    byte    13              \bNios-32,
                   7512: >29    byte    14              \bMicroBlaze,
                   7513: >29    byte    15              \bNios-II,
                   7514: >29    byte    16              \bBlackfin,
                   7515: >29    byte    17              \bAVR32,
                   7516: >29    byte    18              \bSTMicroelectronics ST200,
                   7517: >30    byte    0               Invalid Image
                   7518: >30    byte    1               Standalone Program
                   7519: >30    byte    2               OS Kernel Image
                   7520: >30    byte    3               RAMDisk Image
                   7521: >30    byte    4               Multi-File Image
                   7522: >30    byte    5               Firmware Image
                   7523: >30    byte    6               Script File
                   7524: >30    byte    7               Filesystem Image (any type)
                   7525: >30    byte    8               Binary Flat Device Tree BLOB
                   7526: >31    byte    0               (Not compressed),
                   7527: >31    byte    1               (gzip),
                   7528: >31    byte    2               (bzip2),
                   7529: >31    byte    3               (lzma),
                   7530: >12    belong  x               %d bytes,
                   7531: >8     bedate  x               %s,
                   7532: >16    belong  x               Load Address: 0x%08X,
                   7533: >20    belong  x               Entry Point: 0x%08X,
                   7534: >4     belong  x               Header CRC: 0x%08X,
                   7535: >24    belong  x               Data CRC: 0x%08X
1.1       misho    7536: 
                   7537: # JFFS2 file system
                   7538: 0      leshort 0x1984          Linux old jffs2 filesystem data little endian
                   7539: 0      leshort 0x1985          Linux jffs2 filesystem data little endian
                   7540: 
                   7541: # Squashfs
                   7542: 0      string  sqsh    Squashfs filesystem, big endian,
                   7543: >28    beshort x       version %d.
                   7544: >30    beshort x       \b%d,
                   7545: >28    beshort <3
                   7546: >>8    belong  x       %d bytes,
                   7547: >28    beshort >2
1.1.1.3   misho    7548: >>28 beshort <4
                   7549: >>>63  bequad x        %lld bytes,
                   7550: >>28 beshort >3
                   7551: >>>40  bequad x        %lld bytes,
1.1       misho    7552: #>>67  belong  x       %d bytes,
                   7553: >4     belong  x       %d inodes,
                   7554: >28    beshort <2
                   7555: >>32   beshort x       blocksize: %d bytes,
                   7556: >28    beshort >1
1.1.1.3   misho    7557: >>28 beshort <4
                   7558: >>>51  belong  x       blocksize: %d bytes,
                   7559: >>28 beshort >3
                   7560: >>>12  belong  x       blocksize: %d bytes,
                   7561: >28 beshort <4
                   7562: >>39   bedate  x       created: %s
                   7563: >28 beshort >3
                   7564: >>8    bedate  x       created: %s
1.1       misho    7565: 0      string  hsqs    Squashfs filesystem, little endian,
                   7566: >28    leshort x       version %d.
                   7567: >30    leshort x       \b%d,
                   7568: >28    leshort <3
                   7569: >>8    lelong  x       %d bytes,
                   7570: >28    leshort >2
1.1.1.3   misho    7571: >>28 leshort <4
                   7572: >>>63  lequad x        %lld bytes,
                   7573: >>28 leshort >3
                   7574: >>>40  lequad x        %lld bytes,
1.1       misho    7575: #>>63  lelong  x       %d bytes,
                   7576: >4     lelong  x       %d inodes,
                   7577: >28    leshort <2
                   7578: >>32   leshort x       blocksize: %d bytes,
                   7579: >28    leshort >1
1.1.1.3   misho    7580: >>28 leshort <4
                   7581: >>>51  lelong  x       blocksize: %d bytes,
                   7582: >>28 leshort >3
                   7583: >>>12  lelong  x       blocksize: %d bytes,
                   7584: >28 leshort <4
                   7585: >>39   ledate  x       created: %s
                   7586: >28 leshort >3
                   7587: >>8    ledate  x       created: %s
1.1       misho    7588: 
                   7589: # AFS Dump Magic
                   7590: # From: Ty Sarna <tsarna@sarna.org> 
                   7591: 0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
                   7592: >&0     belong                  x                       (v%d)
                   7593: >>&0    byte                    0x76
                   7594: >>>&0   belong                  x                       Vol %d,
                   7595: >>>>&0  byte                    0x6e
                   7596: >>>>>&0 string                  x                       %s
                   7597: >>>>>>&1        byte            0x74
                   7598: >>>>>>>&0       beshort         2
                   7599: >>>>>>>>&4      bedate          x                       on: %s
                   7600: >>>>>>>>&0      bedate          =0                      full dump
                   7601: >>>>>>>>&0      bedate          !0                      incremental since: %s
                   7602: 
                   7603: #----------------------------------------------------------
1.1.1.2   misho    7604: #delta ISO    Daniel Novotny (dnovotny@redhat.com)
                   7605: 0      string  DISO    Delta ISO data
                   7606: >4     belong  x       version %d
                   7607: 
1.1       misho    7608: # VMS backup savesets - gerardo.cacciari@gmail.com
                   7609: #
                   7610: 4            string  \x01\x00\x01\x00\x01\x00
                   7611: >(0.s+16)    string  \x01\x01
                   7612: >>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
                   7613: >>>40        lelong  x          (block size %d,
                   7614: >>>49        string  >\0        original name '%s',
                   7615: >>>2         short   1024       VAX generated)
                   7616: >>>2         short   2048       AXP generated)
                   7617: >>>2         short   4096       I64 generated)
                   7618: 
                   7619: # Summary: Oracle Clustered Filesystem
                   7620: # Created by: Aaron Botsis <redhat@digitalmafia.org>
                   7621: 8      string          OracleCFS       Oracle Clustered Filesystem,
                   7622: >4     long            x               rev %d
                   7623: >0     long            x               \b.%d,
                   7624: >560   string          x               label: %.64s,
                   7625: >136   string          x               mountpoint: %.128s
                   7626: 
                   7627: # Summary: Oracle ASM tagged volume
                   7628: # Created by: Aaron Botsis <redhat@digitalmafia.org>
                   7629: 32     string          ORCLDISK        Oracle ASM Volume,
                   7630: >40    string          x               Disk Name: %0.12s
                   7631: 32     string          ORCLCLRD        Oracle ASM Volume (cleared),
                   7632: >40    string          x               Disk Name: %0.12s
                   7633: 
                   7634: # Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
                   7635: 8      string          OracleCFS       Oracle Clustered Filesystem,
                   7636: >4     long            x               rev %d
                   7637: >0     long            x               \b.%d,
                   7638: >560   string          x               label: %.64s,
                   7639: >136   string          x               mountpoint: %.128s
                   7640: 
                   7641: # Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
                   7642: 32     string          ORCLDISK        Oracle ASM Volume,
                   7643: >40    string          x               Disk Name: %0.12s
                   7644: 32     string          ORCLCLRD        Oracle ASM Volume (cleared),
                   7645: >40    string          x               Disk Name: %0.12s
                   7646: 
                   7647: # Compaq/HP RILOE floppy image
                   7648: # From: Dirk Jagdmann <doj@cubic.org>
                   7649: 0      string  CPQRFBLO        Compaq/HP RILOE floppy image
                   7650: 
                   7651: #------------------------------------------------------------------------------
1.1.1.3   misho    7652: # Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
                   7653: # These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
                   7654: # which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
1.1       misho    7655: #
1.1.1.3   misho    7656: 1008    string          DECFILE11       Files-11 On-Disk Structure
1.1       misho    7657: >525    byte            x               Level %d
1.1.1.3   misho    7658: >525    byte            x               (ODS-%d);
                   7659: >1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
                   7660: >1017   string          B
                   7661: >>525   byte            2               VAX/VMS or OpenVMS file system;
                   7662: >>525   byte            5               OpenVMS Alpha or Itanium file system;
1.1       misho    7663: >984    string          x               volume label is '%-12.12s'
                   7664: 
                   7665: # From: Thomas Klausner <wiz@NetBSD.org>
                   7666: # http://filext.com/file-extension/DAA
                   7667: # describes the daa file format. The magic would be:
                   7668: 0      string          DAA\x0\x0\x0\x0\x0      PowerISO Direct-Access-Archive
                   7669: 
                   7670: # From Albert Cahalan <acahalan@gmail.com>
                   7671: # really le32 operation,destination,payloadsize (but quite predictable)
                   7672: # 01 00 00 00 00 00 00 c0 00 02 00 00
                   7673: 0      string          \1\0\0\0\0\0\0\300\0\2\0\0      Marvell Libertas firmware
                   7674: 
                   7675: # From Eric Sandeen
                   7676: # GFS2
1.1.1.3   misho    7677: 0x10000         belong          0x01161970
                   7678: >0x10018        belong          0x0000051d      GFS1 Filesystem
                   7679: >>0x10024        belong          x               (blocksize %d,
                   7680: >>0x10060        string          >\0             lockproto %s)
                   7681: >0x10018        belong          0x00000709      GFS2 Filesystem
                   7682: >>0x10024        belong          x               (blocksize %d,
                   7683: >>0x10060        string          >\0             lockproto %s)
1.1       misho    7684: 
1.1.1.2   misho    7685: # BTRFS
                   7686: 0x10040         string          _BHRfS_M        BTRFS Filesystem
                   7687: >0x1012b        string          >\0             (label "%s",
                   7688: >0x10090        lelong          x               sectorsize %d,
                   7689: >0x10094        lelong          x               nodesize %d,
                   7690: >0x10098        lelong          x               leafsize %d)
                   7691: 
                   7692: 
1.1       misho    7693: # dvdisaster's .ecc
                   7694: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   7695: 0      string  *dvdisaster*    dvdisaster error correction file
                   7696: 
1.1.1.2   misho    7697: # xfs metadump image 
                   7698: # mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
                   7699: # but can we do the << ?  For now it's always 512 (0x200) anyway.
                   7700: 0      string XFSM
                   7701: >0x200 string XFSB     XFS filesystem metadump image
                   7702: 
1.1       misho    7703: # Type:        CROM filesystem
                   7704: # From:        Werner Fink <werner@suse.de>
                   7705: 0      string  CROMFS  CROMFS
                   7706: >6     string  >\0     \b version %2.2s,
                   7707: >8     ulequad >0      \b block data at %lld,
                   7708: >16    ulequad >0      \b fblock table at %lld,
                   7709: >24    ulequad >0      \b inode table at %lld,
                   7710: >32    ulequad >0      \b root at %lld,
                   7711: >40    ulelong >0      \b fblock size = %ld,
                   7712: >44    ulelong >0      \b block size = %ld,
                   7713: >48    ulequad >0      \b bytes = %lld
                   7714: 
1.1.1.2   misho    7715: # Type:        xfs metadump image
                   7716: # From:        Daniel Novotny <dnovotny@redhat.com>
                   7717: # mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
                   7718: # but can we do the << ? For now it's always 512 (0x200) anyway.
                   7719: 0      string  XFSM
                   7720: >0x200 string  XFSB    XFS filesystem metadump image
                   7721: 
                   7722: # Type:        delta ISO
                   7723: # From:        Daniel Novotny <dnovotny@redhat.com>
                   7724: 0      string  DISO    Delta ISO data,
                   7725: >4     belong  x       version %d
                   7726: 
                   7727: # JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
                   7728: # See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
                   7729: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   7730: 0x8000 string  JFS1
                   7731: # Because it's text-only magic, check a binary value (version) to be sure.
                   7732: # Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
                   7733: # mountable.
                   7734: >&0    lelong  <3      JFS2 filesystem image
                   7735: # Label is followed by a UUID; we have to limit string length to avoid
                   7736: # appending the UUID in the case of a 16-byte label.
                   7737: >>&144 regex   [\x20-\x7E]{1,16}       (label "%s")
                   7738: >>&0   lequad  x       \b, %lld blocks
                   7739: >>&8   lelong  x       \b, blocksize %d
                   7740: >>&32  lelong&0x00000006       >0      (dirty)
                   7741: >>&36  lelong  >0      (compressed)
                   7742: 
1.1.1.3   misho    7743: # LFS
                   7744: 0      lelong  0x070162        LFS filesystem image
                   7745: >4     lelong  1               version 1,
                   7746: >>8    lelong  x               \b blocks %u,
                   7747: >>12   lelong  x               \b blocks per segment %u,
                   7748: >4     lelong  2               version 2,
                   7749: >>8    lelong  x               \b fragments %u,
                   7750: >>12   lelong  x               \b bytes per segment %u,
                   7751: >16    lelong  x               \b disk blocks %u,
                   7752: >20    lelong  x               \b block size %u,
                   7753: >24    lelong  x               \b fragment size %u,
                   7754: >28    lelong  x               \b fragments per block %u,
                   7755: >32    lelong  x               \b start for free list %u,
                   7756: >36    lelong  x               \b number of free blocks %d,
                   7757: >40    lelong  x               \b number of files %u,
                   7758: >44    lelong  x               \b blocks available for writing %d,
                   7759: >48    lelong  x               \b inodes in cache %d,
                   7760: >52    lelong  x               \b inode file disk address 0x%x,
                   7761: >56    lelong  x               \b inode file inode number %u,
                   7762: >60    lelong  x               \b address of last segment written 0x%x,
                   7763: >64    lelong  x               \b address of next segment to write 0x%x,
                   7764: >68    lelong  x               \b address of current segment written 0x%x
                   7765: 
                   7766: 0      string  td\000          floppy image data (TeleDisk, compressed)
                   7767: 0      string  TD\000          floppy image data (TeleDisk)
                   7768: 
                   7769: 0      string  CQ\024          floppy image data (CopyQM, 
                   7770: >16    leshort x               %d sectors, 
                   7771: >18    leshort x               %d heads.)
                   7772: 
                   7773: 0      string  ACT\020Apricot\020disk\020image\032\004 floppy image data (ApriDisk)
                   7774: 
                   7775: 0      beshort 0xAA58          floppy image data (IBM SaveDskF, old)
                   7776: 0      beshort 0xAA59          floppy image data (IBM SaveDskF)
                   7777: 0      beshort 0xAA5A          floppy image data (IBM SaveDskF, compressed)
                   7778: 
                   7779: 0      string  \074CPM_Disk\076        disk image data (YAZE)
                   7780: 
1.1       misho    7781: #------------------------------------------------------------------------------
1.1.1.2   misho    7782: # $File: flash,v 1.9 2009/11/08 01:30:01 christos Exp $
1.1       misho    7783: # flash:       file(1) magic for Macromedia Flash file format
                   7784: #
                   7785: # See
                   7786: #
                   7787: #      http://www.macromedia.com/software/flash/open/
                   7788: #
                   7789: 0      string          FWS             Macromedia Flash data,
                   7790: >3     byte            x               version %d
                   7791: !:mime application/x-shockwave-flash
                   7792: 0      string          CWS             Macromedia Flash data (compressed),
                   7793: !:mime application/x-shockwave-flash
                   7794: >3     byte            x               version %d
                   7795: # From: Cal Peake <cp@absolutedigital.net>
                   7796: 0      string          FLV             Macromedia Flash Video
                   7797: !:mime video/x-flv
                   7798: 
                   7799: #
1.1.1.2   misho    7800: # Yosu Gomez
                   7801: 0       string AGD2\xbe\xb8\xbb\xcd\x00 Macromedia Freehand 7 Document
                   7802: 0       string AGD3\xbe\xb8\xbb\xcc\x00 Macromedia Freehand 8 Document
1.1       misho    7803: # From Dave Wilson
                   7804: 0      string AGD4\xbe\xb8\xbb\xcb\x00 Macromedia Freehand 9 Document
1.1.1.2   misho    7805: 
1.1       misho    7806: #------------------------------------------------------------------------------
1.1.1.3   misho    7807: # $File: fonts,v 1.26 2013/03/09 22:36:00 christos Exp $
1.1       misho    7808: # fonts:  file(1) magic for font data
                   7809: #
                   7810: 0      search/1        FONT            ASCII vfont text
                   7811: 0      short           0436            Berkeley vfont data
                   7812: 0      short           017001          byte-swapped Berkeley vfont data
                   7813: 
                   7814: # PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
1.1.1.2   misho    7815: 0      string          %!PS-AdobeFont-1.       PostScript Type 1 font text
                   7816: >20    string          >\0                     (%s)
1.1       misho    7817: 6      string          %!PS-AdobeFont-1.       PostScript Type 1 font program data
1.1.1.2   misho    7818: 0      string          %!FontType1     PostScript Type 1 font program data
                   7819: 6      string          %!FontType1     PostScript Type 1 font program data
                   7820: 0      string          %!PS-Adobe-3.0\ Resource-Font   PostScript Type 1 font text
1.1       misho    7821: 
                   7822: # X11 font files in SNF (Server Natural Format) format
1.1.1.3   misho    7823: # updated by Joerg Jenderek at Feb 2013
                   7824: # http://computer-programming-forum.com/51-perl/8f22fb96d2e34bab.htm
1.1       misho    7825: 0      belong          00000004                X11 SNF font data, MSB first
1.1.1.3   misho    7826: #>104  belong          00000004                X11 SNF font data, MSB first
                   7827: !:mime application/x-font-sfn
                   7828: # GRR: line below too general as it catches also Xbase index file t3-CHAR.NDX
                   7829: 0      lelong          00000004                
                   7830: >104   lelong          00000004                X11 SNF font data, LSB first
                   7831: !:mime application/x-font-sfn
1.1       misho    7832: 
                   7833: # X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
                   7834: 0      search/1        STARTFONT\              X11 BDF font text
                   7835: 
                   7836: # X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
                   7837: # PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
                   7838: 0      string          \001fcp                 X11 Portable Compiled Font data
                   7839: >12    byte            0x02                    \b, LSB first
                   7840: >12    byte            0x0a                    \b, MSB first
                   7841: 0      string          D1.0\015                X11 Speedo font data
                   7842: 
                   7843: #------------------------------------------------------------------------------
                   7844: # FIGlet fonts and controlfiles
                   7845: # From figmagic supplied with Figlet version 2.2
                   7846: # "David E. O'Brien" <obrien@FreeBSD.ORG>
                   7847: 0      string          flf             FIGlet font
                   7848: >3     string          >2a             version %-2.2s
                   7849: 0      string          flc             FIGlet controlfile
                   7850: >3     string          >2a             version %-2.2s
                   7851: 
                   7852: # libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
                   7853: # Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
                   7854: 0      belong          0x14025919      libGrx font data,
                   7855: >8     leshort         x               %dx
                   7856: >10    leshort         x               \b%d
                   7857: >40    string          x               %s
                   7858: # Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
                   7859: 0      belong          0xff464f4e      DOS code page font data collection
                   7860: 7      belong          0x00454741      DOS code page font data
                   7861: 7      belong          0x00564944      DOS code page font data (from Linux?)
                   7862: 4098   string          DOSFONT         DOSFONT2 encrypted font data
                   7863: 
                   7864: # downloadable fonts for browser (prints type) anthon@mnt.org
                   7865: 0      string          PFR1            PFR1 font
                   7866: >102   string          >0              \b: %s
                   7867: 
                   7868: # True Type fonts
                   7869: 0      string  \000\001\000\000\000    TrueType font data
1.1.1.2   misho    7870: !:mime application/x-font-ttf
1.1       misho    7871: 
                   7872: 0      string          \007\001\001\000Copyright\ (c)\ 199     Adobe Multiple Master font
                   7873: 0      string          \012\001\001\000Copyright\ (c)\ 199     Adobe Multiple Master font
                   7874: 
1.1.1.2   misho    7875: # TrueType/OpenType font collections (.ttc)
                   7876: # http://www.microsoft.com/typography/otspec/otff.htm
                   7877: 0      string          ttcf            TrueType font collection data
                   7878: >4     belong          0x00010000      \b, 1.0
                   7879: >>8    belong          >0              \b, %d fonts
                   7880: >4     belong          0x00020000      \b, 2.0
                   7881: >>8    belong          >0              \b, %d fonts
                   7882: # 0x44454947 = 'DSIG'
                   7883: >>>16  belong          0x44534947      \b, digitally signed
                   7884: 
1.1       misho    7885: # Opentype font data from Avi Bercovich
1.1.1.2   misho    7886: 0      string          OTTO            OpenType font data
                   7887: !:mime application/vnd.ms-opentype
1.1       misho    7888: 
1.1.1.3   misho    7889: # Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu 
1.1       misho    7890: 0      string          SplineFontDB:   Spline Font Database 
1.1.1.2   misho    7891: !:mime application/vnd.font-fontforge-sfd
1.1       misho    7892: >14    string          x               version %s
1.1.1.2   misho    7893: 
1.1.1.3   misho    7894: # EOT
                   7895: 34     string          LP              Embedded OpenType (EOT)
                   7896: !:mime application/vnd.ms-fontobject
                   7897: 
                   7898: # Web Open Font Format (.woff)
                   7899: # http://www.w3.org/TR/WOFF/
                   7900: 0      string          wOFF    Web Open Font Format
                   7901: >4     belong          x       \b, flavor %d
                   7902: >8     belong          x       \b, length %d
                   7903: >20    beshort         x       \b, version %hd
                   7904: >22    beshort         x       \b.%hd
                   7905: 
1.1.1.2   misho    7906: #------------------------------------------------------------------------------
1.1.1.3   misho    7907: # $File: fortran,v 1.7 2012/06/21 01:55:02 christos Exp $
1.1       misho    7908: # FORTRAN source
1.1.1.2   misho    7909: 0      regex/100       \^[Cc][\ \t]    FORTRAN program
1.1       misho    7910: !:mime text/x-fortran
1.1.1.3   misho    7911: !:strength - 5
1.1.1.2   misho    7912: 
1.1       misho    7913: #------------------------------------------------------------------------------
1.1.1.2   misho    7914: # $File: frame,v 1.12 2009/09/19 16:28:09 christos Exp $
1.1       misho    7915: # frame:  file(1) magic for FrameMaker files
                   7916: #
                   7917: # This stuff came on a FrameMaker demo tape, most of which is
                   7918: # copyright, but this file is "published" as witness the following:
                   7919: #
                   7920: # Note that this is the Framemaker Maker Interchange Format, not the
                   7921: # Normal format which would be application/vnd.framemaker.
                   7922: #
                   7923: 0      string          \<MakerFile     FrameMaker document
                   7924: !:mime application/x-mif
                   7925: >11    string          5.5              (5.5
                   7926: >11    string          5.0              (5.0
                   7927: >11    string          4.0              (4.0
                   7928: >11    string          3.0              (3.0
                   7929: >11    string          2.0              (2.0
                   7930: >11    string          1.0              (1.0
                   7931: >14    byte            x                 %c)
                   7932: 0      string          \<MIFFile       FrameMaker MIF (ASCII) file
                   7933: !:mime application/x-mif
                   7934: >9     string          4.0              (4.0)
                   7935: >9     string          3.0              (3.0)
                   7936: >9     string          2.0              (2.0)
                   7937: >9     string          1.0              (1.x)
                   7938: 0      search/1        \<MakerDictionary       FrameMaker Dictionary text
                   7939: !:mime application/x-mif
                   7940: >17    string          3.0              (3.0)
                   7941: >17    string          2.0              (2.0)
                   7942: >17    string          1.0              (1.x)
                   7943: 0      string          \<MakerScreenFont       FrameMaker Font file
                   7944: !:mime application/x-mif
                   7945: >17    string          1.01             (%s)
                   7946: 0      string          \<MML           FrameMaker MML file
                   7947: !:mime application/x-mif
                   7948: 0      string          \<BookFile      FrameMaker Book file
                   7949: !:mime application/x-mif
                   7950: >10    string          3.0              (3.0
                   7951: >10    string          2.0              (2.0
                   7952: >10    string          1.0              (1.0
                   7953: >13    byte            x                 %c)
                   7954: # XXX - this book entry should be verified, if you find one, uncomment this
                   7955: #0     string          \<Book\         FrameMaker Book (ASCII) file
                   7956: #!:mime        application/x-mif
                   7957: #>6    string          3.0              (3.0)
                   7958: #>6    string          2.0              (2.0)
                   7959: #>6    string          1.0              (1.0)
                   7960: 0      string          \<Maker Intermediate Print File FrameMaker IPL file
                   7961: !:mime application/x-mif
                   7962: 
                   7963: #------------------------------------------------------------------------------
1.1.1.2   misho    7964: # $File: freebsd,v 1.7 2009/09/19 16:28:09 christos Exp $
1.1       misho    7965: # freebsd:  file(1) magic for FreeBSD objects
                   7966: #
                   7967: # All new-style FreeBSD magic numbers are in host byte order (i.e.,
                   7968: # little-endian on x86).
                   7969: #
                   7970: # XXX - this comes from the file "freebsd" in a recent FreeBSD version of
                   7971: # "file"; it, and the NetBSD stuff in "netbsd", appear to use different
                   7972: # schemes for distinguishing between executable images, shared libraries,
                   7973: # and object files.
                   7974: #
                   7975: # FreeBSD says:
                   7976: #
                   7977: #    Regardless of whether it's pure, demand-paged, or none of the
                   7978: #    above:
                   7979: #
                   7980: #      if the entry point is < 4096, then it's a shared library if
                   7981: #      the "has run-time loader information" bit is set, and is
                   7982: #      position-independent if the "is position-independent" bit
                   7983: #      is set;
                   7984: #
                   7985: #      if the entry point is >= 4096 (or >4095, same thing), then it's
                   7986: #      an executable, and is dynamically-linked if the "has run-time
                   7987: #      loader information" bit is set.
                   7988: #
                   7989: # On x86, NetBSD says:
                   7990: #
                   7991: #    If it's neither pure nor demand-paged:
                   7992: #
                   7993: #      if it has the "has run-time loader information" bit set, it's
                   7994: #      a dynamically-linked executable;
                   7995: #
                   7996: #      if it doesn't have that bit set, then:
                   7997: #
                   7998: #          if it has the "is position-independent" bit set, it's
                   7999: #          position-independent;
                   8000: #
                   8001: #          if the entry point is non-zero, it's an executable, otherwise
                   8002: #          it's an object file.
                   8003: #
                   8004: #    If it's pure:
                   8005: #
                   8006: #      if it has the "has run-time loader information" bit set, it's
                   8007: #      a dynamically-linked executable, otherwise it's just an
                   8008: #      executable.
                   8009: #
                   8010: #    If it's demand-paged:
                   8011: #
                   8012: #      if it has the "has run-time loader information" bit set,
                   8013: #      then:
                   8014: #
                   8015: #          if the entry point is < 4096, it's a shared library;
                   8016: #
                   8017: #          if the entry point is = 4096 or > 4096 (i.e., >= 4096),
                   8018: #          it's a dynamically-linked executable);
                   8019: #
                   8020: #      if it doesn't have the "has run-time loader information" bit
                   8021: #      set, then it's just an executable.
                   8022: #
                   8023: # (On non-x86, NetBSD does much the same thing, except that it uses
                   8024: # 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
                   8025: # pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
                   8026: # had 8K pages; dunno about MIPS.)
                   8027: #
                   8028: # I suspect the two will differ only in perverse and uninteresting cases
                   8029: # ("shared" libraries that aren't demand-paged and whose pages probably
                   8030: # won't actually be shared, executables with entry points <4096).
                   8031: #
                   8032: # I leave it to those more familiar with FreeBSD and NetBSD to figure out
                   8033: # what the right answer is (although using ">4095", FreeBSD-style, is
                   8034: # probably better than separately checking for "=4096" and ">4096",
                   8035: # NetBSD-style).  (The old "netbsd" file analyzed FreeBSD demand paged
                   8036: # executables using the NetBSD technique.)
                   8037: #
                   8038: 0      lelong&0377777777       041400407       FreeBSD/i386
                   8039: >20    lelong                  <4096
                   8040: >>3    byte&0xC0               &0x80           shared library
                   8041: >>3    byte&0xC0               0x40            PIC object
                   8042: >>3    byte&0xC0               0x00            object
                   8043: >20    lelong                  >4095
                   8044: >>3    byte&0x80               0x80            dynamically linked executable
                   8045: >>3    byte&0x80               0x00            executable
                   8046: >16    lelong                  >0              not stripped
                   8047: 
                   8048: 0      lelong&0377777777       041400410       FreeBSD/i386 pure
                   8049: >20    lelong                  <4096
                   8050: >>3    byte&0xC0               &0x80           shared library
                   8051: >>3    byte&0xC0               0x40            PIC object
                   8052: >>3    byte&0xC0               0x00            object
                   8053: >20    lelong                  >4095
                   8054: >>3    byte&0x80               0x80            dynamically linked executable
                   8055: >>3    byte&0x80               0x00            executable
                   8056: >16    lelong                  >0              not stripped
                   8057: 
                   8058: 0      lelong&0377777777       041400413       FreeBSD/i386 demand paged
                   8059: >20    lelong                  <4096
                   8060: >>3    byte&0xC0               &0x80           shared library
                   8061: >>3    byte&0xC0               0x40            PIC object
                   8062: >>3    byte&0xC0               0x00            object
                   8063: >20    lelong                  >4095
                   8064: >>3    byte&0x80               0x80            dynamically linked executable
                   8065: >>3    byte&0x80               0x00            executable
                   8066: >16    lelong                  >0              not stripped
                   8067: 
                   8068: 0      lelong&0377777777       041400314       FreeBSD/i386 compact demand paged
                   8069: >20    lelong                  <4096
                   8070: >>3    byte&0xC0               &0x80           shared library
                   8071: >>3    byte&0xC0               0x40            PIC object
                   8072: >>3    byte&0xC0               0x00            object
                   8073: >20    lelong                  >4095
                   8074: >>3    byte&0x80               0x80            dynamically linked executable
                   8075: >>3    byte&0x80               0x00            executable
                   8076: >16    lelong                  >0              not stripped
                   8077: 
                   8078: # XXX gross hack to identify core files
                   8079: # cores start with a struct tss; we take advantage of the following:
                   8080: # byte 7:     highest byte of the kernel stack pointer, always 0xfe
                   8081: #      8/9:   kernel (ring 0) ss value, always 0x0010
                   8082: #      10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
                   8083: #      28:    low order byte of the current PTD entry, always 0 since the
                   8084: #             PTD is page-aligned
                   8085: #
                   8086: 7      string  \357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0        FreeBSD/i386 a.out core file
                   8087: >1039  string  >\0     from '%s'
                   8088: 
                   8089: # /var/run/ld.so.hints
                   8090: # What are you laughing about?
                   8091: 0      lelong                  011421044151    ld.so hints file (Little Endian
                   8092: >4     lelong                  >0              \b, version %d)
                   8093: >4     belong                  <1              \b)
                   8094: 0      belong                  011421044151    ld.so hints file (Big Endian
                   8095: >4     belong                  >0              \b, version %d)
                   8096: >4     belong                  <1              \b)
                   8097: 
                   8098: #
                   8099: # Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
                   8100: #
                   8101: 0      string  SCRSHOT_        scrshot(1) screenshot,
                   8102: >8     byte    x               version %d,
                   8103: >9     byte    2               %d bytes in header,
                   8104: >>10   byte    x               %d chars wide by
                   8105: >>11   byte    x               %d chars high
                   8106: 
                   8107: #------------------------------------------------------------------------------
1.1.1.2   misho    8108: # $File: fsav,v 1.11 2009/09/19 16:28:09 christos Exp $
1.1       misho    8109: # fsav:  file(1) magic for datafellows fsav virus definition files
                   8110: # Anthon van der Neut (anthon@mnt.org)
                   8111: 
                   8112: # ftp://ftp.f-prot.com/pub/{macrdef2.zip,nomacro.def}
                   8113: 0      beshort         0x1575          fsav macro virus signatures
                   8114: >8     leshort         >0              (%d-
                   8115: >11    byte            >0              \b%02d-
                   8116: >10    byte            >0              \b%02d)
                   8117: # ftp://ftp.f-prot.com/pub/sign.zip
                   8118: #10    ubyte           <12
                   8119: #>9    ubyte           <32
                   8120: #>>8   ubyte           0x0a
                   8121: #>>>12 ubyte           0x07
                   8122: #>>>>11        uleshort        >0              fsav DOS/Windows virus signatures (%d-
                   8123: #>>>>10        byte            0               \b01-
                   8124: #>>>>10        byte            1               \b02-
                   8125: #>>>>10        byte            2               \b03-
                   8126: #>>>>10        byte            3               \b04-
                   8127: #>>>>10        byte            4               \b05-
                   8128: #>>>>10        byte            5               \b06-
                   8129: #>>>>10        byte            6               \b07-
                   8130: #>>>>10        byte            7               \b08-
                   8131: #>>>>10        byte            8               \b09-
                   8132: #>>>>10        byte            9               \b10-
                   8133: #>>>>10        byte            10              \b11-
                   8134: #>>>>10        byte            11              \b12-
                   8135: #>>>>9 ubyte           >0              \b%02d)
                   8136: # ftp://ftp.f-prot.com/pub/sign2.zip
                   8137: #0     ubyte           0x62            
                   8138: #>1    ubyte           0xF5            
                   8139: #>>2   ubyte           0x1             
                   8140: #>>>3  ubyte           0x1             
                   8141: #>>>>4 ubyte           0x0e            
                   8142: #>>>>>13               ubyte   >0              fsav virus signatures
                   8143: #>>>>>>11      ubyte   x               size 0x%02x
                   8144: #>>>>>>12      ubyte   x               \b%02x
                   8145: #>>>>>>13      ubyte   x               \b%02x bytes
                   8146: 
                   8147: # Joerg Jenderek: joerg dot jenderek at web dot de
                   8148: # http://www.clamav.net/doc/latest/html/node45.html
                   8149: # .cvd files start with a 512 bytes colon separated header
                   8150: # ClamAV-VDB:buildDate:version:signaturesNumbers:functionalityLevelRequired:MD5:Signature:builder:buildTime
                   8151: # + gzipped tarball files
                   8152: 0      string          ClamAV-VDB:     
                   8153: >11    string          >\0             Clam AntiVirus database %-.23s
                   8154: >>34   string          :               
                   8155: >>>35          string          !:      \b, version 
                   8156: >>>>35         string          x       \b%-.1s
                   8157: >>>>>36                string          !:      
                   8158: >>>>>>36       string          x       \b%-.1s
                   8159: >>>>>>>37      string          !:      
                   8160: >>>>>>>>37     string          x       \b%-.1s
                   8161: >>>>>>>>>38    string          !:      
                   8162: >>>>>>>>>>38   string          x       \b%-.1s
                   8163: >512   string          \037\213        \b, gzipped
                   8164: >769   string          ustar\0         \b, tarred
                   8165: 
                   8166: # Type: Grisoft AVG AntiVirus
                   8167: # From: David Newgas <david@newgas.net>
                   8168: 0      string  AVG7_ANTIVIRUS_VAULT_FILE       AVG 7 Antivirus vault file data
1.1.1.2   misho    8169: 
1.1       misho    8170: #------------------------------------------------------------------------------
1.1.1.3   misho    8171: # $File: fusecompress,v 1.2 2011/08/08 09:05:55 christos Exp $
                   8172: # fusecompress:   file(1) magic for fusecompress
                   8173: 0      string  \037\135\211    FuseCompress(ed) data
                   8174: >3     byte    0x00    (none format)
                   8175: >3     byte    0x01    (bz2 format)
                   8176: >3     byte    0x02    (gz format)
                   8177: >3     byte    0x03    (lzo format)
                   8178: >3     byte    0x04    (xor format)
                   8179: >3     byte    >0x04   (unknown format)
                   8180: >4     long    x       uncompressed size: %d
                   8181: 
                   8182: #------------------------------------------------------------------------------
                   8183: # $File: games,v 1.13 2012/02/13 22:50:50 christos Exp $
1.1       misho    8184: # games:  file(1) for games
                   8185: 
                   8186: # Fabio Bonelli <fabiobonelli@libero.it>
                   8187: # Quake II - III data files
                   8188: 0       string  IDP2           Quake II 3D Model file,
                   8189: >20     long    x               %lu skin(s),
                   8190: >8      long    x               (%lu x
                   8191: >12     long    x              %lu),
                   8192: >40     long    x               %lu frame(s),
                   8193: >16     long    x               Frame size %lu bytes,
                   8194: >24     long   x               %lu vertices/frame,
                   8195: >28     long    x              %lu texture coordinates,
                   8196: >32     long    x               %lu triangles/frame
                   8197: 
                   8198: 0       string  IBSP            Quake
                   8199: >4      long    0x26            II Map file (BSP)
                   8200: >4      long    0x2E           III Map file (BSP)
                   8201: 
                   8202: 0       string  IDS2            Quake II SP2 sprite file
                   8203: 
                   8204: #---------------------------------------------------------------------------
                   8205: # Doom and Quake
                   8206: # submitted by Nicolas Patrois
                   8207: 
                   8208: 0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
                   8209: # some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
                   8210: 
                   8211: 24      string  LxD\ 203        Linuxdoom save
                   8212: >0      string  x       , name=%s
                   8213: >44     string  x       , world=%s
                   8214: 
                   8215: # Quake
                   8216: 
                   8217: 0       string  PACK    Quake I or II world or extension
1.1.1.2   misho    8218: >8     lelong  >0      \b, %d entries
1.1       misho    8219: 
                   8220: #0       string  -1\x0a  Quake I demo
                   8221: #>30     string  x        version %.4s
                   8222: #>61     string  x        level %s       
                   8223: 
                   8224: #0       string  5\x0a   Quake I save
                   8225: 
                   8226: # The levels
                   8227: 
                   8228: # Quake 1
                   8229: 
                   8230: 0      string  5\x0aIntroduction             Quake I save: start Introduction
                   8231: 0      string  5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
                   8232: 0      string  5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
                   8233: 0      string  5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
                   8234: 0      string  5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
                   8235: 0      string  5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
                   8236: 0      string  5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
                   8237: 0      string  5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
                   8238: 0      string  5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
                   8239: 0      string  5\x0athe_Installation         Quake I save: e2m1 The installation
                   8240: 0      string  5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
                   8241: 0      string  5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
                   8242: 0      string  5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
                   8243: 0      string  5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
                   8244: 0      string  5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
                   8245: 0      string  5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
                   8246: 0      string  5\x0aTermination_Central      Quake I save: e3m1 Termination central
                   8247: 0      string  5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
                   8248: 0      string  5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
                   8249: 0      string  5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
                   8250: 0      string  5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
                   8251: 0      string  5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
                   8252: 0      string  5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
                   8253: 0      string  5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
                   8254: 0      string  5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
                   8255: 0      string  5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
                   8256: 0      string  5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
                   8257: 0      string  5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
                   8258: 0      string  5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
                   8259: 0      string  5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
                   8260: 0      string  5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
                   8261: 0      string  5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
                   8262: 
                   8263: # Quake DeathMatch levels
                   8264: 
                   8265: 0      string  5\x0aPlace_of_Two_Deaths         Quake I save: dm1 Place of two deaths
                   8266: 0      string  5\x0aClaustrophobopolis          Quake I save: dm2 Claustrophobopolis
                   8267: 0      string  5\x0aThe_Abandoned_Base          Quake I save: dm3 The abandoned base
                   8268: 0      string  5\x0aThe_Bad_Place               Quake I save: dm4 The bad place
                   8269: 0      string  5\x0aThe_Cistern                 Quake I save: dm5 The cistern
                   8270: 0      string  5\x0aThe_Dark_Zone               Quake I save: dm6 The dark zone
                   8271: 
                   8272: # Scourge of Armagon
                   8273: 
                   8274: 0      string  5\x0aCommand_HQ               Quake I save: start Command HQ
                   8275: 0      string  5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
                   8276: 0      string  5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
                   8277: 0      string  5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
                   8278: 0      string  5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
                   8279: 0      string  5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
                   8280: 0      string  5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
                   8281: 0      string  5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
                   8282: 0      string  5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
                   8283: 0      string  5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
                   8284: 0      string  5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
                   8285: 0      string  5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
                   8286: 0      string  5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
                   8287: 0      string  5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
                   8288: 0      string  5\x0aLimbo                    Quake I save: hip3m3 Limbo
                   8289: 0      string  5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
                   8290: 0      string  5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
                   8291: 0      string  5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
                   8292: 
                   8293: # Malice
                   8294: 
                   8295: 0      string  5\x0aThe_Academy      Quake I save: start The academy
                   8296: 0      string  5\x0aThe_Lab          Quake I save: d1 The lab
                   8297: 0      string  5\x0aArea_33          Quake I save: d1b Area 33
                   8298: 0      string  5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
                   8299: 0      string  5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
                   8300: 0      string  5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
                   8301: 0      string  5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
                   8302: 0      string  5\x0aArea44           Quake I save: d1c Area 44
                   8303: 0      string  5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
                   8304: 0      string  5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
                   8305: 0      string  5\x0aInto_The_Flood   Quake I save: d4 Into the flood
                   8306: 0      string  5\x0aThe_Flood        Quake I save: d5 The flood
                   8307: 0      string  5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
                   8308: 0      string  5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
                   8309: 0      string  5\x0aThe_Foundry              Quake I save: d7b The foundry
                   8310: 0      string  5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
                   8311: 0      string  5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
                   8312: 0      string  5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
                   8313: 0      string  5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
                   8314: 0      string  5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
                   8315: 0      string  5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
                   8316: 
                   8317: # Malice DeathMatch levels
                   8318: 
                   8319: 0      string  5\x0aThe_Seventh_Precinct        Quake I save: ddm1 The seventh precinct
                   8320: 0      string  5\x0aSub_Station                 Quake I save: ddm2 Sub station
                   8321: 0      string  5\x0aCrazy_Eights!               Quake I save: ddm3 Crazy eights!
                   8322: 0      string  5\x0aEast_Side_Invertationa      Quake I save: ddm4 East side invertationa
                   8323: 0      string  5\x0aSlaughterhouse              Quake I save: ddm5 Slaughterhouse
                   8324: 0      string  5\x0aDOMINO                      Quake I save: ddm6 Domino
                   8325: 0      string  5\x0aSANDRA'S_LADDER             Quake I save: ddm7 Sandra's ladder
                   8326: 
                   8327: 
                   8328: 0      string  MComprHD        MAME CHD compressed hard disk image,
                   8329: >12    belong  x               version %lu
                   8330: 
                   8331: # doom - submitted by Jon Dowland
                   8332: 
                   8333: 0      string  =IWAD           doom main IWAD data
                   8334: >4     lelong  x               containing %d lumps
                   8335: 0      string  =PWAD           doom patch PWAD data
                   8336: >4     lelong  x               containing %d lumps
                   8337: 
1.1.1.3   misho    8338: # Build engine group files (Duke Nukem, Shadow Warrior, ...)
                   8339: # Extension: .grp
                   8340: # Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
                   8341: 0      string  KenSilverman    Build engine group file
                   8342: >12    lelong  x               containing %d files
1.1       misho    8343: 
                   8344: # Summary: Warcraft 3 save
                   8345: # Extension: .w3g
                   8346: # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   8347: 0      string          Warcraft\ III\ recorded\ game   %s
                   8348: 
                   8349: 
                   8350: # Summary: Warcraft 3 map
                   8351: # Extension: .w3m
                   8352: # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   8353: 0      string          HM3W            Warcraft III map file
                   8354: 
                   8355: 
                   8356: # Summary: SGF Smart Game Format
                   8357: # Extension: .sgf
                   8358: # Reference: http://www.red-bean.com/sgf/
                   8359: # Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
                   8360: # Modified by (1): Abel Cheung (regex, more game format)
                   8361: # FIXME: Some games don't have GM (game type)
                   8362: 0      regex           \\(;.*GM\\[[0-9]{1,2}\\]        Smart Game Format
1.1.1.3   misho    8363: >2     search/0x200/b  GM[
1.1       misho    8364: >>&0   string          1]      (Go)
                   8365: >>&0   string          2]      (Othello)
                   8366: >>&0   string          3]      (chess)
                   8367: >>&0   string          4]      (Gomoku+Renju)
                   8368: >>&0   string          5]      (Nine Men's Morris)
                   8369: >>&0   string          6]      (Backgammon)
                   8370: >>&0   string          7]      (Chinese chess)
                   8371: >>&0   string          8]      (Shogi)
                   8372: >>&0   string          9]      (Lines of Action)
                   8373: >>&0   string          10]     (Ataxx)
                   8374: >>&0   string          11]     (Hex)
                   8375: >>&0   string          12]     (Jungle)
                   8376: >>&0   string          13]     (Neutron)
                   8377: >>&0   string          14]     (Philosopher's Football)
                   8378: >>&0   string          15]     (Quadrature)
                   8379: >>&0   string          16]     (Trax)
                   8380: >>&0   string          17]     (Tantrix)
                   8381: >>&0   string          18]     (Amazons)
                   8382: >>&0   string          19]     (Octi)
                   8383: >>&0   string          20]     (Gess)
                   8384: >>&0   string          21]     (Twixt)
                   8385: >>&0   string          22]     (Zertz)
                   8386: >>&0   string          23]     (Plateau)
                   8387: >>&0   string          24]     (Yinsh)
                   8388: >>&0   string          25]     (Punct)
                   8389: >>&0   string          26]     (Gobblet)
                   8390: >>&0   string          27]     (hive)
                   8391: >>&0   string          28]     (Exxit)
                   8392: >>&0   string          29]     (Hnefatal)
                   8393: >>&0   string          30]     (Kuba)
                   8394: >>&0   string          31]     (Tripples)
                   8395: >>&0   string          32]     (Chase)
                   8396: >>&0   string          33]     (Tumbling Down)
                   8397: >>&0   string          34]     (Sahara)
                   8398: >>&0   string          35]     (Byte)
                   8399: >>&0   string          36]     (Focus)
                   8400: >>&0   string          37]     (Dvonn)
                   8401: >>&0   string          38]     (Tamsk)
                   8402: >>&0   string          39]     (Gipf)
                   8403: >>&0   string          40]     (Kropki)
                   8404: 
                   8405: ##############################################
                   8406: # NetImmerse/Gamebryo game engine entries
                   8407: 
                   8408: # Summary: Gamebryo game engine file
                   8409: # Extension: .nif, .kf
                   8410: # Created by: Abel Cheung <abelcheung@gmail.com>
                   8411: 0              string          Gamebryo\ File\ Format,\ Version\       Gamebryo game engine file
                   8412: >&0            regex           [0-9a-z.]+                              \b, version %s
                   8413: 
                   8414: # Summary: Gamebryo game engine file
                   8415: # Extension: .kfm
                   8416: # Created by: Abel Cheung <abelcheung@gmail.com>
                   8417: 0              string          ;Gamebryo\ KFM\ File\ Version\          Gamebryo game engine animation File
                   8418: >&0            regex           [0-9a-z.]+                              \b, version %s
                   8419: 
                   8420: # Summary: NetImmerse game engine file
                   8421: # Extension .nif
                   8422: # Created by: Abel Cheung <abelcheung@gmail.com>
                   8423: 0              string          NetImmerse\ File\ Format,\ Versio               
                   8424: >&0            string          n\                                      NetImmerse game engine file
                   8425: >>&0           regex           [0-9a-z.]+                              \b, version %s
                   8426: 
                   8427: # Type:        SGF Smart Game Format
                   8428: # URL: http://www.red-bean.com/sgf/
                   8429: # From:        Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
                   8430: 2      regex/c \\(;.*GM\\[[0-9]{1,2}\\]        Smart Game Format
                   8431: >2     regex/c GM\\[1\\]                       - Go Game
                   8432: >2     regex/c GM\\[6\\]                       - BackGammon Game
                   8433: >2     regex/c GM\\[11\\]                      - Hex Game
                   8434: >2     regex/c GM\\[18\\]                      - Amazons Game
                   8435: >2     regex/c GM\\[19\\]                      - Octi Game
                   8436: >2     regex/c GM\\[20\\]                      - Gess Game
                   8437: >2     regex/c GM\\[21\\]                      - twix Game
                   8438: 
1.1.1.3   misho    8439: # Epic Games/Unreal Engine Package
                   8440: #
                   8441: 0      lelong          0x9E2A83C1      Unreal Engine Package,
                   8442: >4     leshort         x               version: %i
                   8443: >12    lelong          !0              \b, names: %i
                   8444: >28    lelong          !0              \b, imports: %i
                   8445: >20    lelong          !0              \b, exports: %i
                   8446: 
1.1       misho    8447: #------------------------------------------------------------------------------
1.1.1.2   misho    8448: # $File: gcc,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    8449: # gcc:  file(1) magic for GCC special files
                   8450: #
                   8451: 0      string          gpch            GCC precompiled header
                   8452: 
                   8453: # The version field is annoying.  It's 3 characters, not zero-terminated.
                   8454: >5     byte            x                       (version %c
                   8455: >6     byte            x                       \b%c
                   8456: >7     byte            x                       \b%c)
                   8457: 
                   8458: # 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
                   8459: >4     byte            67                      for C
                   8460: >4     byte            111                     for Objective C
                   8461: >4     byte            43                      for C++
                   8462: >4     byte            79                      for Objective C++
                   8463: 
                   8464: #------------------------------------------------------------------------------
1.1.1.3   misho    8465: # $File: geo,v 1.3 2013/01/04 00:47:02 christos Exp $
                   8466: # Geo- files from Kurt Schwehr <schwehr@ccom.unh.edu>
                   8467: 
                   8468: ######################################################################
                   8469: #
                   8470: # Acoustic Doppler Current Profilers (ADCP)
                   8471: #
                   8472: ######################################################################
                   8473: 
                   8474: 0      beshort 0x7f7f  RDI Acoustic Doppler Current Profiler (ADCP)
                   8475: 
                   8476: ######################################################################
                   8477: #
                   8478: # Metadata
                   8479: #
                   8480: ######################################################################
                   8481: 
                   8482: 0      string  Identification_Information      FGDC ASCII metadata
                   8483: 
                   8484: ######################################################################
                   8485: #
                   8486: # Seimsic / Subbottom
                   8487: #
                   8488: ######################################################################
                   8489: 
                   8490: # Knudsen subbottom chirp profiler - Binary File Format: B9
                   8491: # KEB D409-03167 V1.75 Huffman
                   8492: 0      string  KEB\    Knudsen seismic KEL binary (KEB) -
                   8493: >4     regex   [-A-Z0-9]*      Software: %s
                   8494: >>&1   regex   V[0-9]*\.[0-9]* version %s
                   8495: 
                   8496: ######################################################################
                   8497: #
                   8498: # LIDAR - Laser altimetry or bathy
                   8499: #
                   8500: ######################################################################
                   8501: 
                   8502: 
                   8503: # Caris LIDAR format for LADS comes as two parts... ascii location file and binary waveform data
                   8504: 0      string  HCA     LADS Caris Ascii Format (CAF) bathymetric lidar
                   8505: >4     regex [0-9]*\.[0-9]*    version %s
                   8506: 
                   8507: 0      string  HCB     LADS Caris Binary Format (CBF) bathymetric lidar waveform data
                   8508: >3      byte    x      version %d .
                   8509: >4     byte    x       %d
                   8510: 
                   8511: 
                   8512: ######################################################################
                   8513: #
                   8514: # MULTIBEAM SONARS http://www.ldeo.columbia.edu/res/pi/MB-System/formatdoc/
                   8515: #
                   8516: ######################################################################
                   8517: 
                   8518: # GeoAcoustics - GeoSwath Plus
                   8519: 4      beshort 0x2002  GeoSwath RDF
                   8520: 0      string  Start:- GeoSwatch auf text file
                   8521: 
                   8522: # Seabeam 2100 
                   8523: # mbsystem code mb41
                   8524: 0      string SB2100   SeaBeam 2100 multibeam sonar
                   8525: 0      string SB2100DR SeaBeam 2100 DR multibeam sonar
                   8526: 0      string SB2100PR SeaBeam 2100 PR multibeam sonar
                   8527: 
                   8528: # This corresponds to MB-System format 94, L-3/ELAC/SeaBeam XSE vendor
                   8529: # format. It is the format of our upgraded SeaBeam 2112 on R/V KNORR.
                   8530: 0    string $HSF    XSE multibeam
                   8531: 
                   8532: # mb121 http://www.saic.com/maritime/gsf/
                   8533: 8      string  GSF-v   SAIC generic sensor format (GSF) sonar data,
                   8534: >&0    regex [0-9]*\.[0-9]*    version %s
                   8535: 
                   8536: # MGD77 - http://www.ngdc.noaa.gov/mgg/dat/geodas/docs/mgd77.htm
                   8537: # mb161
                   8538: 9      string MGD77    MGD77 Header, Marine Geophysical Data Exchange Format
                   8539: 
                   8540: # MBSystem processing caches the mbinfo output
                   8541: 1      string  Swath\ Data\ File:      mbsystem info cache
                   8542: 
                   8543: # Caris John Hughes Clark format
                   8544: 0      string  HDCS    Caris multibeam sonar related data
                   8545: 1      string  Start/Stop\ parameter\ header:  Caris ASCII project summary
                   8546: 
                   8547: ######################################################################
                   8548: #
                   8549: # Visualization and 3D modeling
                   8550: #
                   8551: ######################################################################
                   8552: 
                   8553: # IVS - IVS3d.com Tagged Data Represetation
                   8554: 0      string  %%\ TDR\ 2.0    IVS Fledermaus TDR file
                   8555: 
                   8556: # http://www.ecma-international.org/publications/standards/Ecma-363.htm
                   8557: # 3D in PDFs
                   8558: 0      string  U3D     ECMA-363, Universal 3D
                   8559: 
                   8560: ######################################################################
                   8561: #
                   8562: # Support files
                   8563: #
                   8564: ######################################################################
                   8565: 
                   8566: # https://midas.psi.ch/elog/
                   8567: 0      string  $@MID@$ elog journal entry
                   8568: 
                   8569: # Geospatial Designs http://www.geospatialdesigns.com/surfer6_format.htm
                   8570: 0      string          DSBB    Surfer 6 binary grid file
                   8571: >4     leshort         x       \b, %d
                   8572: >6     leshort         x       \bx%d
                   8573: >8     ledouble        x       \b, minx=%g
                   8574: >16    ledouble        x       \b, maxx=%g
                   8575: >24    ledouble        x       \b, miny=%g
                   8576: >32    ledouble        x       \b, maxy=%g
                   8577: >40    ledouble        x       \b, minz=%g
                   8578: >48    ledouble        x       \b, maxz=%g
                   8579: 
                   8580: 
                   8581: #------------------------------------------------------------------------------
1.1.1.2   misho    8582: # $File: geos,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    8583: # GEOS files (Vidar Madsen, vidar@gimp.org)
                   8584: # semi-commonly used in embedded and handheld systems.
                   8585: 0      belong  0xc745c153      GEOS
                   8586: >40    byte    1       executable
                   8587: >40    byte    2       VMFile
                   8588: >40    byte    3       binary
                   8589: >40    byte    4       directory label
                   8590: >40    byte    <1      unknown
                   8591: >40    byte    >4      unknown
                   8592: >4     string  >\0     \b, name "%s"
                   8593: #>44   short   x       \b, version %d
                   8594: #>46   short   x       \b.%d
                   8595: #>48   short   x       \b, rev %d
                   8596: #>50   short   x       \b.%d
                   8597: #>52   short   x       \b, proto %d
                   8598: #>54   short   x       \br%d
                   8599: #>168  string  >\0     \b, copyright "%s"
1.1.1.2   misho    8600: 
1.1       misho    8601: #------------------------------------------------------------------------------
1.1.1.3   misho    8602: # $File: gimp,v 1.7 2010/09/20 18:55:20 rrt Exp $
1.1       misho    8603: # GIMP Gradient: file(1) magic for the GIMP's gradient data files
                   8604: # by Federico Mena <federico@nuclecu.unam.mx>
                   8605: 
                   8606: 0       string          GIMP\ Gradient  GIMP gradient data
                   8607: 
                   8608: #------------------------------------------------------------------------------
                   8609: # XCF:  file(1) magic for the XCF image format used in the GIMP developed
                   8610: #       by Spencer Kimball and Peter Mattis
                   8611: #       ('Bucky' LaDieu, nega@vt.edu)
                   8612: 
                   8613: 0      string          gimp\ xcf       GIMP XCF image data,
1.1.1.2   misho    8614: !:mime image/x-xcf
1.1       misho    8615: >9     string          file            version 0,
                   8616: >9     string          v               version
                   8617: >>10   string          >\0             %s,
                   8618: >14    belong          x               %lu x
                   8619: >18    belong          x               %lu,
                   8620: >22     belong          0               RGB Color
                   8621: >22     belong          1               Greyscale
                   8622: >22     belong          2               Indexed Color
                   8623: >22    belong          >2              Unknown Image Type.
                   8624: 
                   8625: #------------------------------------------------------------------------------
                   8626: # XCF:  file(1) magic for the patterns used in the GIMP, developed
                   8627: #       by Spencer Kimball and Peter Mattis
                   8628: #       ('Bucky' LaDieu, nega@vt.edu)
                   8629: 
                   8630: 20      string          GPAT            GIMP pattern data,
                   8631: >24     string          x               %s
                   8632: 
                   8633: #------------------------------------------------------------------------------
                   8634: # XCF:  file(1) magic for the brushes used in the GIMP, developed
                   8635: #       by Spencer Kimball and Peter Mattis
                   8636: #       ('Bucky' LaDieu, nega@vt.edu)
                   8637: 
                   8638: 20      string          GIMP            GIMP brush data
                   8639: 
                   8640: # GIMP Curves File
                   8641: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   8642: 0      string  #\040GIMP\040Curves\040File     GIMP curve file
1.1.1.2   misho    8643: 
                   8644: #------------------------------------------------------------------------------
1.1.1.3   misho    8645: # $File: gnome,v 1.3 2013/02/05 15:20:47 christos Exp $
                   8646: # GNOME related files
                   8647: 
1.1       misho    8648: # Contributed by Josh Triplett
                   8649: # FIXME: Could be simplified if pstring supported two-byte counts
                   8650: 0         string   GnomeKeyring\n\r\0\n GNOME keyring
                   8651: >&0       ubyte    0                    \b, major version 0
                   8652: >>&0      ubyte    0                    \b, minor version 0
1.1.1.3   misho    8653: >>>&0     ubyte    0                    \b, crypto type 0 (AES)
1.1       misho    8654: >>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
                   8655: >>>&1     ubyte    0                    \b, hash type 0 (MD5)
                   8656: >>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
                   8657: >>>&2     ubelong  0xFFFFFFFF           \b, name NULL
                   8658: >>>&2     ubelong  !0xFFFFFFFF
                   8659: >>>>&-4   ubelong  >255                 \b, name too long for file's pstring type
                   8660: >>>>&-4   ubelong  <256
                   8661: >>>>>&-1  pstring  x                    \b, name "%s"
                   8662: >>>>>>&0  ubeqdate x                    \b, last modified %s
                   8663: >>>>>>&8  ubeqdate x                    \b, created %s
                   8664: >>>>>>&16 ubelong  &1
                   8665: >>>>>>>&0 ubelong  x                    \b, locked if idle for %u seconds
                   8666: >>>>>>&16 ubelong  ^1                   \b, not locked if idle
                   8667: >>>>>>&24 ubelong  x                    \b, hash iterations %u
                   8668: >>>>>>&28 ubequad  x                    \b, salt %llu
                   8669: >>>>>>&52 ubelong  x                    \b, %u item(s)
1.1.1.2   misho    8670: 
1.1.1.3   misho    8671: # From: Alex Beregszaszi <alex@fsn.hu>
                   8672: 4      string  gtktalog                GNOME Catalogue (gtktalog)
                   8673: >13    string  >\0                     version %s
                   8674: 
                   8675: # Summary: GStreamer binary registry
                   8676: # Extension: .bin
                   8677: # Submitted by: Josh Triplett <josh@joshtriplett.org>
                   8678: 0      belong  0xc0def00d              GStreamer binary registry
                   8679: >4     string  x                       \b, version %s
                   8680: 
                   8681: # GVariant Database file
                   8682: # By Elan Ruusamae <glen@delfi.ee>
                   8683: # https://github.com/GNOME/gvdb/blob/master/gvdb-format.h
                   8684: # It's always "GVariant", it's byte swapped on incompatible archs
                   8685: # See https://github.com/GNOME/gvdb/blob/master/gvdb-builder.c
                   8686: # file_builder_serialise()
                   8687: # http://developer.gnome.org/glib/2.34/glib-GVariant.html#GVariant
                   8688: 0      string  GVariant        GVariant Database file,
                   8689: # version is never filled. probably future extension
                   8690: >8     lelong  x               version %d
                   8691: # not sure are these usable, so commented out
                   8692: #>>16  lelong  x               start %d,
                   8693: #>>>20 lelong  x               end %d
                   8694: 
                   8695: # G-IR database made by gobject-introspect toolset,
                   8696: # http://live.gnome.org/GObjectIntrospection
                   8697: 0      string          GOBJ\nMETADATA\r\n\032  G-IR binary database
                   8698: >16    byte            x                       \b, v%d
                   8699: >17    byte            x                       \b.%d
                   8700: >20    leshort         x                       \b, %d entries
                   8701: >22    leshort         x                       \b/%d local
                   8702: 
1.1       misho    8703: #------------------------------------------------------------------------------
1.1.1.3   misho    8704: # $File: gnu,v 1.14 2012/10/03 23:38:12 christos Exp $
1.1       misho    8705: # gnu:  file(1) magic for various GNU tools
                   8706: #
                   8707: # GNU nlsutils message catalog file format
                   8708: #
1.1.1.3   misho    8709: # GNU message catalog (.mo and .gmo files)
                   8710: 
1.1       misho    8711: 0      string          \336\22\4\225   GNU message catalog (little endian),
1.1.1.3   misho    8712: >6     leshort         x               revision %d.
                   8713: >4     leshort         >0              \b%d,
                   8714: >>8    lelong          x               %d messages,
                   8715: >>36   lelong          x               %d sysdep messages
                   8716: >4     leshort         =0              \b%d,
                   8717: >>8    lelong          x               %d messages
                   8718: 
1.1       misho    8719: 0      string          \225\4\22\336   GNU message catalog (big endian),
1.1.1.3   misho    8720: >4     beshort         x               revision %d.
                   8721: >6     beshort         >0              \b%d,
                   8722: >>8    belong          x               %d messages,
                   8723: >>36   belong          x               %d sysdep messages
                   8724: >6     beshort         =0              \b%d,
                   8725: >>8    belong          x               %d messages
                   8726: 
1.1       misho    8727: 
                   8728: # GnuPG
                   8729: # The format is very similar to pgp
                   8730: 0      string          \001gpg                 GPG key trust database
                   8731: >4     byte            x                       version %d
                   8732: # Note: magic.mime had 0x8501 for the next line instead of 0x8502
                   8733: 0      beshort         0x8502                  GPG encrypted data
                   8734: !:mime text/PGP # encoding: data
                   8735: 
                   8736: # This magic is not particularly good, as the keyrings don't have true
                   8737: # magic. Nevertheless, it covers many keyrings.
                   8738: 0       beshort         0x9901                  GPG key public ring
                   8739: !:mime application/x-gnupg-keyring
                   8740: 
1.1.1.3   misho    8741: # Symmetric encryption
                   8742: 0      leshort         0x0d8c
                   8743: >4     leshort         0x0203
                   8744: >>2    leshort         0x0204          GPG symmetrically encrypted data (3DES cipher)
                   8745: >>2    leshort         0x0304          GPG symmetrically encrypted data (CAST5 cipher)
                   8746: >>2    leshort         0x0404          GPG symmetrically encrypted data (BLOWFISH cipher)
                   8747: >>2    leshort         0x0704          GPG symmetrically encrypted data (AES cipher)
                   8748: >>2    leshort         0x0804          GPG symmetrically encrypted data (AES192 cipher)
                   8749: >>2    leshort         0x0904          GPG symmetrically encrypted data (AES256 cipher)
                   8750: >>2    leshort         0x0a04          GPG symmetrically encrypted data (TWOFISH cipher)
                   8751: >>2    leshort         0x0b04          GPG symmetrically encrypted data (CAMELLIA128 cipher)
                   8752: >>2    leshort         0x0c04          GPG symmetrically encrypted data (CAMELLIA192 cipher)
                   8753: >>2    leshort         0x0d04          GPG symmetrically encrypted data (CAMELLIA256 cipher)
                   8754: 
                   8755: 
1.1       misho    8756: # Gnumeric spreadsheet
                   8757: # This entry is only semi-helpful, as Gnumeric compresses its files, so
                   8758: # they will ordinarily reported as "compressed", but at least -z helps
                   8759: 39      string          =<gmr:Workbook           Gnumeric spreadsheet
                   8760: 
                   8761: # From: James Youngman <jay@gnu.org> 
                   8762: # gnu find magic
                   8763: 0      string  \0LOCATE        GNU findutils locate database data
                   8764: >7     string  >\0             \b, format %s
                   8765: >7     string  02              \b (frcode)
                   8766: 
                   8767: # Files produced by GNU gettext
                   8768: 0      long    0xDE120495              GNU-format message catalog data
                   8769: 0      long    0x950412DE              GNU-format message catalog data
                   8770: 
1.1.1.3   misho    8771: # gettext message catalogue
                   8772: 0      regex   \^msgid\                GNU gettext message catalogue text
                   8773: !:mime text/x-po
                   8774: 
1.1       misho    8775: #------------------------------------------------------------------------------
1.1.1.2   misho    8776: # $File: gnumeric,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    8777: # gnumeric:  file(1) magic for Gnumeric spreadsheet
                   8778: # This entry is only semi-helpful, as Gnumeric compresses its files, so
                   8779: # they will ordinarily reported as "compressed", but at least -z helps
                   8780: 39     string  =<gmr:Workbook  Gnumeric spreadsheet
                   8781: !:mime application/x-gnumeric
                   8782: 
                   8783: #------------------------------------------------------------------------------
1.1.1.3   misho    8784: # $File: gpt,v 1.1 2013/02/18 18:31:09 christos Exp $
                   8785: #
                   8786: # GPT Partition table patterns.
                   8787: # Author: Rogier Goossens (goossens.rogier@gmail.com)
                   8788: # Note that a GPT-formatted disk must contain an MBR as well.
                   8789: #
                   8790: 
                   8791: # The initial segment (up to >>>>>>>>422) was copied from the X86
                   8792: # partition table code (aka MBR).
                   8793: # This is kept separate, so that MBR partitions are not reported as well.
                   8794: # (use -k if you do want them as well)
                   8795: 
                   8796: # First, detect the MBR partiton table
                   8797: # If more than one GPT protective MBR partition exists, don't print anything
                   8798: # (the other MBR detection code will then just print the MBR partition table)
                   8799: 0x1FE                  leshort         0xAA55
                   8800: >3                     string          !MS
                   8801: >>3                    string          !SYSLINUX
                   8802: >>>3                   string          !MTOOL
                   8803: >>>>3                  string          !NEWLDR
                   8804: >>>>>5                 string          !DOS
                   8805: # not FAT (32 bit)
                   8806: >>>>>>82               string          !FAT32
                   8807: #not Linux kernel
                   8808: >>>>>>>514             string          !HdrS
                   8809: #not BeOS
                   8810: >>>>>>>>422            string          !Be\ Boot\ Loader
                   8811: # GPT with protective MBR entry in partition 1 (only)
                   8812: >>>>>>>>>450           ubyte           0xee
                   8813: >>>>>>>>>>466          ubyte           !0xee
                   8814: >>>>>>>>>>>482         ubyte           !0xee
                   8815: >>>>>>>>>>>>498                ubyte           !0xee
                   8816: #>>>>>>>>>>>>>446      use             gpt-mbr-partition
                   8817: >>>>>>>>>>>>>(454.l*8192)      string          EFI\ PART       GPT partition table
                   8818: >>>>>>>>>>>>>>0                        use             gpt-mbr-type
                   8819: >>>>>>>>>>>>>>&-8              use             gpt-table
                   8820: >>>>>>>>>>>>>>0                        ubyte           x               of 8192 bytes           
                   8821: >>>>>>>>>>>>>(454.l*8192)      string          !EFI\ PART
                   8822: >>>>>>>>>>>>>>(454.l*4096)     string          EFI\ PART       GPT partition table
                   8823: >>>>>>>>>>>>>>>0               use             gpt-mbr-type
                   8824: >>>>>>>>>>>>>>>&-8             use             gpt-table
                   8825: >>>>>>>>>>>>>>>0               ubyte           x               of 4096 bytes
                   8826: >>>>>>>>>>>>>>(454.l*4096)     string          !EFI\ PART
                   8827: >>>>>>>>>>>>>>>(454.l*2048)    string          EFI\ PART       GPT partition table
                   8828: >>>>>>>>>>>>>>>>0              use             gpt-mbr-type
                   8829: >>>>>>>>>>>>>>>>&-8            use             gpt-table
                   8830: >>>>>>>>>>>>>>>>0              ubyte           x               of 2048 bytes
                   8831: >>>>>>>>>>>>>>>(454.l*2048)    string          !EFI\ PART
                   8832: >>>>>>>>>>>>>>>>(454.l*1024)   string          EFI\ PART       GPT partition table
                   8833: >>>>>>>>>>>>>>>>>0             use             gpt-mbr-type
                   8834: >>>>>>>>>>>>>>>>>&-8           use             gpt-table
                   8835: >>>>>>>>>>>>>>>>>0             ubyte           x               of 1024 bytes
                   8836: >>>>>>>>>>>>>>>>(454.l*1024)   string          !EFI\ PART
                   8837: >>>>>>>>>>>>>>>>>(454.l*512)   string          EFI\ PART       GPT partition table
                   8838: >>>>>>>>>>>>>>>>>>0            use             gpt-mbr-type
                   8839: >>>>>>>>>>>>>>>>>>&-8          use             gpt-table
                   8840: >>>>>>>>>>>>>>>>>>0            ubyte           x               of 512 bytes
                   8841: # GPT with protective MBR entry in partition 2 (only)
                   8842: >>>>>>>>>450           ubyte           !0xee
                   8843: >>>>>>>>>>466          ubyte           0xee
                   8844: >>>>>>>>>>>482         ubyte           !0xee
                   8845: >>>>>>>>>>>>498                ubyte           !0xee
                   8846: #>>>>>>>>>>>>>462      use             gpt-mbr-partition
                   8847: >>>>>>>>>>>>>(470.l*8192)      string          EFI\ PART       GPT partition table
                   8848: >>>>>>>>>>>>>>0                        use             gpt-mbr-type
                   8849: >>>>>>>>>>>>>>&-8              use             gpt-table
                   8850: >>>>>>>>>>>>>>0                        ubyte           x               of 8192 bytes           
                   8851: >>>>>>>>>>>>>(470.l*8192)      string          !EFI\ PART
                   8852: >>>>>>>>>>>>>>(470.l*4096)     string          EFI\ PART       GPT partition table
                   8853: >>>>>>>>>>>>>>>0               use             gpt-mbr-type
                   8854: >>>>>>>>>>>>>>>&-8             use             gpt-table
                   8855: >>>>>>>>>>>>>>>0               ubyte           x               of 4096 bytes
                   8856: >>>>>>>>>>>>>>(470.l*4096)     string          !EFI\ PART
                   8857: >>>>>>>>>>>>>>>(470.l*2048)    string          EFI\ PART       GPT partition table
                   8858: >>>>>>>>>>>>>>>>0              use             gpt-mbr-type
                   8859: >>>>>>>>>>>>>>>>&-8            use             gpt-table
                   8860: >>>>>>>>>>>>>>>>0              ubyte           x               of 2048 bytes
                   8861: >>>>>>>>>>>>>>>(470.l*2048)    string          !EFI\ PART
                   8862: >>>>>>>>>>>>>>>>(470.l*1024)   string          EFI\ PART       GPT partition table
                   8863: >>>>>>>>>>>>>>>>>0             use             gpt-mbr-type
                   8864: >>>>>>>>>>>>>>>>>&-8           use             gpt-table
                   8865: >>>>>>>>>>>>>>>>>0             ubyte           x               of 1024 bytes
                   8866: >>>>>>>>>>>>>>>>(470.l*1024)   string          !EFI\ PART
                   8867: >>>>>>>>>>>>>>>>>(470.l*512)   string          EFI\ PART       GPT partition table
                   8868: >>>>>>>>>>>>>>>>>>0            use             gpt-mbr-type
                   8869: >>>>>>>>>>>>>>>>>>&-8          use             gpt-table
                   8870: >>>>>>>>>>>>>>>>>>0            ubyte           x               of 512 bytes
                   8871: # GPT with protective MBR entry in partition 3 (only)
                   8872: >>>>>>>>>450           ubyte           !0xee
                   8873: >>>>>>>>>>466          ubyte           !0xee
                   8874: >>>>>>>>>>>482         ubyte           0xee
                   8875: >>>>>>>>>>>>498                ubyte           !0xee
                   8876: #>>>>>>>>>>>>>478      use             gpt-mbr-partition
                   8877: >>>>>>>>>>>>>(486.l*8192)      string          EFI\ PART       GPT partition table
                   8878: >>>>>>>>>>>>>>0                        use             gpt-mbr-type
                   8879: >>>>>>>>>>>>>>&-8              use             gpt-table
                   8880: >>>>>>>>>>>>>>0                        ubyte           x               of 8192 bytes           
                   8881: >>>>>>>>>>>>>(486.l*8192)      string          !EFI\ PART
                   8882: >>>>>>>>>>>>>>(486.l*4096)     string          EFI\ PART       GPT partition table
                   8883: >>>>>>>>>>>>>>>0               use             gpt-mbr-type
                   8884: >>>>>>>>>>>>>>>&-8             use             gpt-table
                   8885: >>>>>>>>>>>>>>>0               ubyte           x               of 4096 bytes
                   8886: >>>>>>>>>>>>>>(486.l*4096)     string          !EFI\ PART
                   8887: >>>>>>>>>>>>>>>(486.l*2048)    string          EFI\ PART       GPT partition table
                   8888: >>>>>>>>>>>>>>>>0              use             gpt-mbr-type
                   8889: >>>>>>>>>>>>>>>>&-8            use             gpt-table
                   8890: >>>>>>>>>>>>>>>>0              ubyte           x               of 2048 bytes
                   8891: >>>>>>>>>>>>>>>(486.l*2048)    string          !EFI\ PART
                   8892: >>>>>>>>>>>>>>>>(486.l*1024)   string          EFI\ PART       GPT partition table
                   8893: >>>>>>>>>>>>>>>>>0             use             gpt-mbr-type
                   8894: >>>>>>>>>>>>>>>>>&-8           use             gpt-table
                   8895: >>>>>>>>>>>>>>>>>0             ubyte           x               of 1024 bytes
                   8896: >>>>>>>>>>>>>>>>(486.l*1024)   string          !EFI\ PART
                   8897: >>>>>>>>>>>>>>>>>(486.l*512)   string          EFI\ PART       GPT partition table
                   8898: >>>>>>>>>>>>>>>>>>0            use             gpt-mbr-type
                   8899: >>>>>>>>>>>>>>>>>>&-8          use             gpt-table
                   8900: >>>>>>>>>>>>>>>>>>0            ubyte           x               of 512 bytes
                   8901: # GPT with protective MBR entry in partition 4 (only)
                   8902: >>>>>>>>>450           ubyte           !0xee
                   8903: >>>>>>>>>>466          ubyte           !0xee
                   8904: >>>>>>>>>>>482         ubyte           !0xee
                   8905: >>>>>>>>>>>>498                ubyte           0xee
                   8906: #>>>>>>>>>>>>>494      use             gpt-mbr-partition
                   8907: >>>>>>>>>>>>>(502.l*8192)      string          EFI\ PART       GPT partition table
                   8908: >>>>>>>>>>>>>>0                        use             gpt-mbr-type
                   8909: >>>>>>>>>>>>>>&-8              use             gpt-table
                   8910: >>>>>>>>>>>>>>0                        ubyte           x               of 8192 bytes           
                   8911: >>>>>>>>>>>>>(502.l*8192)      string          !EFI\ PART
                   8912: >>>>>>>>>>>>>>(502.l*4096)     string          EFI\ PART       GPT partition table
                   8913: >>>>>>>>>>>>>>>0               use             gpt-mbr-type
                   8914: >>>>>>>>>>>>>>>&-8             use             gpt-table
                   8915: >>>>>>>>>>>>>>>0               ubyte           x               of 4096 bytes
                   8916: >>>>>>>>>>>>>>(502.l*4096)     string          !EFI\ PART
                   8917: >>>>>>>>>>>>>>>(502.l*2048)    string          EFI\ PART       GPT partition table
                   8918: >>>>>>>>>>>>>>>>0              use             gpt-mbr-type
                   8919: >>>>>>>>>>>>>>>>&-8            use             gpt-table
                   8920: >>>>>>>>>>>>>>>>0              ubyte           x               of 2048 bytes
                   8921: >>>>>>>>>>>>>>>(502.l*2048)    string          !EFI\ PART
                   8922: >>>>>>>>>>>>>>>>(502.l*1024)   string          EFI\ PART       GPT partition table
                   8923: >>>>>>>>>>>>>>>>>0             use             gpt-mbr-type
                   8924: >>>>>>>>>>>>>>>>>&-8           use             gpt-table
                   8925: >>>>>>>>>>>>>>>>>0             ubyte           x               of 1024 bytes
                   8926: >>>>>>>>>>>>>>>>(502.l*1024)   string          !EFI\ PART
                   8927: >>>>>>>>>>>>>>>>>(502.l*512)   string          EFI\ PART       GPT partition table
                   8928: >>>>>>>>>>>>>>>>>>0            use             gpt-mbr-type
                   8929: >>>>>>>>>>>>>>>>>>&-8          use             gpt-table
                   8930: >>>>>>>>>>>>>>>>>>0            ubyte           x               of 512 bytes
                   8931: 
                   8932: # The following code does GPT detection and processing, including
                   8933: # sector size detection.
                   8934: # It has to be duplicated above because the top-level pattern
                   8935: # (i.e. not called using 'use') must print *something* for file
                   8936: # to count it as a match. Text only printed in named patterns is
                   8937: # not counted, and causes file to continue, and try and match
                   8938: # other patterns.
                   8939: #
                   8940: # Unfortunately, when assuming sector sizes >=16k, if the sector size
                   8941: # happens to be 512 instead, we may find confusing data after the GPT
                   8942: # table...  If the GPT table has less than 128 entries, this may even
                   8943: # happen for assumed sector sizes as small as 4k
                   8944: # This could be solved by checking for the presence of the backup GPT
                   8945: # header as well, but that makes the logic extremely complex
                   8946: ##0            name            gpt-mbr-partition
                   8947: ##>(8.l*8192)  string          EFI\ PART
                   8948: ##>>(8.l*8192) use             gpt-mbr-type
                   8949: ##>>&-8                use             gpt-table
                   8950: ##>>0          ubyte           x               of 8192 bytes           
                   8951: ##>(8.l*8192)  string          !EFI\ PART
                   8952: ##>>(8.l*4096) string          EFI\ PART       GPT partition table
                   8953: ##>>>0         use             gpt-mbr-type
                   8954: ##>>>&-8               use             gpt-table
                   8955: ##>>>0         ubyte           x               of 4096 bytes
                   8956: ##>>(8.l*4096) string          !EFI\ PART
                   8957: ##>>>(8.l*2048)        string          EFI\ PART       GPT partition table
                   8958: ##>>>>0                use             gpt-mbr-type
                   8959: ##>>>>&-8              use             gpt-table
                   8960: ##>>>>0                ubyte           x               of 2048 bytes
                   8961: ##>>>(8.l*2048)        string          !EFI\ PART
                   8962: ##>>>>(8.l*1024)       string          EFI\ PART       GPT partition table
                   8963: ##>>>>>0               use             gpt-mbr-type
                   8964: ##>>>>>&-8     use             gpt-table
                   8965: ##>>>>>0               ubyte           x               of 1024 bytes
                   8966: ##>>>>(8.l*1024)       string          !EFI\ PART
                   8967: ##>>>>>(8.l*512)       string          EFI\ PART       GPT partition table
                   8968: ##>>>>>>0              use             gpt-mbr-type
                   8969: ##>>>>>>&-8    use             gpt-table
                   8970: ##>>>>>>0              ubyte           x               of 512 bytes
                   8971: 
                   8972: # Print details of MBR type for a GPT-disk
                   8973: # Calling code ensures that there is only one 0xee partition.
                   8974: 0              name            gpt-mbr-type
                   8975: # GPT with protective MBR entry in partition 1
                   8976: >450           ubyte           0xee
                   8977: >>454          ulelong         1
                   8978: >>>462         string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0       \b (with hybrid MBR)
                   8979: >>454          ulelong         !1                                                                                                      \b (nonstandard: not at LBA 1)
                   8980: # GPT with protective MBR entry in partition 2
                   8981: >466           ubyte           0xee
                   8982: >>470          ulelong         1
                   8983: >>>478         string          \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
                   8984: >>>>446                string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0                                       \b (with hybrid MBR)
                   8985: >>>478         string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0       \b (with hybrid MBR)
                   8986: >>470          ulelong         !1                                                                      \b (nonstandard: not at LBA 1)
                   8987: # GPT with protective MBR entry in partition 3
                   8988: >482           ubyte           0xee
                   8989: >>486          ulelong         1
                   8990: >>>494         string          \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
                   8991: >>>>446                string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0       \b (with hybrid MBR)
                   8992: >>>494         string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0                                       \b (with hybrid MBR)
                   8993: >>486          ulelong         !1                                                                      \b (nonstandard: not at LBA 1)
                   8994: # GPT with protective MBR entry in partition 4
                   8995: >498           ubyte           0xee
                   8996: >>502          ulelong         1               
                   8997: >>>446         string          !\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0       \b (with hybrid MBR)
                   8998: >>502          ulelong         !1                                                                                                      \b (nonstandard: not at LBA 1)
                   8999: 
                   9000: # Print the information from a GPT partition table structure
                   9001: 0              name            gpt-table
                   9002: >10            uleshort        x               \b, version %u
                   9003: >8             uleshort        x               \b.%u
                   9004: # a GUID is just like a UUID, except it's displayed mixed-endian.
                   9005: >56            ulelong         x               \b, GUID: %08x
                   9006: >60            uleshort        x               \b-%04x
                   9007: >62            uleshort        x               \b-%04x
                   9008: >64            ubeshort        x               \b-%04x
                   9009: >66            ubeshort        x               \b-%04x
                   9010: >68            ubelong         x               \b%08x
                   9011: #>80           uleshort        x               \b, %d partition entries
                   9012: >32            ulequad+1       x               \b, disk size: %lld sectors
                   9013: 
                   9014: # In case a GPT data-structure is at LBA 0, report it as well
                   9015: # This covers systems which are not GPT-aware, and which show
                   9016: # and allow access to the protective partition. This code will
                   9017: # detect the contents of such a partition.
                   9018: 0              string          EFI\ PART       GPT data structure (nonstandard: at LBA 0)
                   9019: >0             use             gpt-table
                   9020: >0             ubyte           x               (sector size unknown)
                   9021: 
                   9022: 
                   9023: 
                   9024: #------------------------------------------------------------------------------
1.1.1.2   misho    9025: # $File: grace,v 1.4 2009/09/19 16:28:09 christos Exp $
1.1       misho    9026: # ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
                   9027: #
                   9028: # ACE/gr binary
                   9029: 0      string  \000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003             old ACE/gr binary file
                   9030: >39    byte    >0                      - version %c
                   9031: # ACE/gr ascii
                   9032: 0      string  #\ xvgr\ parameter\ file        ACE/gr ascii file
                   9033: 0      string  #\ xmgr\ parameter\ file        ACE/gr ascii file
                   9034: 0      string  #\ ACE/gr\ parameter\ file      ACE/gr ascii file
                   9035: # Grace projects
                   9036: 0      string  #\ Grace\ project\ file         Grace project file
                   9037: >23    string  @version\                       (version
                   9038: >>32   byte    >0                              %c
                   9039: >>33   string  >\0                             \b.%.2s
                   9040: >>35   string  >\0                             \b.%.2s)
                   9041: # ACE/gr fit description files
                   9042: 0      string  #\ ACE/gr\ fit\ description\    ACE/gr fit description file
                   9043: # end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
                   9044: 
                   9045: #------------------------------------------------------------------------------
1.1.1.2   misho    9046: # $File: graphviz,v 1.7 2009/09/19 16:28:09 christos Exp $
1.1       misho    9047: # graphviz:  file(1) magic for http://www.graphviz.org/
1.1.1.2   misho    9048: 
                   9049: # FIXME: These patterns match too generally. For example, the first
                   9050: # line matches a LaTeX file containing the word "graph" (with a {
                   9051: # following later) and the second line matches this file.
                   9052: #0     regex/100       [\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{        graphviz graph text
                   9053: #!:mime        text/vnd.graphviz
                   9054: #0     regex/100       [\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{      graphviz digraph text
                   9055: #!:mime        text/vnd.graphviz
1.1       misho    9056: 
                   9057: #------------------------------------------------------------------------------
1.1.1.2   misho    9058: # $File: gringotts,v 1.5 2009/09/19 16:28:09 christos Exp $
1.1       misho    9059: # gringotts:  file(1) magic for Gringotts
                   9060: # http://devel.pluto.linux.it/projects/Gringotts/
                   9061: # author: Germano Rizzo <mano@pluto.linux.it>
                   9062: #GRG3????Y
                   9063: 0      string  GRG             Gringotts data file
                   9064: #file format 1
                   9065: >3     string          1               v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
                   9066: #file format 2
                   9067: >3     string          2               v.2, MCRYPT S2K, 
                   9068: >>8    byte&0x70       0x00            RIJNDAEL-128 crypt,
                   9069: >>8    byte&0x70       0x10            SERPENT crypt,
                   9070: >>8    byte&0x70       0x20            TWOFISH crypt, 
                   9071: >>8    byte&0x70       0x30            CAST-256 crypt,
                   9072: >>8    byte&0x70       0x40            SAFER+ crypt,
                   9073: >>8    byte&0x70       0x50            LOKI97 crypt,
                   9074: >>8    byte&0x70       0x60            3DES crypt,
                   9075: >>8    byte&0x70       0x70            RIJNDAEL-256 crypt,
                   9076: >>8    byte&0x08       0x00            SHA1 hash,
                   9077: >>8    byte&0x08       0x08            RIPEMD-160 hash,
                   9078: >>8    byte&0x04       0x00            ZLib
                   9079: >>8    byte&0x04       0x04            BZip2
                   9080: >>8    byte&0x03       0x00            lvl.0
                   9081: >>8    byte&0x03       0x01            lvl.3
                   9082: >>8    byte&0x03       0x02            lvl.6
                   9083: >>8    byte&0x03       0x03            lvl.9
                   9084: #file format 3
                   9085: >3     string          3               v.3, OpenPGP S2K, 
                   9086: >>8    byte&0x70       0x00            RIJNDAEL-128 crypt,
                   9087: >>8    byte&0x70       0x10            SERPENT crypt,
                   9088: >>8    byte&0x70       0x20            TWOFISH crypt, 
                   9089: >>8    byte&0x70       0x30            CAST-256 crypt,
                   9090: >>8    byte&0x70       0x40            SAFER+ crypt,
                   9091: >>8    byte&0x70       0x50            LOKI97 crypt,
                   9092: >>8    byte&0x70       0x60            3DES crypt,
                   9093: >>8    byte&0x70       0x70            RIJNDAEL-256 crypt,
                   9094: >>8    byte&0x08       0x00            SHA1 hash,
                   9095: >>8    byte&0x08       0x08            RIPEMD-160 hash,
                   9096: >>8    byte&0x04       0x00            ZLib
                   9097: >>8    byte&0x04       0x04            BZip2
                   9098: >>8    byte&0x03       0x00            lvl.0
                   9099: >>8    byte&0x03       0x01            lvl.3
                   9100: >>8    byte&0x03       0x02            lvl.6
                   9101: >>8    byte&0x03       0x03            lvl.9
                   9102: #file format >3
                   9103: >3     string          >3              v.%.1s (unknown details)
                   9104: 
                   9105: #------------------------------------------------------------------------------
1.1.1.3   misho    9106: # $File: guile,v 1.1 2011/12/16 17:44:33 christos Exp $
                   9107: # Guile file magic from <dalepsmith@gmail.com>
                   9108: # http://www.gnu.org/s/guile/
                   9109: # http://git.savannah.gnu.org/gitweb/?p=guile.git;f=libguile/_scm.h;hb=HEAD#l250
                   9110: 
                   9111: 0      string  GOOF----        Guile Object
                   9112: >8     string  LE              \b, little endian
                   9113: >8     string  BE              \b, big endian
                   9114: >11    string  4               \b, 32bit
                   9115: >11    string  8               \b, 64bit
                   9116: >13    regex   .\..            \b, bytecode v%s
                   9117: 
                   9118: #------------------------------------------------------------------------------
                   9119: # $File: hitachi-sh,v 1.6 2013/01/29 19:31:33 christos Exp $
1.1       misho    9120: # hitach-sh: file(1) magic for Hitachi Super-H
                   9121: #
                   9122: # Super-H COFF
                   9123: #
1.1.1.3   misho    9124: # below test line conflicts with 2nd NTFS filesystem sector 
1.1       misho    9125: 0      beshort         0x0500          Hitachi SH big-endian COFF
1.1.1.3   misho    9126: # 2nd NTFS filesystem sector often starts with 0x05004e00 for unicode string 5 NTLDR
                   9127: #0     ubelong&0xFFFFNMPQ      0x0500NMPQ     Hitachi SH big-endian COFF
1.1       misho    9128: >18    beshort&0x0002  =0x0000         object
                   9129: >18    beshort&0x0002  =0x0002         executable
                   9130: >18    beshort&0x0008  =0x0008         \b, stripped
                   9131: >18    beshort&0x0008  =0x0000         \b, not stripped
                   9132: #
                   9133: 0      leshort         0x0550          Hitachi SH little-endian COFF
                   9134: >18    leshort&0x0002  =0x0000         object
                   9135: >18    leshort&0x0002  =0x0002         executable
                   9136: >18    leshort&0x0008  =0x0008         \b, stripped
                   9137: >18    leshort&0x0008  =0x0000         \b, not stripped
                   9138: 
1.1.1.2   misho    9139: 
1.1       misho    9140: #------------------------------------------------------------------------------
1.1.1.2   misho    9141: # $File: hp,v 1.23 2009/09/19 16:28:09 christos Exp $
1.1       misho    9142: # hp:  file(1) magic for Hewlett Packard machines (see also "printer")
                   9143: #
                   9144: # XXX - somebody should figure out whether any byte order needs to be
                   9145: # applied to the "TML" stuff; I'm assuming the Apollo stuff is
                   9146: # big-endian as it was mostly 68K-based.
                   9147: #
                   9148: # I think the 500 series was the old stack-based machines, running a
                   9149: # UNIX environment atop the "SUN kernel"; dunno whether it was
                   9150: # big-endian or little-endian.
                   9151: #
                   9152: # Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
                   9153: # hp300 are 68020+68881 based; hp400 are also 68k.  The following basic
                   9154: # HP magic is useful for reference, but using "long" magic is a better
                   9155: # practice in order to avoid collisions.
                   9156: #
                   9157: # Guy Harris (guy@netapp.com): some additions to this list came from
                   9158: # HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
                   9159: # 1.2, and 2.0).  The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
                   9160: # "/etc/magic", though, except for the "archive file relocatable library"
                   9161: # stuff, and the 68030 and 68040 stuff isn't there at all - are they not
                   9162: # used in executables, or have they just not yet updated "/etc/magic"
                   9163: # completely?
                   9164: #
                   9165: # 0    beshort         200             hp200 (68010) BSD binary
                   9166: # 0    beshort         300             hp300 (68020+68881) BSD binary
                   9167: # 0    beshort         0x20c           hp200/300 HP-UX binary
                   9168: # 0    beshort         0x20d           hp400 (68030) HP-UX binary
                   9169: # 0    beshort         0x20e           hp400 (68040?) HP-UX binary
                   9170: # 0    beshort         0x20b           PA-RISC1.0 HP-UX binary
                   9171: # 0    beshort         0x210           PA-RISC1.1 HP-UX binary
                   9172: # 0    beshort         0x211           PA-RISC1.2 HP-UX binary
                   9173: # 0    beshort         0x214           PA-RISC2.0 HP-UX binary
                   9174: 
                   9175: #
                   9176: # The "misc" stuff needs a byte order; the archives look suspiciously
                   9177: # like the old 177545 archives (0xff65 = 0177545).
                   9178: #
                   9179: #### Old Apollo stuff
                   9180: 0      beshort         0627            Apollo m68k COFF executable
                   9181: >18    beshort         ^040000         not stripped
                   9182: >22    beshort         >0              - version %ld
                   9183: 0      beshort         0624            apollo a88k COFF executable
                   9184: >18    beshort         ^040000         not stripped
                   9185: >22    beshort         >0              - version %ld
                   9186: 0       long            01203604016     TML 0123 byte-order format
                   9187: 0       long            01702407010     TML 1032 byte-order format
                   9188: 0       long            01003405017     TML 2301 byte-order format
                   9189: 0       long            01602007412     TML 3210 byte-order format
                   9190: #### PA-RISC 1.1
                   9191: 0      belong          0x02100106      PA-RISC1.1 relocatable object
                   9192: 0      belong          0x02100107      PA-RISC1.1 executable
                   9193: >168   belong          &0x00000004     dynamically linked
                   9194: >(144) belong          0x054ef630      dynamically linked
                   9195: >96    belong          >0              - not stripped
                   9196: 
                   9197: 0      belong          0x02100108      PA-RISC1.1 shared executable
                   9198: >168   belong&0x4      0x4             dynamically linked
                   9199: >(144) belong          0x054ef630      dynamically linked
                   9200: >96    belong          >0              - not stripped
                   9201: 
                   9202: 0      belong          0x0210010b      PA-RISC1.1 demand-load executable
                   9203: >168   belong&0x4      0x4             dynamically linked
                   9204: >(144) belong          0x054ef630      dynamically linked
                   9205: >96    belong          >0              - not stripped
                   9206: 
                   9207: 0      belong          0x0210010e      PA-RISC1.1 shared library
                   9208: >96    belong          >0              - not stripped
                   9209: 
                   9210: 0      belong          0x0210010d      PA-RISC1.1 dynamic load library
                   9211: >96    belong          >0              - not stripped
                   9212: 
                   9213: #### PA-RISC 2.0
                   9214: 0      belong          0x02140106      PA-RISC2.0 relocatable object
                   9215: 
                   9216: 0       belong         0x02140107      PA-RISC2.0 executable
                   9217: >168   belong          &0x00000004     dynamically linked
                   9218: >(144) belong          0x054ef630      dynamically linked
                   9219: >96    belong          >0              - not stripped
                   9220: 
                   9221: 0       belong         0x02140108      PA-RISC2.0 shared executable
                   9222: >168   belong          &0x00000004     dynamically linked
                   9223: >(144) belong          0x054ef630      dynamically linked
                   9224: >96    belong          >0              - not stripped
                   9225: 
                   9226: 0       belong         0x0214010b      PA-RISC2.0 demand-load executable
                   9227: >168   belong          &0x00000004     dynamically linked
                   9228: >(144) belong          0x054ef630      dynamically linked
                   9229: >96    belong          >0              - not stripped
                   9230: 
                   9231: 0       belong         0x0214010e      PA-RISC2.0 shared library
                   9232: >96    belong          >0              - not stripped
                   9233: 
                   9234: 0       belong         0x0214010d      PA-RISC2.0 dynamic load library
                   9235: >96    belong          >0              - not stripped
                   9236: 
                   9237: #### 800
                   9238: 0      belong          0x020b0106      PA-RISC1.0 relocatable object
                   9239: 
                   9240: 0      belong          0x020b0107      PA-RISC1.0 executable
                   9241: >168   belong&0x4      0x4             dynamically linked
                   9242: >(144) belong          0x054ef630      dynamically linked
                   9243: >96    belong          >0              - not stripped
                   9244: 
                   9245: 0      belong          0x020b0108      PA-RISC1.0 shared executable
                   9246: >168   belong&0x4      0x4             dynamically linked
                   9247: >(144) belong          0x054ef630      dynamically linked
                   9248: >96    belong          >0              - not stripped
                   9249: 
                   9250: 0      belong          0x020b010b      PA-RISC1.0 demand-load executable
                   9251: >168   belong&0x4      0x4             dynamically linked
                   9252: >(144) belong          0x054ef630      dynamically linked
                   9253: >96    belong          >0              - not stripped
                   9254: 
                   9255: 0      belong          0x020b010e      PA-RISC1.0 shared library
                   9256: >96    belong          >0              - not stripped
                   9257: 
                   9258: 0      belong          0x020b010d      PA-RISC1.0 dynamic load library
                   9259: >96    belong          >0              - not stripped
                   9260: 
                   9261: 0      belong          0x213c6172      archive file
                   9262: >68    belong          0x020b0619      - PA-RISC1.0 relocatable library
                   9263: >68    belong          0x02100619      - PA-RISC1.1 relocatable library
                   9264: >68    belong          0x02110619      - PA-RISC1.2 relocatable library
                   9265: >68    belong          0x02140619      - PA-RISC2.0 relocatable library
                   9266: 
                   9267: #### 500
                   9268: 0      long            0x02080106      HP s500 relocatable executable
                   9269: >16    long            >0              - version %ld
                   9270: 
                   9271: 0      long            0x02080107      HP s500 executable
                   9272: >16    long            >0              - version %ld
                   9273: 
                   9274: 0      long            0x02080108      HP s500 pure executable
                   9275: >16    long            >0              - version %ld
                   9276: 
                   9277: #### 200
                   9278: 0      belong          0x020c0108      HP s200 pure executable
                   9279: >4     beshort         >0              - version %ld
                   9280: >8     belong          &0x80000000     save fp regs
                   9281: >8     belong          &0x40000000     dynamically linked
                   9282: >8     belong          &0x20000000     debuggable
                   9283: >36    belong          >0              not stripped
                   9284: 
                   9285: 0      belong          0x020c0107      HP s200 executable
                   9286: >4     beshort         >0              - version %ld
                   9287: >8     belong          &0x80000000     save fp regs
                   9288: >8     belong          &0x40000000     dynamically linked
                   9289: >8     belong          &0x20000000     debuggable
                   9290: >36    belong          >0              not stripped
                   9291: 
                   9292: 0      belong          0x020c010b      HP s200 demand-load executable
                   9293: >4     beshort         >0              - version %ld
                   9294: >8     belong          &0x80000000     save fp regs
                   9295: >8     belong          &0x40000000     dynamically linked
                   9296: >8     belong          &0x20000000     debuggable
                   9297: >36    belong          >0              not stripped
                   9298: 
                   9299: 0      belong          0x020c0106      HP s200 relocatable executable
                   9300: >4     beshort         >0              - version %ld
                   9301: >6     beshort         >0              - highwater %d
                   9302: >8     belong          &0x80000000     save fp regs
                   9303: >8     belong          &0x20000000     debuggable
                   9304: >8     belong          &0x10000000     PIC
                   9305: 
                   9306: 0      belong          0x020a0108      HP s200 (2.x release) pure executable
                   9307: >4     beshort         >0              - version %ld
                   9308: >36    belong          >0              not stripped
                   9309: 
                   9310: 0      belong          0x020a0107      HP s200 (2.x release) executable
                   9311: >4     beshort         >0              - version %ld
                   9312: >36    belong          >0              not stripped
                   9313: 
                   9314: 0      belong          0x020c010e      HP s200 shared library
                   9315: >4     beshort         >0              - version %ld
                   9316: >6     beshort         >0              - highwater %d
                   9317: >36    belong          >0              not stripped
                   9318: 
                   9319: 0      belong          0x020c010d      HP s200 dynamic load library
                   9320: >4     beshort         >0              - version %ld
                   9321: >6     beshort         >0              - highwater %d
                   9322: >36    belong          >0              not stripped
                   9323: 
                   9324: #### MISC
                   9325: 0      long            0x0000ff65      HP old archive
                   9326: 0      long            0x020aff65      HP s200 old archive
                   9327: 0      long            0x020cff65      HP s200 old archive
                   9328: 0      long            0x0208ff65      HP s500 old archive
                   9329: 
                   9330: 0      long            0x015821a6      HP core file
                   9331: 
                   9332: 0      long            0x4da7eee8      HP-WINDOWS font
                   9333: >8     byte            >0              - version %ld
                   9334: 0      string          Bitmapfile      HP Bitmapfile
                   9335: 
                   9336: 0      string          IMGfile CIS     compimg HP Bitmapfile
                   9337: # XXX - see "lif"
                   9338: #0     short           0x8000          lif file
                   9339: 0      long            0x020c010c      compiled Lisp
                   9340: 
                   9341: 0      string          msgcat01        HP NLS message catalog,
                   9342: >8     long            >0              %d messages
                   9343: 
                   9344: # Summary: HP-48/49 calculator
                   9345: # Created by: phk@data.fls.dk
                   9346: # Modified by (1): AMAKAWA Shuhei <sa264@cam.ac.uk>
                   9347: # Modified by (2): Samuel Thibault <samuel.thibault@ens-lyon.org> (HP49 support)
                   9348: 0      string          HPHP            HP
                   9349: >4     string          48              48 binary
                   9350: >4     string          49              49 binary
                   9351: >7     byte            >64             - Rev %c
                   9352: >8     leshort         0x2911          (ADR)
                   9353: >8     leshort         0x2933          (REAL)
                   9354: >8     leshort         0x2955          (LREAL)
                   9355: >8     leshort         0x2977          (COMPLX)
                   9356: >8     leshort         0x299d          (LCOMPLX)
                   9357: >8     leshort         0x29bf          (CHAR)
                   9358: >8     leshort         0x29e8          (ARRAY)
                   9359: >8     leshort         0x2a0a          (LNKARRAY)
                   9360: >8     leshort         0x2a2c          (STRING)
                   9361: >8     leshort         0x2a4e          (HXS)
                   9362: >8     leshort         0x2a74          (LIST)
                   9363: >8     leshort         0x2a96          (DIR)
                   9364: >8     leshort         0x2ab8          (ALG)
                   9365: >8     leshort         0x2ada          (UNIT)
                   9366: >8     leshort         0x2afc          (TAGGED)
                   9367: >8     leshort         0x2b1e          (GROB)
                   9368: >8     leshort         0x2b40          (LIB)
                   9369: >8     leshort         0x2b62          (BACKUP)
                   9370: >8     leshort         0x2b88          (LIBDATA)
                   9371: >8     leshort         0x2d9d          (PROG)
                   9372: >8     leshort         0x2dcc          (CODE)
                   9373: >8     leshort         0x2e48          (GNAME)
                   9374: >8     leshort         0x2e6d          (LNAME)
                   9375: >8     leshort         0x2e92          (XLIB)
                   9376: 
                   9377: 0      string          %%HP:           HP text
                   9378: >6     string          T(0)            - T(0)
                   9379: >6     string          T(1)            - T(1)
                   9380: >6     string          T(2)            - T(2)
                   9381: >6     string          T(3)            - T(3)
                   9382: >10    string          A(D)            A(D)
                   9383: >10    string          A(R)            A(R)
                   9384: >10    string          A(G)            A(G)
                   9385: >14    string          F(.)            F(.);
                   9386: >14    string          F(,)            F(,);
                   9387: 
                   9388: 
                   9389: # Summary: HP-38/39 calculator
                   9390: # Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
                   9391: 0      string          HP3
                   9392: >3     string          8               HP 38
                   9393: >3     string          9               HP 39
                   9394: >4     string          Bin             binary
                   9395: >4     string          Asc             ASCII
                   9396: >7     string          A               (Directory List)
                   9397: >7     string          B               (Zaplet)
                   9398: >7     string          C               (Note)
                   9399: >7     string          D               (Program)
                   9400: >7     string          E               (Variable)
                   9401: >7     string          F               (List)
                   9402: >7     string          G               (Matrix)
                   9403: >7     string          H               (Library)
                   9404: >7     string          I               (Target List)
                   9405: >7     string          J               (ASCII Vector specification)
                   9406: >7     string          K               (wildcard)
                   9407: 
                   9408: # Summary: HP-38/39 calculator
                   9409: # Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
                   9410: 0      string          HP3
                   9411: >3     string          8               HP 38
                   9412: >3     string          9               HP 39
                   9413: >4     string          Bin             binary
                   9414: >4     string          Asc             ASCII
                   9415: >7     string          A               (Directory List)
                   9416: >7     string          B               (Zaplet)
                   9417: >7     string          C               (Note)
                   9418: >7     string          D               (Program)
                   9419: >7     string          E               (Variable)
                   9420: >7     string          F               (List)
                   9421: >7     string          G               (Matrix)
                   9422: >7     string          H               (Library)
                   9423: >7     string          I               (Target List)
                   9424: >7     string          J               (ASCII Vector specification)
                   9425: >7     string          K               (wildcard)
                   9426: 
                   9427: # hpBSD magic numbers
                   9428: 0      beshort         200             hp200 (68010) BSD
                   9429: >2     beshort         0407            impure binary
                   9430: >2     beshort         0410            read-only binary
                   9431: >2     beshort         0413            demand paged binary
                   9432: 0      beshort         300             hp300 (68020+68881) BSD
                   9433: >2     beshort         0407            impure binary
                   9434: >2     beshort         0410            read-only binary
                   9435: >2     beshort         0413            demand paged binary
                   9436: #
                   9437: # From David Gero <dgero@nortelnetworks.com>
                   9438: # HP-UX 10.20 core file format from /usr/include/sys/core.h
                   9439: # Unfortunately, HP-UX uses corehead blocks without specifying the order
                   9440: # There are four we care about:
                   9441: #     CORE_KERNEL, which starts with the string "HP-UX"
                   9442: #     CORE_EXEC, which contains the name of the command
                   9443: #     CORE_PROC, which contains the signal number that caused the core dump
                   9444: #     CORE_FORMAT, which contains the version of the core file format (== 1)
                   9445: # The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
                   9446: # but we include all 6 variations of the order of the first 3, and
                   9447: # assume that PROC will always be last
                   9448: # Order 1: KERNEL, EXEC, FORMAT, PROC
                   9449: 0x10           string  HP-UX
                   9450: >0             belong  2
                   9451: >>0xC          belong  0x3C
                   9452: >>>0x4C                belong  0x100
                   9453: >>>>0x58       belong  0x44
                   9454: >>>>>0xA0      belong  1
                   9455: >>>>>>0xAC     belong  4
                   9456: >>>>>>>0xB0    belong  1
                   9457: >>>>>>>>0xB4   belong  4               core file
                   9458: >>>>>>>>>0x90  string  >\0             from '%s'
                   9459: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9460: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9461: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9462: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9463: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9464: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9465: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9466: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9467: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9468: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9469: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9470: # Order 2: KERNEL, FORMAT, EXEC, PROC
                   9471: >>>0x4C                belong  1
                   9472: >>>>0x58       belong  4
                   9473: >>>>>0x5C      belong  1
                   9474: >>>>>>0x60     belong  0x100
                   9475: >>>>>>>0x6C    belong  0x44
                   9476: >>>>>>>>0xB4   belong  4               core file
                   9477: >>>>>>>>>0xA4  string  >\0             from '%s'
                   9478: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9479: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9480: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9481: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9482: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9483: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9484: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9485: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9486: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9487: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9488: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9489: # Order 3: FORMAT, KERNEL, EXEC, PROC
                   9490: 0x24           string  HP-UX
                   9491: >0             belong  1
                   9492: >>0xC          belong  4
                   9493: >>>0x10                belong  1
                   9494: >>>>0x14       belong  2
                   9495: >>>>>0x20      belong  0x3C
                   9496: >>>>>>0x60     belong  0x100
                   9497: >>>>>>>0x6C    belong  0x44
                   9498: >>>>>>>>0xB4   belong  4               core file
                   9499: >>>>>>>>>0xA4  string  >\0             from '%s'
                   9500: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9501: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9502: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9503: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9504: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9505: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9506: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9507: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9508: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9509: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9510: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9511: # Order 4: EXEC, KERNEL, FORMAT, PROC
                   9512: 0x64           string  HP-UX
                   9513: >0             belong  0x100
                   9514: >>0xC          belong  0x44
                   9515: >>>0x54                belong  2
                   9516: >>>>0x60       belong  0x3C
                   9517: >>>>>0xA0      belong  1
                   9518: >>>>>>0xAC     belong  4
                   9519: >>>>>>>0xB0    belong  1
                   9520: >>>>>>>>0xB4   belong  4               core file
                   9521: >>>>>>>>>0x44  string  >\0             from '%s'
                   9522: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9523: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9524: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9525: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9526: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9527: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9528: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9529: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9530: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9531: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9532: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9533: # Order 5: FORMAT, EXEC, KERNEL, PROC
                   9534: 0x78           string  HP-UX
                   9535: >0             belong  1
                   9536: >>0xC          belong  4
                   9537: >>>0x10                belong  1
                   9538: >>>>0x14       belong  0x100
                   9539: >>>>>0x20      belong  0x44
                   9540: >>>>>>0x68     belong  2
                   9541: >>>>>>>0x74    belong  0x3C
                   9542: >>>>>>>>0xB4   belong  4               core file
                   9543: >>>>>>>>>0x58  string  >\0             from '%s'
                   9544: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9545: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9546: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9547: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9548: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9549: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9550: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9551: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9552: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9553: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9554: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9555: # Order 6: EXEC, FORMAT, KERNEL, PROC
                   9556: >0             belong  0x100
                   9557: >>0xC          belong  0x44
                   9558: >>>0x54                belong  1
                   9559: >>>>0x60       belong  4
                   9560: >>>>>0x64      belong  1
                   9561: >>>>>>0x68     belong  2
                   9562: >>>>>>>0x74    belong  0x2C
                   9563: >>>>>>>>0xB4   belong  4               core file
                   9564: >>>>>>>>>0x44  string  >\0             from '%s'
                   9565: >>>>>>>>>0xC4  belong  3               - received SIGQUIT
                   9566: >>>>>>>>>0xC4  belong  4               - received SIGILL
                   9567: >>>>>>>>>0xC4  belong  5               - received SIGTRAP
                   9568: >>>>>>>>>0xC4  belong  6               - received SIGABRT
                   9569: >>>>>>>>>0xC4  belong  7               - received SIGEMT
                   9570: >>>>>>>>>0xC4  belong  8               - received SIGFPE
                   9571: >>>>>>>>>0xC4  belong  10              - received SIGBUS
                   9572: >>>>>>>>>0xC4  belong  11              - received SIGSEGV
                   9573: >>>>>>>>>0xC4  belong  12              - received SIGSYS
                   9574: >>>>>>>>>0xC4  belong  33              - received SIGXCPU
                   9575: >>>>>>>>>0xC4  belong  34              - received SIGXFSZ
                   9576: 
                   9577: 
                   9578: 
                   9579: #------------------------------------------------------------------------------
1.1.1.2   misho    9580: # $File: human68k,v 1.5 2009/09/19 16:28:09 christos Exp $
1.1       misho    9581: # human68k:  file(1) magic for Human68k (X680x0 DOS) binary formats
                   9582: # Magic too short!
                   9583: #0             string  HU              Human68k
                   9584: #>68           string  LZX             LZX compressed
                   9585: #>>72          string  >\0             (version %s)
                   9586: #>(8.L+74)     string  LZX             LZX compressed
                   9587: #>>(8.L+78)    string  >\0             (version %s)
                   9588: #>60           belong  >0              binded
                   9589: #>(8.L+66)     string  #HUPAIR         hupair
                   9590: #>0            string  HU              X executable
                   9591: #>(8.L+74)     string  #LIBCV1         - linked PD LIBC ver 1
                   9592: #>4            belong  >0              - base address 0x%x
                   9593: #>28           belong  >0              not stripped
                   9594: #>32           belong  >0              with debug information
                   9595: #0             beshort 0x601a          Human68k Z executable
                   9596: #0             beshort 0x6000          Human68k object file
                   9597: #0             belong  0xd1000000      Human68k ar binary archive
                   9598: #0             belong  0xd1010000      Human68k ar ascii archive
                   9599: #0             beshort 0x0068          Human68k lib archive
                   9600: #4             string  LZX             Human68k LZX compressed
                   9601: #>8            string  >\0             (version %s)
                   9602: #>4            string  LZX             R executable
                   9603: #2             string  #HUPAIR         Human68k hupair R executable
                   9604: 
                   9605: #------------------------------------------------------------------------------
1.1.1.2   misho    9606: # $File: ibm370,v 1.8 2009/09/19 16:28:09 christos Exp $
1.1       misho    9607: # ibm370:  file(1) magic for IBM 370 and compatibles.
                   9608: #
                   9609: # "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
                   9610: # What the heck *is* "USS/370"?
                   9611: # AIX 4.1's "/etc/magic" has
                   9612: #
                   9613: #      0       short           0535            370 sysV executable 
                   9614: #      >12     long            >0              not stripped
                   9615: #      >22     short           >0              - version %d
                   9616: #      >30     long            >0              - 5.2 format
                   9617: #      0       short           0530            370 sysV pure executable 
                   9618: #      >12     long            >0              not stripped
                   9619: #      >22     short           >0              - version %d
                   9620: #      >30     long            >0              - 5.2 format
                   9621: #
                   9622: # instead of the "USS/370" versions of the same magic numbers.
                   9623: #
                   9624: 0      beshort         0537            370 XA sysV executable 
                   9625: >12    belong          >0              not stripped
                   9626: >22    beshort         >0              - version %d
                   9627: >30    belong          >0              - 5.2 format
                   9628: 0      beshort         0532            370 XA sysV pure executable 
                   9629: >12    belong          >0              not stripped
                   9630: >22    beshort         >0              - version %d
                   9631: >30    belong          >0              - 5.2 format
                   9632: 0      beshort         054001          370 sysV pure executable
                   9633: >12    belong          >0              not stripped
                   9634: 0      beshort         055001          370 XA sysV pure executable
                   9635: >12    belong          >0              not stripped
                   9636: 0      beshort         056401          370 sysV executable
                   9637: >12    belong          >0              not stripped
                   9638: 0      beshort         057401          370 XA sysV executable
                   9639: >12    belong          >0              not stripped
                   9640: 0       beshort                0531            SVR2 executable (Amdahl-UTS)
                   9641: >12    belong          >0              not stripped
                   9642: >24     belong         >0              - version %ld
                   9643: 0      beshort         0534            SVR2 pure executable (Amdahl-UTS)
                   9644: >12    belong          >0              not stripped
                   9645: >24    belong          >0              - version %ld
                   9646: 0      beshort         0530            SVR2 pure executable (USS/370)
                   9647: >12    belong          >0              not stripped
                   9648: >24    belong          >0              - version %ld
                   9649: 0      beshort         0535            SVR2 executable (USS/370)
                   9650: >12    belong          >0              not stripped
                   9651: >24    belong          >0              - version %ld
                   9652: 
                   9653: #------------------------------------------------------------------------------
1.1.1.3   misho    9654: # $File: ibm6000,v 1.11 2013/01/08 20:13:01 christos Exp $
1.1       misho    9655: # ibm6000:  file(1) magic for RS/6000 and the RT PC.
                   9656: #
                   9657: 0      beshort         0x01df          executable (RISC System/6000 V3.1) or obj module
                   9658: >12    belong          >0              not stripped
                   9659: # Breaks sun4 statically linked execs.
                   9660: #0      beshort                0x0103          executable (RT Version 2) or obj module
                   9661: #>2    byte            0x50            pure
                   9662: #>28   belong          >0              not stripped
                   9663: #>6    beshort         >0              - version %ld
                   9664: 0      beshort         0x0104          shared library
                   9665: 0      beshort         0x0105          ctab data
                   9666: 0      beshort         0xfe04          structured file
                   9667: 0      string          0xabcdef        AIX message catalog
                   9668: 0      belong          0x000001f9      AIX compiled message catalog
                   9669: 0      string          \<aiaff>        archive
                   9670: 0      string          \<bigaf>        archive (big format)
                   9671: 
1.1.1.3   misho    9672: 0      beshort         0x01f7          64-bit XCOFF executable or object module
                   9673: >20    belong          0               not stripped
                   9674: 4      belong          &0x0feeddb0     AIX core file
                   9675: >1     byte            &0x01           fulldump
                   9676: >7     byte            &0x01           32-bit
                   9677: >>0x6e0 string         >\0             \b, %s
                   9678: >7     byte            &0x02           64-bit
                   9679: >>0x524 string         >\0             \b, %s
1.1       misho    9680: 
                   9681: #------------------------------------------------------------------------------
1.1.1.3   misho    9682: # $File: icc,v 1.1 2013/01/08 01:43:18 christos Exp $
                   9683: # icc:  file(1) magic for International Color Consortium file formats
                   9684: 
                   9685: #
                   9686: # Color profiles as per the ICC's "Image technology colour management -
                   9687: # Architecture, profile format, and data structure" specification.
                   9688: # See
                   9689: #
                   9690: #      http://www.color.org/specification/ICC1v43_2010-12.pdf
                   9691: #
                   9692: # for Specification ICC.1:2010 (Profile version 4.3.0.0).
                   9693: #
                   9694: # Bytes 36 to 39 contain a generic profile file signature of "acsp";
                   9695: # bytes 40 to 43 "may be used to identify the primary platform/operating
                   9696: # system framework for which the profile was created".
                   9697: #
                   9698: # There are other fields that might be worth dumping as well.
                   9699: #
                   9700: 
                   9701: # This appears to be what's used for Apple ColorSync profiles.
                   9702: # Instead of adding that, Apple just changed the generic "acsp" entry
                   9703: # to be for "ColorSync ICC Color Profile" rather than "Kodak Color
                   9704: # Management System, ICC Profile".
                   9705: # Yes, it's "APPL", not "AAPL"; see the spec.
                   9706: 36     string          acspAPPL        ColorSync ICC Profile
                   9707: !:mime application/vnd.iccprofile
                   9708: 
                   9709: # Microsoft ICM color profile
                   9710: 36     string          acspMSFT        Microsoft ICM Color Profile
                   9711: !:mime application/vnd.iccprofile
                   9712: 
                   9713: # Yes, that's a blank after "SGI".
                   9714: 36     string          acspSGI\        SGI ICC Profile
                   9715: !:mime application/vnd.iccprofile
                   9716: 
                   9717: # XXX - is this what's used for the Sun KCMS or not?  The standard file
                   9718: # uses just "acsp" for that, but Apple's file uses it for "ColorSync",
                   9719: # and there *is* an identified "primary platform" value of SUNW.
                   9720: 36     string          acspSUNW        Sun KCMS ICC Profile
                   9721: !:mime application/vnd.iccprofile
                   9722: 
                   9723: # Any other profile.
                   9724: # XXX - should we use "acsp\0\0\0\0" for "no primary platform" profiles,
                   9725: # and use "acsp" for everything else and dump the "primary platform"
                   9726: # string in those cases?
                   9727: 36     string          acsp            ICC Profile
                   9728: !:mime application/vnd.iccprofile
                   9729: 
                   9730: 
                   9731: 
                   9732: #------------------------------------------------------------------------------
                   9733: # $File: iff,v 1.13 2011/09/06 11:00:06 christos Exp $
1.1       misho    9734: # iff: file(1) magic for Interchange File Format (see also "audio" & "images")
                   9735: #
                   9736: # Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
                   9737: # Arts for file interchange.  It has also been used by Apple, SGI, and
                   9738: # especially Commodore-Amiga.
                   9739: #
                   9740: # IFF files begin with an 8 byte FORM header, followed by a 4 character
                   9741: # FORM type, which is followed by the first chunk in the FORM.
                   9742: 
                   9743: 0      string          FORM            IFF data
                   9744: #>4    belong          x               \b, FORM is %d bytes long
                   9745: # audio formats
                   9746: >8     string          AIFF            \b, AIFF audio
                   9747: !:mime audio/x-aiff
                   9748: >8     string          AIFC            \b, AIFF-C compressed audio
                   9749: !:mime audio/x-aiff
                   9750: >8     string          8SVX            \b, 8SVX 8-bit sampled sound voice
                   9751: !:mime audio/x-aiff
                   9752: >8     string          16SV            \b, 16SV 16-bit sampled sound voice
                   9753: >8     string          SAMP            \b, SAMP sampled audio
                   9754: >8     string          MAUD            \b, MAUD MacroSystem audio
                   9755: >8     string          SMUS            \b, SMUS simple music
                   9756: >8     string          CMUS            \b, CMUS complex music
                   9757: # image formats
                   9758: >8     string          ILBMBMHD        \b, ILBM interleaved image
                   9759: >>20   beshort         x               \b, %d x
                   9760: >>22   beshort         x               %d
                   9761: >8     string          RGBN            \b, RGBN 12-bit RGB image
                   9762: >8     string          RGB8            \b, RGB8 24-bit RGB image
                   9763: >8     string          DEEP            \b, DEEP TVPaint/XiPaint image
                   9764: >8     string          DR2D            \b, DR2D 2-D object
                   9765: >8     string          TDDD            \b, TDDD 3-D rendering
                   9766: >8     string          LWOB            \b, LWOB 3-D object
                   9767: >8     string          LWO2            \b, LWO2 3-D object, v2
                   9768: >8     string          LWLO            \b, LWLO 3-D layered object
                   9769: >8     string          REAL            \b, REAL Real3D rendering
                   9770: >8     string          MC4D            \b, MC4D MaxonCinema4D rendering
                   9771: >8     string          ANIM            \b, ANIM animation
                   9772: >8     string          YAFA            \b, YAFA animation
                   9773: >8     string          SSA\            \b, SSA super smooth animation
                   9774: >8     string          ACBM            \b, ACBM continuous image
                   9775: >8     string          FAXX            \b, FAXX fax image
                   9776: # other formats
                   9777: >8     string          FTXT            \b, FTXT formatted text
                   9778: >8     string          CTLG            \b, CTLG message catalog
                   9779: >8     string          PREF            \b, PREF preferences
                   9780: >8     string          DTYP            \b, DTYP datatype description
                   9781: >8     string          PTCH            \b, PTCH binary patch
                   9782: >8     string          AMFF            \b, AMFF AmigaMetaFile format
                   9783: >8     string          WZRD            \b, WZRD StormWIZARD resource
                   9784: >8     string          DOC\            \b, DOC desktop publishing document
1.1.1.3   misho    9785: >8     string          WVQA            \b, Westwood Studios VQA Multimedia,
                   9786: >>24   leshort         x               %d video frames,
                   9787: >>26   leshort         x               %d x
                   9788: >>28   leshort         x               %d
                   9789: >8     string          MOVE            \b, Wing Commander III Video
                   9790: >>12   string          _PC_            \b, PC version
                   9791: >>12   string          3DO_            \b, 3DO version
1.1       misho    9792: 
                   9793: # These go at the end of the iff rules
                   9794: #
                   9795: # I don't see why these might collide with anything else.
                   9796: #
                   9797: # Interactive Fiction related formats
                   9798: #
                   9799: >8     string          IFRS            \b, Blorb Interactive Fiction
                   9800: >>24   string          Exec            with executable chunk
                   9801: >8     string          IFZS            \b, Z-machine or Glulx saved game file (Quetzal)
1.1.1.2   misho    9802: 
1.1       misho    9803: #------------------------------------------------------------------------------
1.1.1.3   misho    9804: # $File: images,v 1.81 2013/03/09 22:36:00 christos Exp $
1.1       misho    9805: # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
                   9806: # XPM bitmaps)
                   9807: #
                   9808: # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
                   9809: # additions by janl@ifi.uio.no as well as others. Jan also suggested
                   9810: # merging several one- and two-line files into here.
                   9811: #
                   9812: # little magic: PCX (first byte is 0x0a)
                   9813: 
                   9814: # Targa - matches `povray', `ppmtotga' and `xv' outputs
                   9815: # by Philippe De Muyter <phdm@macqel.be>
                   9816: # at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
                   9817: # at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
                   9818: # at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
                   9819: # `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
                   9820: # `tgatoppm' recognizes a superset (Index may be anything)
                   9821: 1      belong&0xfff7ffff       0x01010000      Targa image data - Map
                   9822: >2     byte&8                  8               - RLE
                   9823: >12    leshort                 >0              %hd x
                   9824: >14    leshort                 >0              %hd
                   9825: 1      belong&0xfff7ffff       0x00020000      Targa image data - RGB
                   9826: >2     byte&8                  8               - RLE
                   9827: >12    leshort                 >0              %hd x
                   9828: >14    leshort                 >0              %hd
                   9829: 1      belong&0xfff7ffff       0x00030000      Targa image data - Mono
                   9830: >2     byte&8                  8               - RLE
                   9831: >12    leshort                 >0              %hd x
                   9832: >14    leshort                 >0              %hd
                   9833: 
                   9834: # PBMPLUS images
                   9835: # The next byte following the magic is always whitespace.
1.1.1.3   misho    9836: # strength is changed to try these patterns before "x86 boot sector"
                   9837: 0      search/1        P1              
                   9838: >3     regex           =[0-9]*\ [0-9]*         Netpbm PBM image text
                   9839: >3     regex           =[0-9]+\                \b, size = %sx
                   9840: >>3    regex           =\ [0-9]+       \b%s
                   9841: !:strength + 45
1.1       misho    9842: !:mime image/x-portable-bitmap
1.1.1.3   misho    9843: 0      search/1        P2              
                   9844: >3     regex           =[0-9]*\ [0-9]*         Netpbm PGM image text
                   9845: >3     regex           =[0-9]+\                \b, size = %sx
                   9846: >>3    regex           =\ [0-9]+       \b%s
                   9847: !:strength + 45
1.1       misho    9848: !:mime image/x-portable-greymap
                   9849: 0      search/1        P3              Netpbm PPM image text
1.1.1.3   misho    9850: >3     regex           =[0-9]*\ [0-9]*         Netpbm PPM image text
                   9851: >3     regex           =[0-9]+\                \b, size = %sx
                   9852: >>3    regex           =\ [0-9]+       \b%s
                   9853: !:strength + 45
1.1       misho    9854: !:mime image/x-portable-pixmap
1.1.1.3   misho    9855: 0      string          P4              
                   9856: >3     regex           =[0-9]*\ [0-9]*         Netpbm PBM "rawbits" image data
                   9857: >3     regex           =[0-9]+\                \b, size = %sx
                   9858: >>3    regex           =\ [0-9]+       \b%s
                   9859: !:strength + 45
1.1       misho    9860: !:mime image/x-portable-bitmap
1.1.1.3   misho    9861: 0      string          P5              
                   9862: >3     regex           =[0-9]*\ [0-9]*         Netpbm PGM "rawbits" image data
                   9863: >3     regex           =[0-9]+\                \b, size = %sx
                   9864: >>3    regex           =\ [0-9]+       \b%s
                   9865: !:strength + 45
1.1       misho    9866: !:mime image/x-portable-greymap
1.1.1.3   misho    9867: 0      string          P6              
                   9868: >3     regex           =[0-9]*\ [0-9]*         Netpbm PPM "rawbits" image data
                   9869: >3     regex           =[0-9]+\                \b, size = %sx
                   9870: >>3    regex           =\ [0-9]+       \b%s
                   9871: !:strength + 45
1.1       misho    9872: !:mime image/x-portable-pixmap
                   9873: 0      string          P7              Netpbm PAM image file
                   9874: !:mime image/x-portable-pixmap
                   9875: 
                   9876: # From: bryanh@giraffe-data.com (Bryan Henderson)
                   9877: 0      string          \117\072        Solitaire Image Recorder format
                   9878: >4     string          \013            MGI Type 11
                   9879: >4     string          \021            MGI Type 17
                   9880: 0      string          .MDA            MicroDesign data
                   9881: >21    byte            48              version 2
                   9882: >21    byte            51              version 3
                   9883: 0      string          .MDP            MicroDesign page data
                   9884: >21    byte            48              version 2
                   9885: >21    byte            51              version 3
                   9886: 
                   9887: # NIFF (Navy Interchange File Format, a modification of TIFF) images
                   9888: # [GRR:  this *must* go before TIFF]
                   9889: 0      string          IIN1            NIFF image data
                   9890: !:mime image/x-niff
                   9891: 
1.1.1.2   misho    9892: # Canon RAW version 1 (CRW) files are a type of Canon Image File Format
                   9893: # (CIFF) file. These are apparently all little-endian.
                   9894: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   9895: # URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
                   9896: 0      string          II\x1a\0\0\0HEAPCCDR    Canon CIFF raw image data
                   9897: !:mime image/x-canon-crw
                   9898: >16    leshort         x       \b, version %d.
                   9899: >14    leshort         x       \b%d
                   9900: 
                   9901: # Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
                   9902: # number. Put this above the TIFF test to make sure we detect them.
                   9903: # These are apparently all little-endian.
                   9904: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   9905: # URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
                   9906: 0      string          II\x2a\0\x10\0\0\0CR    Canon CR2 raw image data
                   9907: !:mime image/x-canon-cr2
                   9908: >10    byte            x       \b, version %d.
                   9909: >11    byte            x       \b%d
                   9910: 
1.1       misho    9911: # Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
                   9912: # The second word of TIFF files is the TIFF version number, 42, which has
                   9913: # never changed.  The TIFF specification recommends testing for it.
                   9914: 0      string          MM\x00\x2a      TIFF image data, big-endian
                   9915: !:mime image/tiff
                   9916: 0      string          II\x2a\x00      TIFF image data, little-endian
                   9917: !:mime image/tiff
                   9918: 
1.1.1.3   misho    9919: 0      string          MM\x00\x2b      Big TIFF image data, big-endian
                   9920: !:mime image/tiff
                   9921: 0      string          II\x2b\x00      Big TIFF image data, little-endian
                   9922: !:mime image/tiff
                   9923: 
1.1       misho    9924: # PNG [Portable Network Graphics, or "PNG's Not GIF"] images
                   9925: # (Greg Roelofs, newt@uchicago.edu)
                   9926: # (Albert Cahalan, acahalan@cs.uml.edu)
                   9927: #
                   9928: # 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
                   9929: #
1.1.1.2   misho    9930: 0      string          \x89PNG\x0d\x0a\x1a\x0a         PNG image data
1.1       misho    9931: !:mime image/png
                   9932: >16    belong          x               \b, %ld x
                   9933: >20    belong          x               %ld,
                   9934: >24    byte            x               %d-bit
                   9935: >25    byte            0               grayscale,
                   9936: >25    byte            2               \b/color RGB,
                   9937: >25    byte            3               colormap,
                   9938: >25    byte            4               gray+alpha,
                   9939: >25    byte            6               \b/color RGBA,
                   9940: #>26   byte            0               deflate/32K,
                   9941: >28    byte            0               non-interlaced
                   9942: >28    byte            1               interlaced
                   9943: 
                   9944: # possible GIF replacements; none yet released!
                   9945: # (Greg Roelofs, newt@uchicago.edu)
                   9946: #
                   9947: # GRR 950115:  this was mine ("Zip GIF"):
                   9948: 0      string          GIF94z          ZIF image (GIF+deflate alpha)
                   9949: !:mime image/x-unknown
                   9950: #
                   9951: # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
                   9952: #                                      
                   9953: 0      string          FGF95a          FGF image (GIF+deflate beta)
                   9954: !:mime image/x-unknown
                   9955: #
                   9956: # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
                   9957: # (best; not yet implemented):
                   9958: #                                      
                   9959: 0      string          PBF             PBF image (deflate compression)
                   9960: !:mime image/x-unknown
                   9961: 
                   9962: # GIF
                   9963: 0      string          GIF8            GIF image data
                   9964: !:mime image/gif
1.1.1.2   misho    9965: !:apple        8BIMGIFf
1.1       misho    9966: >4     string          7a              \b, version 8%s,
                   9967: >4     string          9a              \b, version 8%s,
                   9968: >6     leshort         >0              %hd x
                   9969: >8     leshort         >0              %hd
                   9970: #>10   byte            &0x80           color mapped,
                   9971: #>10   byte&0x07       =0x00           2 colors
                   9972: #>10   byte&0x07       =0x01           4 colors
                   9973: #>10   byte&0x07       =0x02           8 colors
                   9974: #>10   byte&0x07       =0x03           16 colors
                   9975: #>10   byte&0x07       =0x04           32 colors
                   9976: #>10   byte&0x07       =0x05           64 colors
                   9977: #>10   byte&0x07       =0x06           128 colors
                   9978: #>10   byte&0x07       =0x07           256 colors
                   9979: 
                   9980: # ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
                   9981: # 1 plane, no encoding.
                   9982: 0      string          \361\0\100\273  CMU window manager raster image data
                   9983: >4     lelong          >0              %d x
                   9984: >8     lelong          >0              %d,
                   9985: >12    lelong          >0              %d-bit
                   9986: 
                   9987: # Magick Image File Format
                   9988: 0      string          id=ImageMagick  MIFF image data
                   9989: 
                   9990: # Artisan
                   9991: 0      long            1123028772      Artisan image data
                   9992: >4     long            1               \b, rectangular 24-bit
                   9993: >4     long            2               \b, rectangular 8-bit with colormap
                   9994: >4     long            3               \b, rectangular 32-bit (24-bit with matte)
                   9995: 
                   9996: # FIG (Facility for Interactive Generation of figures), an object-based format
                   9997: 0      search/1        #FIG            FIG image text
                   9998: >5     string          x               \b, version %.3s
                   9999: 
                   10000: # PHIGS
                   10001: 0      string          ARF_BEGARF              PHIGS clear text archive
                   10002: 0      string          @(#)SunPHIGS            SunPHIGS
                   10003: # version number follows, in the form m.n
                   10004: >40    string          SunBin                  binary
                   10005: >32    string          archive                 archive
                   10006: 
                   10007: # GKS (Graphics Kernel System)
                   10008: 0      string          GKSM            GKS Metafile
                   10009: >24    string          SunGKS          \b, SunGKS
                   10010: 
                   10011: # CGM image files
                   10012: 0      string          BEGMF           clear text Computer Graphics Metafile
                   10013: 
                   10014: # MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
                   10015: 0      string  yz      MGR bitmap, modern format, 8-bit aligned
                   10016: 0      string  zz      MGR bitmap, old format, 1-bit deep, 16-bit aligned
                   10017: 0      string  xz      MGR bitmap, old format, 1-bit deep, 32-bit aligned
                   10018: 0      string  yx      MGR bitmap, modern format, squeezed
                   10019: 
                   10020: # Fuzzy Bitmap (FBM) images
                   10021: 0      string          %bitmap\0       FBM image data
                   10022: >30    long            0x31            \b, mono
                   10023: >30    long            0x33            \b, color
                   10024: 
                   10025: # facsimile data
                   10026: 1      string          PC\ Research,\ Inc      group 3 fax data
                   10027: >29    byte            0               \b, normal resolution (204x98 DPI)
                   10028: >29    byte            1               \b, fine resolution (204x196 DPI)
                   10029: # From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
                   10030: 0      string          Sfff            structured fax file
                   10031: 
1.1.1.3   misho    10032: # From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
                   10033: # most files with the extension .EPA and some with .BMP
                   10034: 0      string          \x11\x06        Award BIOS Logo, 136 x 84
                   10035: !:mime image/x-award-bioslogo
                   10036: 0      string          \x11\x09        Award BIOS Logo, 136 x 126
                   10037: !:mime image/x-award-bioslogo
                   10038: #0     string          \x07\x1f        BIOS Logo corrupted?
                   10039: # http://www.blackfiveservices.co.uk/awbmtools.shtml
                   10040: # http://biosgfx.narod.ru/v3/
                   10041: # http://biosgfx.narod.ru/abr-2/
                   10042: 0      string          AWBM            
                   10043: >4     leshort         <1981           Award BIOS bitmap
                   10044: !:mime image/x-award-bmp
                   10045: # image width is a multiple of 4
                   10046: >>4    leshort&0x0003  0               
                   10047: >>>4           leshort x               \b, %d
                   10048: >>>6           leshort x               x %d
                   10049: >>4    leshort&0x0003  >0              \b,
                   10050: >>>4   leshort&0x0003  =1              
                   10051: >>>>4          leshort x               %d+3
                   10052: >>>4   leshort&0x0003  =2              
                   10053: >>>>4          leshort x               %d+2
                   10054: >>>4   leshort&0x0003  =3              
                   10055: >>>>4          leshort x               %d+1
                   10056: >>>6           leshort x               x %d
                   10057: # at offset 8 starts imagedata followed by "RGB " marker
1.1       misho    10058: 
                   10059: # PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
                   10060: 0      string          BM
                   10061: >14    leshort         12              PC bitmap, OS/2 1.x format
                   10062: !:mime image/x-ms-bmp
                   10063: >>18   leshort         x               \b, %d x
                   10064: >>20   leshort         x               %d
                   10065: >14    leshort         64              PC bitmap, OS/2 2.x format
                   10066: !:mime image/x-ms-bmp
                   10067: >>18   leshort         x               \b, %d x
                   10068: >>20   leshort         x               %d
                   10069: >14    leshort         40              PC bitmap, Windows 3.x format
                   10070: !:mime image/x-ms-bmp
                   10071: >>18   lelong          x               \b, %d x
                   10072: >>22   lelong          x               %d x
                   10073: >>28   leshort         x               %d
                   10074: >14    leshort         128             PC bitmap, Windows NT/2000 format
                   10075: !:mime image/x-ms-bmp
                   10076: >>18   lelong          x               \b, %d x
                   10077: >>22   lelong          x               %d x
                   10078: >>28   leshort         x               %d
                   10079: # Too simple - MPi
                   10080: #0     string          IC              PC icon data
                   10081: #0     string          PI              PC pointer image data
                   10082: #0     string          CI              PC color icon data
                   10083: #0     string          CP              PC color pointer image data
                   10084: # Conflicts with other entries [BABYL]
                   10085: #0     string          BA              PC bitmap array data
                   10086: 
                   10087: # XPM icons (Greg Roelofs, newt@uchicago.edu)
                   10088: 0      search/1        /*\ XPM\ */     X pixmap image text
1.1.1.3   misho    10089: !:mime image/x-xpmi
1.1       misho    10090: 
                   10091: # Utah Raster Toolkit RLE images (janl@ifi.uio.no)
                   10092: 0      leshort         0xcc52          RLE image data,
                   10093: >6     leshort         x               %d x
                   10094: >8     leshort         x               %d
                   10095: >2     leshort         >0              \b, lower left corner: %d
                   10096: >4     leshort         >0              \b, lower right corner: %d
                   10097: >10    byte&0x1        =0x1            \b, clear first
                   10098: >10    byte&0x2        =0x2            \b, no background
                   10099: >10    byte&0x4        =0x4            \b, alpha channel
                   10100: >10    byte&0x8        =0x8            \b, comment
                   10101: >11    byte            >0              \b, %d color channels
                   10102: >12    byte            >0              \b, %d bits per pixel
                   10103: >13    byte            >0              \b, %d color map channels
                   10104: 
                   10105: # image file format (Robert Potter, potter@cs.rochester.edu)
                   10106: 0      string          Imagefile\ version-     iff image data
                   10107: # this adds the whole header (inc. version number), informative but longish
                   10108: >10    string          >\0             %s
                   10109: 
                   10110: # Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
                   10111: 0      belong          0x59a66a95      Sun raster image data
                   10112: >4     belong          >0              \b, %d x
                   10113: >8     belong          >0              %d,
                   10114: >12    belong          >0              %d-bit,
                   10115: #>16   belong          >0              %d bytes long,
                   10116: >20    belong          0               old format,
                   10117: #>20   belong          1               standard,
                   10118: >20    belong          2               compressed,
                   10119: >20    belong          3               RGB,
                   10120: >20    belong          4               TIFF,
                   10121: >20    belong          5               IFF,
                   10122: >20    belong          0xffff          reserved for testing,
                   10123: >24    belong          0               no colormap
                   10124: >24    belong          1               RGB colormap
                   10125: >24    belong          2               raw colormap
                   10126: #>28   belong          >0              colormap is %d bytes long
                   10127: 
                   10128: # SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
                   10129: #
                   10130: # See
                   10131: #      http://reality.sgi.com/grafica/sgiimage.html
                   10132: #
                   10133: 0      beshort         474             SGI image data
                   10134: #>2    byte            0               \b, verbatim
                   10135: >2     byte            1               \b, RLE
                   10136: #>3    byte            1               \b, normal precision
                   10137: >3     byte            2               \b, high precision
                   10138: >4     beshort         x               \b, %d-D
                   10139: >6     beshort         x               \b, %d x
                   10140: >8     beshort         x               %d
                   10141: >10    beshort         x               \b, %d channel
                   10142: >10    beshort         !1              \bs
                   10143: >80    string          >0              \b, "%s"
                   10144: 
                   10145: 0      string          IT01            FIT image data
                   10146: >4     belong          x               \b, %d x
                   10147: >8     belong          x               %d x
                   10148: >12    belong          x               %d
                   10149: #
                   10150: 0      string          IT02            FIT image data
                   10151: >4     belong          x               \b, %d x
                   10152: >8     belong          x               %d x
                   10153: >12    belong          x               %d
                   10154: #
                   10155: 2048   string          PCD_IPI         Kodak Photo CD image pack file
                   10156: >0xe02 byte&0x03       0x00            , landscape mode
                   10157: >0xe02 byte&0x03       0x01            , portrait mode
                   10158: >0xe02 byte&0x03       0x02            , landscape mode
                   10159: >0xe02 byte&0x03       0x03            , portrait mode
                   10160: 0      string          PCD_OPA         Kodak Photo CD overview pack file
                   10161: 
                   10162: # FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
                   10163: # FITS is the Flexible Image Transport System, the de facto standard for
                   10164: # data and image transfer, storage, etc., for the astronomical community.
                   10165: # (FITS floating point formats are big-endian.)
                   10166: 0      string  SIMPLE\ \ =     FITS image data
                   10167: >109   string  8               \b, 8-bit, character or unsigned binary integer
                   10168: >108   string  16              \b, 16-bit, two's complement binary integer
                   10169: >107   string  \ 32            \b, 32-bit, two's complement binary integer
                   10170: >107   string  -32             \b, 32-bit, floating point, single precision
                   10171: >107   string  -64             \b, 64-bit, floating point, double precision
                   10172: 
                   10173: # other images
                   10174: 0      string  This\ is\ a\ BitMap\ file       Lisp Machine bit-array-file
                   10175: 
                   10176: # From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
                   10177: # stuff.
                   10178: #
                   10179: 0      beshort         0x1010          PEX Binary Archive
                   10180: 
                   10181: # DICOM medical imaging data
                   10182: 128    string  DICM                    DICOM medical imaging data
                   10183: !:mime application/dicom
                   10184: 
                   10185: # XWD - X Window Dump file.
                   10186: #   As described in /usr/X11R6/include/X11/XWDFile.h
                   10187: #   used by the xwd program.
                   10188: #   Bradford Castalia, idaeim, 1/01
1.1.1.2   misho    10189: #   updated by Adam Buchbinder, 2/09
                   10190: # The following assumes version 7 of the format; the first long is the length
                   10191: # of the header, which is at least 25 4-byte longs, and the one at offset 8
                   10192: # is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
                   10193: # which is a maximum of 32.
                   10194: 0      belong  >100
                   10195: >8     belong  <3
                   10196: >>12   belong  <33
                   10197: >>>4   belong  7                       XWD X Window Dump image data
                   10198: !:mime image/x-xwindowdump
                   10199: >>>>100        string  >\0                     \b, "%s"
                   10200: >>>>16 belong  x                       \b, %dx
                   10201: >>>>20 belong  x                       \b%dx
                   10202: >>>>12 belong  x                       \b%d
1.1       misho    10203: 
                   10204: # PDS - Planetary Data System
                   10205: #   These files use Parameter Value Language in the header section.
                   10206: #   Unfortunately, there is no certain magic, but the following
                   10207: #   strings have been found to be most likely.
                   10208: 0      string  NJPL1I00                PDS (JPL) image data
                   10209: 2      string  NJPL1I                  PDS (JPL) image data
                   10210: 0      string  CCSD3ZF                 PDS (CCSD) image data
                   10211: 2      string  CCSD3Z                  PDS (CCSD) image data
                   10212: 0      string  PDS_                    PDS image data
                   10213: 0      string  LBLSIZE=                PDS (VICAR) image data
                   10214: 
                   10215: # pM8x: ATARI STAD compressed bitmap format
                   10216: #
                   10217: # from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
                   10218: # p M 8 5/6 xx yy zz data...
                   10219: # Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
                   10220: # bytes either run horizontally (pM85) or vertically (pM86). yy is the
                   10221: # most frequent byte, xx and zz are runlength escape codes, where xx is
                   10222: # used for runs of yy.
                   10223: #
                   10224: 0      string  pM85            Atari ST STAD bitmap image data (hor)
                   10225: >5     byte    0x00            (white background)
                   10226: >5     byte    0xFF            (black background)
                   10227: 0      string  pM86            Atari ST STAD bitmap image data (vert)
                   10228: >5     byte    0x00            (white background)
                   10229: >5     byte    0xFF            (black background)
                   10230: 
1.1.1.3   misho    10231: # Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
1.1       misho    10232: # http://www.atarimax.com/jindroush.atari.org/afmtatr.html
                   10233: 0      leshort 0x0296          Atari ATR image
                   10234: 
                   10235: # XXX:
                   10236: # This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
                   10237: # magic.
                   10238: # SGI RICE image file <mpruett@sgi.com>
                   10239: #0     beshort 0x5249          RICE image
                   10240: #>2    beshort x               v%d
                   10241: #>4    beshort x               (%d x
                   10242: #>6    beshort x               %d)
                   10243: #>8    beshort 0               8 bit
                   10244: #>8    beshort 1               10 bit
                   10245: #>8    beshort 2               12 bit
                   10246: #>8    beshort 3               13 bit
                   10247: #>10   beshort 0               4:2:2
                   10248: #>10   beshort 1               4:2:2:4
                   10249: #>10   beshort 2               4:4:4
                   10250: #>10   beshort 3               4:4:4:4
                   10251: #>12   beshort 1               RGB
                   10252: #>12   beshort 2               CCIR601
                   10253: #>12   beshort 3               RP175
                   10254: #>12   beshort 4               YUV
                   10255: 
                   10256: # PCX image files
                   10257: # From: Dan Fandrich <dan@coneharvesters.com>
1.1.1.3   misho    10258: # updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
                   10259: # http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
                   10260: # GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
                   10261: # test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT
                   10262: 0      ubelong&0xffF8fe00      0x0a000000      
                   10263: # for PCX bit depth > 0 
                   10264: >3     ubyte           >0      
                   10265: # test for valid versions
                   10266: >>1    ubyte           <6      
                   10267: >>>1   ubyte           !1      PCX
                   10268: !:mime image/x-pcx
                   10269: #!:mime        image/pcx
                   10270: >>>>1  ubyte           0       ver. 2.5 image data
                   10271: >>>>1  ubyte           2       ver. 2.8 image data, with palette
                   10272: >>>>1  ubyte           3       ver. 2.8 image data, without palette
                   10273: >>>>1  ubyte           4       for Windows image data
                   10274: >>>>1  ubyte           5       ver. 3.0 image data
                   10275: >>>>4  uleshort        x       bounding box [%hd,
                   10276: >>>>6  uleshort        x       %d] -
                   10277: >>>>8  uleshort        x       [%d,
                   10278: >>>>10 uleshort        x       %d],
                   10279: >>>>65 ubyte           >1      %d planes each of
                   10280: >>>>3  ubyte           x       %d-bit
                   10281: >>>>68 byte            1       colour,
                   10282: >>>>68 byte            2       grayscale,
                   10283: # this should not happen
                   10284: >>>>68 default         x       image,
                   10285: >>>>12 leshort         >0      %d x
                   10286: >>>>>14        uleshort        x       %d dpi,
                   10287: >>>>2  byte            0       uncompressed
                   10288: >>>>2  byte            1       RLE compressed
1.1       misho    10289: 
                   10290: # Adobe Photoshop
1.1.1.2   misho    10291: # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
1.1       misho    10292: 0      string          8BPS Adobe Photoshop Image
                   10293: !:mime image/vnd.adobe.photoshop
1.1.1.2   misho    10294: >4   beshort 2 (PSB)
                   10295: >18  belong  x \b, %d x
                   10296: >14  belong  x %d,
                   10297: >24  beshort 0 bitmap
                   10298: >24  beshort 1 grayscale
                   10299: >>12 beshort 2 with alpha
                   10300: >24  beshort 2 indexed
                   10301: >24  beshort 3 RGB
                   10302: >>12 beshort 4 \bA
                   10303: >24  beshort 4 CMYK
                   10304: >>12 beshort 5 \bA
                   10305: >24  beshort 7 multichannel
                   10306: >24  beshort 8 duotone
                   10307: >24  beshort 9 lab
                   10308: >12  beshort > 1
                   10309: >>12  beshort x \b, %dx
                   10310: >12  beshort 1 \b,
                   10311: >22  beshort x %d-bit channel
                   10312: >12  beshort > 1 \bs
1.1       misho    10313: 
                   10314: # XV thumbnail indicator (ThMO)
                   10315: 0      string          P7\ 332         XV thumbnail image data
                   10316: 
                   10317: # NITF is defined by United States MIL-STD-2500A
                   10318: 0      string  NITF    National Imagery Transmission Format
                   10319: >25    string  >\0     dated %.14s
                   10320: 
                   10321: # GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
                   10322: 0      belong          0x00010008      GEM Image data
                   10323: >12    beshort         x               %d x
                   10324: >14    beshort         x               %d,
                   10325: >4     beshort         x               %d planes,
                   10326: >8     beshort         x               %d x
                   10327: >10    beshort         x               %d pixelsize
                   10328: 
                   10329: # GEM Metafile (Wolfram Kleff)
                   10330: 0      lelong          0x0018FFFF      GEM Metafile data
                   10331: >4     leshort         x               version %d
                   10332: 
                   10333: #
                   10334: # SMJPEG. A custom Motion JPEG format used by Loki Entertainment
                   10335: # Software Torbjorn Andersson <d91tan@Update.UU.SE>.
                   10336: #
                   10337: 0      string  \0\nSMJPEG      SMJPEG
                   10338: >8     belong  x               %d.x data
                   10339: # According to the specification you could find any number of _TXT
                   10340: # headers here, but I can't think of any way of handling that. None of
                   10341: # the SMJPEG files I tried it on used this feature. Even if such a
                   10342: # file is encountered the output should still be reasonable.
                   10343: >16    string  _SND            \b,
                   10344: >>24   beshort >0              %d Hz
                   10345: >>26   byte    8               8-bit
                   10346: >>26   byte    16              16-bit
                   10347: >>28   string  NONE            uncompressed
                   10348: # >>28 string  APCM            ADPCM compressed
                   10349: >>27   byte    1               mono
                   10350: >>28   byte    2               stereo
                   10351: # Help! Isn't there any way to avoid writing this part twice?
                   10352: >>32   string  _VID            \b,
                   10353: # >>>48        string  JFIF            JPEG
                   10354: >>>40  belong  >0              %d frames
                   10355: >>>44  beshort >0              (%d x
                   10356: >>>46  beshort >0              %d)
                   10357: >16    string  _VID            \b,
                   10358: # >>32 string  JFIF            JPEG
                   10359: >>24   belong  >0              %d frames
                   10360: >>28   beshort >0              (%d x
                   10361: >>30   beshort >0              %d)
                   10362: 
                   10363: 0      string  Paint\ Shop\ Pro\ Image\ File   Paint Shop Pro Image File
                   10364: 
                   10365: # "thumbnail file" (icon)
                   10366: # descended from "xv", but in use by other applications as well (Wolfram Kleff)
                   10367: 0       string          P7\ 332         XV "thumbnail file" (icon) data
                   10368: 
                   10369: # taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
                   10370: 0       string          KiSS            KISS/GS
                   10371: >4      byte            16              color
                   10372: >>5     byte            x               %d bit
                   10373: >>8     leshort         x               %d colors
                   10374: >>10    leshort         x               %d groups
                   10375: >4      byte            32              cell
                   10376: >>5     byte            x               %d bit
                   10377: >>8     leshort         x               %d x
                   10378: >>10    leshort         x               %d
                   10379: >>12    leshort         x               +%d
                   10380: >>14    leshort         x               +%d
                   10381: 
                   10382: # Webshots (www.webshots.com), by John Harrison
                   10383: 0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
                   10384: 
                   10385: # Hercules DASD image files
                   10386: # From Jan Jaeger <jj@septa.nl>
                   10387: 0       string  CKD_P370        Hercules CKD DASD image file
                   10388: >8      long    x               \b, %d heads per cylinder
                   10389: >12     long    x               \b, track size %d bytes
                   10390: >16     byte    x               \b, device type 33%2.2X
                   10391: 
                   10392: 0       string  CKD_C370        Hercules compressed CKD DASD image file
                   10393: >8      long    x               \b, %d heads per cylinder
                   10394: >12     long    x               \b, track size %d bytes
                   10395: >16     byte    x               \b, device type 33%2.2X
                   10396: 
                   10397: 0       string  CKD_S370        Hercules CKD DASD shadow file
                   10398: >8      long    x               \b, %d heads per cylinder
                   10399: >12     long    x               \b, track size %d bytes
                   10400: >16     byte    x               \b, device type 33%2.2X
                   10401: 
                   10402: # Squeak images and programs - etoffi@softhome.net
                   10403: 0      string          \146\031\0\0    Squeak image data
                   10404: 0      search/1        'From\040Squeak Squeak program text
                   10405: 
                   10406: # partimage: file(1) magic for PartImage files (experimental, incomplete)
                   10407: # Author: Hans-Joachim Baader <hjb@pro-linux.de>
                   10408: 0              string  PaRtImAgE-VoLuMe        PartImage
                   10409: >0x0020                string  0.6.1           file version %s
                   10410: >>0x0060       lelong  >-1             volume %ld
                   10411: #>>0x0064 8 byte identifier
                   10412: #>>0x007c reserved
                   10413: >>0x0200       string  >\0             type %s
                   10414: >>0x1400       string  >\0             device %s,
                   10415: >>0x1600       string  >\0             original filename %s,
                   10416: # Some fields omitted
                   10417: >>0x2744       lelong  0               not compressed
                   10418: >>0x2744       lelong  1               gzip compressed
                   10419: >>0x2744       lelong  2               bzip2 compressed
                   10420: >>0x2744       lelong  >2              compressed with unknown algorithm
                   10421: >0x0020                string  >0.6.1          file version %s
                   10422: >0x0020                string  <0.6.1          file version %s
                   10423: 
                   10424: # DCX is multi-page PCX, using a simple header of up to 1024
                   10425: # offsets for the respective PCX components.
                   10426: # From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
                   10427: 0      lelong  987654321       DCX multi-page PCX image data
                   10428: 
                   10429: # Simon Walton <simonw@matteworld.com>
                   10430: # Kodak Cineon format for scanned negatives
                   10431: # http://www.kodak.com/US/en/motion/support/dlad/
                   10432: 0      lelong  0xd75f2a80      Cineon image data
                   10433: >200   belong  >0              \b, %ld x
                   10434: >204   belong  >0              %ld
                   10435: 
                   10436: 
                   10437: # Bio-Rad .PIC is an image format used by microscope control systems
                   10438: # and related image processing software used by biologists.
                   10439: # From: Vebjorn Ljosa <vebjorn@ljosa.com>
1.1.1.2   misho    10440: # BOOL values are two-byte integers; use them to rule out false positives.
                   10441: # http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
                   10442: # Samples: http://www.loci.wisc.edu/software/sample-data
                   10443: 14     leshort <2
                   10444: >62    leshort <2
                   10445: >>54   leshort 12345           Bio-Rad .PIC Image File
                   10446: >>>0   leshort >0              %hd x
                   10447: >>>2   leshort >0              %hd,
                   10448: >>>4   leshort =1              1 image in file
                   10449: >>>4   leshort >1              %hd images in file
1.1       misho    10450: 
                   10451: # From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
                   10452: # The description of *.mrw format can be found at
                   10453: # http://www.dalibor.cz/minolta/raw_file_format.htm
                   10454: 0      string  \000MRM                 Minolta Dimage camera raw image data
                   10455: 
                   10456: # Summary: DjVu image / document
                   10457: # Extension: .djvu
                   10458: # Reference: http://djvu.org/docs/DjVu3Spec.djvu
                   10459: # Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
                   10460: # Modified by (1): Abel Cheung <abelcheung@gmail.com>
                   10461: 0      string  AT&TFORM
                   10462: >12    string  DJVM            DjVu multiple page document
1.1.1.2   misho    10463: !:mime image/vnd.djvu
1.1       misho    10464: >12    string  DJVU            DjVu image or single page document
1.1.1.2   misho    10465: !:mime image/vnd.djvu
1.1       misho    10466: >12    string  DJVI            DjVu shared document
1.1.1.2   misho    10467: !:mime image/vnd.djvu
1.1       misho    10468: >12    string  THUM            DjVu page thumbnails
1.1.1.2   misho    10469: !:mime image/vnd.djvu
1.1       misho    10470: 
1.1.1.3   misho    10471: # Originally by Marc Espie
                   10472: # Modified by Robert Minsk <robertminsk at yahoo.com>
                   10473: # http://www.openexr.com/openexrfilelayout.pdf
                   10474: 0      lelong          20000630        OpenEXR image data,
                   10475: !:mime image/x-exr
                   10476: >4     lelong&0x000000ff x             version %d,
                   10477: >4     lelong          ^0x00000200     storage: scanline
                   10478: >4     lelong          &0x00000200     storage: tiled
                   10479: >8     search/0x1000   compression\0   \b, compression:
                   10480: >>&16  byte            0               none
                   10481: >>&16  byte            1               rle
                   10482: >>&16  byte            2               zips
                   10483: >>&16  byte            3               zip
                   10484: >>&16  byte            4               piz
                   10485: >>&16  byte            5               pxr24
                   10486: >>&16  byte            6               b44
                   10487: >>&16  byte            7               b44a
                   10488: >>&16  byte            >7              unknown
                   10489: >8      search/0x1000  dataWindow\0    \b, dataWindow:
                   10490: >>&10  lelong          x               (%d
                   10491: >>&14  lelong          x               %d)-
                   10492: >>&18  lelong          x               \b(%d
                   10493: >>&22  lelong          x               %d)
                   10494: >8     search/0x1000   displayWindow\0 \b, displayWindow:
                   10495: >>&10  lelong          x               (%d
                   10496: >>&14  lelong          x               %d)-
                   10497: >>&18  lelong          x               \b(%d
                   10498: >>&22  lelong          x               %d)
                   10499: >8     search/0x1000   lineOrder\0      \b, lineOrder:
                   10500: >>&14  byte            0               increasing y
                   10501: >>&14  byte            1               decreasing y
                   10502: >>&14  byte            2               random y
                   10503: >>&14  byte            >2              unknown
                   10504: 
                   10505: # SMPTE Digital Picture Exchange Format, SMPTE DPX
                   10506: #
                   10507: # ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
                   10508: # Moving-Picture Exchange (DPX), v1.0, 18 February 1994
                   10509: # Robert Minsk <robertminsk at yahoo.com>
                   10510: 0      string          SDPX    DPX image data, big-endian,
                   10511: !:mime image/x-dpx
                   10512: >768   beshort         <4
                   10513: >>772  belong          x       %dx
                   10514: >>776  belong          x       \b%d,
                   10515: >768   beshort         >3
                   10516: >>776  belong          x       %dx
                   10517: >>772  belong          x       \b%d,
                   10518: >768   beshort         0       left to right/top to bottom
                   10519: >768   beshort         1       right to left/top to bottom
                   10520: >768   beshort         2       left to right/bottom to top
                   10521: >768   beshort         3       right to left/bottom to top
                   10522: >768   beshort         4       top to bottom/left to right
                   10523: >768   beshort         5       top to bottom/right to left
                   10524: >768   leshort         6       bottom to top/left to right
                   10525: >768   leshort         7       bottom to top/right to left
1.1       misho    10526: 
                   10527: # From: Tom Hilinski <tom.hilinski@comcast.net>
                   10528: # http://www.unidata.ucar.edu/packages/netcdf/
                   10529: 0      string  CDF\001                 NetCDF Data Format data
                   10530: 
                   10531: #-----------------------------------------------------------------------
                   10532: # Hierarchical Data Format, used to facilitate scientific data exchange
                   10533: # specifications at http://hdf.ncsa.uiuc.edu/
                   10534: 0      belong  0x0e031301      Hierarchical Data Format (version 4) data
                   10535: !:mime application/x-hdf
1.1.1.3   misho    10536: 0      string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) data
1.1       misho    10537: !:mime application/x-hdf
                   10538: 
                   10539: # From: Tobias Burnus <burnus@net-b.de>
                   10540: # Xara (for a while: Corel Xara) is a graphic package, see
                   10541: # http://www.xara.com/ for Windows and as GPL application for Linux
                   10542: 0      string  XARA\243\243    Xara graphics file
                   10543: 
                   10544: # http://www.cartesianinc.com/Tech/
                   10545: 0      string  CPC\262         Cartesian Perceptual Compression image
                   10546: !:mime image/x-cpi
                   10547: 
                   10548: # From Albert Cahalan <acahalan@gmail.com>
                   10549: # puredigital used it for the CVS disposable camcorder
                   10550: #8       lelong  4       ZBM bitmap image data
                   10551: #>4      leshort x       %u x
                   10552: #>6      leshort x       %u
                   10553: 
                   10554: # From Albert Cahalan <acahalan@gmail.com>
                   10555: # uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
                   10556: 0       string C565     OLPC firmware icon image data
                   10557: >4      leshort x       %u x
                   10558: >6      leshort x       %u
                   10559: 
                   10560: # Applied Images - Image files from Cytovision
                   10561: # Gustavo Junior Alves <gjalves@gjalves.com.br>
                   10562: 0      string  \xce\xda\xde\xfa        Cytovision Metaphases file
                   10563: 0      string  \xed\xad\xef\xac        Cytovision Karyotype file
                   10564: 0      string  \x0b\x00\x03\x00        Cytovision FISH Probe file
                   10565: 0      string  \xed\xfe\xda\xbe        Cytovision FLEX file
                   10566: 0      string  \xed\xab\xed\xfe        Cytovision FLEX file
                   10567: 0      string  \xad\xfd\xea\xad        Cytovision RATS file
                   10568: 
                   10569: # Wavelet Scalar Quantization format used in gray-scale fingerprint images
                   10570: # From Tano M Fotang <mfotang@quanteq.com>
                   10571: 0      string  \xff\xa0\xff\xa8\x00    Wavelet Scalar Quantization image data
                   10572: 
1.1.1.3   misho    10573: # Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
                   10574: # From: Markus Heidelberg <markus.heidelberg at web.de>
                   10575: 0      string/t        [BitmapInfo2]   Polar Monitor Bitmap text
                   10576: !:mime image/x-polar-monitor-bitmap
                   10577: 
                   10578: # From: Rick Richardson <rick.richardson@comcast.net>
                   10579: 0      string  GARMIN\ BITMAP\ 01      Garmin Bitmap file
1.1.1.2   misho    10580: 
1.1       misho    10581: # Type:        Ulead Photo Explorer5 (.pe5)
                   10582: # URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
                   10583: # From:        Simon Horman <horms@debian.org>
1.1.1.2   misho    10584: 0      string  IIO2H                   Ulead Photo Explorer5
1.1       misho    10585: 
                   10586: # Type:        X11 cursor
                   10587: # URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
                   10588: # From:        Mathias Brodala <info@noctus.net>
1.1.1.2   misho    10589: 0      string  Xcur                    X11 cursor
                   10590: 
                   10591: # Type:        Olympus ORF raw images.
                   10592: # URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF
                   10593: # From:        Adam Buchbinder <adam.buchbinder@gmail.com>
                   10594: 0      string          MMOR            Olympus ORF raw image data, big-endian
                   10595: !:mime image/x-olympus-orf
                   10596: 0      string          IIRO            Olympus ORF raw image data, little-endian
                   10597: !:mime image/x-olympus-orf
                   10598: 0      string          IIRS            Olympus ORF raw image data, little-endian
                   10599: !:mime image/x-olympus-orf
                   10600: 
                   10601: # Type: files used in modern AVCHD camcoders to store clip information
                   10602: # Extension: .cpi
                   10603: # From: Alexander Danilov <alexander.a.danilov@gmail.com>
                   10604: 0      string  HDMV0100        AVCHD Clip Information
                   10605: 
                   10606: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   10607: # URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
                   10608: # Radiance HDR; usually has .pic or .hdr extension.
                   10609: 0      string  #?RADIANCE\n    Radiance HDR image data
                   10610: #!mime image/vnd.radiance
                   10611: 
                   10612: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   10613: # URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
                   10614: # Used by the pfstools packages. The regex matches for the image size could
                   10615: # probably use some work. The MIME type is made up; if there's one in
                   10616: # actual common use, it should replace the one below.
                   10617: 0      string  PFS1\x0a        PFS HDR image data
                   10618: #!mime image/x-pfs
                   10619: >1     regex   [0-9]*\                 \b, %s
                   10620: >>1    regex   \ [0-9]{4}              \bx%s
                   10621: 
                   10622: # Type: Foveon X3F
                   10623: # URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
                   10624: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   10625: # Note that the MIME type isn't defined anywhere that I can find; if
                   10626: # there's a canonical type for this format, it should replace this one.
                   10627: 0      string  FOVb    Foveon X3F raw image data
                   10628: !:mime image/x-x3f
                   10629: >6     leshort x       \b, version %d.
                   10630: >4     leshort x       \b%d
                   10631: >28    lelong  x       \b, %dx
                   10632: >32    lelong  x       \b%d
                   10633: 
                   10634: # Paint.NET file
                   10635: # From Adam Buchbinder <adam.buchbinder@gmail.com>
                   10636: 0      string  PDN3    Paint.NET image data
                   10637: !:mime image/x-paintnet
1.1       misho    10638: 
1.1.1.3   misho    10639: # Not really an image.
                   10640: # From: "Tano M. Fotang" <mfotang@quanteq.com>
                   10641: 0      string  \x46\x4d\x52\x00        ISO/IEC 19794-2 Format Minutiae Record (FMR)
                   10642: 
1.1       misho    10643: #------------------------------------------------------------------------------
1.1.1.2   misho    10644: # $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
1.1       misho    10645: # inform:  file(1) magic for Inform interactive fiction language
                   10646: 
                   10647: # URL:  http://www.inform-fiction.org/
                   10648: # From: Reuben Thomas <rrt@sc3d.org>
                   10649: 
1.1.1.2   misho    10650: 0      search/100/cW   constant\ story         Inform source text
1.1       misho    10651: 
                   10652: #------------------------------------------------------------------------------
1.1.1.3   misho    10653: # $File: intel,v 1.11 2013/02/06 14:18:52 christos Exp $
1.1       misho    10654: # intel:  file(1) magic for x86 Unix
                   10655: #
                   10656: # Various flavors of x86 UNIX executable/object (other than Xenix, which
                   10657: # is in "microsoft").  DOS is in "msdos"; the ambitious soul can do
                   10658: # Windows as well.
                   10659: #
                   10660: # Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
                   10661: # whatever comes next (HP-PA Hummingbird?).  OS/2 may also go elsewhere
                   10662: # as well, if, as, and when IBM makes it portable.
                   10663: #
                   10664: # The `versions' should be un-commented if they work for you.
                   10665: # (Was the problem just one of endianness?)
                   10666: #
                   10667: 0      leshort         0502            basic-16 executable
                   10668: >12    lelong          >0              not stripped
                   10669: #>22   leshort         >0              - version %ld
                   10670: 0      leshort         0503            basic-16 executable (TV)
                   10671: >12    lelong          >0              not stripped
                   10672: #>22   leshort         >0              - version %ld
                   10673: 0      leshort         0510            x86 executable
                   10674: >12    lelong          >0              not stripped
                   10675: 0      leshort         0511            x86 executable (TV)
                   10676: >12    lelong          >0              not stripped
                   10677: 0      leshort         =0512           iAPX 286 executable small model (COFF)
                   10678: >12    lelong          >0              not stripped
                   10679: #>22   leshort         >0              - version %ld
                   10680: 0      leshort         =0522           iAPX 286 executable large model (COFF)
                   10681: >12    lelong          >0              not stripped
                   10682: #>22   leshort         >0              - version %ld
                   10683: # SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
                   10684: 0      leshort         =0514           80386 COFF executable
                   10685: >12    lelong          >0              not stripped
                   10686: >22    leshort         >0              - version %ld
                   10687: 
                   10688: # rom: file(1) magic for BIOS ROM Extensions found in intel machines
                   10689: #      mapped into memory between 0xC0000 and 0xFFFFF
1.1.1.3   misho    10690: # From Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
1.1       misho    10691: 0        beshort         0x55AA       BIOS (ia32) ROM Ext.
                   10692: >5       string          USB          USB
                   10693: >7       string          LDR          UNDI image
                   10694: >30      string          IBM          IBM comp. Video
                   10695: >26      string          Adaptec      Adaptec
                   10696: >28      string          Adaptec      Adaptec
                   10697: >42      string          PROMISE      Promise
                   10698: >2       byte            x            (%d*512)
                   10699: 
1.1.1.3   misho    10700: # Flash descriptors for Intel SPI flash roms.
                   10701: # From Dr. Jesus <j@hug.gs>
                   10702: 0      lelong          0x0ff0a55a      Intel serial flash for ICH/PCH ROM <= 5 or 3400 series A-step
                   10703: 16     lelong          0x0ff0a55a      Intel serial flash for PCH ROM
                   10704: 
1.1       misho    10705: #------------------------------------------------------------------------------
1.1.1.2   misho    10706: # $File: interleaf,v 1.10 2009/09/19 16:28:10 christos Exp $
1.1       misho    10707: # interleaf:  file(1) magic for InterLeaf TPS:
                   10708: #
                   10709: 0      string          =\210OPS        Interleaf saved data
                   10710: 0      string          =<!OPS          Interleaf document text
                   10711: >5     string          ,\ Version\ =   \b, version
                   10712: >>17   string          >\0             %.3s
                   10713: 
                   10714: #------------------------------------------------------------------------------
1.1.1.2   misho    10715: # $File: island,v 1.5 2009/09/19 16:28:10 christos Exp $
1.1       misho    10716: # island:  file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
                   10717: # "/etc/magic":
                   10718: # From: guy@netapp.com (Guy Harris)
                   10719: #
                   10720: 4      string          pgscriptver     IslandWrite document
                   10721: 13     string          DrawFile        IslandDraw document
                   10722: 
                   10723: 
                   10724: #------------------------------------------------------------------------------
1.1.1.2   misho    10725: # $File: ispell,v 1.8 2009/09/19 16:28:10 christos Exp $
1.1       misho    10726: # ispell:  file(1) magic for ispell
                   10727: #
                   10728: # Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602.  This magic
                   10729: # will match 0x9600 through 0x9603 in *both* little endian and big endian.
                   10730: # (No other current magic entries collide.)
                   10731: #
                   10732: # Updated by Daniel Quinlan (quinlan@yggdrasil.com)
                   10733: #
                   10734: 0      leshort&0xFFFC  0x9600          little endian ispell
                   10735: >0     byte            0               hash file (?),
                   10736: >0     byte            1               3.0 hash file,
                   10737: >0     byte            2               3.1 hash file,
                   10738: >0     byte            3               hash file (?),
                   10739: >2     leshort         0x00            8-bit, no capitalization, 26 flags
                   10740: >2     leshort         0x01            7-bit, no capitalization, 26 flags
                   10741: >2     leshort         0x02            8-bit, capitalization, 26 flags
                   10742: >2     leshort         0x03            7-bit, capitalization, 26 flags
                   10743: >2     leshort         0x04            8-bit, no capitalization, 52 flags
                   10744: >2     leshort         0x05            7-bit, no capitalization, 52 flags
                   10745: >2     leshort         0x06            8-bit, capitalization, 52 flags
                   10746: >2     leshort         0x07            7-bit, capitalization, 52 flags
                   10747: >2     leshort         0x08            8-bit, no capitalization, 128 flags
                   10748: >2     leshort         0x09            7-bit, no capitalization, 128 flags
                   10749: >2     leshort         0x0A            8-bit, capitalization, 128 flags
                   10750: >2     leshort         0x0B            7-bit, capitalization, 128 flags
                   10751: >2     leshort         0x0C            8-bit, no capitalization, 256 flags
                   10752: >2     leshort         0x0D            7-bit, no capitalization, 256 flags
                   10753: >2     leshort         0x0E            8-bit, capitalization, 256 flags
                   10754: >2     leshort         0x0F            7-bit, capitalization, 256 flags
                   10755: >4     leshort         >0              and %d string characters
                   10756: 0      beshort&0xFFFC  0x9600          big endian ispell
                   10757: >1     byte            0               hash file (?),
                   10758: >1     byte            1               3.0 hash file,
                   10759: >1     byte            2               3.1 hash file,
                   10760: >1     byte            3               hash file (?),
                   10761: >2     beshort         0x00            8-bit, no capitalization, 26 flags
                   10762: >2     beshort         0x01            7-bit, no capitalization, 26 flags
                   10763: >2     beshort         0x02            8-bit, capitalization, 26 flags
                   10764: >2     beshort         0x03            7-bit, capitalization, 26 flags
                   10765: >2     beshort         0x04            8-bit, no capitalization, 52 flags
                   10766: >2     beshort         0x05            7-bit, no capitalization, 52 flags
                   10767: >2     beshort         0x06            8-bit, capitalization, 52 flags
                   10768: >2     beshort         0x07            7-bit, capitalization, 52 flags
                   10769: >2     beshort         0x08            8-bit, no capitalization, 128 flags
                   10770: >2     beshort         0x09            7-bit, no capitalization, 128 flags
                   10771: >2     beshort         0x0A            8-bit, capitalization, 128 flags
                   10772: >2     beshort         0x0B            7-bit, capitalization, 128 flags
                   10773: >2     beshort         0x0C            8-bit, no capitalization, 256 flags
                   10774: >2     beshort         0x0D            7-bit, no capitalization, 256 flags
                   10775: >2     beshort         0x0E            8-bit, capitalization, 256 flags
                   10776: >2     beshort         0x0F            7-bit, capitalization, 256 flags
                   10777: >4     beshort         >0              and %d string characters
                   10778: # ispell 4.0 hash files  kromJx <kromJx@crosswinds.net>
                   10779: # Ispell 4.0
                   10780: 0       string          ISPL            ispell
                   10781: >4      long            x               hash file version %d,
                   10782: >8      long            x               lexletters %d,
                   10783: >12     long            x               lexsize %d,
                   10784: >16     long            x               hashsize %d,
                   10785: >20     long            x               stblsize %d
1.1.1.2   misho    10786: 
1.1.1.3   misho    10787: #------------------------------------------------------------------------------
                   10788: # $File: isz,v 1.1 2010/03/27 16:17:09 christos Exp $
                   10789: # ISO Zipped file format 
                   10790: # http://www.ezbsystems.com/isz/iszspec.txt
                   10791: 0      string  IsZ!    ISO Zipped file
                   10792: >4     byte    x       \b, header size %u
                   10793: >5     byte    x       \b, version %u
                   10794: >8     lelong  x       \b, serial %u
                   10795: #12    leshort x       \b, sector size %u
                   10796: #>16   lelong  x       \b, total sectors %u
                   10797: >17    byte    >0      \b, password protected
                   10798: #>24   lequad  x       \b, segment size %llu
                   10799: #>32   lelong  x       \b, blocks %u
                   10800: #>36   lelong  x       \b, block size %u
                   10801: 
1.1       misho    10802: #------------------------------------------------------------
1.1.1.3   misho    10803: # $File: java,v 1.14 2013/02/08 16:54:45 christos Exp $
1.1       misho    10804: # Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
                   10805: # same magic number, 0xcafebabe, so they are both handled
                   10806: # in the entry called "cafebabe".
                   10807: #------------------------------------------------------------
                   10808: # Java serialization
                   10809: # From Martin Pool (m.pool@pharos.com.au)
                   10810: 0      beshort         0xaced          Java serialization data
                   10811: >2     beshort         >0x0004         \b, version %d
                   10812: 
                   10813: 0      belong          0xfeedfeed      Java KeyStore
                   10814: !:mime application/x-java-keystore
                   10815: 0      belong          0xcececece      Java JCE KeyStore
                   10816: !:mime application/x-java-jce-keystore
                   10817: 
                   10818: # Dalvik .dex format. http://retrodev.com/android/dexformat.html
                   10819: # From <mkf@google.com> "Mike Fleming"
                   10820: 0      string  dex\n
                   10821: >0     regex   dex\n[0-9][0-9][0-9]\0  Dalvik dex file
                   10822: >4     string  >000                    version %s
                   10823: 0      string  dey\n
                   10824: >0     regex   dey\n[0-9][0-9][0-9]\0  Dalvik dex file (optimized for host)
                   10825: >4     string  >000                    version %s
                   10826: 
1.1.1.3   misho    10827: # Java source
                   10828: 0      regex   ^import.*;$     Java source
                   10829: !:mime text/x-java
                   10830: 
                   10831: # http://android.stackexchange.com/questions/23357/\
                   10832: # is-there-a-way-to-look-inside-and-modify-an-adb-backup-created-file/\
                   10833: # 23608#23608
                   10834: 0      string  ANDROID\040BACKUP\n     Android Backup
                   10835: >15    string  1\n                     \b, version 1
                   10836: >17    string  0\n                     \b, uncompressed
                   10837: >17    string  1\n                     \b, compressed
                   10838: >19    string  none\n                  \b, unencrypted
                   10839: >19    string  AES-256\n               \b, encrypted AES-256
                   10840: 
                   10841: #------------------------------------------------------------------------------
                   10842: # $File: javascript,v 1.1 2012/06/16 13:30:36 christos Exp $
                   10843: # javascript:  magic for javascript and node.js scripts.
                   10844: #
                   10845: 0      search/1/w      #!/bin/node             Node.js script text executable
                   10846: !:mime application/javascript
                   10847: 0      search/1/w      #!/usr/bin/node         Node.js script text executable
                   10848: !:mime application/javascript
                   10849: 0      search/1/w      #!/bin/nodejs           Node.js script text executable
                   10850: !:mime application/javascript
                   10851: 0      search/1/w      #!/usr/bin/nodejs       Node.js script text executable
                   10852: !:mime application/javascript
                   10853: 0      search/1        #!/usr/bin/env\ node    Node.js script text executable
                   10854: !:mime application/javascript
                   10855: 0      search/1        #!/usr/bin/env\ nodejs  Node.js script text executable
                   10856: !:mime application/javascript
1.1       misho    10857: 
                   10858: #------------------------------------------------------------------------------
1.1.1.3   misho    10859: # $File: jpeg,v 1.19 2013/02/04 15:50:03 christos Exp $
1.1       misho    10860: # JPEG images
                   10861: # SunOS 5.5.1 had
                   10862: #
                   10863: #      0       string          \377\330\377\340        JPEG file
                   10864: #      0       string          \377\330\377\356        JPG file
                   10865: #
                   10866: # both of which turn into "JPEG image data" here.
                   10867: #
                   10868: 0      beshort         0xffd8          JPEG image data
                   10869: !:mime image/jpeg
1.1.1.2   misho    10870: !:apple        8BIMJPEG
1.1.1.3   misho    10871: !:strength +2
1.1       misho    10872: >6     string          JFIF            \b, JFIF standard
                   10873: # The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
                   10874: # in a vain attempt to add image size reporting for JFIF.  Note that these
                   10875: # tests are not fool-proof since some perfectly valid JPEGs are currently
                   10876: # impossible to specify in magic(4) format.
                   10877: # First, a little JFIF version info:
                   10878: >>11   byte            x               \b %d.
                   10879: >>12   byte            x               \b%02d
                   10880: # Next, the resolution or aspect ratio of the image:
                   10881: #>>13  byte            0               \b, aspect ratio
                   10882: #>>13  byte            1               \b, resolution (DPI)
                   10883: #>>13  byte            2               \b, resolution (DPCM)
                   10884: #>>4   beshort         x               \b, segment length %d
                   10885: # Next, show thumbnail info, if it exists:
                   10886: >>18   byte            !0              \b, thumbnail %dx
                   10887: >>>19  byte            x               \b%d
                   10888: 
                   10889: # EXIF moved down here to avoid reporting a bogus version number,
                   10890: # and EXIF version number printing added.
                   10891: #   - Patrik R=E5dman <patrik+file-magic@iki.fi>
                   10892: >6     string          Exif            \b, EXIF standard
                   10893: # Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
                   10894: # All possible combinations of entries have to be enumerated, since no looping
                   10895: # is possible. And both endians are possible...
                   10896: # The combinations included below are from real-world JPEGs.
                   10897: # Little-endian
                   10898: >>12   string          II              
                   10899: # IFD 0 Entry #5:
                   10900: >>>70  leshort         0x8769          
                   10901: # EXIF IFD Entry #1:
                   10902: >>>>(78.l+14)  leshort 0x9000          
                   10903: >>>>>(78.l+23) byte    x               %c
                   10904: >>>>>(78.l+24) byte    x               \b.%c
                   10905: >>>>>(78.l+25) byte    !0x30           \b%c
                   10906: # IFD 0 Entry #9:
                   10907: >>>118 leshort         0x8769          
                   10908: # EXIF IFD Entry #3:
                   10909: >>>>(126.l+38) leshort 0x9000          
                   10910: >>>>>(126.l+47)        byte    x               %c
                   10911: >>>>>(126.l+48)        byte    x               \b.%c
                   10912: >>>>>(126.l+49)        byte    !0x30           \b%c
                   10913: # IFD 0 Entry #10
                   10914: >>>130 leshort         0x8769          
                   10915: # EXIF IFD Entry #3:
                   10916: >>>>(138.l+38) leshort 0x9000          
                   10917: >>>>>(138.l+47)        byte    x               %c
                   10918: >>>>>(138.l+48)        byte    x               \b.%c
                   10919: >>>>>(138.l+49)        byte    !0x30           \b%c
                   10920: # EXIF IFD Entry #4:
                   10921: >>>>(138.l+50) leshort 0x9000          
                   10922: >>>>>(138.l+59)        byte    x               %c
                   10923: >>>>>(138.l+60)        byte    x               \b.%c
                   10924: >>>>>(138.l+61)        byte    !0x30           \b%c
                   10925: # EXIF IFD Entry #5:
                   10926: >>>>(138.l+62) leshort 0x9000          
                   10927: >>>>>(138.l+71)        byte    x               %c
                   10928: >>>>>(138.l+72)        byte    x               \b.%c
                   10929: >>>>>(138.l+73)        byte    !0x30           \b%c
                   10930: # IFD 0 Entry #11
                   10931: >>>142 leshort         0x8769          
                   10932: # EXIF IFD Entry #3:
                   10933: >>>>(150.l+38) leshort 0x9000          
                   10934: >>>>>(150.l+47)        byte    x               %c
                   10935: >>>>>(150.l+48)        byte    x               \b.%c
                   10936: >>>>>(150.l+49)        byte    !0x30           \b%c
                   10937: # EXIF IFD Entry #4:
                   10938: >>>>(150.l+50) leshort 0x9000          
                   10939: >>>>>(150.l+59)        byte    x               %c
                   10940: >>>>>(150.l+60)        byte    x               \b.%c
                   10941: >>>>>(150.l+61)        byte    !0x30           \b%c
                   10942: # EXIF IFD Entry #5:
                   10943: >>>>(150.l+62) leshort 0x9000          
                   10944: >>>>>(150.l+71)        byte    x               %c
                   10945: >>>>>(150.l+72)        byte    x               \b.%c
                   10946: >>>>>(150.l+73)        byte    !0x30           \b%c
                   10947: # Big-endian
                   10948: >>12   string          MM              
                   10949: # IFD 0 Entry #9:
                   10950: >>>118 beshort         0x8769          
                   10951: # EXIF IFD Entry #1:
                   10952: >>>>(126.L+14) beshort 0x9000          
                   10953: >>>>>(126.L+23)        byte    x               %c
                   10954: >>>>>(126.L+24)        byte    x               \b.%c
                   10955: >>>>>(126.L+25)        byte    !0x30           \b%c
                   10956: # EXIF IFD Entry #3:
                   10957: >>>>(126.L+38) beshort 0x9000          
                   10958: >>>>>(126.L+47)        byte    x               %c
                   10959: >>>>>(126.L+48)        byte    x               \b.%c
                   10960: >>>>>(126.L+49)        byte    !0x30           \b%c
                   10961: # IFD 0 Entry #10
                   10962: >>>130 beshort         0x8769          
                   10963: # EXIF IFD Entry #3:
                   10964: >>>>(138.L+38) beshort 0x9000          
                   10965: >>>>>(138.L+47)        byte    x               %c
                   10966: >>>>>(138.L+48)        byte    x               \b.%c
                   10967: >>>>>(138.L+49)        byte    !0x30           \b%c
                   10968: # EXIF IFD Entry #5:
                   10969: >>>>(138.L+62) beshort 0x9000          
                   10970: >>>>>(138.L+71)        byte    x               %c
                   10971: >>>>>(138.L+72)        byte    x               \b.%c
                   10972: >>>>>(138.L+73)        byte    !0x30           \b%c
                   10973: # IFD 0 Entry #11
                   10974: >>>142 beshort         0x8769          
                   10975: # EXIF IFD Entry #4:
                   10976: >>>>(150.L+50) beshort 0x9000          
                   10977: >>>>>(150.L+59)        byte    x               %c
                   10978: >>>>>(150.L+60)        byte    x               \b.%c
                   10979: >>>>>(150.L+61)        byte    !0x30           \b%c
                   10980: # Here things get sticky.  We can do ONE MORE marker segment with
                   10981: # indirect addressing, and that's all.  It would be great if we could
                   10982: # do pointer arithemetic like in an assembler language.  Christos?
                   10983: # And if there was some sort of looping construct to do searches, plus a few
                   10984: # named accumulators, it would be even more effective...
                   10985: # At least we can show a comment if no other segments got inserted before:
1.1.1.3   misho    10986: >(4.S+5)       byte            0xFE            \b, comment:
                   10987: >>(4.S+6)      pstring/HJ      x               "%s"
1.1       misho    10988: # Or, we can show the encoding type (I've included only the three most common)
                   10989: # and image dimensions if we are lucky and the SOFn (image segment) is here:
                   10990: >(4.S+5)       byte            0xC0            \b, baseline
                   10991: >>(4.S+6)      byte            x               \b, precision %d
                   10992: >>(4.S+7)      beshort         x               \b, %dx
                   10993: >>(4.S+9)      beshort         x               \b%d
                   10994: >(4.S+5)       byte            0xC1            \b, extended sequential
                   10995: >>(4.S+6)      byte            x               \b, precision %d
                   10996: >>(4.S+7)      beshort         x               \b, %dx
                   10997: >>(4.S+9)      beshort         x               \b%d
                   10998: >(4.S+5)       byte            0xC2            \b, progressive
                   10999: >>(4.S+6)      byte            x               \b, precision %d
                   11000: >>(4.S+7)      beshort         x               \b, %dx
                   11001: >>(4.S+9)      beshort         x               \b%d
                   11002: # I've commented-out quantisation table reporting.  I doubt anyone cares yet.
                   11003: #>(4.S+5)      byte            0xDB            \b, quantisation table
                   11004: #>>(4.S+6)     beshort         x               \b length=%d
                   11005: #>14   beshort         x               \b, %d x
                   11006: #>16   beshort         x               \b %d
                   11007: 
                   11008: # HSI is Handmade Software's proprietary JPEG encoding scheme
                   11009: 0      string          hsi1            JPEG image data, HSI proprietary
                   11010: 
                   11011: # From: David Santinoli <david@santinoli.com>
1.1.1.3   misho    11012: 0      string          \x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A        JPEG 2000
                   11013: # From: Johan van der Knijff <johan.vanderknijff@kb.nl>
                   11014: # Added sub-entries for JP2, JPX, JPM and MJ2 formats; added mimetypes
                   11015: # https://github.com/bitsgalore/jp2kMagic
                   11016: #
                   11017: # Now read value of 'Brand' field, which yields a few possibilities:
                   11018: >20    string          \x6a\x70\x32\x20        Part 1 (JP2)
                   11019: !:mime image/jp2
                   11020: >20    string          \x6a\x70\x78\x20        Part 2 (JPX)
                   11021: !:mime image/jpx
                   11022: >20    string          \x6a\x70\x6d\x20        Part 6 (JPM)
                   11023: !:mime image/jpm
                   11024: >20    string          \x6d\x6a\x70\x32        Part 3 (MJ2)
                   11025: !:mime video/mj2
1.1       misho    11026: 
                   11027: # Type: JPEG 2000 codesream
                   11028: # From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
                   11029: 0      belong          0xff4fff51                                              JPEG 2000 codestream
                   11030: 45     beshort         0xff52
                   11031: 
                   11032: #------------------------------------------------------------------------------
1.1.1.2   misho    11033: # $File: karma,v 1.6 2009/09/19 16:28:10 christos Exp $
1.1       misho    11034: # karma:  file(1) magic for Karma data files
                   11035: #
                   11036: # From <rgooch@atnf.csiro.au>
                   11037: 
                   11038: 0      string          KarmaRHD Version        Karma Data Structure Version
                   11039: >16    belong          x               %lu
                   11040: 
                   11041: #------------------------------------------------------------------------------
1.1.1.3   misho    11042: # $File: kde,v 1.5 2010/11/25 15:00:12 christos Exp $
1.1       misho    11043: # kde:  file(1) magic for KDE
                   11044: 
1.1.1.3   misho    11045: 0              string/t        [KDE\ Desktop\ Entry]   KDE desktop entry
1.1       misho    11046: !:mime application/x-kdelnk
1.1.1.3   misho    11047: 0              string/t        #\ KDE\ Config\ File    KDE config file
1.1       misho    11048: !:mime application/x-kdelnk
1.1.1.3   misho    11049: 0              string/t        #\ xmcd xmcd database file for kscd
1.1       misho    11050: !:mime text/x-xmcd
1.1.1.2   misho    11051: 
                   11052: #------------------------------------------------------------------------------
1.1.1.3   misho    11053: # $File: keepass,v 1.1 2012/12/24 22:14:56 christos Exp $
                   11054: # keepass: file(1) magic for KeePass file
                   11055: #
                   11056: # Keepass Password Safe:
                   11057: #  * original one: http://keepass.info/
                   11058: #  * *nix port:    http://www.keepassx.org/
                   11059: #  * android port: http://code.google.com/p/keepassdroid/
                   11060: 
                   11061: 0      lelong          0x9AA2D903      Keepass password database
                   11062: >4     lelong          0xB54BFB65      1.x KDB
                   11063: >>48   lelong          >0              \b, %d groups
                   11064: >>52   lelong          >0              \b, %d entries
                   11065: >>8    lelong&0x0f     1               \b, SHA-256
                   11066: >>8    lelong&0x0f     2               \b, AES
                   11067: >>8    lelong&0x0f     4               \b, RC4
                   11068: >>8    lelong&0x0f     8               \b, Twofish
                   11069: >>120  lelong          >0              \b, %d key transformation rounds
                   11070: >4     lelong          0xB54BFB67      2.x KDBX
                   11071: 
                   11072: #------------------------------------------------------------------------------
                   11073: # $File: kml,v 1.3 2010/11/25 15:00:12 christos Exp $
1.1.1.2   misho    11074: # Type: Google KML, formerly Keyhole Markup Language
                   11075: # Future development of this format has been handed
                   11076: # over to the Open Geospatial Consortium.
                   11077: # http://www.opengeospatial.org/standards/kml/
                   11078: # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
1.1.1.3   misho    11079: 0 string/t    \<?xml
1.1.1.2   misho    11080: >20  search/400 \ xmlns= 
                   11081: >>&0 regex ['"]http://earth.google.com/kml Google KML document
                   11082: !:mime application/vnd.google-earth.kml+xml
                   11083: >>>&1 string 2.0' \b, version 2.0
                   11084: >>>&1 string 2.1' \b, version 2.1
                   11085: >>>&1 string 2.2' \b, version 2.2
                   11086: 
                   11087: #------------------------------------------------------------------------------
                   11088: # Type: OpenGIS KML, formerly Keyhole Markup Language
                   11089: # This standard is maintained by the
                   11090: # Open Geospatial Consortium.
                   11091: # http://www.opengeospatial.org/standards/kml/
                   11092: # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
                   11093: >>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document
                   11094: !:mime application/vnd.google-earth.kml+xml
1.1.1.3   misho    11095: >>>&1 string/t 2.2 \b, version 2.2
1.1.1.2   misho    11096: 
                   11097: #------------------------------------------------------------------------------
                   11098: # Type: Google KML Archive (ZIP based) 
                   11099: # http://code.google.com/apis/kml/documentation/kml_tut.html
                   11100: # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
                   11101: 0 string    PK\003\004
                   11102: >4  byte    0x14
                   11103: >>30  string doc.kml Compressed Google KML Document, including resources.
                   11104: !:mime application/vnd.google-earth.kmz
                   11105: 
1.1       misho    11106: #------------------------------------------------------------------------------
1.1.1.2   misho    11107: # $File: lecter,v 1.4 2009/09/19 16:28:10 christos Exp $
1.1       misho    11108: # DEC SRC Virtual Paper: Lectern files
                   11109: # Karl M. Hegbloom <karlheg@inetarena.com>
                   11110: 0      string  lect    DEC SRC Virtual Paper Lectern file
1.1.1.2   misho    11111: 
1.1       misho    11112: #------------------------------------------------------------------------------
1.1.1.2   misho    11113: # $File: lex,v 1.6 2009/09/19 16:28:10 christos Exp $
1.1       misho    11114: # lex:  file(1) magic for lex
                   11115: #
                   11116: #      derived empirically, your offsets may vary!
                   11117: 0      search/100      yyprevious      C program text (from lex)
                   11118: >3     search/1        >\0              for %s
                   11119: # C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
                   11120: 0      search/100      generated\ by\ flex     C program text (from flex)
                   11121: # lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
                   11122: 0      search/1        %{              lex description text
                   11123: 
                   11124: #------------------------------------------------------------------------------
1.1.1.2   misho    11125: # $File: lif,v 1.8 2009/09/19 16:28:10 christos Exp $
1.1       misho    11126: # lif:  file(1) magic for lif
                   11127: #
                   11128: # (Daniel Quinlan <quinlan@yggdrasil.com>)
                   11129: #
                   11130: 0      beshort         0x8000          lif file
1.1.1.2   misho    11131: 
1.1       misho    11132: #------------------------------------------------------------------------------
1.1.1.3   misho    11133: # $File: linux,v 1.47 2013/02/06 14:18:52 christos Exp $
1.1       misho    11134: # linux:  file(1) magic for Linux files
                   11135: #
                   11136: # Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
                   11137: # The following basic Linux magic is useful for reference, but using
                   11138: # "long" magic is a better practice in order to avoid collisions.
                   11139: #
                   11140: # 2    leshort         100             Linux/i386
                   11141: # >0   leshort         0407            impure executable (OMAGIC)
                   11142: # >0   leshort         0410            pure executable (NMAGIC)
                   11143: # >0   leshort         0413            demand-paged executable (ZMAGIC)
                   11144: # >0   leshort         0314            demand-paged executable (QMAGIC)
                   11145: #
                   11146: 0      lelong          0x00640107      Linux/i386 impure executable (OMAGIC)
                   11147: >16    lelong          0               \b, stripped
                   11148: 0      lelong          0x00640108      Linux/i386 pure executable (NMAGIC)
                   11149: >16    lelong          0               \b, stripped
                   11150: 0      lelong          0x0064010b      Linux/i386 demand-paged executable (ZMAGIC)
                   11151: >16    lelong          0               \b, stripped
                   11152: 0      lelong          0x006400cc      Linux/i386 demand-paged executable (QMAGIC)
                   11153: >16    lelong          0               \b, stripped
                   11154: #
                   11155: 0      string          \007\001\000    Linux/i386 object file
                   11156: >20    lelong          >0x1020         \b, DLL library
                   11157: # Linux-8086 stuff:
                   11158: 0      string          \01\03\020\04   Linux-8086 impure executable
                   11159: >28    long            !0              not stripped
                   11160: 0      string          \01\03\040\04   Linux-8086 executable
                   11161: >28    long            !0              not stripped
                   11162: #
                   11163: 0      string          \243\206\001\0  Linux-8086 object file
                   11164: #
                   11165: 0      string          \01\03\020\20   Minix-386 impure executable
                   11166: >28    long            !0              not stripped
                   11167: 0      string          \01\03\040\20   Minix-386 executable
                   11168: >28    long            !0              not stripped
1.1.1.3   misho    11169: 0      string          \01\03\04\20    Minix-386 NSYM/GNU executable
                   11170: >28    long            !0              not stripped
1.1       misho    11171: # core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
                   11172: 216    lelong          0421            Linux/i386 core file
                   11173: >220   string          >\0             of '%s'
                   11174: >200   lelong          >0              (signal %d)
                   11175: #
                   11176: # LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
                   11177: # this can be overridden by the DOS executable (COM) entry
                   11178: 2      string          LILO            Linux/i386 LILO boot/chain loader
                   11179: #
1.1.1.3   misho    11180: # Linux make config build file, from Ole Aamot <oka@oka.no>
                   11181: 28     string          make\ config    Linux make config build file
                   11182: #
1.1       misho    11183: # PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
1.1.1.2   misho    11184: # Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
                   11185: # See: http://www.win.tue.nl/~aeb/linux/kbd/font-formats-1.html
                   11186: 0      leshort         0x0436          Linux/i386 PC Screen Font v1 data,
                   11187: >2     byte&0x01       0               256 characters,
                   11188: >2     byte&0x01       !0              512 characters,
                   11189: >2     byte&0x02       0               no directory,
                   11190: >2     byte&0x02       !0              Unicode directory,
1.1       misho    11191: >3     byte            >0              8x%d
1.1.1.2   misho    11192: 0      string          \x72\xb5\x4a\x86\x00\x00 Linux/i386 PC Screen Font v2 data,
                   11193: >16    lelong          x               %d characters,
                   11194: >12    lelong&0x01     0               no directory,
                   11195: >12    lelong&0x01     !0              Unicode directory,
                   11196: >24    lelong          x               %d
                   11197: >28    lelong          x               \bx%d
                   11198: 
1.1       misho    11199: # Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
                   11200: 4086   string          SWAP-SPACE      Linux/i386 swap file
                   11201: # From: Jeff Bailey <jbailey@ubuntu.com>
                   11202: # Linux swap file with swsusp1 image, from Jeff Bailey <jbailey@ubuntu.com>
                   11203: 4076   string          SWAPSPACE2S1SUSPEND     Linux/i386 swap file (new style) with SWSUSP1 image
1.1.1.3   misho    11204: # From: James Hunt <james.hunt@ubuntu.com>
                   11205: 4076    string          SWAPSPACE2LINHIB0001    Linux/i386 swap file (new style) (compressed hibernate)
1.1       misho    11206: # according to man page of mkswap (8) March 1999
                   11207: # volume label and UUID Russell Coker
                   11208: # http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
                   11209: 4086   string          SWAPSPACE2      Linux/i386 swap file (new style),
                   11210: >0x400 long            x               version %d (4K pages),
                   11211: >0x404 long            x               size %d pages,
                   11212: >1052  string          \0              no label,
                   11213: >1052  string          >\0             LABEL=%s,
1.1.1.2   misho    11214: >0x40c belong          x               UUID=%08x
                   11215: >0x410 beshort         x               \b-%04x
                   11216: >0x412 beshort         x               \b-%04x
                   11217: >0x414 beshort         x               \b-%04x
                   11218: >0x416 belong          x               \b-%08x
                   11219: >0x41a beshort         x               \b%04x
                   11220: # From Daniel Novotny <dnovotny@redhat.com>
                   11221: # swap file for PowerPC
                   11222: 65526  string          SWAPSPACE2      Linux/ppc swap file
1.1.1.3   misho    11223: 16374  string          SWAPSPACE2      Linux/ia64 swap file
1.1       misho    11224: #
                   11225: # Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
                   11226: # and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
1.1.1.3   misho    11227: # and Nicolas Lichtmaier <nick@debian.org>
1.1       misho    11228: # All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
                   11229: # Linux kernel boot images (i386 arch) (Wolfram Kleff)
                   11230: 514    string          HdrS            Linux kernel
1.1.1.3   misho    11231: !:strength + 5
1.1       misho    11232: >510   leshort         0xAA55          x86 boot executable
                   11233: >>518  leshort         >0x1ff
1.1.1.2   misho    11234: >>>529 byte            0               zImage,
1.1       misho    11235: >>>529 byte            1               bzImage,
                   11236: >>>(526.s+0x200) string        >\0             version %s,
                   11237: >>498  leshort         1               RO-rootFS,
                   11238: >>498  leshort         0               RW-rootFS,
                   11239: >>508  leshort         >0              root_dev 0x%X,
                   11240: >>502  leshort         >0              swap_dev 0x%X,
                   11241: >>504  leshort         >0              RAMdisksize %u KB,
                   11242: >>506  leshort         0xFFFF          Normal VGA
                   11243: >>506  leshort         0xFFFE          Extended VGA
                   11244: >>506  leshort         0xFFFD          Prompt for Videomode
                   11245: >>506  leshort         >0              Video mode %d
                   11246: # This also matches new kernels, which were caught above by "HdrS".
                   11247: 0              belong  0xb8c0078e      Linux kernel
                   11248: >0x1e3         string  Loading         version 1.3.79 or older
                   11249: >0x1e9         string  Loading         from prehistoric times
                   11250: 
1.1.1.3   misho    11251: # System.map files - Nicolas Lichtmaier <nick@debian.org>
1.1       misho    11252: 8      search/1        \ A\ _text      Linux kernel symbol map text
                   11253: 
1.1.1.3   misho    11254: # LSM entries - Nicolas Lichtmaier <nick@debian.org>
1.1       misho    11255: 0      search/1        Begin3  Linux Software Map entry text
                   11256: 0      search/1        Begin4  Linux Software Map entry text (new format)
                   11257: 
                   11258: # From Matt Zimmerman, enhanced for v3 by Matthew Palmer
                   11259: 0      belong  0x4f4f4f4d      User-mode Linux COW file
                   11260: >4     belong  <3              \b, version %d
                   11261: >>8    string  >\0             \b, backing file %s
                   11262: >4     belong  >2              \b, version %d
                   11263: >>32   string  >\0             \b, backing file %s
                   11264: 
                   11265: ############################################################################
                   11266: # Linux kernel versions
                   11267: 
                   11268: 0              string          \xb8\xc0\x07\x8e\xd8\xb8\x00\x90        Linux
                   11269: >497           leshort         0               x86 boot sector
                   11270: >>514          belong          0x8e    of a kernel from the dawn of time!
                   11271: >>514          belong          0x908ed8b4      version 0.99-1.1.42
                   11272: >>514          belong          0x908ed8b8      for memtest86
                   11273: 
                   11274: >497           leshort         !0              x86 kernel
                   11275: >>504          leshort         >0              RAMdisksize=%u KB
                   11276: >>502          leshort         >0              swap=0x%X
                   11277: >>508          leshort         >0              root=0x%X
                   11278: >>>498         leshort         1               \b-ro
                   11279: >>>498         leshort         0               \b-rw
                   11280: >>506          leshort         0xFFFF          vga=normal
                   11281: >>506          leshort         0xFFFE          vga=extended
                   11282: >>506          leshort         0xFFFD          vga=ask
                   11283: >>506          leshort         >0              vga=%d
                   11284: >>514          belong          0x908ed881      version 1.1.43-1.1.45
                   11285: >>514          belong          0x15b281cd
                   11286: >>>0xa8e       belong          0x55AA5a5a      version 1.1.46-1.2.13,1.3.0
                   11287: >>>0xa99       belong          0x55AA5a5a      version 1.3.1,2
                   11288: >>>0xaa3       belong          0x55AA5a5a      version 1.3.3-1.3.30
                   11289: >>>0xaa6       belong          0x55AA5a5a      version 1.3.31-1.3.41
                   11290: >>>0xb2b       belong          0x55AA5a5a      version 1.3.42-1.3.45
                   11291: >>>0xaf7       belong          0x55AA5a5a      version 1.3.46-1.3.72
                   11292: >>514          string          HdrS
                   11293: >>>518         leshort         >0x1FF
                   11294: >>>>529                byte            0               \b, zImage
                   11295: >>>>529                byte            1               \b, bzImage
                   11296: >>>>(526.s+0x200) string       >\0             \b, version %s
                   11297: 
                   11298: # Linux boot sector thefts.
                   11299: 0              belong          0xb8c0078e      Linux
                   11300: >0x1e6         belong          0x454c4b53      ELKS Kernel
                   11301: >0x1e6         belong          !0x454c4b53     style boot sector
                   11302: 
                   11303: ############################################################################
1.1.1.3   misho    11304: # Linux S390 kernel image
                   11305: # Created by: Jan Kaluza <jkaluza@redhat.com>
                   11306: 8 string \x02\x00\x00\x18\x60\x00\x00\x50\x02\x00\x00\x68\x60\x00\x00\x50\x40\x40\x40\x40\x40\x40\x40\x40 Linux S390
                   11307: >0x00010000 search/b/4096 \x00\x0a\x00\x00\x8b\xad\xcc\xcc
                   11308: # 64bit
                   11309: >>&0 string \xc1\x00\xef\xe3\xf0\x68\x00\x00 Z10 64bit kernel
                   11310: >>&0 string \xc1\x00\xef\xc3\x00\x00\x00\x00 Z9-109 64bit kernel
                   11311: >>&0 string \xc0\x00\x20\x00\x00\x00\x00\x00 Z990 64bit kernel
                   11312: >>&0 string \x00\x00\x00\x00\x00\x00\x00\x00 Z900 64bit kernel
                   11313: # 32bit
                   11314: >>&0 string \x81\x00\xc8\x80\x00\x00\x00\x00 Z10 32bit kernel
                   11315: >>&0 string \x81\x00\xc8\x80\x00\x00\x00\x00 Z9-109 32bit kernel
                   11316: >>&0 string \x80\x00\x20\x00\x00\x00\x00\x00 Z990 32bit kernel
                   11317: >>&0 string \x80\x00\x00\x00\x00\x00\x00\x00 Z900 32bit kernel
                   11318: 
                   11319: # Linux ARM compressed kernel image
                   11320: # From: Kevin Cernekee <cernekee@gmail.com>
                   11321: 36     lelong  0x016f2818      Linux kernel ARM boot executable zImage (little-endian)
                   11322: 36     belong  0x016f2818      Linux kernel ARM boot executable zImage (big-endian)
                   11323: 
                   11324: ############################################################################
1.1       misho    11325: # Linux 8086 executable
                   11326: 0      lelong&0xFF0000FF 0xC30000E9    Linux-Dev86 executable, headerless
                   11327: >5     string          .               
                   11328: >>4    string          >\0             \b, libc version %s
                   11329: 
                   11330: 0      lelong&0xFF00FFFF 0x4000301     Linux-8086 executable
                   11331: >2     byte&0x01       !0              \b, unmapped zero page
                   11332: >2     byte&0x20       0               \b, impure
                   11333: >2     byte&0x20       !0
                   11334: >>2    byte&0x10       !0              \b, A_EXEC
                   11335: >2     byte&0x02       !0              \b, A_PAL
                   11336: >2     byte&0x04       !0              \b, A_NSYM
                   11337: >2     byte&0x08       !0              \b, A_STAND
                   11338: >2     byte&0x40       !0              \b, A_PURE
                   11339: >2     byte&0x80       !0              \b, A_TOVLY
                   11340: >28     long            !0              \b, not stripped
                   11341: >37    string          .               
                   11342: >>36   string          >\0             \b, libc version %s
                   11343: 
                   11344: # 0    lelong&0xFF00FFFF 0x10000301    ld86 I80386 executable
                   11345: # 0    lelong&0xFF00FFFF 0xB000301     ld86 M68K executable
                   11346: # 0    lelong&0xFF00FFFF 0xC000301     ld86 NS16K executable
                   11347: # 0    lelong&0xFF00FFFF 0x17000301    ld86 SPARC executable
                   11348: 
                   11349: # SYSLINUX boot logo files (from 'ppmtolss16' sources)
1.1.1.3   misho    11350: # http://www.syslinux.org/wiki/index.php/SYSLINUX#Display_graphic_from_filename:
                   11351: # file extension .lss .16
1.1       misho    11352: 0      lelong  =0x1413f33d             SYSLINUX' LSS16 image data
1.1.1.3   misho    11353: # syslinux-4.05/mime/image/x-lss16.xml
                   11354: !:mime image/x-lss16
1.1       misho    11355: >4     leshort x                       \b, width %d
                   11356: >6     leshort x                       \b, height %d
                   11357: 
                   11358: 0      string  OOOM                    User-Mode-Linux's Copy-On-Write disk image
                   11359: >4     belong  x                       version %d
                   11360: 
                   11361: # SE Linux policy database
                   11362: # From: Mike Frysinger <vapier@gentoo.org>
                   11363: 0      lelong  0xf97cff8c              SE Linux policy
                   11364: >16    lelong  x                       v%d
                   11365: >20    lelong  1                       MLS
                   11366: >24    lelong  x                       %d symbols
                   11367: >28    lelong  x                       %d ocons
                   11368: 
                   11369: # Linux Logical Volume Manager (LVM) 
                   11370: # Emmanuel VARAGNAT <emmanuel.varagnat@guzu.net>
                   11371: #
                   11372: # System ID, UUID and volume group name are 128 bytes long
                   11373: # but they should never be full and initialized with zeros...
                   11374: #
                   11375: # LVM1
                   11376: #
                   11377: 0x0    string  HM\001          LVM1 (Linux Logical Volume Manager), version 1
                   11378: >0x12c string  >\0             , System ID: %s
                   11379: 
                   11380: 0x0    string  HM\002          LVM1 (Linux Logical Volume Manager), version 2
                   11381: >0x12c string  >\0             , System ID: %s
                   11382: 
                   11383: #  LVM2
                   11384: #
                   11385: # It seems that the label header can be in one the four first sector
                   11386: # of the disk... (from _find_labeller in lib/label/label.c of LVM2)
                   11387: #
                   11388: # 0x200 seems to be the common case
                   11389: 
1.1.1.3   misho    11390: 0x218           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
1.1       misho    11391: # read the offset to add to the start of the header, and the header
                   11392: # start in 0x200
1.1.1.3   misho    11393: >&(&-12.l-0x21) byte    x
                   11394: # display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
                   11395: >>&0x0          string  >\x2f          \b, UUID: %.6s
                   11396: >>&0x6          string  >\x2f          \b-%.4s
                   11397: >>&0xa          string  >\x2f          \b-%.4s
                   11398: >>&0xe          string  >\x2f          \b-%.4s
                   11399: >>&0x12         string  >\x2f          \b-%.4s
                   11400: >>&0x16         string  >\x2f          \b-%.4s
                   11401: >>&0x1a         string  >\x2f          \b-%.6s
                   11402: >>&0x20         lequad  x              \b, size: %lld
                   11403: 
                   11404: 0x018           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
                   11405: >&(&-12.l-0x21) byte    x
                   11406: # display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
                   11407: >>&0x0          string  >\x2f          \b, UUID: %.6s
                   11408: >>&0x6          string  >\x2f          \b-%.4s
                   11409: >>&0xa          string  >\x2f          \b-%.4s
                   11410: >>&0xe          string  >\x2f          \b-%.4s
                   11411: >>&0x12         string  >\x2f          \b-%.4s
                   11412: >>&0x16         string  >\x2f          \b-%.4s
                   11413: >>&0x1a         string  >\x2f          \b-%.6s
                   11414: >>&0x20         lequad  x              \b, size: %lld
                   11415: 
                   11416: 0x418           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
                   11417: >&(&-12.l-0x21) byte    x
                   11418: # display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
                   11419: >>&0x0          string  >\x2f          \b, UUID: %.6s
                   11420: >>&0x6          string  >\x2f          \b-%.4s
                   11421: >>&0xa          string  >\x2f          \b-%.4s
                   11422: >>&0xe          string  >\x2f          \b-%.4s
                   11423: >>&0x12         string  >\x2f          \b-%.4s
                   11424: >>&0x16         string  >\x2f          \b-%.4s
                   11425: >>&0x1a         string  >\x2f          \b-%.6s
                   11426: >>&0x20         lequad  x              \b, size: %lld
                   11427: 
                   11428: 0x618           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
                   11429: >&(&-12.l-0x21) byte    x              
                   11430: # display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
                   11431: >>&0x0          string  >\x2f          \b, UUID: %.6s
                   11432: >>&0x6          string  >\x2f          \b-%.4s
                   11433: >>&0xa          string  >\x2f          \b-%.4s
                   11434: >>&0xe          string  >\x2f          \b-%.4s
                   11435: >>&0x12         string  >\x2f          \b-%.4s
                   11436: >>&0x16         string  >\x2f          \b-%.4s
                   11437: >>&0x1a         string  >\x2f          \b-%.6s
                   11438: >>&0x20         lequad  x              \b, size: %lld
1.1       misho    11439: 
                   11440: # LVM snapshot
                   11441: # from Jason Farrel
                   11442: 0      string  SnAp    LVM Snapshot (CopyOnWrite store)
                   11443: >4     lelong  !0      - valid,
                   11444: >4     lelong  0       - invalid,
                   11445: >8     lelong  x       version %d,
                   11446: >12    lelong  x       chunk_size %d
                   11447: 
                   11448: # SE Linux policy database
                   11449: 0      lelong  0xf97cff8c              SE Linux policy
                   11450: >16    lelong  x                       v%d
                   11451: >20    lelong  1                       MLS
                   11452: >24    lelong  x                       %d symbols
                   11453: >28    lelong  x                       %d ocons
                   11454: 
                   11455: # LUKS: Linux Unified Key Setup, On-Disk Format, http://luks.endorphin.org/spec
                   11456: # Anthon van der Neut (anthon@mnt.org)
                   11457: 0      string  LUKS\xba\xbe    LUKS encrypted file,
                   11458: >6     beshort x               ver %d
                   11459: >8     string  x               [%s,
                   11460: >40    string  x               %s,
                   11461: >72    string  x               %s]
                   11462: >168   string  x               UUID: %s
                   11463: 
                   11464: 
                   11465: # Summary: Xen saved domain file
                   11466: # Created by: Radek Vokal <rvokal@redhat.com>
                   11467: 0      string          LinuxGuestRecord        Xen saved domain
                   11468: >20    search/256      (name                   
                   11469: >>&1   string          x                       (name %s)
                   11470: 
                   11471: # Type: Xen, the virtual machine monitor
                   11472: # From: Radek Vokal <rvokal@redhat.com>
                   11473: 0      string          LinuxGuestRecord        Xen saved domain
                   11474: #>2    regex           \(name\ [^)]*\)         %s
                   11475: >20    search/256      (name                   (name
                   11476: >>&1   string          x                       %s...)
1.1.1.2   misho    11477: 
1.1       misho    11478: #------------------------------------------------------------------------------
1.1.1.2   misho    11479: # $File: lisp,v 1.23 2009/09/19 16:28:10 christos Exp $
1.1       misho    11480: # lisp:  file(1) magic for lisp programs
                   11481: #
                   11482: # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
                   11483: 
                   11484: # updated by Joerg Jenderek
                   11485: # GRR: This lot is too weak
                   11486: #0     string  ;;                      
                   11487: # windows INF files often begin with semicolon and use CRLF as line end
                   11488: # lisp files are mainly created on unix system with LF as line end
1.1.1.2   misho    11489: #>2    search/4096     !\r             Lisp/Scheme program text
                   11490: #>2    search/4096     \r              Windows INF file
1.1       misho    11491: 
1.1.1.2   misho    11492: 0      search/4096     (setq\                  Lisp/Scheme program text
1.1       misho    11493: !:mime text/x-lisp
1.1.1.2   misho    11494: 0      search/4096     (defvar\                Lisp/Scheme program text
1.1       misho    11495: !:mime text/x-lisp
1.1.1.2   misho    11496: 0      search/4096     (defparam\              Lisp/Scheme program text
1.1       misho    11497: !:mime text/x-lisp
1.1.1.2   misho    11498: 0      search/4096     (defun\                 Lisp/Scheme program text
1.1       misho    11499: !:mime text/x-lisp
1.1.1.2   misho    11500: 0      search/4096     (autoload\              Lisp/Scheme program text
1.1       misho    11501: !:mime text/x-lisp
1.1.1.2   misho    11502: 0      search/4096     (custom-set-variables\  Lisp/Scheme program text
1.1       misho    11503: !:mime text/x-lisp
                   11504: 
                   11505: # Emacs 18 - this is always correct, but not very magical.
                   11506: 0      string  \012(                   Emacs v18 byte-compiled Lisp data
                   11507: !:mime application/x-elc
                   11508: # Emacs 19+ - ver. recognition added by Ian Springer
                   11509: # Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
                   11510: # - Chris Chittleborough <cchittleborough@yahoo.com.au>
                   11511: 0      string  ;ELC    
                   11512: >4     byte    >18                     
                   11513: >4     byte    <32                     Emacs/XEmacs v%d byte-compiled Lisp data
                   11514: !:mime application/x-elc               
                   11515: 
                   11516: # Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
                   11517: 0      string  (SYSTEM::VERSION\040'   CLISP byte-compiled Lisp program (pre 2004-03-27)
                   11518: 0      string  (|SYSTEM|::|VERSION|\040'       CLISP byte-compiled Lisp program text
                   11519: 
                   11520: 0      long    0x70768BD2              CLISP memory image data
                   11521: 0      long    0xD28B7670              CLISP memory image data, other endian
                   11522: 
                   11523: #.com and .bin for MIT scheme 
                   11524: 0      string  \372\372\372\372        MIT scheme (library?)
                   11525: 
                   11526: # From: David Allouche <david@allouche.net>
                   11527: 0      search/1        \<TeXmacs|      TeXmacs document text
                   11528: !:mime text/texmacs
                   11529: 
                   11530: #------------------------------------------------------------------------------
1.1.1.3   misho    11531: # $File: llvm,v 1.8 2013/01/12 03:09:51 christos Exp $
1.1       misho    11532: # llvm:  file(1) magic for LLVM byte-codes
1.1.1.2   misho    11533: # URL:  http://llvm.org/docs/BitCodeFormat.html
1.1       misho    11534: # From: Al Stone <ahs3@fc.hp.com>
                   11535: 
                   11536: 0      string  llvm    LLVM byte-codes, uncompressed
                   11537: 0      string  llvc0   LLVM byte-codes, null compression
                   11538: 0      string  llvc1   LLVM byte-codes, gzip compression
                   11539: 0      string  llvc2   LLVM byte-codes, bzip2 compression
1.1.1.3   misho    11540: 
                   11541: 0      lelong  0x0b17c0de      LLVM bitcode, wrapper
                   11542: # Are these Mach-O ABI values?  They appear to be.
                   11543: >16    lelong  0x01000007      x86_64
                   11544: >16    lelong  0x00000007      i386
                   11545: >16    lelong  0x00000012      ppc
                   11546: >16    lelong  0x01000012      ppc64
                   11547: >16    lelong  0x0000000c      arm
                   11548: 
                   11549: 0      string  BC\xc0\xde      LLVM IR bitcode
1.1.1.2   misho    11550: 
1.1       misho    11551: #------------------------------------------------------------------------------
1.1.1.3   misho    11552: # $File: lua,v 1.6 2013/01/09 16:23:17 christos Exp $
1.1       misho    11553: # lua:  file(1) magic for Lua scripting language
                   11554: # URL:  http://www.lua.org/
                   11555: # From: Reuben Thomas <rrt@sc3d.org>, Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
                   11556: 
                   11557: # Lua scripts
1.1.1.2   misho    11558: 0      search/1/w      #!\ /usr/bin/lua        Lua script text executable
1.1       misho    11559: !:mime text/x-lua
1.1.1.2   misho    11560: 0      search/1/w      #!\ /usr/local/bin/lua  Lua script text executable
1.1       misho    11561: !:mime text/x-lua
                   11562: 0      search/1        #!/usr/bin/env\ lua     Lua script text executable
                   11563: !:mime text/x-lua
                   11564: 0      search/1        #!\ /usr/bin/env\ lua   Lua script text executable
                   11565: !:mime text/x-lua
                   11566: 
                   11567: # Lua bytecode
                   11568: 0      string          \033Lua                 Lua bytecode,
                   11569: >4     byte            0x50                    version 5.0
                   11570: >4     byte            0x51                    version 5.1
1.1.1.3   misho    11571: >4     byte            0x52                    version 5.2
1.1       misho    11572: 
                   11573: #------------------------------------------------------------------------------
1.1.1.2   misho    11574: # $File: luks,v 1.4 2009/09/19 16:28:10 christos Exp $
1.1       misho    11575: # luks:  file(1) magic for Linux Unified Key Setup
                   11576: # URL: http://luks.endorphin.org/spec
                   11577: # From:        Anthon van der Neut <anthon@mnt.org>
                   11578: 
                   11579: 0      string          LUKS\xba\xbe    LUKS encrypted file,
                   11580: >6     beshort         x               ver %d
                   11581: >8     string          x               [%s,
                   11582: >40    string          x               %s,
                   11583: >72    string          x               %s]
                   11584: >168   string          x               UUID: %s
1.1.1.3   misho    11585: #------------------------------------------------------------------------------
                   11586: # $File: m4,v 1.1 2011/12/08 12:12:46 rrt Exp $
                   11587: # make:  file(1) magic for M4 scripts
                   11588: #
                   11589: 0      regex   \^dnl\          M4 macro processor script text
                   11590: !:mime text/x-m4
1.1.1.2   misho    11591: 
1.1       misho    11592: #------------------------------------------------------------
1.1.1.3   misho    11593: # $File: mach,v 1.17 2013/03/07 02:22:52 christos Exp $
1.1       misho    11594: # Mach has two magic numbers, 0xcafebabe and 0xfeedface.
                   11595: # Unfortunately the first, cafebabe, is shared with
                   11596: # Java ByteCode, so they are both handled in the file "cafebabe".
                   11597: # The "feedface" ones are handled herein.
                   11598: #------------------------------------------------------------
1.1.1.3   misho    11599: # if set, it's for the 64-bit version of the architecture
                   11600: # yes, this is separate from the low-order magic number bit
                   11601: # it's also separate from the "64-bit libraries" bit in the
                   11602: # upper 8 bits of the CPU subtype
                   11603: 
                   11604: 0      name    mach-o-cpu
                   11605: >0     belong&0x01000000       0
                   11606: #
                   11607: # 32-bit ABIs.
                   11608: #
                   11609: #                              1       vax
                   11610: >>0    belong&0x00ffffff       1
                   11611: >>>4           belong&0x00ffffff       0       vax
                   11612: >>>4           belong&0x00ffffff       1       vax11/780
                   11613: >>>4           belong&0x00ffffff       2       vax11/785
                   11614: >>>4           belong&0x00ffffff       3       vax11/750
                   11615: >>>4           belong&0x00ffffff       4       vax11/730
                   11616: >>>4           belong&0x00ffffff       5       uvaxI
                   11617: >>>4           belong&0x00ffffff       6       uvaxII
                   11618: >>>4           belong&0x00ffffff       7       vax8200
                   11619: >>>4           belong&0x00ffffff       8       vax8500
                   11620: >>>4           belong&0x00ffffff       9       vax8600
                   11621: >>>4           belong&0x00ffffff       10      vax8650
                   11622: >>>4           belong&0x00ffffff       11      vax8800
                   11623: >>>4           belong&0x00ffffff       12      uvaxIII
                   11624: >>>4           belong&0x00ffffff       >12     vax subarchitecture=%ld
                   11625: >>0    belong&0x00ffffff       2       romp
                   11626: >>0    belong&0x00ffffff       3       architecture=3
                   11627: >>0    belong&0x00ffffff       4       ns32032
                   11628: >>0    belong&0x00ffffff       5       ns32332
                   11629: >>0    belong&0x00ffffff       6       m68k
                   11630: #                              7       x86
                   11631: >>0    belong&0x00ffffff       7
                   11632: >>>4   belong&0x0000000f       3               i386
                   11633: >>>4   belong&0x0000000f       4               i486
                   11634: >>>>4  belong&0x00fffff0       0
                   11635: >>>>4  belong&0x00fffff0       0x80            \bsx
                   11636: >>>4   belong&0x0000000f       5               i586
                   11637: >>>4   belong&0x0000000f       6
                   11638: >>>>4  belong&0x00fffff0       0               p6
                   11639: >>>>4  belong&0x00fffff0       0x10            pentium_pro
                   11640: >>>>4  belong&0x00fffff0       0x20            pentium_2_m0x20
                   11641: >>>>4  belong&0x00fffff0       0x30            pentium_2_m3
                   11642: >>>>4  belong&0x00fffff0       0x40            pentium_2_m0x40
                   11643: >>>>4  belong&0x00fffff0       0x50            pentium_2_m5
                   11644: >>>>4  belong&0x00fffff0       >0x50           pentium_2_m0x%lx
                   11645: >>>4   belong&0x0000000f       7               celeron
                   11646: >>>>4  belong&0x00fffff0       0x00            \b_m0x%lx
                   11647: >>>>4  belong&0x00fffff0       0x10            \b_m0x%lx
                   11648: >>>>4  belong&0x00fffff0       0x20            \b_m0x%lx
                   11649: >>>>4  belong&0x00fffff0       0x30            \b_m0x%lx
                   11650: >>>>4  belong&0x00fffff0       0x40            \b_m0x%lx
                   11651: >>>>4  belong&0x00fffff0       0x50            \b_m0x%lx
                   11652: >>>>4  belong&0x00fffff0       0x60
                   11653: >>>>4  belong&0x00fffff0       0x70            \b_mobile
                   11654: >>>>4  belong&0x00fffff0       >0x70           \b_m0x%lx
                   11655: >>>4   belong&0x0000000f       8               pentium_3
                   11656: >>>>4  belong&0x00fffff0       0x00
                   11657: >>>>4  belong&0x00fffff0       0x10            \b_m
                   11658: >>>>4  belong&0x00fffff0       0x20            \b_xeon
                   11659: >>>>4  belong&0x00fffff0       >0x20           \b_m0x%lx
                   11660: >>>4   belong&0x0000000f       9               pentiumM
                   11661: >>>>4  belong&0x00fffff0       0x00
                   11662: >>>>4  belong&0x00fffff0       >0x00           \b_m0x%lx
                   11663: >>>4   belong&0x0000000f       10              pentium_4
                   11664: >>>>4  belong&0x00fffff0       0x00
                   11665: >>>>4  belong&0x00fffff0       0x10            \b_m
                   11666: >>>>4  belong&0x00fffff0       >0x10           \b_m0x%lx
                   11667: >>>4   belong&0x0000000f       11              itanium
                   11668: >>>>4  belong&0x00fffff0       0x00
                   11669: >>>>4  belong&0x00fffff0       0x10            \b_2
                   11670: >>>>4  belong&0x00fffff0       >0x10           \b_m0x%lx
                   11671: >>>4   belong&0x0000000f       12              xeon
                   11672: >>>>4  belong&0x00fffff0       0x00
                   11673: >>>>4  belong&0x00fffff0       0x10            \b_mp
                   11674: >>>>4  belong&0x00fffff0       >0x10           \b_m0x%lx
                   11675: >>>4   belong&0x0000000f       >12             ia32 family=%ld
                   11676: >>>>4  belong&0x00fffff0       0x00
                   11677: >>>>4  belong&0x00fffff0       >0x00           model=%lx
                   11678: >>0    belong&0x00ffffff       8       mips
                   11679: >>>4           belong&0x00ffffff       1       R2300
                   11680: >>>4           belong&0x00ffffff       2       R2600
                   11681: >>>4           belong&0x00ffffff       3       R2800
                   11682: >>>4           belong&0x00ffffff       4       R2000a
                   11683: >>>4           belong&0x00ffffff       5       R2000
                   11684: >>>4           belong&0x00ffffff       6       R3000a
                   11685: >>>4           belong&0x00ffffff       7       R3000
                   11686: >>>4           belong&0x00ffffff       >7      subarchitecture=%ld
                   11687: >>0    belong&0x00ffffff       9       ns32532
                   11688: >>0    belong&0x00ffffff       10      mc98000
                   11689: >>0    belong&0x00ffffff       11      hppa
                   11690: >>>4           belong&0x00ffffff       0       7100
                   11691: >>>4           belong&0x00ffffff       1       7100LC
                   11692: >>>4           belong&0x00ffffff       >1      subarchitecture=%ld
                   11693: >>0    belong&0x00ffffff       12      arm
                   11694: >>>4           belong&0x00ffffff       0
                   11695: >>>4           belong&0x00ffffff       1       subarchitecture=%ld
                   11696: >>>4           belong&0x00ffffff       2       subarchitecture=%ld
                   11697: >>>4           belong&0x00ffffff       3       subarchitecture=%ld
                   11698: >>>4           belong&0x00ffffff       4       subarchitecture=%ld
                   11699: >>>4           belong&0x00ffffff       5       \b_v4t
                   11700: >>>4           belong&0x00ffffff       6       \b_v6
                   11701: >>>4           belong&0x00ffffff       7       \b_v5tej
                   11702: >>>4           belong&0x00ffffff       8       \b_xscale
                   11703: >>>4           belong&0x00ffffff       9       \b_v7
                   11704: >>>4           belong&0x00ffffff       10      \b_v7f
                   11705: >>>4           belong&0x00ffffff       11      subarchitecture=%ld
                   11706: >>>4           belong&0x00ffffff       12      \b_v7k
                   11707: >>>4           belong&0x00ffffff       >12     subarchitecture=%ld
                   11708: #                              13      m88k
                   11709: >>0    belong&0x00ffffff       13
                   11710: >>>4           belong&0x00ffffff       0       mc88000
                   11711: >>>4           belong&0x00ffffff       1       mc88100
                   11712: >>>4           belong&0x00ffffff       2       mc88110
                   11713: >>>4           belong&0x00ffffff       >2      mc88000 subarchitecture=%ld
                   11714: >>0    belong&0x00ffffff       14      sparc
                   11715: >>0    belong&0x00ffffff       15      i860g
                   11716: >>0    belong&0x00ffffff       16      alpha
                   11717: >>0    belong&0x00ffffff       17      rs6000
                   11718: >>0    belong&0x00ffffff       18      ppc
                   11719: >>>4           belong&0x00ffffff       0
                   11720: >>>4           belong&0x00ffffff       1       \b_601
                   11721: >>>4           belong&0x00ffffff       2       \b_602
                   11722: >>>4           belong&0x00ffffff       3       \b_603
                   11723: >>>4           belong&0x00ffffff       4       \b_603e
                   11724: >>>4           belong&0x00ffffff       5       \b_603ev
                   11725: >>>4           belong&0x00ffffff       6       \b_604
                   11726: >>>4           belong&0x00ffffff       7       \b_604e
                   11727: >>>4           belong&0x00ffffff       8       \b_620
                   11728: >>>4           belong&0x00ffffff       9       \b_650
                   11729: >>>4           belong&0x00ffffff       10      \b_7400
                   11730: >>>4           belong&0x00ffffff       11      \b_7450
                   11731: >>>4           belong&0x00ffffff       100     \b_970
                   11732: >>>4           belong&0x00ffffff       >100    subarchitecture=%ld
                   11733: >>0    belong&0x00ffffff       >18     architecture=%ld
                   11734: >0     belong&0x01000000       0x01000000
                   11735: #
                   11736: # 64-bit ABIs.
                   11737: #
                   11738: >>0    belong&0x00ffffff       0       64-bit architecture=%ld
                   11739: >>0    belong&0x00ffffff       1       64-bit architecture=%ld
                   11740: >>0    belong&0x00ffffff       2       64-bit architecture=%ld
                   11741: >>0    belong&0x00ffffff       3       64-bit architecture=%ld
                   11742: >>0    belong&0x00ffffff       4       64-bit architecture=%ld
                   11743: >>0    belong&0x00ffffff       5       64-bit architecture=%ld
                   11744: >>0    belong&0x00ffffff       6       64-bit architecture=%ld
                   11745: >>0    belong&0x00ffffff       7       x86_64
                   11746: >>>4           belong&0x00ffffff       0       subarchitecture=%ld
                   11747: >>>4           belong&0x00ffffff       1       subarchitecture=%ld
                   11748: >>>4           belong&0x00ffffff       2       subarchitecture=%ld
                   11749: >>>4           belong&0x00ffffff       3
                   11750: >>>4           belong&0x00ffffff       4       \b_arch1
                   11751: >>>4           belong&0x00ffffff       >4      subarchitecture=%ld
                   11752: >>0    belong&0x00ffffff       8       64-bit architecture=%ld
                   11753: >>0    belong&0x00ffffff       9       64-bit architecture=%ld
                   11754: >>0    belong&0x00ffffff       10      64-bit architecture=%ld
                   11755: >>0    belong&0x00ffffff       11      64-bit architecture=%ld
                   11756: >>0    belong&0x00ffffff       12      64-bit architecture=%ld
                   11757: >>0    belong&0x00ffffff       13      64-bit architecture=%ld
                   11758: >>0    belong&0x00ffffff       14      64-bit architecture=%ld
                   11759: >>0    belong&0x00ffffff       15      64-bit architecture=%ld
                   11760: >>0    belong&0x00ffffff       16      64-bit architecture=%ld
                   11761: >>0    belong&0x00ffffff       17      64-bit architecture=%ld
                   11762: >>0    belong&0x00ffffff       18      ppc64
                   11763: >>>4           belong&0x00ffffff       0
                   11764: >>>4           belong&0x00ffffff       1               \b_601
                   11765: >>>4           belong&0x00ffffff       2               \b_602
                   11766: >>>4           belong&0x00ffffff       3               \b_603
                   11767: >>>4           belong&0x00ffffff       4               \b_603e
                   11768: >>>4           belong&0x00ffffff       5               \b_603ev
                   11769: >>>4           belong&0x00ffffff       6               \b_604
                   11770: >>>4           belong&0x00ffffff       7               \b_604e
                   11771: >>>4           belong&0x00ffffff       8               \b_620
                   11772: >>>4           belong&0x00ffffff       9               \b_650
                   11773: >>>4           belong&0x00ffffff       10              \b_7400
                   11774: >>>4           belong&0x00ffffff       11              \b_7450
                   11775: >>>4           belong&0x00ffffff       100             \b_970
                   11776: >>>4           belong&0x00ffffff       >100            subarchitecture=%ld
                   11777: >>0    belong&0x00ffffff       >18     64-bit architecture=%ld
                   11778: 
                   11779: 
                   11780: 0      name            mach-o-be
1.1       misho    11781: >0     byte            0xcf            64-bit
1.1.1.3   misho    11782: >4     use             mach-o-cpu
1.1       misho    11783: >12    belong          1               object
                   11784: >12    belong          2               executable
                   11785: >12    belong          3               fixed virtual memory shared library
                   11786: >12    belong          4               core
                   11787: >12    belong          5               preload executable
1.1.1.3   misho    11788: >12    belong          6               dynamically linked shared library
                   11789: >12    belong          7               dynamic linker
1.1       misho    11790: >12    belong          8               bundle
                   11791: >12    belong          9               dynamically linked shared library stub
1.1.1.3   misho    11792: >12    belong          10              dSYM companion file
                   11793: >12    belong          11              kext bundle
                   11794: >12    belong          >11
1.1       misho    11795: >>12   belong          x               filetype=%ld
1.1.1.3   misho    11796: 
                   11797: #
                   11798: 0      lelong&0xfffffffe       0xfeedface      Mach-O
                   11799: !:strength +1
                   11800: >0     use     \^mach-o-be
                   11801: 
                   11802: 0      belong&0xfffffffe       0xfeedface      Mach-O
                   11803: !:strength +1
                   11804: >0     use     mach-o-be
1.1       misho    11805: 
                   11806: #------------------------------------------------------------------------------
1.1.1.3   misho    11807: # $File: macintosh,v 1.22 2011/05/17 17:40:31 rrt Exp $
1.1       misho    11808: # macintosh description
                   11809: #
                   11810: # BinHex is the Macintosh ASCII-encoded file format (see also "apple")
                   11811: # Daniel Quinlan, quinlan@yggdrasil.com
                   11812: 11     string  must\ be\ converted\ with\ BinHex       BinHex binary text
                   11813: !:mime application/mac-binhex40
                   11814: >41    string  x                                       \b, version %.3s
                   11815: 
                   11816: # Stuffit archives are the de facto standard of compression for Macintosh
                   11817: # files obtained from most archives. (franklsm@tuns.ca)
                   11818: 0      string          SIT!                    StuffIt Archive (data)
1.1.1.2   misho    11819: !:mime application/x-stuffit
                   11820: !:apple        SIT!SIT!
1.1       misho    11821: >2     string          x                       : %s
                   11822: 0      string          SITD                    StuffIt Deluxe (data)
                   11823: >2     string          x                       : %s
                   11824: 0      string          Seg                     StuffIt Deluxe Segment (data)
                   11825: >2     string          x                       : %s
                   11826: 
                   11827: # Newer StuffIt archives (grant@netbsd.org)
                   11828: 0      string          StuffIt                 StuffIt Archive
                   11829: !:mime application/x-stuffit
1.1.1.2   misho    11830: !:apple        SIT!SIT!
1.1       misho    11831: #>162  string          >0                      : %s
                   11832: 
                   11833: # Macintosh Applications and Installation binaries (franklsm@tuns.ca)
                   11834: # GRR: Too weak
                   11835: #0     string          APPL                    Macintosh Application (data)
                   11836: #>2    string          x                       \b: %s
                   11837: 
                   11838: # Macintosh System files (franklsm@tuns.ca)
                   11839: # GRR: Too weak
                   11840: #0     string          zsys                    Macintosh System File (data)
                   11841: #0     string          FNDR                    Macintosh Finder (data)
                   11842: #0     string          libr                    Macintosh Library (data)
                   11843: #>2    string          x                       : %s
                   11844: #0     string          shlb                    Macintosh Shared Library (data)
                   11845: #>2    string          x                       : %s
                   11846: #0     string          cdev                    Macintosh Control Panel (data)
                   11847: #>2    string          x                       : %s
                   11848: #0     string          INIT                    Macintosh Extension (data)
                   11849: #>2    string          x                       : %s
                   11850: #0     string          FFIL                    Macintosh Truetype Font (data)
                   11851: #>2    string          x                       : %s
                   11852: #0     string          LWFN                    Macintosh Postscript Font (data)
                   11853: #>2    string          x                       : %s
                   11854: 
                   11855: # Additional Macintosh Files (franklsm@tuns.ca)
                   11856: # GRR: Too weak
                   11857: #0     string          PACT                    Macintosh Compact Pro Archive (data)
                   11858: #>2    string          x                       : %s
                   11859: #0     string          ttro                    Macintosh TeachText File (data)
                   11860: #>2    string          x                       : %s
                   11861: #0     string          TEXT                    Macintosh TeachText File (data)
                   11862: #>2    string          x                       : %s
                   11863: #0     string          PDF                     Macintosh PDF File (data)
                   11864: #>2    string          x                       : %s
                   11865: 
                   11866: # MacBinary format (Eric Fischer, enf@pobox.com)
                   11867: #
                   11868: # Unfortunately MacBinary doesn't really have a magic number prior
                   11869: # to the MacBinary III format.  The checksum is really the way to
                   11870: # do it, but the magic file format isn't up to the challenge.
                   11871: #
                   11872: # 0    byte            0
                   11873: # 1    byte                            # filename length
                   11874: # 2    string                          # filename
                   11875: # 65    string                         # file type
                   11876: # 69   string                          # file creator
                   11877: # 73   byte                            # Finder flags
                   11878: # 74   byte            0
                   11879: # 75   beshort                         # vertical posn in window
                   11880: # 77   beshort                         # horiz posn in window
                   11881: # 79   beshort                         # window or folder ID
                   11882: # 81    byte                           # protected?
                   11883: # 82   byte            0
                   11884: # 83   belong                          # length of data segment
                   11885: # 87   belong                          # length of resource segment
                   11886: # 91   belong                          # file creation date
                   11887: # 95   belong                          # file modification date
                   11888: # 99   beshort                         # length of comment after resource
                   11889: # 101  byte                            # new Finder flags
                   11890: # 102  string          mBIN            # (only in MacBinary III)
                   11891: # 106  byte                            # char. code of file name
                   11892: # 107  byte                            # still more Finder flags
                   11893: # 116  belong                          # total file length
                   11894: # 120  beshort                         # length of add'l header
                   11895: # 122  byte            129             # for MacBinary II
                   11896: # 122  byte            130             # for MacBinary III
                   11897: # 123  byte            129             # minimum version that can read fmt
                   11898: # 124  beshort                         # checksum
                   11899: #
                   11900: # This attempts to use the version numbers as a magic number, requiring
                   11901: # that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
                   11902: # be 0x81.  This works for the files I have, but maybe not for everyone's.
                   11903: 
                   11904: # Unfortunately, this magic is quite weak - MPi
                   11905: #122   beshort&0xFCFF  0x8081          Macintosh MacBinary data
                   11906: 
                   11907: # MacBinary I doesn't have the version number field at all, but MacBinary II
                   11908: # has been in use since 1987 so I hope there aren't many really old files
                   11909: # floating around that this will miss.  The original spec calls for using
                   11910: # the nulls in 0, 74, and 82 as the magic number.
                   11911: #
                   11912: # Another possibility, that would also work for MacBinary I, is to use
                   11913: # the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
                   11914: # have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
                   11915: # and that 74 will be 0.  So something like
                   11916: # 
                   11917: # 71   belong&0x80804EFF 0x00000000    Macintosh MacBinary data
                   11918: # 
                   11919: # >73  byte&0x01       0x01            \b, inited
                   11920: # >73  byte&0x02       0x02            \b, changed
                   11921: # >73  byte&0x04       0x04            \b, busy
                   11922: # >73  byte&0x08       0x08            \b, bozo
                   11923: # >73  byte&0x10       0x10            \b, system
                   11924: # >73  byte&0x10       0x20            \b, bundle
                   11925: # >73  byte&0x10       0x40            \b, invisible
                   11926: # >73  byte&0x10       0x80            \b, locked
                   11927: 
                   11928: #>65   string          x               \b, type "%4.4s"
                   11929: 
                   11930: #>65   string          8BIM            (PhotoShop)
                   11931: #>65   string          ALB3            (PageMaker 3)
                   11932: #>65   string          ALB4            (PageMaker 4)
                   11933: #>65   string          ALT3            (PageMaker 3)
                   11934: #>65   string          APPL            (application)
                   11935: #>65   string          AWWP            (AppleWorks word processor)
                   11936: #>65   string          CIRC            (simulated circuit)
                   11937: #>65   string          DRWG            (MacDraw)
                   11938: #>65   string          EPSF            (Encapsulated PostScript)
                   11939: #>65   string          FFIL            (font suitcase)
                   11940: #>65   string          FKEY            (function key)
                   11941: #>65   string          FNDR            (Macintosh Finder)
                   11942: #>65   string          GIFf            (GIF image)
                   11943: #>65   string          Gzip            (GNU gzip)
                   11944: #>65   string          INIT            (system extension)
                   11945: #>65   string          LIB\            (library)
                   11946: #>65   string          LWFN            (PostScript font)
                   11947: #>65   string          MSBC            (Microsoft BASIC)
                   11948: #>65   string          PACT            (Compact Pro archive)
                   11949: #>65   string          PDF\            (Portable Document Format)
                   11950: #>65   string          PICT            (picture)
                   11951: #>65   string          PNTG            (MacPaint picture)
                   11952: #>65   string          PREF            (preferences)
                   11953: #>65   string          PROJ            (Think C project)
                   11954: #>65   string          QPRJ            (Think Pascal project)
                   11955: #>65   string          SCFL            (Defender scores)
                   11956: #>65   string          SCRN            (startup screen)
                   11957: #>65   string          SITD            (StuffIt Deluxe)
                   11958: #>65   string          SPn3            (SuperPaint)
                   11959: #>65   string          STAK            (HyperCard stack)
                   11960: #>65   string          Seg\            (StuffIt segment)
                   11961: #>65   string          TARF            (Unix tar archive)
                   11962: #>65   string          TEXT            (ASCII)
                   11963: #>65   string          TIFF            (TIFF image)
                   11964: #>65   string          TOVF            (Eudora table of contents)
                   11965: #>65   string          WDBN            (Microsoft Word word processor)
                   11966: #>65   string          WORD            (MacWrite word processor)
                   11967: #>65   string          XLS\            (Microsoft Excel)
                   11968: #>65   string          ZIVM            (compress (.Z))
                   11969: #>65   string          ZSYS            (Pre-System 7 system file)
                   11970: #>65   string          acf3            (Aldus FreeHand)
                   11971: #>65   string          cdev            (control panel)
1.1.1.4 ! misho    11972: #>65   string          dfil            (Desk Accessory suitcase)
1.1       misho    11973: #>65   string          libr            (library)
                   11974: #>65   string          nX^d            (WriteNow word processor)
                   11975: #>65   string          nX^w            (WriteNow dictionary)
                   11976: #>65   string          rsrc            (resource)
                   11977: #>65   string          scbk            (Scrapbook)
                   11978: #>65   string          shlb            (shared library)
                   11979: #>65   string          ttro            (SimpleText read-only)
                   11980: #>65   string          zsys            (system file)
                   11981: 
                   11982: #>69   string          x               \b, creator "%4.4s"
                   11983: 
                   11984: # Somewhere, Apple has a repository of registered Creator IDs.  These are
                   11985: # just the ones that I happened to have files from and was able to identify.
                   11986: 
                   11987: #>69   string          8BIM            (Adobe Photoshop)
                   11988: #>69   string          ALD3            (PageMaker 3)
                   11989: #>69   string          ALD4            (PageMaker 4)
                   11990: #>69   string          ALFA            (Alpha editor)
                   11991: #>69   string          APLS            (Apple Scanner)
                   11992: #>69   string          APSC            (Apple Scanner)
                   11993: #>69   string          BRKL            (Brickles)
                   11994: #>69   string          BTFT            (BitFont)
                   11995: #>69   string          CCL2            (Common Lisp 2)
                   11996: #>69   string          CCL\            (Common Lisp)
                   11997: #>69   string          CDmo            (The Talking Moose)
                   11998: #>69   string          CPCT            (Compact Pro)
                   11999: #>69   string          CSOm            (Eudora)
                   12000: #>69   string          DMOV            (Font/DA Mover)
                   12001: #>69   string          DSIM            (DigSim)
                   12002: #>69   string          EDIT            (Macintosh Edit)
                   12003: #>69   string          ERIK            (Macintosh Finder)
                   12004: #>69   string          EXTR            (self-extracting archive)
                   12005: #>69   string          Gzip            (GNU gzip)
                   12006: #>69   string          KAHL            (Think C)
                   12007: #>69   string          LWFU            (LaserWriter Utility)
                   12008: #>69   string          LZIV            (compress)
                   12009: #>69   string          MACA            (MacWrite)
                   12010: #>69   string          MACS            (Macintosh operating system)
                   12011: #>69   string          MAcK            (MacKnowledge terminal emulator)
                   12012: #>69   string          MLND            (Defender)
                   12013: #>69   string          MPNT            (MacPaint)
                   12014: #>69   string          MSBB            (Microsoft BASIC (binary))
                   12015: #>69   string          MSWD            (Microsoft Word)
                   12016: #>69   string          NCSA            (NCSA Telnet)
                   12017: #>69   string          PJMM            (Think Pascal)
                   12018: #>69   string          PSAL            (Hunt the Wumpus)
                   12019: #>69   string          PSI2            (Apple File Exchange)
                   12020: #>69   string          R*ch            (BBEdit)
                   12021: #>69   string          RMKR            (Resource Maker)
                   12022: #>69   string          RSED            (Resource Editor)
                   12023: #>69   string          Rich            (BBEdit)
                   12024: #>69   string          SIT!            (StuffIt)
                   12025: #>69   string          SPNT            (SuperPaint)
                   12026: #>69   string          Unix            (NeXT Mac filesystem)
                   12027: #>69   string          VIM!            (Vim editor)
                   12028: #>69   string          WILD            (HyperCard)
                   12029: #>69   string          XCEL            (Microsoft Excel)
                   12030: #>69   string          aCa2            (Fontographer)
                   12031: #>69   string          aca3            (Aldus FreeHand)
                   12032: #>69   string          dosa            (Macintosh MS-DOS file system)
                   12033: #>69   string          movr            (Font/DA Mover)
                   12034: #>69   string          nX^n            (WriteNow)
                   12035: #>69   string          pdos            (Apple ProDOS file system)
                   12036: #>69   string          scbk            (Scrapbook)
                   12037: #>69   string          ttxt            (SimpleText)
                   12038: #>69   string          ufox            (Foreign File Access)
                   12039: 
                   12040: # Just in case...
                   12041: 
                   12042: 102    string          mBIN            MacBinary III data with surprising version number
                   12043: 
                   12044: # sas magic from Bruce Foster (bef@nwu.edu)
                   12045: #
                   12046: #0     string          SAS             SAS
                   12047: #>8    string          x               %s
                   12048: 0      string          SAS             SAS
                   12049: >24    string          DATA            data file
                   12050: >24    string          CATALOG         catalog
                   12051: >24    string          INDEX           data file index
                   12052: >24    string          VIEW            data view
                   12053: # sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
                   12054: #
                   12055: 0x54    string          SAS             SAS 7+
                   12056: >0x9C   string          DATA            data file
                   12057: >0x9C   string          CATALOG         catalog
                   12058: >0x9C   string          INDEX           data file index
                   12059: >0x9C   string          VIEW            data view
                   12060: 
                   12061: # spss magic for SPSS system and portable files, 
                   12062: #       from Bruce Foster (bef@nwu.edu).
                   12063: 
                   12064: 0      long            0xc1e2c3c9      SPSS Portable File
                   12065: >40    string          x               %s
                   12066: 
                   12067: 0      string          $FL2            SPSS System File
                   12068: >24    string          x               %s
                   12069: 
                   12070: # Macintosh filesystem data
                   12071: # From "Tom N Harris" <telliamed@mac.com>
                   12072: # Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
                   12073: # The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
                   12074: # entries depend on the data arithmetic added after v.35
                   12075: # There's also some Pascal strings in here, ditto...
                   12076: 
                   12077: # The boot block signature, according to IM:Files, is 
                   12078: # "for HFS volumes, this field always contains the value 0x4C4B."
                   12079: # But if this is true for MFS or HFS+ volumes, I don't know.
                   12080: # Alternatively, the boot block is supposed to be zeroed if it's
                   12081: # unused, so a simply >0 should suffice.
                   12082: 
                   12083: 0x400  beshort                 0xD2D7          Macintosh MFS data
                   12084: >0     beshort                 0x4C4B          (bootable)
                   12085: >0x40a beshort                 &0x8000         (locked)
                   12086: >0x402 beldate-0x7C25B080      x               created: %s,
                   12087: >0x406 beldate-0x7C25B080      >0              last backup: %s,
                   12088: >0x414 belong                  x               block size: %d,
                   12089: >0x412 beshort                 x               number of blocks: %d,
                   12090: >0x424 pstring                 x               volume name: %s
                   12091: 
1.1.1.3   misho    12092: # "BD" gives many false positives
1.1       misho    12093: #0x400 beshort                 0x4244          Macintosh HFS data
                   12094: #>0    beshort                 0x4C4B          (bootable)
                   12095: #>0x40a        beshort                 &0x8000         (locked)
                   12096: #>0x40a        beshort                 ^0x0100         (mounted)
                   12097: #>0x40a        beshort                 &0x0200         (spared blocks)
                   12098: #>0x40a        beshort                 &0x0800         (unclean)
                   12099: #>0x47C        beshort                 0x482B          (Embedded HFS+ Volume)
                   12100: #>0x402        beldate-0x7C25B080      x               created: %s,
                   12101: #>0x406        beldate-0x7C25B080      x               last modified: %s,
                   12102: #>0x440        beldate-0x7C25B080      >0              last backup: %s,
                   12103: #>0x414        belong                  x               block size: %d,
                   12104: #>0x412        beshort                 x               number of blocks: %d,
                   12105: #>0x424        pstring                 x               volume name: %s
                   12106: 
                   12107: 0x400  beshort                 0x482B          Macintosh HFS Extended
                   12108: >&0    beshort                 x               version %d data
                   12109: >0     beshort                 0x4C4B          (bootable)
                   12110: >0x404 belong                  ^0x00000100     (mounted)
                   12111: >&2    belong                  &0x00000200     (spared blocks)
                   12112: >&2    belong                  &0x00000800     (unclean)
                   12113: >&2    belong                  &0x00008000     (locked)
                   12114: >&6    string                  x               last mounted by: '%.4s',
                   12115: # really, that should be treated as a belong and we print a string
                   12116: # based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
                   12117: >&14   beldate-0x7C25B080      x               created: %s,
                   12118: # only the creation date is local time, all other timestamps in HFS+ are UTC.
                   12119: >&18   bedate-0x7C25B080       x               last modified: %s,
                   12120: >&22   bedate-0x7C25B080       >0              last backup: %s,
                   12121: >&26   bedate-0x7C25B080       >0              last checked: %s,
                   12122: >&38   belong                  x               block size: %d,
                   12123: >&42   belong                  x               number of blocks: %d,
                   12124: >&46   belong                  x               free blocks: %d
                   12125: 
                   12126: # I don't think this is really necessary since it doesn't do much and 
                   12127: # anything with a valid driver descriptor will also have a valid
                   12128: # partition map
                   12129: #0             beshort         0x4552          Apple Device Driver data
                   12130: #>&24          beshort         =1              \b, MacOS
                   12131: 
                   12132: # Is that the partition type a cstring or a pstring? Well, IM says "strings 
                   12133: # shorter than 32 bytes must be terminated with NULL" so I'll treat it as a 
                   12134: # cstring. Of course, partitions can contain more than four entries, but 
                   12135: # what're you gonna do?
                   12136: # GRR: This magic is too weak, it is just "PM"
                   12137: #0x200         beshort         0x504D          Apple Partition data
                   12138: #>0x2          beshort         x               (block size: %d):
                   12139: #>0x230                string          x               first type: %s,
                   12140: #>0x210                string          x               name: %s,
                   12141: #>0x254                belong          x               number of blocks: %d,
                   12142: #>0x400                beshort         0x504D          
                   12143: #>>0x430               string          x               second type: %s,
                   12144: #>>0x410               string          x               name: %s,
                   12145: #>>0x454               belong          x               number of blocks: %d,
                   12146: #>>0x600               beshort         0x504D
                   12147: #>>>0x630      string          x               third type: %s,
                   12148: #>>>0x610      string          x               name: %s,
                   12149: #>>>0x654      belong          x               number of blocks: %d,
                   12150: #>>0x800               beshort         0x504D          
                   12151: #>>>0x830      string          x               fourth type: %s,
                   12152: #>>>0x810      string          x               name: %s,
                   12153: #>>>0x854      belong          x               number of blocks: %d,
                   12154: #>>>0xa00      beshort         0x504D          
                   12155: #>>>>0xa30     string          x               fifth type: %s,
                   12156: #>>>>0xa10     string          x               name: %s,
                   12157: #>>>>0xa54     belong          x               number of blocks: %d
                   12158: #>>>0xc00      beshort         0x504D
                   12159: #>>>>0xc30     string          x               sixth type: %s,
                   12160: #>>>>0xc10     string          x               name: %s,
                   12161: #>>>>0xc54     belong          x               number of blocks: %d
                   12162: ## AFAIK, only the signature is different
                   12163: #0x200         beshort         0x5453          Apple Old Partition data
                   12164: #>0x2          beshort         x               block size: %d,
                   12165: #>0x230                string          x               first type: %s,
                   12166: #>0x210                string          x               name: %s,
                   12167: #>0x254                belong          x               number of blocks: %d,
                   12168: #>0x400                beshort         0x504D          
                   12169: #>>0x430               string          x               second type: %s,
                   12170: #>>0x410               string          x               name: %s,
                   12171: #>>0x454               belong          x               number of blocks: %d,
                   12172: #>>0x800               beshort         0x504D          
                   12173: #>>>0x830      string          x               third type: %s,
                   12174: #>>>0x810      string          x               name: %s,
                   12175: #>>>0x854      belong          x               number of blocks: %d,
                   12176: #>>>0xa00      beshort         0x504D          
                   12177: #>>>>0xa30     string          x               fourth type: %s,
                   12178: #>>>>0xa10     string          x               name: %s,
                   12179: #>>>>0xa54     belong          x               number of blocks: %d
                   12180: 
                   12181: # From: Remi Mommsen <mommsen@slac.stanford.edu>
                   12182: 0              string          BOMStore        Mac OS X bill of materials (BOM) file
                   12183: 
1.1.1.2   misho    12184: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   12185: # URL: http://en.wikipedia.org/wiki/Datafork_TrueType
                   12186: # Derived from the 'fondu' and 'ufond' source code (fondu.sf.net). 'sfnt' is
                   12187: # TrueType; 'POST' is PostScript. 'FONT' and 'NFNT' sometimes appear, but I
                   12188: # don't know what they mean.
                   12189: 0      belong  0x100
                   12190: >(0x4.L+24)    beshort x
                   12191: >>&4   belong  0x73666e74      Mac OSX datafork font, TrueType
                   12192: >>&4   belong  0x464f4e54      Mac OSX datafork font, 'FONT'
                   12193: >>&4   belong  0x4e464e54      Mac OSX datafork font, 'NFNT'
                   12194: >>&4   belong  0x504f5354      Mac OSX datafork font, PostScript
                   12195: 
1.1       misho    12196: #------------------------------------------------------------------------------
1.1.1.3   misho    12197: # $File: macos,v 1.1 2012/12/21 16:41:07 christos Exp $
                   12198: # MacOS files
                   12199: #
                   12200: 
                   12201: 0      string          book\0\0\0\0mark\0\0\0\0        MacOS Alias file
                   12202: 
                   12203: #------------------------------------------------------------------------------
                   12204: # $File: magic,v 1.10 2010/11/25 15:00:12 christos Exp $
1.1       misho    12205: # magic:  file(1) magic for magic files
                   12206: #
1.1.1.3   misho    12207: 0      string/t                #\ Magic        magic text file for file(1) cmd
1.1       misho    12208: 0      lelong          0xF11E041C      magic binary file for file(1) cmd
                   12209: >4     lelong          x               (version %d) (little endian)
                   12210: 0      belong          0xF11E041C      magic binary file for file(1) cmd
                   12211: >4     belong          x               (version %d) (big endian)
                   12212: #------------------------------------------------------------------------------
1.1.1.3   misho    12213: # $File: mail.news,v 1.22 2013/01/04 14:22:07 christos Exp $
1.1       misho    12214: # mail.news:  file(1) magic for mail and news
                   12215: #
                   12216: # Unfortunately, saved netnews also has From line added in some news software.
                   12217: #0     string          From            mail text
1.1.1.3   misho    12218: 0      string/t                Relay-Version:  old news text
                   12219: !:mime message/rfc822
                   12220: 0      string/t                #!\ rnews       batched news text
1.1       misho    12221: !:mime message/rfc822
1.1.1.3   misho    12222: 0      string/t                N#!\ rnews      mailed, batched news text
1.1       misho    12223: !:mime message/rfc822
1.1.1.3   misho    12224: 0      string/t                Forward\ to     mail forwarding text
1.1       misho    12225: !:mime message/rfc822
1.1.1.3   misho    12226: 0      string/t                Pipe\ to        mail piping text
1.1       misho    12227: !:mime message/rfc822
1.1.1.3   misho    12228: 0      string/tc               delivered-to:   SMTP mail text
1.1       misho    12229: !:mime message/rfc822
1.1.1.3   misho    12230: 0      string/tc               return-path:    SMTP mail text
1.1       misho    12231: !:mime message/rfc822
1.1.1.3   misho    12232: 0      string/t                Path:           news text
1.1       misho    12233: !:mime message/news
1.1.1.3   misho    12234: 0      string/t                Xref:           news text
1.1       misho    12235: !:mime message/news
1.1.1.3   misho    12236: 0      string/t                From:           news or mail text
1.1       misho    12237: !:mime message/rfc822
1.1.1.3   misho    12238: 0      string/t                Article         saved news text
1.1       misho    12239: !:mime message/news
1.1.1.3   misho    12240: 0      string/t                BABYL           Emacs RMAIL text
                   12241: 0      string/t                Received:       RFC 822 mail text
1.1       misho    12242: !:mime message/rfc822
1.1.1.3   misho    12243: 0      string/t                MIME-Version:   MIME entity text
                   12244: #0     string/t                Content-        MIME entity text
1.1       misho    12245: 
                   12246: # TNEF files...
                   12247: 0      lelong          0x223E9F78      Transport Neutral Encapsulation Format
1.1.1.3   misho    12248: !:mime application/vnd.ms-tnef
1.1       misho    12249: 
                   12250: # From: Kevin Sullivan <ksulliva@psc.edu>
                   12251: 0      string          *mbx*           MBX mail folder
                   12252: 
                   12253: # From: Simon Matter <simon.matter@invoca.ch>
                   12254: 0      string          \241\002\213\015skiplist\ file\0\0\0    Cyrus skiplist DB
                   12255: 
                   12256: # JAM(mbp) Fidonet message area databases
                   12257: # JHR file
                   12258: 0      string  JAM\0                   JAM message area header file
                   12259: >12    leshort >0                      (%d messages)
                   12260: 
                   12261: # Squish Fidonet message area databases
                   12262: # SQD file (requires at least one message in the area)
                   12263: # XXX: Weak magic
                   12264: #256   leshort 0xAFAE4453              Squish message area data file
                   12265: #>4    leshort >0                      (%d messages)
                   12266: 
                   12267: #0     string          \<!--\ MHonArc          text/html; x-type=mhonarc
                   12268: 
1.1.1.3   misho    12269: # Cyrus: file(1) magic for compiled Cyrus sieve scripts
                   12270: # URL: http://www.cyrusimap.org/docs/cyrus-imapd/2.4.6/internal/bytecode.php
                   12271: # URL: http://git.cyrusimap.org/cyrus-imapd/tree/sieve/bytecode.h?h=master
                   12272: # From: Philipp Hahn <hahn@univention.de>
                   12273: 
                   12274: # Compiled Cyrus sieve script
                   12275: 0       string CyrSBytecode     Cyrus sieve bytecode data,
                   12276: >12     belong =1       version 1, big-endian
                   12277: >12     lelong =1       version 1, little-endian
                   12278: >12     belong x        version %d, network-endian
                   12279: #------------------------------------------------------------------------------
                   12280: # $File: make,v 1.1 2011/12/08 12:12:46 rrt Exp $
                   12281: # make:  file(1) magic for makefiles
                   12282: #
                   12283: 0      regex   \^CFLAGS        makefile script text
                   12284: !:mime text/x-makefile
                   12285: 0      regex   \^LDFLAGS       makefile script text
                   12286: !:mime text/x-makefile
                   12287: 0      regex   \^all:  makefile script text
                   12288: !:mime text/x-makefile
                   12289: 0      regex   \^.PRECIOUS     makefile script text
                   12290: !:mime text/x-makefile
                   12291: 
                   12292: 0      regex   \^SUBDIRS       automake makefile script text
                   12293: !:mime text/x-makefile
                   12294: 
1.1       misho    12295: #------------------------------------------------------------------------------
1.1.1.3   misho    12296: # $File: maple,v 1.7 2013/01/11 16:45:23 christos Exp $
1.1       misho    12297: # maple:  file(1) magic for maple files
                   12298: # "H. Nanosecond" <aldomel@ix.netcom.com>
                   12299: # Maple V release 4, a multi-purpose math program
                   12300: #
                   12301: 
                   12302: # maple library .lib
                   12303: 0      string  \000MVR4\nI     MapleVr4 library
                   12304: 
                   12305: # .ind
                   12306: # no magic for these :-(
                   12307: # they are compiled indexes for maple files
                   12308: 
                   12309: # .hdb 
                   12310: 0      string  \000\004\000\000        Maple help database
                   12311: 
                   12312: # .mhp
                   12313: # this has the form <PACKAGE=name>
                   12314: 0      string  \<PACKAGE=      Maple help file
                   12315: 0      string  \<HELP\ NAME=   Maple help file
                   12316: 0      string  \n\<HELP\ NAME= Maple help file with extra carriage return at start (yuck)
                   12317: #0     string  #\ Newton       Maple help file, old style
                   12318: 0      string  #\ daub Maple help file, old style
                   12319: #0     string  #===========    Maple help file, old style
                   12320: 
                   12321: # .mws
                   12322: 0      string  \000\000\001\044\000\221        Maple worksheet
                   12323: #this is anomalous
                   12324: 0      string  WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000        Maple worksheet, but weird
                   12325: # this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
                   12326: # that is {VERSION major_version miunor_version computer_type version_string}
                   12327: 0      string  {VERSION\       Maple worksheet
                   12328: >9     string  >\0     version %.1s.
1.1.1.3   misho    12329: >>11   string  >\0     %.1s
1.1       misho    12330: 
                   12331: # .mps
                   12332: 0      string  \0\0\001$       Maple something
                   12333: # from byte 4 it is either 'nul E' or 'soh R'
                   12334: # I think 'nul E' means a file that was saved as  a different name
                   12335: # a sort of revision marking
                   12336: # 'soh R' means new 
                   12337: >4     string  \000\105        An old revision
                   12338: >4     string  \001\122        The latest save
                   12339: 
                   12340: # .mpl
                   12341: # some of these are the same as .mps above
                   12342: #0000000 000 000 001 044 000 105 same as .mps
                   12343: #0000000 000 000 001 044 001 122 same as .mps
                   12344: 
                   12345: 0      string  #\n##\ <SHAREFILE=      Maple something
                   12346: 0      string  \n#\n##\ <SHAREFILE=    Maple something
                   12347: 0      string  ##\ <SHAREFILE= Maple something
                   12348: 0      string  #\r##\ <SHAREFILE=      Maple something
                   12349: 0      string  \r#\r##\ <SHAREFILE=    Maple something
                   12350: 0      string  #\ \r##\ <DESCRIBE>     Maple something anomalous.
1.1.1.3   misho    12351: #--------------------------------------------
                   12352: # marc21: file(1) magic for MARC 21 Format
                   12353: #
                   12354: # Kevin Ford (kefo@loc.gov)
                   12355: # 
                   12356: # MARC21 formats are for the representation and communication
                   12357: # of bibliographic and related information in machine-readable
                   12358: # form.  For more info, see http://www.loc.gov/marc/
                   12359: 
                   12360: 
                   12361: # leader position 20-21 must be 45
                   12362: 20     string  45      
                   12363: 
                   12364: # leader starts with 5 digits, followed by codes specific to MARC format
                   12365: >0     regex/1 (^[0-9]{5})[acdnp][^bhlnqsu-z]  MARC21 Bibliographic
                   12366: !:mime application/marc
                   12367: >0     regex/1 (^[0-9]{5})[acdnosx][z] MARC21 Authority
                   12368: !:mime application/marc
                   12369: >0     regex/1 (^[0-9]{5})[cdn][uvxy]  MARC21 Holdings
                   12370: !:mime application/marc
                   12371: 0      regex/1 (^[0-9]{5})[acdn][w]    MARC21 Classification
                   12372: !:mime application/marc
                   12373: >0     regex/1 (^[0-9]{5})[cdn][q]     MARC21 Community
                   12374: !:mime application/marc
                   12375: 
                   12376: # leader position 22-23, should be "00" but is it?
                   12377: >0     regex/1 (^.{21})([^0]{2})       (non-conforming)
                   12378: !:mime application/marc
1.1       misho    12379: 
                   12380: #------------------------------------------------------------------------------
1.1.1.2   misho    12381: # $File: mathcad,v 1.5 2009/09/19 16:28:10 christos Exp $
1.1       misho    12382: # mathcad:  file(1) magic for Mathcad documents
                   12383: # URL: http://www.mathsoft.com/
                   12384: # From:        Josh Triplett <josh@freedesktop.org>
                   12385: 
                   12386: 0      string  .MCAD\t         Mathcad document
1.1.1.2   misho    12387: 
1.1       misho    12388: #------------------------------------------------------------------------------
1.1.1.2   misho    12389: # $File: mathematica,v 1.7 2009/09/19 16:28:10 christos Exp $
1.1       misho    12390: # mathematica:  file(1) magic for mathematica files
                   12391: # "H. Nanosecond" <aldomel@ix.netcom.com>
                   12392: # Mathematica a multi-purpose math program
                   12393: # versions 2.2 and 3.0
                   12394: 
                   12395: #mathematica .mb
                   12396: 0      string  \064\024\012\000\035\000\000\000        Mathematica version 2 notebook
                   12397: 0      string  \064\024\011\000\035\000\000\000        Mathematica version 2 notebook
                   12398: 
                   12399: # .ma
                   12400: # multiple possibilites:
                   12401: 
                   12402: 0      string  (*^\n\n::[\011frontEndVersion\ =\       Mathematica notebook
                   12403: #>41   string  >\0     %s
                   12404: 
                   12405: #0     string  (*^\n\n::[\011palette   Mathematica notebook version 2.x
                   12406: 
                   12407: #0     string  (*^\n\n::[\011Information       Mathematica notebook version 2.x
                   12408: #>675  string  >\0     %s #doesn't work well
                   12409: 
                   12410: # there may be 'cr' instread of 'nl' in some does this matter?
                   12411: 
                   12412: # generic:
                   12413: 0      string  (*^\r\r::[\011  Mathematica notebook version 2.x
                   12414: 0      string  (*^\r\n\r\n::[\011      Mathematica notebook version 2.x
                   12415: 0      string  (*^\015                 Mathematica notebook version 2.x
                   12416: 0      string  (*^\n\r\n\r::[\011      Mathematica notebook version 2.x
                   12417: 0      string  (*^\r::[\011    Mathematica notebook version 2.x
                   12418: 0      string  (*^\r\n::[\011  Mathematica notebook version 2.x
                   12419: 0      string  (*^\n\n::[\011  Mathematica notebook version 2.x
                   12420: 0      string  (*^\n::[\011    Mathematica notebook version 2.x
                   12421: 
                   12422: 
                   12423: # Mathematica .mx files
                   12424: 
                   12425: #0     string  (*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*)      Mathematica binary file
                   12426: 0      string  (*This\ is\ a\ Mathematica\ binary\     Mathematica binary file
                   12427: #>71   string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000     
                   12428: # >71... is optional
                   12429: >88    string  >\0     from %s
                   12430: 
                   12431: 
                   12432: # Mathematica files PBF:
                   12433: # 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
                   12434: 0      string  MMAPBF\000\001\000\000\000\203\000\001\000      Mathematica PBF (fonts I think)
                   12435: 
                   12436: # .ml files  These are menu resources I think
                   12437: # these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\ 
                   12438: # how to put that into a magic rule?
                   12439: 4      string  \ A~    MAthematica .ml file
                   12440: 
                   12441: # .nb files
                   12442: #too long 0    string  (***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook     Mathematica 3.0 notebook
                   12443: 0      string  (***********************        Mathematica 3.0 notebook
                   12444: 
                   12445: # other (* matches it is a comment start in these langs
                   12446: # GRR: Too weak; also matches other languages e.g. ML
                   12447: #0     string  (*      Mathematica, or Pascal, Modula-2 or 3 code text
                   12448: 
                   12449: #########################
                   12450: # MatLab v5
                   12451: 0       string  MATLAB  Matlab v5 mat-file
                   12452: >126    short   0x494d  (big endian)
                   12453: >>124   beshort x       version 0x%04x
                   12454: >126    short   0x4d49  (little endian)
                   12455: >>124   leshort x       version 0x%04x
                   12456: 
                   12457: 
                   12458: #------------------------------------------------------------------------------
1.1.1.3   misho    12459: # $File: matroska,v 1.8 2013/02/08 17:25:16 christos Exp $
1.1       misho    12460: # matroska:  file(1) magic for Matroska files
                   12461: #
                   12462: # See http://www.matroska.org/
                   12463: #
                   12464: 
                   12465: # EBML id:
                   12466: 0              belong          0x1a45dfa3
                   12467: # DocType id:
1.1.1.3   misho    12468: >4             search/4096     \x42\x82
1.1       misho    12469: # DocType contents:
1.1.1.3   misho    12470: >>&1           string          webm            WebM
                   12471: !:mime  video/webm
                   12472: >>&1           string          matroska        Matroska data
1.1.1.2   misho    12473: !:mime  video/x-matroska
1.1       misho    12474: 
                   12475: #------------------------------------------------------------------------------
1.1.1.2   misho    12476: # $File: mcrypt,v 1.5 2009/09/19 16:28:10 christos Exp $
1.1       misho    12477: # Mavroyanopoulos Nikos <nmav@hellug.gr>
                   12478: # mcrypt:   file(1) magic for mcrypt 2.2.x;
                   12479: 0      string          \0m\3           mcrypt 2.5 encrypted data,
                   12480: >4     string          >\0             algorithm: %s,
                   12481: >>&1   leshort         >0              keysize: %d bytes,
                   12482: >>>&0  string          >\0             mode: %s,
                   12483: 
                   12484: 0      string          \0m\2           mcrypt 2.2 encrypted data,
                   12485: >3     byte            0               algorithm: blowfish-448,
                   12486: >3     byte            1               algorithm: DES,
                   12487: >3     byte            2               algorithm: 3DES,
                   12488: >3     byte            3               algorithm: 3-WAY,
                   12489: >3     byte            4               algorithm: GOST,
                   12490: >3     byte            6               algorithm: SAFER-SK64,
                   12491: >3     byte            7               algorithm: SAFER-SK128,
                   12492: >3     byte            8               algorithm: CAST-128,
                   12493: >3     byte            9               algorithm: xTEA,
                   12494: >3     byte            10              algorithm: TWOFISH-128,
                   12495: >3     byte            11              algorithm: RC2,
                   12496: >3     byte            12              algorithm: TWOFISH-192,
                   12497: >3     byte            13              algorithm: TWOFISH-256,
                   12498: >3     byte            14              algorithm: blowfish-128,
                   12499: >3     byte            15              algorithm: blowfish-192,
                   12500: >3     byte            16              algorithm: blowfish-256,
                   12501: >3     byte            100             algorithm: RC6,
                   12502: >3     byte            101             algorithm: IDEA,
                   12503: >4     byte            0               mode: CBC,
                   12504: >4     byte            1               mode: ECB,
                   12505: >4     byte            2               mode: CFB,
                   12506: >4     byte            3               mode: OFB,
                   12507: >4     byte            4               mode: nOFB,
                   12508: >5     byte            0               keymode: 8bit
                   12509: >5     byte            1               keymode: 4bit
                   12510: >5     byte            2               keymode: SHA-1 hash
                   12511: >5     byte            3               keymode: MD5 hash
                   12512: 
                   12513: #------------------------------------------------------------------------------
1.1.1.2   misho    12514: # $File: mercurial,v 1.4 2009/09/19 16:28:10 christos Exp $
1.1       misho    12515: # mercurial:  file(1) magic for Mercurial changeset bundles
                   12516: # http://www.selenic.com/mercurial/wiki/
                   12517: #
                   12518: # Jesse Glick (jesse.glick@sun.com)
                   12519: #
                   12520: 
                   12521: 0      string          HG10            Mercurial changeset bundle
                   12522: >4     string          UN              (uncompressed)
                   12523: >4     string          GZ              (gzip compressed)
                   12524: >4     string          BZ              (bzip2 compressed)
1.1.1.2   misho    12525: 
1.1       misho    12526: #------------------------------------------------------------------------------
1.1.1.3   misho    12527: # $File: metastore,v 1.1 2011/04/06 12:37:44 christos Exp $
                   12528: # metastore:  file(1) magic for metastore files
                   12529: # From: Thomas Wissen
                   12530: # see http://david.hardeman.nu/software.php#metastore
                   12531: 0      string          MeTaSt00r3      Metastore data file, 
                   12532: >10    bequad          x               version %0llx
                   12533: 
                   12534: #------------------------------------------------------------------------------
                   12535: # $File: mime,v 1.6 2010/11/25 15:00:12 christos Exp $
1.1       misho    12536: # mime:  file(1) magic for MIME encoded files
                   12537: #
1.1.1.3   misho    12538: 0      string/t                Content-Type:\ 
1.1       misho    12539: >14    string          >\0             %s
1.1.1.3   misho    12540: 0      string/t                Content-Type:
1.1       misho    12541: >13    string          >\0             %s
                   12542: 
                   12543: #------------------------------------------------------------------------------
1.1.1.3   misho    12544: # $File: mips,v 1.9 2013/01/12 03:09:51 christos Exp $
                   12545: # mips:  file(1) magic for MIPS ECOFF and Ucode, as used in SGI IRIX
                   12546: # and DEC Ultrix
1.1       misho    12547: #
                   12548: 0      beshort 0x0160          MIPSEB ECOFF executable
                   12549: >20    beshort 0407            (impure)
                   12550: >20    beshort 0410            (swapped)
                   12551: >20    beshort 0413            (paged)
                   12552: >8     belong  >0              not stripped
                   12553: >8     belong  0               stripped
                   12554: >22    byte    x               - version %ld
1.1.1.3   misho    12555: >23    byte    x               \b.%ld
1.1       misho    12556: #
                   12557: 0      beshort 0x0162          MIPSEL-BE ECOFF executable
                   12558: >20    beshort 0407            (impure)
                   12559: >20    beshort 0410            (swapped)
                   12560: >20    beshort 0413            (paged)
                   12561: >8     belong  >0              not stripped
                   12562: >8     belong  0               stripped
                   12563: >23    byte    x               - version %d
1.1.1.3   misho    12564: >22    byte    x               \b.%ld
1.1       misho    12565: #
                   12566: 0      beshort 0x6001          MIPSEB-LE ECOFF executable
                   12567: >20    beshort 03401           (impure)
                   12568: >20    beshort 04001           (swapped)
                   12569: >20    beshort 05401           (paged)
                   12570: >8     belong  >0              not stripped
                   12571: >8     belong  0               stripped
                   12572: >23    byte    x               - version %d
1.1.1.3   misho    12573: >22    byte    x               \b.%ld
1.1       misho    12574: #
                   12575: 0      beshort 0x6201          MIPSEL ECOFF executable
                   12576: >20    beshort 03401           (impure)
                   12577: >20    beshort 04001           (swapped)
                   12578: >20    beshort 05401           (paged)
                   12579: >8     belong  >0              not stripped
                   12580: >8     belong  0               stripped
                   12581: >23    byte    x               - version %ld
1.1.1.3   misho    12582: >22    byte    x               \b.%ld
1.1       misho    12583: #
                   12584: # MIPS 2 additions
                   12585: #
                   12586: 0      beshort 0x0163          MIPSEB MIPS-II ECOFF executable
                   12587: >20    beshort 0407            (impure)
                   12588: >20    beshort 0410            (swapped)
                   12589: >20    beshort 0413            (paged)
                   12590: >8     belong  >0              not stripped
                   12591: >8     belong  0               stripped
                   12592: >22    byte    x               - version %ld
1.1.1.3   misho    12593: >23    byte    x               \b.%ld
1.1       misho    12594: #
                   12595: 0      beshort 0x0166          MIPSEL-BE MIPS-II ECOFF executable
                   12596: >20    beshort 0407            (impure)
                   12597: >20    beshort 0410            (swapped)
                   12598: >20    beshort 0413            (paged)
                   12599: >8     belong  >0              not stripped
                   12600: >8     belong  0               stripped
                   12601: >22    byte    x               - version %ld
1.1.1.3   misho    12602: >23    byte    x               \b.%ld
1.1       misho    12603: #
                   12604: 0      beshort 0x6301          MIPSEB-LE MIPS-II ECOFF executable
                   12605: >20    beshort 03401           (impure)
                   12606: >20    beshort 04001           (swapped)
                   12607: >20    beshort 05401           (paged)
                   12608: >8     belong  >0              not stripped
                   12609: >8     belong  0               stripped
                   12610: >23    byte    x               - version %ld
1.1.1.3   misho    12611: >22    byte    x               \b.%ld
1.1       misho    12612: #
                   12613: 0      beshort 0x6601          MIPSEL MIPS-II ECOFF executable
                   12614: >20    beshort 03401           (impure)
                   12615: >20    beshort 04001           (swapped)
                   12616: >20    beshort 05401           (paged)
                   12617: >8     belong  >0              not stripped
                   12618: >8     belong  0               stripped
                   12619: >23    byte    x               - version %ld
1.1.1.3   misho    12620: >22    byte    x               \b.%ld
1.1       misho    12621: #
                   12622: # MIPS 3 additions
                   12623: #
                   12624: 0      beshort 0x0140          MIPSEB MIPS-III ECOFF executable
                   12625: >20    beshort 0407            (impure)
                   12626: >20    beshort 0410            (swapped)
                   12627: >20    beshort 0413            (paged)
                   12628: >8     belong  >0              not stripped
                   12629: >8     belong  0               stripped
                   12630: >22    byte    x               - version %ld
1.1.1.3   misho    12631: >23    byte    x               \b.%ld
1.1       misho    12632: #
                   12633: 0      beshort 0x0142          MIPSEL-BE MIPS-III ECOFF executable
                   12634: >20    beshort 0407            (impure)
                   12635: >20    beshort 0410            (swapped)
                   12636: >20    beshort 0413            (paged)
                   12637: >8     belong  >0              not stripped
                   12638: >8     belong  0               stripped
                   12639: >22    byte    x               - version %ld
1.1.1.3   misho    12640: >23    byte    x               \b.%ld
1.1       misho    12641: #
                   12642: 0      beshort 0x4001          MIPSEB-LE MIPS-III ECOFF executable
                   12643: >20    beshort 03401           (impure)
                   12644: >20    beshort 04001           (swapped)
                   12645: >20    beshort 05401           (paged)
                   12646: >8     belong  >0              not stripped
                   12647: >8     belong  0               stripped
                   12648: >23    byte    x               - version %ld
1.1.1.3   misho    12649: >22    byte    x               \b.%ld
1.1       misho    12650: #
                   12651: 0      beshort 0x4201          MIPSEL MIPS-III ECOFF executable
                   12652: >20    beshort 03401           (impure)
                   12653: >20    beshort 04001           (swapped)
                   12654: >20    beshort 05401           (paged)
                   12655: >8     belong  >0              not stripped
                   12656: >8     belong  0               stripped
                   12657: >23    byte    x               - version %ld
1.1.1.3   misho    12658: >22    byte    x               \b.%ld
1.1       misho    12659: #
1.1.1.3   misho    12660: 0      beshort 0x180           MIPSEB Ucode
                   12661: 0      beshort 0x182           MIPSEL-BE Ucode
1.1       misho    12662: 
                   12663: #------------------------------------------------------------------------------
1.1.1.2   misho    12664: # $File: mirage,v 1.7 2009/09/19 16:28:10 christos Exp $
1.1       misho    12665: # mirage:  file(1) magic for Mirage executables
                   12666: #
                   12667: # XXX - byte order?
                   12668: #
                   12669: 0      long    31415           Mirage Assembler m.out executable
1.1.1.2   misho    12670: 
1.1       misho    12671: #-----------------------------------------------------------------------------
1.1.1.3   misho    12672: # $File: misctools,v 1.13 2013/01/16 13:53:10 christos Exp $
1.1       misho    12673: # misctools:  file(1) magic for miscellaneous UNIX tools.
                   12674: #
                   12675: 0      search/1        %%!!                    X-Post-It-Note text
                   12676: 0      string/c        BEGIN:VCALENDAR         vCalendar calendar file
1.1.1.3   misho    12677: !:mime text/calendar
1.1       misho    12678: 0      string/c        BEGIN:VCARD             vCard visiting card
                   12679: !:mime text/x-vcard
                   12680: 
                   12681: # Summary: Libtool library file
                   12682: # Extension: .la
                   12683: # Submitted by: Tomasz Trojanowski <tomek@uninet.com.pl>
                   12684: 0      search/80       .la\ -\ a\ libtool\ library\ file       libtool library file
                   12685: 
                   12686: # Summary: Libtool object file
                   12687: # Extension: .lo
                   12688: # Submitted by: Abel Cheung <abelcheung@gmail.com>
                   12689: 0      search/80       .lo\ -\ a\ libtool\ object\ file        libtool object file
                   12690: 
1.1.1.2   misho    12691: # From: Daniel Novotny <dnovotny@redhat.com>
                   12692: 0      string          MDMP\x93\xA7                            MDMP crash report data
                   12693: 
1.1       misho    12694: #------------------------------------------------------------------------------
1.1.1.2   misho    12695: # $File: mkid,v 1.6 2009/09/19 16:28:10 christos Exp $
1.1       misho    12696: # mkid:  file(1) magic for mkid(1) databases
                   12697: #
                   12698: # ID is the binary tags database produced by mkid(1).
                   12699: #
                   12700: # XXX - byte order?
                   12701: #
                   12702: 0      string          \311\304        ID tags data
                   12703: >2     short           >0              version %d
                   12704: 
                   12705: #------------------------------------------------------------------------------
1.1.1.2   misho    12706: # $File: mlssa,v 1.4 2009/09/19 16:28:10 christos Exp $
1.1       misho    12707: # mlssa: file(1) magic for MLSSA datafiles
                   12708: #
                   12709: 0              lelong          0xffffabcd      MLSSA datafile,
                   12710: >4             leshort         x               algorithm %d,
                   12711: >10            lelong          x               %d samples
                   12712: 
                   12713: #------------------------------------------------------------------------------
1.1.1.2   misho    12714: # $File: mmdf,v 1.6 2009/09/19 16:28:10 christos Exp $
1.1       misho    12715: # mmdf:  file(1) magic for MMDF mail files
                   12716: #
                   12717: 0      string  \001\001\001\001        MMDF mailbox
1.1.1.2   misho    12718: 
1.1       misho    12719: #------------------------------------------------------------------------------
1.1.1.3   misho    12720: # $File: modem,v 1.5 2010/09/20 18:55:20 rrt Exp $
1.1       misho    12721: # modem:  file(1) magic for modem programs
                   12722: #
                   12723: # From: Florian La Roche <florian@knorke.saar.de>
                   12724: 1      string          PC\ Research,\ Inc      Digifax-G3-File
                   12725: >29    byte            1                       \b, fine resolution
                   12726: >29    byte            0                       \b, normal resolution
                   12727: 
                   12728: 0      short           0x0100          raw G3 data, byte-padded
                   12729: 0      short           0x1400          raw G3 data
                   12730: #
                   12731: # Magic data for vgetty voice formats
                   12732: # (Martin Seine & Marc Eberhard)
                   12733: 
                   12734: #
                   12735: # raw modem data version 1
                   12736: #
                   12737: 0    string    RMD1      raw modem data
                   12738: >4   string    >\0       (%s /
                   12739: >20  short     >0        compression type 0x%04x)
                   12740: 
                   12741: #
                   12742: # portable voice format 1
                   12743: #
                   12744: 0    string    PVF1\n         portable voice format
                   12745: >5   string    >\0       (binary %s)
                   12746: 
                   12747: #
                   12748: # portable voice format 2
                   12749: #
                   12750: 0    string    PVF2\n         portable voice format
                   12751: >5   string >\0          (ascii %s)
                   12752: 
                   12753: 
                   12754: #------------------------------------------------------------------------------
1.1.1.2   misho    12755: # $File: motorola,v 1.10 2009/09/19 16:28:11 christos Exp $
1.1       misho    12756: # motorola:  file(1) magic for Motorola 68K and 88K binaries
                   12757: #
                   12758: # 68K
                   12759: #
                   12760: 0      beshort         0520            mc68k COFF
                   12761: >18    beshort         ^00000020       object
                   12762: >18    beshort         &00000020       executable
                   12763: >12    belong          >0              not stripped
                   12764: >168   string          .lowmem         Apple toolbox
                   12765: >20    beshort         0407            (impure)
                   12766: >20    beshort         0410            (pure)
                   12767: >20    beshort         0413            (demand paged)
                   12768: >20    beshort         0421            (standalone)
                   12769: 0      beshort         0521            mc68k executable (shared)
                   12770: >12    belong          >0              not stripped
                   12771: 0      beshort         0522            mc68k executable (shared demand paged)
                   12772: >12    belong          >0              not stripped
                   12773: #
                   12774: # Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
                   12775: #
                   12776: 0      beshort         0554            68K BCS executable
                   12777: #
                   12778: # 88K
                   12779: #
                   12780: # Motorola/88Open BCS
                   12781: #
                   12782: 0      beshort         0555            88K BCS executable
                   12783: #
                   12784: # Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
                   12785: 0   string      S0          Motorola S-Record; binary data in text format
                   12786: 
                   12787: # ATARI ST relocatable PRG
                   12788: #
                   12789: # from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
                   12790: # (according to Roland Waldi, Oct 21, 1987)
                   12791: # besides the magic 0x601a, the text segment size is checked to be
                   12792: # not larger than 1 MB (which is a lot on ST).
                   12793: # The additional 0x601b distinction I took from Doug Lee's magic.
                   12794: 0      belong&0xFFFFFFF0       0x601A0000      Atari ST M68K contiguous executable
                   12795: >2     belong                  x               (txt=%ld,
                   12796: >6     belong                  x               dat=%ld,
                   12797: >10    belong                  x               bss=%ld,
                   12798: >14    belong                  x               sym=%ld)
                   12799: 0      belong&0xFFFFFFF0       0x601B0000      Atari ST M68K non-contig executable
                   12800: >2     belong                  x               (txt=%ld,
                   12801: >6     belong                  x               dat=%ld,
                   12802: >10    belong                  x               bss=%ld,
                   12803: >14    belong                  x               sym=%ld)
                   12804: 
                   12805: # Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
                   12806: 0       beshort         0x601A          Atari 68xxx executable,
                   12807: >2      belong          x               text len %lu,
                   12808: >6      belong          x               data len %lu,
                   12809: >10     belong          x               BSS len %lu,
                   12810: >14     belong          x               symboltab len %lu,
                   12811: >18     belong          0
                   12812: >22     belong          &0x01           fastload flag,
                   12813: >22     belong          &0x02           may be loaded to alternate RAM,
                   12814: >22     belong          &0x04           malloc may be from alternate RAM,
                   12815: >22     belong          x               flags: 0x%lX,
                   12816: >26     beshort         0               no relocation tab
                   12817: >26     beshort         !0              + relocation tab
                   12818: >30     string          SFX             [Self-Extracting LZH SFX archive]
                   12819: >38     string          SFX             [Self-Extracting LZH SFX archive]
                   12820: >44     string          ZIP!            [Self-Extracting ZIP SFX archive]
                   12821: 
                   12822: 0       beshort         0x0064          Atari 68xxx CPX file
                   12823: >8      beshort         x               (version %04lx)
                   12824: 
                   12825: #------------------------------------------------------------------------------
1.1.1.2   misho    12826: # $File: mozilla,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    12827: # mozilla:  file(1) magic for Mozilla XUL fastload files 
                   12828: # (XUL.mfasl and XPC.mfasl)
                   12829: # URL: http://www.mozilla.org/
                   12830: # From:        Josh Triplett <josh@freedesktop.org>
                   12831: 
                   12832: 0      string  XPCOM\nMozFASL\r\n\x1A          Mozilla XUL fastload data
                   12833: 
                   12834: #------------------------------------------------------------------------------
1.1.1.3   misho    12835: # $File: msdos,v 1.85 2013/03/09 22:36:00 christos Exp $
1.1       misho    12836: # msdos:  file(1) magic for MS-DOS files
                   12837: #
                   12838: 
                   12839: # .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
1.1.1.3   misho    12840: # updated by Joerg Jenderek at Oct 2008,Apr 2011
                   12841: 0      string/t        @                       
1.1.1.2   misho    12842: >1     string/cW       \ echo\ off     DOS batch file text
1.1       misho    12843: !:mime text/x-msdos-batch
1.1.1.2   misho    12844: >1     string/cW       echo\ off       DOS batch file text
1.1       misho    12845: !:mime text/x-msdos-batch
1.1.1.3   misho    12846: >1     string/cW       rem             DOS batch file text
1.1       misho    12847: !:mime text/x-msdos-batch
1.1.1.2   misho    12848: >1     string/cW       set\            DOS batch file text
1.1       misho    12849: !:mime text/x-msdos-batch
                   12850: 
                   12851: 
                   12852: # OS/2 batch files are REXX. the second regex is a bit generic, oh well
                   12853: # the matched commands seem to be common in REXX and uncommon elsewhere
                   12854: 100    search/0xffff   rxfuncadd
                   12855: >100   regex/c =^[\ \t]{0,10}call[\ \t]{1,10}rxfunc    OS/2 REXX batch file text
                   12856: 100    search/0xffff   say
                   12857: >100   regex/c =^[\ \t]{0,10}say\ ['"]                 OS/2 REXX batch file text
                   12858: 
                   12859: 0      leshort         0x14c   MS Windows COFF Intel 80386 object file
                   12860: #>4    ledate          x       stamp %s
                   12861: 0      leshort         0x166   MS Windows COFF MIPS R4000 object file
                   12862: #>4    ledate          x       stamp %s
                   12863: 0      leshort         0x184   MS Windows COFF Alpha object file
                   12864: #>4    ledate          x       stamp %s
                   12865: 0      leshort         0x268   MS Windows COFF Motorola 68000 object file
                   12866: #>4    ledate          x       stamp %s
                   12867: 0      leshort         0x1f0   MS Windows COFF PowerPC object file
                   12868: #>4    ledate          x       stamp %s
                   12869: 0      leshort         0x290   MS Windows COFF PA-RISC object file
                   12870: #>4    ledate          x       stamp %s
                   12871: 
1.1.1.3   misho    12872: # Tests for various EXE types.
1.1       misho    12873: #
1.1.1.3   misho    12874: # Many of the compressed formats were extraced from IDARC 1.23 source code.
1.1       misho    12875: #
1.1.1.3   misho    12876: 0      string/b        MZ
1.1       misho    12877: !:mime application/x-dosexec
1.1.1.3   misho    12878: # All non-DOS EXE extensions have the relocation table more than 0x40 bytes into the file.
                   12879: >0x18  leshort <0x40 MS-DOS executable
                   12880: # These traditional tests usually work but not always.  When test quality support is
                   12881: # implemented these can be turned on.
                   12882: #>>0x18        leshort 0x1c    (Borland compiler)
                   12883: #>>0x18        leshort 0x1e    (MS compiler)
1.1       misho    12884: 
1.1.1.3   misho    12885: # If the relocation table is 0x40 or more bytes into the file, it's definitely
                   12886: # not a DOS EXE.
1.1       misho    12887: >0x18  leshort >0x3f
1.1.1.3   misho    12888: 
                   12889: # Maybe it's a PE?
1.1       misho    12890: >>(0x3c.l) string PE\0\0 PE
1.1.1.3   misho    12891: >>>(0x3c.l+24) leshort         0x010b  \b32 executable
                   12892: >>>(0x3c.l+24) leshort         0x020b  \b32+ executable
                   12893: >>>(0x3c.l+24) leshort         0x0107  ROM image
                   12894: >>>(0x3c.l+24) default         x       Unknown PE signature
                   12895: >>>>&0                 leshort         x       0x%x
                   12896: >>>(0x3c.l+22) leshort&0x2000  >0      (DLL)
                   12897: >>>(0x3c.l+92) leshort         1       (native)
                   12898: >>>(0x3c.l+92) leshort         2       (GUI)
                   12899: >>>(0x3c.l+92) leshort         3       (console)
                   12900: >>>(0x3c.l+92) leshort         7       (POSIX)
                   12901: >>>(0x3c.l+92) leshort         9       (Windows CE)
1.1       misho    12902: >>>(0x3c.l+92) leshort         10      (EFI application)
                   12903: >>>(0x3c.l+92) leshort         11      (EFI boot service driver)
                   12904: >>>(0x3c.l+92) leshort         12      (EFI runtime driver)
1.1.1.3   misho    12905: >>>(0x3c.l+92) leshort         13      (EFI ROM)
                   12906: >>>(0x3c.l+92) leshort         14      (XBOX)
                   12907: >>>(0x3c.l+92) leshort         15      (Windows boot application)
                   12908: >>>(0x3c.l+92) default         x       (Unknown subsystem
                   12909: >>>>&0         leshort         x       0x%x)
1.1       misho    12910: >>>(0x3c.l+4)  leshort         0x14c   Intel 80386
                   12911: >>>(0x3c.l+4)  leshort         0x166   MIPS R4000
1.1.1.3   misho    12912: >>>(0x3c.l+4)  leshort         0x168   MIPS R10000
1.1       misho    12913: >>>(0x3c.l+4)  leshort         0x184   Alpha
1.1.1.3   misho    12914: >>>(0x3c.l+4)  leshort         0x1a2   Hitachi SH3
                   12915: >>>(0x3c.l+4)  leshort         0x1a6   Hitachi SH4
                   12916: >>>(0x3c.l+4)  leshort         0x1c0   ARM
                   12917: >>>(0x3c.l+4)  leshort         0x1c2   ARM Thumb
                   12918: >>>(0x3c.l+4)  leshort         0x1c4   ARMv7 Thumb
1.1       misho    12919: >>>(0x3c.l+4)  leshort         0x1f0   PowerPC
                   12920: >>>(0x3c.l+4)  leshort         0x200   Intel Itanium
1.1.1.3   misho    12921: >>>(0x3c.l+4)  leshort         0x266   MIPS16
                   12922: >>>(0x3c.l+4)  leshort         0x268   Motorola 68000
                   12923: >>>(0x3c.l+4)  leshort         0x290   PA-RISC
                   12924: >>>(0x3c.l+4)  leshort         0x366   MIPSIV
                   12925: >>>(0x3c.l+4)  leshort         0x466   MIPS16 with FPU
                   12926: >>>(0x3c.l+4)  leshort         0xebc   EFI byte code
                   12927: >>>(0x3c.l+4)  leshort         0x8664  x86-64
                   12928: >>>(0x3c.l+4)  leshort         0xc0ee  MSIL
                   12929: >>>(0x3c.l+4)  default         x       Unknown processor type
                   12930: >>>>&0         leshort         x       0x%x
                   12931: >>>(0x3c.l+22) leshort&0x0200  >0      (stripped to external PDB)
1.1       misho    12932: >>>(0x3c.l+22) leshort&0x1000  >0      system file
1.1.1.3   misho    12933: >>>(0x3c.l+24) leshort         0x010b
                   12934: >>>>(0x3c.l+232) lelong        >0      Mono/.Net assembly
                   12935: >>>(0x3c.l+24) leshort         0x020b
                   12936: >>>>(0x3c.l+248) lelong        >0      Mono/.Net assembly
1.1       misho    12937: 
1.1.1.3   misho    12938: # hooray, there's a DOS extender using the PE format, with a valid PE
                   12939: # executable inside (which just prints a message and exits if run in win)
                   12940: >>>(8.s*16)            string          32STUB  \b, 32rtm DOS extender
                   12941: >>>(8.s*16)            string          !32STUB \b, for MS Windows
                   12942: >>>(0x3c.l+0xf8)       string          UPX0 \b, UPX compressed
                   12943: >>>(0x3c.l+0xf8)       search/0x140    PEC2 \b, PECompact2 compressed
                   12944: >>>(0x3c.l+0xf8)       search/0x140    UPX2
                   12945: >>>>(&0x10.l+(-4))     string          PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
                   12946: >>>(0x3c.l+0xf8)       search/0x140    .idata
                   12947: >>>>(&0xe.l+(-4))      string          PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
                   12948: >>>>(&0xe.l+(-4))      string          ZZ0 \b, ZZip self-extracting archive
                   12949: >>>>(&0xe.l+(-4))      string          ZZ1 \b, ZZip self-extracting archive
                   12950: >>>(0x3c.l+0xf8)       search/0x140    .rsrc
                   12951: >>>>(&0x0f.l+(-4))     string          a\\\4\5 \b, WinHKI self-extracting archive
                   12952: >>>>(&0x0f.l+(-4))     string          Rar! \b, RAR self-extracting archive
                   12953: >>>>(&0x0f.l+(-4))     search/0x3000   MSCF \b, InstallShield self-extracting archive
                   12954: >>>>(&0x0f.l+(-4))     search/32       Nullsoft \b, Nullsoft Installer self-extracting archive
                   12955: >>>(0x3c.l+0xf8)       search/0x140    .data
                   12956: >>>>(&0x0f.l)          string          WEXTRACT \b, MS CAB-Installer self-extracting archive
                   12957: >>>(0x3c.l+0xf8)       search/0x140    .petite\0 \b, Petite compressed
                   12958: >>>>(0x3c.l+0xf7)      byte            x
                   12959: >>>>>(&0x104.l+(-4))   string          =!sfx! \b, ACE self-extracting archive
                   12960: >>>(0x3c.l+0xf8)       search/0x140    .WISE \b, WISE installer self-extracting archive
                   12961: >>>(0x3c.l+0xf8)       search/0x140    .dz\0\0\0 \b, Dzip self-extracting archive
                   12962: >>>&(0x3c.l+0xf8)      search/0x100    _winzip_ \b, ZIP self-extracting archive (WinZip)
                   12963: >>>&(0x3c.l+0xf8)      search/0x100    SharedD \b, Microsoft Installer self-extracting archive
                   12964: >>>0x30                        string          Inno \b, InnoSetup self-extracting archive
1.1       misho    12965: 
1.1.1.3   misho    12966: # Hmm, not a PE but the relocation table is too high for a traditional DOS exe,
                   12967: # must be one of the unusual subformats.
1.1       misho    12968: >>(0x3c.l) string !PE\0\0 MS-DOS executable
                   12969: 
                   12970: >>(0x3c.l)             string          NE \b, NE
                   12971: >>>(0x3c.l+0x36)       byte            1 for OS/2 1.x
                   12972: >>>(0x3c.l+0x36)       byte            2 for MS Windows 3.x
                   12973: >>>(0x3c.l+0x36)       byte            3 for MS-DOS
1.1.1.3   misho    12974: >>>(0x3c.l+0x36)       byte            4 for Windows 386
                   12975: >>>(0x3c.l+0x36)       byte            5 for Borland Operating System Services
                   12976: >>>(0x3c.l+0x36)       default         x
                   12977: >>>>(0x3c.l+0x36)      byte            x (unknown OS %x)
1.1       misho    12978: >>>(0x3c.l+0x36)       byte            0x81 for MS-DOS, Phar Lap DOS extender
                   12979: >>>(0x3c.l+0x0c)       leshort&0x8003  0x8002 (DLL)
                   12980: >>>(0x3c.l+0x0c)       leshort&0x8003  0x8001 (driver)
                   12981: >>>&(&0x24.s-1)                string          ARJSFX \b, ARJ self-extracting archive
                   12982: >>>(0x3c.l+0x70)       search/0x80     WinZip(R)\ Self-Extractor \b, ZIP self-extracting archive (WinZip)
                   12983: 
                   12984: >>(0x3c.l)             string          LX\0\0 \b, LX
                   12985: >>>(0x3c.l+0x0a)       leshort         <1 (unknown OS)
                   12986: >>>(0x3c.l+0x0a)       leshort         1 for OS/2
                   12987: >>>(0x3c.l+0x0a)       leshort         2 for MS Windows
                   12988: >>>(0x3c.l+0x0a)       leshort         3 for DOS
                   12989: >>>(0x3c.l+0x0a)       leshort         >3 (unknown OS)
                   12990: >>>(0x3c.l+0x10)       lelong&0x28000  =0x8000 (DLL)
                   12991: >>>(0x3c.l+0x10)       lelong&0x20000  >0 (device driver)
                   12992: >>>(0x3c.l+0x10)       lelong&0x300    0x300 (GUI)
                   12993: >>>(0x3c.l+0x10)       lelong&0x28300  <0x300 (console)
                   12994: >>>(0x3c.l+0x08)       leshort         1 i80286
                   12995: >>>(0x3c.l+0x08)       leshort         2 i80386
                   12996: >>>(0x3c.l+0x08)       leshort         3 i80486
                   12997: >>>(8.s*16)            string          emx \b, emx
                   12998: >>>>&1                 string          x %s
                   12999: >>>&(&0x54.l-3)                string          arjsfx \b, ARJ self-extracting archive
                   13000: 
                   13001: # MS Windows system file, supposedly a collection of LE executables
                   13002: >>(0x3c.l)             string          W3 \b, W3 for MS Windows
                   13003: 
                   13004: >>(0x3c.l)             string          LE\0\0 \b, LE executable
                   13005: >>>(0x3c.l+0x0a)       leshort         1
                   13006: # some DOS extenders use LE files with OS/2 header
                   13007: >>>>0x240              search/0x100    DOS/4G for MS-DOS, DOS4GW DOS extender
                   13008: >>>>0x240              search/0x200    WATCOM\ C/C++ for MS-DOS, DOS4GW DOS extender
                   13009: >>>>0x440              search/0x100    CauseWay\ DOS\ Extender for MS-DOS, CauseWay DOS extender
                   13010: >>>>0x40               search/0x40     PMODE/W for MS-DOS, PMODE/W DOS extender
                   13011: >>>>0x40               search/0x40     STUB/32A for MS-DOS, DOS/32A DOS extender (stub)
                   13012: >>>>0x40               search/0x80     STUB/32C for MS-DOS, DOS/32A DOS extender (configurable stub)
                   13013: >>>>0x40               search/0x80     DOS/32A for MS-DOS, DOS/32A DOS extender (embedded)
                   13014: # this is a wild guess; hopefully it is a specific signature
                   13015: >>>>&0x24              lelong          <0x50
                   13016: >>>>>(&0x4c.l)         string          \xfc\xb8WATCOM
                   13017: >>>>>>&0               search/8        3\xdbf\xb9 \b, 32Lite compressed
                   13018: # another wild guess: if real OS/2 LE executables exist, they probably have higher start EIP
                   13019: #>>>>(0x3c.l+0x1c)     lelong          >0x10000 for OS/2
                   13020: # fails with DOS-Extenders.
                   13021: >>>(0x3c.l+0x0a)       leshort         2 for MS Windows
                   13022: >>>(0x3c.l+0x0a)       leshort         3 for DOS
                   13023: >>>(0x3c.l+0x0a)       leshort         4 for MS Windows (VxD)
                   13024: >>>(&0x7c.l+0x26)      string          UPX \b, UPX compressed
                   13025: >>>&(&0x54.l-3)                string          UNACE \b, ACE self-extracting archive
                   13026: 
                   13027: # looks like ASCII, probably some embedded copyright message.
                   13028: # and definitely not NE/LE/LX/PE
                   13029: >>0x3c         lelong  >0x20000000
                   13030: >>>(4.s*512)   leshort !0x014c \b, MZ for MS-DOS
                   13031: # header data too small for extended executable
                   13032: >2             long    !0
                   13033: >>0x18         leshort <0x40
                   13034: >>>(4.s*512)   leshort !0x014c
                   13035: 
                   13036: >>>>&(2.s-514) string  !LE
                   13037: >>>>>&-2       string  !BW \b, MZ for MS-DOS
                   13038: >>>>&(2.s-514) string  LE \b, LE
                   13039: >>>>>0x240     search/0x100    DOS/4G for MS-DOS, DOS4GW DOS extender
                   13040: # educated guess since indirection is still not capable enough for complex offset
                   13041: # calculations (next embedded executable would be at &(&2*512+&0-2)
                   13042: # I suspect there are only LE executables in these multi-exe files
                   13043: >>>>&(2.s-514) string  BW
                   13044: >>>>>0x240     search/0x100    DOS/4G ,\b LE for MS-DOS, DOS4GW DOS extender (embedded)
                   13045: >>>>>0x240     search/0x100    !DOS/4G ,\b BW collection for MS-DOS
                   13046: 
                   13047: # This sequence skips to the first COFF segment, usually .text
                   13048: >(4.s*512)     leshort         0x014c \b, COFF
                   13049: >>(8.s*16)     string          go32stub for MS-DOS, DJGPP go32 DOS extender
                   13050: >>(8.s*16)     string          emx
                   13051: >>>&1          string          x for DOS, Win or OS/2, emx %s
                   13052: >>&(&0x42.l-3) byte            x 
                   13053: >>>&0x26       string          UPX \b, UPX compressed
                   13054: # and yet another guess: small .text, and after large .data is unusal, could be 32lite
                   13055: >>&0x2c                search/0xa0     .text
                   13056: >>>&0x0b       lelong          <0x2000
                   13057: >>>>&0         lelong          >0x6000 \b, 32lite compressed
                   13058: 
                   13059: >(8.s*16) string $WdX \b, WDos/X DOS extender
                   13060: 
1.1.1.3   misho    13061: # By now an executable type should have been printed out.  The executable
                   13062: # may be a self-uncompressing archive, so look for evidence of that and 
                   13063: # print it out.  
                   13064: #
                   13065: # Some signatures below from Greg Roelofs, newt@uchicago.edu.
1.1       misho    13066: #
                   13067: >0x35  string  \x8e\xc0\xb9\x08\x00\xf3\xa5\x4a\x75\xeb\x8e\xc3\x8e\xd8\x33\xff\xbe\x30\x00\x05 \b, aPack compressed
1.1.1.3   misho    13068: >0xe7  string  LH/2\   Self-Extract \b, %s
                   13069: >0x1c  string  UC2X    \b, UCEXE compressed
                   13070: >0x1c  string  WWP\    \b, WWPACK compressed
                   13071: >0x1c  string  RJSX    \b, ARJ self-extracting archive
                   13072: >0x1c  string  diet    \b, diet compressed
                   13073: >0x1c  string  LZ09    \b, LZEXE v0.90 compressed
                   13074: >0x1c  string  LZ91    \b, LZEXE v0.91 compressed
                   13075: >0x1c  string  tz      \b, TinyProg compressed
                   13076: >0x1e  string  Copyright\ 1989-1990\ PKWARE\ Inc.      Self-extracting PKZIP archive
                   13077: !:mime application/zip
                   13078: # Yes, this really is "Copr", not "Corp."
                   13079: >0x1e  string  PKLITE\ Copr.   Self-extracting PKZIP archive
                   13080: !:mime application/zip
                   13081: # winarj stores a message in the stub instead of the sig in the MZ header
                   13082: >0x20  search/0xe0     aRJsfX \b, ARJ self-extracting archive
                   13083: >0x20  string AIN
                   13084: >>0x23 string 2        \b, AIN 2.x compressed
                   13085: >>0x23 string <2       \b, AIN 1.x compressed
                   13086: >>0x23 string >2       \b, AIN 1.x compressed
1.1       misho    13087: >0x24  string  LHa's\ SFX \b, LHa self-extracting archive
                   13088: !:mime application/x-lha
                   13089: >0x24  string  LHA's\ SFX \b, LHa self-extracting archive
                   13090: !:mime application/x-lha
                   13091: >0x24  string  \ $ARX \b, ARX self-extracting archive
                   13092: >0x24  string  \ $LHarc \b, LHarc self-extracting archive
                   13093: >0x20  string  SFX\ by\ LARC \b, LARC self-extracting archive
1.1.1.3   misho    13094: >0x40  string aPKG \b, aPackage self-extracting archive
                   13095: >0x64  string  W\ Collis\0\0 \b, Compack compressed
                   13096: >0x7a  string          Windows\ self-extracting\ ZIP   \b, ZIP self-extracting archive
                   13097: >>&0xf4 search/0x140 \x0\x40\x1\x0
                   13098: >>>(&0.l+(4)) string MSCF \b, WinHKI CAB self-extracting archive
1.1       misho    13099: >1638  string  -lh5- \b, LHa self-extracting archive v2.13S
                   13100: >0x17888 string Rar! \b, RAR self-extracting archive
                   13101: 
1.1.1.3   misho    13102: # Skip to the end of the EXE.  This will usually work fine in the PE case
                   13103: # because the MZ image is hardcoded into the toolchain and almost certainly
                   13104: # won't match any of these signatures.
1.1       misho    13105: >(4.s*512)     long    x 
                   13106: >>&(2.s-517)   byte    x 
                   13107: >>>&0  string          PK\3\4 \b, ZIP self-extracting archive
                   13108: >>>&0  string          Rar! \b, RAR self-extracting archive
                   13109: >>>&0  string          =!\x11 \b, AIN 2.x self-extracting archive
                   13110: >>>&0  string          =!\x12 \b, AIN 2.x self-extracting archive
                   13111: >>>&0  string          =!\x17 \b, AIN 1.x self-extracting archive
                   13112: >>>&0  string          =!\x18 \b, AIN 1.x self-extracting archive
                   13113: >>>&7  search/400      **ACE** \b, ACE self-extracting archive
                   13114: >>>&0  search/0x480    UC2SFX\ Header \b, UC2 self-extracting archive
                   13115: 
                   13116: # a few unknown ZIP sfxes, no idea if they are needed or if they are
                   13117: # already captured by the generic patterns above
                   13118: >(8.s*16)      search/0x20     PKSFX \b, ZIP self-extracting archive (PKZIP)
                   13119: # TODO: how to add this? >FileSize-34 string Windows\ Self-Installing\ Executable \b, ZIP self-extracting archive
                   13120: #
                   13121: 
                   13122: # TELVOX Teleinformatica CODEC self-extractor for OS/2:
                   13123: >49801 string  \x79\xff\x80\xff\x76\xff        \b, CODEC archive v3.21
                   13124: >>49824 leshort                =1                      \b, 1 file
                   13125: >>49824 leshort                >1                      \b, %u files
                   13126: 
1.1.1.3   misho    13127: # added by Joerg Jenderek of http://www.freedos.org/software/?prog=kc
                   13128: # and http://www.freedos.org/software/?prog=kpdos
                   13129: # for FreeDOS files like KEYBOARD.SYS, KEYBRD2.SYS, KEYBRD3.SYS, *.KBD
                   13130: 0      string/b        KCF             FreeDOS KEYBoard Layout collection
                   13131: # only version=0x100 found
                   13132: >3     uleshort        x               \b, version 0x%x
                   13133: # length of string containing author,info and special characters
                   13134: >6     ubyte           >0              
                   13135: #>>6   pstring         x               \b, name=%s
                   13136: >>7    string          >\0             \b, author=%-.14s
                   13137: >>7    search/254      \xff            \b, info=
                   13138: #>>>&0 string          x               \b%-s
                   13139: >>>&0  string          x               \b%-.15s
                   13140: # for FreeDOS *.KL files 
                   13141: 0      string/b        KLF             FreeDOS KEYBoard Layout file
                   13142: # only version=0x100 or 0x101 found
                   13143: >3     uleshort        x               \b, version 0x%x
                   13144: # stringlength
                   13145: >5     ubyte           >0              
                   13146: >>8    string          x               \b, name=%-.2s
                   13147: 0      string  \xffKEYB\ \ \ \0\0\0\0  
                   13148: >12    string  \0\0\0\0`\004\360       MS-DOS KEYBoard Layout file
                   13149: 
1.1       misho    13150: # .COM formats (Daniel Quinlan, quinlan@yggdrasil.com)
                   13151: # Uncommenting only the first two lines will cover about 2/3 of COM files,
                   13152: # but it isn't feasible to match all COM files since there must be at least
                   13153: # two dozen different one-byte "magics".
1.1.1.2   misho    13154: # test too generic ?
                   13155: 0      byte            0xe9            DOS executable (COM)
                   13156: >0x1FE leshort         0xAA55          \b, boot code
1.1       misho    13157: >6     string          SFX\ of\ LHarc  (%s)
1.1.1.3   misho    13158: 
                   13159: # DOS device driver updated by Joerg Jenderek at May 2011
                   13160: # http://maben.homeip.net/static/S100/IBM/software/DOS/DOS%20techref/CHAPTER.009
                   13161: 0      ulequad&0x07a0ffffffff          0xffffffff              DOS executable (
                   13162: >40    search/7                        UPX!                    \bUPX compressed 
                   13163: # DOS device driver attributes
                   13164: >4     uleshort&0x8000                 0x0000                  \bblock device driver
                   13165: # character device
                   13166: >4     uleshort&0x8000                 0x8000                  \b
                   13167: >>4    uleshort&0x0008                 0x0008                  \bclock 
                   13168: # fast video output by int 29h
                   13169: >>4    uleshort&0x0010                 0x0010                  \bfast 
                   13170: # standard input/output device
                   13171: >>4    uleshort&0x0003                 >0                      \bstandard 
                   13172: >>>4   uleshort&0x0001                 0x0001                  \binput
                   13173: >>>4   uleshort&0x0003                 0x0003                  \b/
                   13174: >>>4   uleshort&0x0002                 0x0002                  \boutput 
                   13175: >>4    uleshort&0x8000                 0x8000                  \bcharacter device driver
                   13176: >0     ubyte                           x                       
                   13177: # upx compressed device driver has garbage instead of real in name field of header
                   13178: >>40   search/7                        UPX!                    
                   13179: >>40   default                         x                       
                   13180: # leading/trailing nulls, zeros or non ASCII characters in 8-byte name field at offset 10 are skipped
                   13181: >>>12          ubyte                   >0x27                   \b 
                   13182: >>>>10         ubyte                   >0x20                   
                   13183: >>>>>10                ubyte                   !0x2E                   
                   13184: >>>>>>10       ubyte                   !0x2A                   \b%c
                   13185: >>>>11         ubyte                   >0x20                   
                   13186: >>>>>11                ubyte                   !0x2E                   \b%c
                   13187: >>>>12         ubyte                   >0x20                   
                   13188: >>>>>12                ubyte                   !0x39                   
                   13189: >>>>>>12       ubyte                   !0x2E                   \b%c
                   13190: >>>13          ubyte                   >0x20                   
                   13191: >>>>13         ubyte                   !0x2E                   \b%c
                   13192: >>>>14         ubyte                   >0x20                   
                   13193: >>>>>14                ubyte                   !0x2E                   \b%c
                   13194: >>>>15         ubyte                   >0x20                   
                   13195: >>>>>15                ubyte                   !0x2E                   \b%c
                   13196: >>>>16         ubyte                   >0x20                   
                   13197: >>>>>16                ubyte                   !0x2E                   
                   13198: >>>>>>16       ubyte                   <0xCB                   \b%c
                   13199: >>>>17         ubyte                   >0x20                   
                   13200: >>>>>17                ubyte                   !0x2E                   
                   13201: >>>>>>17       ubyte                   <0x90                   \b%c
                   13202: # some character device drivers like ASPICD.SYS, btcdrom.sys and Cr_atapi.sys contain only spaces or points in name field
                   13203: >>>4           uleshort&0x8000         0x8000                  
                   13204: >>>>12         ubyte                   <0x2F                   
                   13205: # they have their real name at offset 22
                   13206: >>>>>22                string                  >\0                     \b%-.5s
                   13207: >4     uleshort&0x8000                 0x0000                  
                   13208: # 32 bit sector addressing ( > 32 MB) for block devices
                   13209: >>4    uleshort&0x0002                 0x0002                  \b,32-bit sector-
                   13210: # support by driver functions 13h, 17h, 18h
                   13211: >4     uleshort&0x0040                 0x0040                  \b,IOCTL-
                   13212: # open, close, removable media support by driver functions 0Dh, 0Eh, 0Fh
                   13213: >4     uleshort&0x0800                 0x0800                  \b,close media-
                   13214: # output until busy support by int 10h for character device driver
                   13215: >4     uleshort&0x8000                 0x8000                  
                   13216: >>4    uleshort&0x2000                 0x2000                  \b,until busy-
                   13217: # direct read/write support by driver functions 03h,0Ch
                   13218: >4     uleshort&0x4000                 0x4000                  \b,control strings-
                   13219: >4     uleshort&0x8000                 0x8000                  
                   13220: >>4    uleshort&0x6840                 >0                      \bsupport
                   13221: >4     uleshort&0x8000                 0x0000                  
                   13222: >>4    uleshort&0x4842                 >0                      \bsupport
                   13223: >0     ubyte                           x                       \b)
                   13224: # DOS driver cmd640x.sys has 0x12 instead of 0xffffffff for pointer field to next device header 
                   13225: # Too weak, matches files that only contain 0's
                   13226: #0     ulequad&0x000007a0ffffffed      0x0000000000000000      DOS-executable (
                   13227: #>4    uleshort&0x8000                 0x8000                  \bcharacter device driver
                   13228: #>>10  string                          x                       %-.8s
                   13229: #>4    uleshort&0x4000                 0x4000                  \b,control strings-support)
                   13230: 
1.1.1.2   misho    13231: # test too generic ?
                   13232: 0      byte            0x8c            DOS executable (COM)
                   13233: # updated by Joerg Jenderek at Oct 2008
                   13234: 0      ulelong         0xffff10eb      DR-DOS executable (COM)
                   13235: # byte 0xeb conflicts with "sequent" magic leshort 0xn2eb
                   13236: 0      ubeshort&0xeb8d >0xeb00         
                   13237: # DR-DOS STACKER.COM SCREATE.SYS missed
1.1.1.3   misho    13238: >0     byte            0xeb
                   13239: >>0x1FE leshort                0xAA55          DOS executable (COM), boot code
                   13240: >>85   string          UPX             DOS executable (COM), UPX compressed
                   13241: >>4    string          \ $ARX          DOS executable (COM), ARX self-extracting archive
                   13242: >>4    string          \ $LHarc        DOS executable (COM), LHarc self-extracting archive
                   13243: >>0x20e string         SFX\ by\ LARC   DOS executable (COM), LARC self-extracting archive
1.1.1.2   misho    13244: # updated by Joerg Jenderek at Oct 2008
1.1       misho    13245: #0     byte            0xb8            COM executable
1.1.1.2   misho    13246: 0      uleshort&0x80ff 0x00b8          
1.1       misho    13247: # modified by Joerg Jenderek
1.1.1.2   misho    13248: >1     lelong          !0x21cd4cff     COM executable for DOS
1.1       misho    13249: # http://syslinux.zytor.com/comboot.php
                   13250: # (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
                   13251: # start with assembler instructions mov eax,21cd4cffh
1.1.1.2   misho    13252: 0      uleshort&0xc0ff 0xc0b8          
                   13253: >1     lelong          0x21cd4cff      COM executable (32-bit COMBOOT)
1.1.1.3   misho    13254: # syslinux:doc/comboot.txt
                   13255: # A COM32R program must start with the byte sequence B8 FE 4C CD 21 (mov
                   13256: # eax,21cd4cfeh) as a magic number.
                   13257: 0       string/b       \xb8\xfe\x4c\xcd\x21    COM executable (COM32R)
                   13258: # start with assembler instructions mov eax,21cd4cfeh
                   13259: 0      uleshort&0xc0ff 0xc0b8          
                   13260: >1     lelong          0x21cd4cfe      COM executable (32-bit COMBOOT, relocatable)
                   13261: 0      string/b        \x81\xfc                
1.1       misho    13262: >4     string  \x77\x02\xcd\x20\xb9    
                   13263: >>36   string  UPX!                    FREE-DOS executable (COM), UPX compressed
                   13264: 252    string Must\ have\ DOS\ version DR-DOS executable (COM)
1.1.1.2   misho    13265: # added by Joerg Jenderek at Oct 2008
                   13266: # GRR search is not working
                   13267: #34    search/2        UPX!            FREE-DOS executable (COM), UPX compressed
                   13268: 34     string  UPX!                    FREE-DOS executable (COM), UPX compressed
                   13269: 35     string  UPX!                    FREE-DOS executable (COM), UPX compressed
1.1       misho    13270: # GRR search is not working
                   13271: #2     search/28       \xcd\x21        COM executable for MS-DOS
                   13272: #WHICHFAT.cOM
                   13273: 2      string  \xcd\x21                COM executable for DOS
                   13274: #DELTREE.cOM DELTREE2.cOM
                   13275: 4      string  \xcd\x21                COM executable for DOS
                   13276: #IFMEMDSK.cOM ASSIGN.cOM COMP.cOM
                   13277: 5      string  \xcd\x21                COM executable for DOS
                   13278: #DELTMP.COm HASFAT32.cOM
                   13279: 7      string  \xcd\x21                
                   13280: >0     byte    !0xb8                   COM executable for DOS
                   13281: #COMP.cOM MORE.COm
                   13282: 10     string  \xcd\x21                
                   13283: >5     string  !\xcd\x21               COM executable for DOS
                   13284: #comecho.com
                   13285: 13     string  \xcd\x21                COM executable for DOS
                   13286: #HELP.COm EDIT.coM
                   13287: 18     string  \xcd\x21                COM executable for MS-DOS
                   13288: #NWRPLTRM.COm
                   13289: 23     string  \xcd\x21                COM executable for MS-DOS
                   13290: #LOADFIX.cOm LOADFIX.cOm
                   13291: 30     string  \xcd\x21                COM executable for MS-DOS
                   13292: #syslinux.com 3.11
                   13293: 70     string  \xcd\x21                COM executable for DOS
                   13294: # many compressed/converted COMs start with a copy loop instead of a jump
                   13295: 0x6    search/0xa      \xfc\x57\xf3\xa5\xc3    COM executable for MS-DOS
                   13296: 0x6    search/0xa      \xfc\x57\xf3\xa4\xc3    COM executable for DOS
                   13297: >0x18  search/0x10     \x50\xa4\xff\xd5\x73    \b, aPack compressed
                   13298: 0x3c   string          W\ Collis\0\0           COM executable for MS-DOS, Compack compressed
                   13299: # FIXME: missing diet .com compression
                   13300: 
                   13301: # miscellaneous formats
1.1.1.3   misho    13302: 0      string/b        LZ              MS-DOS executable (built-in)
1.1       misho    13303: #0     byte            0xf0            MS-DOS program library data
                   13304: #
                   13305: 
                   13306: # AAF files:
                   13307: # <stuartc@rd.bbc.co.uk> Stuart Cunningham
1.1.1.3   misho    13308: 0      string/b        \320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377                  AAF legacy file using MS Structured Storage
1.1       misho    13309: >30    byte    9               (512B sectors)
                   13310: >30    byte    12              (4kB sectors)
1.1.1.3   misho    13311: 0      string/b        \320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001                        AAF file using MS Structured Storage
1.1       misho    13312: >30    byte    9               (512B sectors)
                   13313: >30    byte    12              (4kB sectors)
                   13314: 
                   13315: # Popular applications
                   13316: 2080   string  Microsoft\ Word\ 6.0\ Document  %s
                   13317: !:mime application/msword
                   13318: 2080   string  Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
                   13319: !:mime application/msword
                   13320: # Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Word)
                   13321: 2112   string  MSWordDoc                       Microsoft Word document data
                   13322: !:mime application/msword
                   13323: #
                   13324: 0      belong  0x31be0000                      Microsoft Word Document
                   13325: !:mime application/msword
                   13326: #
1.1.1.3   misho    13327: 0      string/b        PO^Q`                           Microsoft Word 6.0 Document
1.1       misho    13328: !:mime application/msword
                   13329: #
1.1.1.3   misho    13330: 0      string/b        \376\067\0\043                  Microsoft Office Document
1.1       misho    13331: !:mime application/msword
1.1.1.3   misho    13332: 0      string/b        \333\245-\0\0\0                 Microsoft Office Document
1.1       misho    13333: !:mime application/msword
1.1.1.3   misho    13334: 512    string/b        \354\245\301                    Microsoft Word Document
1.1       misho    13335: !:mime application/msword
1.1.1.3   misho    13336: 
                   13337: #
                   13338: 0      string/b        \xDB\xA5\x2D\x00                Microsoft WinWord 2.0 Document
                   13339: !:mime application/msword
1.1       misho    13340: #
                   13341: 2080   string  Microsoft\ Excel\ 5.0\ Worksheet        %s
                   13342: !:mime application/vnd.ms-excel
1.1.1.3   misho    13343: #
                   13344: 0      string/b        \xDB\xA5\x2D\x00                Microsoft WinWord 2.0 Document
                   13345: !:mime application/msword
1.1       misho    13346: 
                   13347: 2080   string  Foglio\ di\ lavoro\ Microsoft\ Exce     %s
                   13348: !:mime application/vnd.ms-excel
                   13349: #
                   13350: # Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
                   13351: 2114   string  Biff5           Microsoft Excel 5.0 Worksheet
                   13352: !:mime application/vnd.ms-excel
                   13353: # Italian MS-Excel
                   13354: 2121   string  Biff5           Microsoft Excel 5.0 Worksheet
                   13355: !:mime application/vnd.ms-excel
1.1.1.3   misho    13356: 0      string/b        \x09\x04\x06\x00\x00\x00\x10\x00        Microsoft Excel Worksheet
1.1       misho    13357: !:mime application/vnd.ms-excel
                   13358: #
                   13359: 0      belong  0x00001a00      Lotus 1-2-3
                   13360: !:mime application/x-123
                   13361: >4     belong  0x00100400      wk3 document data
                   13362: >4     belong  0x02100400      wk4 document data
                   13363: >4     belong  0x07800100      fm3 or fmb document data
                   13364: >4     belong  0x07800000      fm3 or fmb document data
                   13365: #
                   13366: 0      belong  0x00000200      Lotus 1-2-3
                   13367: !:mime application/x-123
                   13368: >4     belong  0x06040600      wk1 document data
                   13369: >4     belong  0x06800200      fmt document data
1.1.1.3   misho    13370: 0      string/b                WordPro\0       Lotus WordPro
1.1       misho    13371: !:mime application/vnd.lotus-wordpro
1.1.1.3   misho    13372: 0      string/b                WordPro\r\373   Lotus WordPro
1.1       misho    13373: !:mime application/vnd.lotus-wordpro
                   13374: 
                   13375: 
                   13376: # Summary: Script used by InstallScield to uninstall applications
                   13377: # Extension: .isu
                   13378: # Submitted by: unknown
                   13379: # Modified by (1): Abel Cheung <abelcheung@gmail.com> (replace useless entry)
                   13380: 0              string          \x71\xa8\x00\x00\x01\x02
                   13381: >12            string          Stirling\ Technologies,         InstallShield Uninstall Script
                   13382: 
                   13383: # Winamp .avs
                   13384: #0     string  Nullsoft\ AVS\ Preset\ \060\056\061\032 A plug in for Winamp ms-windows Freeware media player
1.1.1.3   misho    13385: 0      string/b        Nullsoft\ AVS\ Preset\  Winamp plug in
1.1       misho    13386: 
                   13387: # Windows Metafont .WMF
1.1.1.3   misho    13388: 0      string/b        \327\315\306\232        ms-windows metafont .wmf
                   13389: 0      string/b        \002\000\011\000        ms-windows metafont .wmf
                   13390: 0      string/b        \001\000\011\000        ms-windows metafont .wmf
1.1       misho    13391: 
                   13392: #tz3 files whatever that is (MS Works files)
1.1.1.3   misho    13393: 0      string/b        \003\001\001\004\070\001\000\000        tz3 ms-works file
                   13394: 0      string/b        \003\002\001\004\070\001\000\000        tz3 ms-works file
                   13395: 0      string/b        \003\003\001\004\070\001\000\000        tz3 ms-works file
1.1       misho    13396: 
                   13397: # PGP sig files .sig
                   13398: #0 string \211\000\077\003\005\000\063\237\127 065 to  \027\266\151\064\005\045\101\233\021\002 PGP sig
                   13399: 0 string \211\000\077\003\005\000\063\237\127\065\027\266\151\064\005\045\101\233\021\002 PGP sig
                   13400: 0 string \211\000\077\003\005\000\063\237\127\066\027\266\151\064\005\045\101\233\021\002 PGP sig
                   13401: 0 string \211\000\077\003\005\000\063\237\127\067\027\266\151\064\005\045\101\233\021\002 PGP sig
                   13402: 0 string \211\000\077\003\005\000\063\237\127\070\027\266\151\064\005\045\101\233\021\002 PGP sig
                   13403: 0 string \211\000\077\003\005\000\063\237\127\071\027\266\151\064\005\045\101\233\021\002 PGP sig
                   13404: 0 string \211\000\225\003\005\000\062\122\207\304\100\345\042 PGP sig
                   13405: 
                   13406: # windows zips files .dmf
1.1.1.3   misho    13407: 0      string/b        MDIF\032\000\010\000\000\000\372\046\100\175\001\000\001\036\001\000 MS Windows special zipped file
1.1       misho    13408: 
                   13409: 
                   13410: #ico files
1.1.1.3   misho    13411: 0      string/b        \102\101\050\000\000\000\056\000\000\000\000\000\000\000        Icon for MS Windows
1.1       misho    13412: 
                   13413: # Windows icons (Ian Springer <ips@fpk.hp.com>)
1.1.1.3   misho    13414: 0      string/b        \000\000\001\000        MS Windows icon resource
                   13415: !:mime image/x-icon
1.1       misho    13416: >4     byte    1                       - 1 icon
                   13417: >4     byte    >1                      - %d icons
                   13418: >>6    byte    >0                      \b, %dx
                   13419: >>>7   byte    >0                      \b%d
                   13420: >>8    byte    0                       \b, 256-colors
                   13421: >>8    byte    >0                      \b, %d-colors
                   13422: 
                   13423: 
                   13424: # .chr files
1.1.1.3   misho    13425: 0      string/b        PK\010\010BGI   Borland font 
1.1       misho    13426: >4     string  >\0     %s
                   13427: # then there is a copyright notice
                   13428: 
                   13429: 
                   13430: # .bgi files
1.1.1.3   misho    13431: 0      string/b        pk\010\010BGI   Borland device 
1.1       misho    13432: >4     string  >\0     %s
                   13433: # then there is a copyright notice
                   13434: 
                   13435: 
                   13436: # Windows Recycle Bin record file (named INFO2)
                   13437: # By Abel Cheung (abelcheung AT gmail dot com)
                   13438: # Version 4 always has 280 bytes (0x118) per record, version 5 has 800 bytes
                   13439: # Since Vista uses another structure, INFO2 structure probably won't change
                   13440: # anymore. Detailed analysis in:
                   13441: # http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf
                   13442: 0      lelong          0x00000004
                   13443: >12    lelong          0x00000118      Windows Recycle Bin INFO2 file (Win98 or below)
                   13444: 
                   13445: 0      lelong          0x00000005
                   13446: >12    lelong          0x00000320      Windows Recycle Bin INFO2 file (Win2k - WinXP)
                   13447: 
                   13448: 
                   13449: ##### put in Either Magic/font or Magic/news
                   13450: # Acroread or something         files wrongly identified as G3  .pfm
                   13451: # these have the form \000 \001 any? \002 \000 \000
                   13452: # or \000 \001 any? \022 \000 \000
                   13453: 0      belong&0xffff00ff       0x00010012      PFM data
                   13454: >4     string                  \000\000
                   13455: >6     string                  >\060           - %s
                   13456: 
                   13457: 0      belong&0xffff00ff       0x00010002      PFM data
                   13458: >4     string                  \000\000
                   13459: >6     string                  >\060           - %s
                   13460: #0     string  \000\001 pfm?
                   13461: #>3    string  \022\000\000Copyright\  yes
                   13462: #>3    string  \002\000\000Copyright\  yes
                   13463: #>3    string  >\0     oops, not a font file. Cancel that.
                   13464: #it clashes with ttf files so put it lower down.
                   13465: 
                   13466: # From Doug Lee via a FreeBSD pr
                   13467: 9      string          GERBILDOC       First Choice document
                   13468: 9      string          GERBILDB        First Choice database
                   13469: 9      string          GERBILCLIP      First Choice database
                   13470: 0      string          GERBIL          First Choice device file
                   13471: 9      string          RABBITGRAPH     RabbitGraph file
                   13472: 0      string          DCU1            Borland Delphi .DCU file
                   13473: 0      string          =!<spell>       MKS Spell hash list (old format)
                   13474: 0      string          =!<spell2>      MKS Spell hash list
                   13475: # Too simple - MPi
                   13476: #0     string          AH              Halo(TM) bitmapped font file
                   13477: 0      lelong          0x08086b70      TurboC BGI file
                   13478: 0      lelong          0x08084b50      TurboC Font file
                   13479: 
1.1.1.3   misho    13480: # tests for DBase files moved, updated and merged to database
                   13481: 
1.1       misho    13482: 0      string          PMCC            Windows 3.x .GRP file
                   13483: 1      string          RDC-meg         MegaDots 
                   13484: >8     byte            >0x2F           version %c
                   13485: >9     byte            >0x2F           \b.%c file
                   13486: 0      lelong          0x4C
                   13487: >4     lelong          0x00021401      Windows shortcut file
                   13488: 
1.1.1.3   misho    13489: # .PIF files added by Joerg Jenderek from http://smsoft.ru/en/pifdoc.htm
                   13490: # only for windows versions equal or greater 3.0
                   13491: 0x171  string  MICROSOFT\ PIFEX\0      Windows Program Information File
                   13492: !:mime application/x-dosexec
                   13493: #>2    string          >\0             \b, Title:%.30s
                   13494: >0x24  string          >\0             \b for %.63s
                   13495: >0x65  string          >\0             \b, directory=%.64s
                   13496: >0xA5  string          >\0             \b, parameters=%.64s
                   13497: #>0x181        leshort x       \b, offset %x
                   13498: #>0x183        leshort x       \b, offsetdata %x
                   13499: #>0x185        leshort x       \b, section length %x
                   13500: >0x187 search/0xB55    WINDOWS\ VMM\ 4.0\0     
                   13501: >>&0x5e                ubyte   >0                      
                   13502: >>>&-1         string  <PIFMGR.DLL             \b, icon=%s
                   13503: #>>>&-1                string  PIFMGR.DLL              \b, icon=%s
                   13504: >>>&-1         string  >PIFMGR.DLL             \b, icon=%s
                   13505: >>&0xF0                ubyte   >0                      
                   13506: >>>&-1         string  <Terminal               \b, font=%.32s
                   13507: #>>>&-1                string  =Terminal               \b, font=%.32s
                   13508: >>>&-1         string  >Terminal               \b, font=%.32s
                   13509: >>&0x110       ubyte   >0                      
                   13510: >>>&-1         string  <Lucida\ Console        \b, TrueTypeFont=%.32s
                   13511: #>>>&-1                string  =Lucida\ Console        \b, TrueTypeFont=%.32s
                   13512: >>>&-1         string  >Lucida\ Console        \b, TrueTypeFont=%.32s
                   13513: #>0x187        search/0xB55    WINDOWS\ 286\ 3.0\0     \b, Windows 3.X standard mode-style
                   13514: #>0x187        search/0xB55    WINDOWS\ 386\ 3.0\0     \b, Windows 3.X enhanced mode-style
                   13515: >0x187 search/0xB55    WINDOWS\ NT\ \ 3.1\0    \b, Windows NT-style
                   13516: #>0x187        search/0xB55    WINDOWS\ NT\ \ 4.0\0    \b, Windows NT-style
                   13517: >0x187 search/0xB55    CONFIG\ \ SYS\ 4.0\0    \b +CONFIG.SYS
                   13518: #>>&06         string  x                       \b:%s
                   13519: >0x187 search/0xB55    AUTOEXECBAT\ 4.0\0      \b +AUTOEXEC.BAT
                   13520: #>>&06         string  x                       \b:%s
                   13521: 
1.1       misho    13522: # DOS EPS Binary File Header
                   13523: # From: Ed Sznyter <ews@Black.Market.NET>
                   13524: 0      belong          0xC5D0D3C6      DOS EPS Binary File
                   13525: >4     long            >0              Postscript starts at byte %d
                   13526: >>8    long            >0              length %d
                   13527: >>>12  long            >0              Metafile starts at byte %d
                   13528: >>>>16 long            >0              length %d
                   13529: >>>20  long            >0              TIFF starts at byte %d
                   13530: >>>>24 long            >0              length %d
                   13531: 
                   13532: # TNEF magic From "Joomy" <joomy@se-ed.net> 
                   13533: # Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
                   13534: 0      leshort         0x223e9f78      TNEF
                   13535: !:mime application/vnd.ms-tnef
                   13536: 
1.1.1.3   misho    13537: # 4DOS help (.HLP) files added by Joerg Jenderek from source TPHELP.PAS 
                   13538: # of http://www.4dos.info/
                   13539: # pointer,HelpID[8]=4DHnnnmm
                   13540: 0      ulelong 0x48443408              4DOS help file
                   13541: >4     string  x                       \b, version %-4.4s
                   13542: 
                   13543: # old binary Microsoft (.HLP) files added by Joerg Jenderek from http://file-extension.net/seeker/file_extension_hlp
                   13544: 0      ulequad 0x3a000000024e4c        MS Advisor help file
                   13545: 
1.1       misho    13546: # HtmlHelp files (.chm)
1.1.1.3   misho    13547: 0      string/b        ITSF\003\000\000\000\x60\000\000\000\001\000\000\000    MS Windows HtmlHelp Data
1.1       misho    13548: 
                   13549: # GFA-BASIC (Wolfram Kleff)
1.1.1.3   misho    13550: 2      string/b        GFA-BASIC3      GFA-BASIC 3 data
1.1       misho    13551: 
                   13552: #------------------------------------------------------------------------------
                   13553: # From Stuart Caie <kyzer@4u.net> (developer of cabextract)
                   13554: # Microsoft Cabinet files
1.1.1.3   misho    13555: 0      string/b        MSCF\0\0\0\0    Microsoft Cabinet archive data
1.1.1.2   misho    13556: !:mime application/vnd.ms-cab-compressed
1.1       misho    13557: >8     lelong          x               \b, %u bytes
                   13558: >28    leshort         1               \b, 1 file
                   13559: >28    leshort         >1              \b, %u files
                   13560: 
                   13561: # InstallShield Cabinet files
1.1.1.3   misho    13562: 0      string/b        ISc(            InstallShield Cabinet archive data
1.1       misho    13563: >5     byte&0xf0       =0x60           version 6,
                   13564: >5     byte&0xf0       !0x60           version 4/5,
                   13565: >(12.l+40)     lelong  x               %u files
                   13566: 
                   13567: # Windows CE package files
1.1.1.3   misho    13568: 0      string/b        MSCE\0\0\0\0    Microsoft WinCE install header
1.1       misho    13569: >20    lelong          0               \b, architecture-independent
                   13570: >20    lelong          103             \b, Hitachi SH3
                   13571: >20    lelong          104             \b, Hitachi SH4
                   13572: >20    lelong          0xA11           \b, StrongARM
                   13573: >20    lelong          4000            \b, MIPS R4000
                   13574: >20    lelong          10003           \b, Hitachi SH3
                   13575: >20    lelong          10004           \b, Hitachi SH3E
                   13576: >20    lelong          10005           \b, Hitachi SH4
                   13577: >20    lelong          70001           \b, ARM 7TDMI
                   13578: >52    leshort         1               \b, 1 file
                   13579: >52    leshort         >1              \b, %u files
                   13580: >56    leshort         1               \b, 1 registry entry
                   13581: >56    leshort         >1              \b, %u registry entries
                   13582: 
                   13583: 
                   13584: # Windows Enhanced Metafile (EMF)
                   13585: # See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp 
                   13586: # for further information.
                   13587: 0      ulelong 1
                   13588: >40    string  \ EMF           Windows Enhanced Metafile (EMF) image data
                   13589: >>44   ulelong x               version 0x%x
                   13590: 
                   13591: # From: Alex Beregszaszi <alex@fsn.hu>
1.1.1.3   misho    13592: 0      string/b        COWD            VMWare3
1.1       misho    13593: >4     byte    3               disk image
                   13594: >>32   lelong  x               (%d/
                   13595: >>36   lelong  x               \b%d/
                   13596: >>40   lelong  x               \b%d)
                   13597: >4     byte    2               undoable disk image
                   13598: >>32   string  >\0             (%s)
                   13599: 
1.1.1.3   misho    13600: 0      string/b        VMDK             VMware4 disk image
                   13601: 0      string/b        KDMV             VMware4 disk image
1.1       misho    13602: 
                   13603: #--------------------------------------------------------------------
                   13604: # Qemu Emulator Images
                   13605: # Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
1.1.1.2   misho    13606: # Updated by Adam Buchbinder (adam.buchbinder@gmail.com)
                   13607: # Made by reading sources, reading documentation, and doing trial and error
                   13608: # on existing QCOW files
1.1.1.3   misho    13609: 0      string/b        QFI\xFB QEMU QCOW Image
1.1       misho    13610: 
                   13611: # Uncomment the following line to display Magic (only used for debugging
                   13612: # this magic number)
1.1.1.3   misho    13613: #>0    string/b        x       , Magic: %s
1.1       misho    13614: 
1.1.1.2   misho    13615: # There are currently 2 Versions: "1" and "2".
                   13616: # http://www.gnome.org/~markmc/qcow-image-format-version-1.html
                   13617: >4     belong  1       (v1)
1.1       misho    13618: 
1.1.1.2   misho    13619: # Using the existence of the Backing File Offset to determine whether
1.1       misho    13620: # to read Backing File Information
1.1.1.2   misho    13621: >>12   belong   >0      \b, has backing file (
                   13622: # Note that this isn't a null-terminated string; the length is actually
                   13623: # (16.L). Assuming a null-terminated string happens to work usually, but it
                   13624: # may spew junk until it reaches a \0 in some cases.
                   13625: >>>(12.L)       string >\0     \bpath %s
1.1       misho    13626: 
                   13627: # Modification time of the Backing File
                   13628: # Really useful if you want to know if your backing
                   13629: # file is still usable together with this image
1.1.1.2   misho    13630: >>>>20 bedate >0       \b, mtime %s)
                   13631: >>>>20 default x       \b)
                   13632: 
                   13633: # Size is stored in bytes in a big-endian u64.
                   13634: >>24   bequad  x        \b, %lld bytes
                   13635: 
                   13636: # 1 for AES encryption, 0 for none.
                   13637: >>36   belong  1       \b, AES-encrypted
                   13638: 
                   13639: # http://www.gnome.org/~markmc/qcow-image-format.html
                   13640: >4     belong  2       (v2)
                   13641: # Using the existence of the Backing File Offset to determine whether
                   13642: # to read Backing File Information
                   13643: >>8    bequad  >0       \b, has backing file
                   13644: # Note that this isn't a null-terminated string; the length is actually
                   13645: # (16.L). Assuming a null-terminated string happens to work usually, but it
                   13646: # may spew junk until it reaches a \0 in some cases. Also, since there's no
                   13647: # .Q modifier, we just use the bottom four bytes as an offset. Note that if
                   13648: # the file is over 4G, and the backing file path is stored after the first 4G,
                   13649: # the wrong filename will be printed. (This should be (8.Q), when that syntax
                   13650: # is introduced.)
                   13651: >>>(12.L)       string >\0     (path %s)
                   13652: >>24   bequad  x       \b, %lld bytes
                   13653: >>32   belong  1       \b, AES-encrypted
1.1       misho    13654: 
1.1.1.2   misho    13655: >4     default x       (unknown version)
1.1       misho    13656: 
1.1.1.3   misho    13657: 0      string/b        QEVM            QEMU suspend to disk image
                   13658: 
                   13659: # QEMU QED Image
                   13660: # http://wiki.qemu.org/Features/QED/Specification
                   13661: 0      string/b        QED\0           QEMU QED Image
                   13662: 
                   13663: # VDI Image
                   13664: 64     string/b        \x7f\x10\xda\xbe        VDI Image
                   13665: >68    string/b        \x01\x00\x01\x00        version 1.1
                   13666: >0     string          >\0                     (%s)
                   13667: >368   lequad          x                        \b, %lld bytes
1.1       misho    13668: 
1.1.1.3   misho    13669: 0      string/b        Bochs\ Virtual\ HD\ Image       Bochs disk image,
1.1       misho    13670: >32    string  x                               type %s,
                   13671: >48    string  x                               subtype %s
                   13672: 
                   13673: 0      lelong  0x02468ace                      Bochs Sparse disk image
                   13674: 
                   13675: # from http://filext.com by Derek M Jones <derek@knosof.co.uk>
                   13676: # False positive with PPT (also currently this string is too long)
1.1.1.3   misho    13677: #0     string/b        \xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF\x09\x00\x06    Microsoft Installer
                   13678: 0      string/b        \320\317\021\340\241\261\032\341        Microsoft Office Document
1.1       misho    13679: #>48   byte    0x1B                                    Excel Document
                   13680: #!:mime application/vnd.ms-excel
                   13681: >546   string  bjbj                    Microsoft Word Document
                   13682: !:mime application/msword
                   13683: >546   string  jbjb                    Microsoft Word Document
                   13684: !:mime application/msword
                   13685: 
1.1.1.3   misho    13686: 0      string/b        \224\246\056            Microsoft Word Document
1.1       misho    13687: !:mime application/msword
                   13688: 
                   13689: 512    string  R\0o\0o\0t\0\ \0E\0n\0t\0r\0y   Microsoft Word Document
                   13690: !:mime application/msword
                   13691: 
                   13692: # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
                   13693: # Magic type for Dell's BIOS .hdr files
                   13694: # Dell's .hdr
1.1.1.3   misho    13695: 0      string/b $RBU
1.1       misho    13696: >23    string Dell                     %s system BIOS
1.1.1.3   misho    13697: >5     byte   2
                   13698: >>48   byte   x                        version %d.
                   13699: >>49   byte   x                        \b%d.
                   13700: >>50   byte   x                        \b%d
                   13701: >5     byte   <2
                   13702: >>48   string x                        version %.3s
1.1       misho    13703: 
                   13704: # Type: Microsoft DirectDraw Surface
                   13705: # URL: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
                   13706: # From: Morten Hustveit <morten@debian.org>
1.1.1.3   misho    13707: 0      string/b        DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS),
1.1       misho    13708: >16    lelong  >0                      %hd x
                   13709: >12    lelong  >0                      %hd,
                   13710: >84    string  x                       %.4s
                   13711: 
                   13712: # Type: Microsoft Document Imaging Format (.mdi)
                   13713: # URL: http://en.wikipedia.org/wiki/Microsoft_Document_Imaging_Format
                   13714: # From: Daniele Sempione <scrows@oziosi.org>
                   13715: 0      short   0x5045                  Microsoft Document Imaging Format
                   13716: 
                   13717: # MS eBook format (.lit)
1.1.1.3   misho    13718: 0      string/b        ITOLITLS                Microsoft Reader eBook Data
1.1       misho    13719: >8     lelong  x                       \b, version %u
                   13720: !:mime                                 application/x-ms-reader
                   13721: 
1.1.1.3   misho    13722: # Windows CE Binary Image Data Format
                   13723: # From: Dr. Jesus <j@hug.gs>
                   13724: 0      string/b        B000FF\n        Windows Embedded CE binary image
                   13725: 
                   13726: # Windows Imaging (WIM) Image
                   13727: 0      string/b        MSWIM\000\000\000       Windows imaging (WIM) image
                   13728: 
                   13729: # The second byte of these signatures is a file version; I don't know what, 
                   13730: # if anything, produced files with version numbers 0-2.
                   13731: # From: John Elliott <johne@seasip.demon.co.uk>
                   13732: 0      string  \xfc\x03\x00    Mallard BASIC program data (v1.11)
                   13733: 0      string  \xfc\x04\x00    Mallard BASIC program data (v1.29+)
                   13734: 0      string  \xfc\x03\x01    Mallard BASIC protected program data (v1.11)
                   13735: 0      string  \xfc\x04\x01    Mallard BASIC protected program data (v1.29+)
                   13736: 
                   13737: 0      string  MIOPEN          Mallard BASIC Jetsam data
                   13738: 0      string  Jetsam0         Mallard BASIC Jetsam index data
                   13739: 
                   13740: 
                   13741: #------------------------------------------------------------------------------
                   13742: # $File: msooxml,v 1.2 2013/01/25 23:04:37 christos Exp $
                   13743: # msooxml:  file(1) magic for Microsoft Office XML
                   13744: # From: Ralf Brown <ralf.brown@gmail.com>
                   13745: 
                   13746: # .docx, .pptx, and .xlsx are XML plus other files inside a ZIP
                   13747: #   archive.  The first member file is normally "[Content_Types].xml".
                   13748: # Since MSOOXML doesn't have anything like the uncompressed "mimetype"
                   13749: #   file of ePub or OpenDocument, we'll have to scan for a filename
                   13750: #   which can distinguish between the three types
                   13751: 
                   13752: # start by checking for ZIP local file header signature
                   13753: 0               string          PK\003\004
                   13754: # make sure the first file is correct
                   13755: >0x1E           string          [Content_Types].xml
                   13756: # skip to the second local file header
                   13757: #   since some documents include a 520-byte extra field following the file
                   13758: #   header,  we need to scan for the next header
                   13759: >>(18.l+49)     search/2000     PK\003\004
                   13760: # now skip to the *third* local file header; again, we need to scan due to a
                   13761: #   520-byte extra field following the file header
                   13762: >>>&26          search/1000     PK\003\004
                   13763: # and check the subdirectory name to determine which type of OOXML
                   13764: #   file we have
                   13765: #   Correct the mimetype with the registered ones:
                   13766: #     http://technet.microsoft.com/en-us/library/cc179224.aspx
                   13767: >>>>&26         string          word/           Microsoft Word 2007+
                   13768: !:mime application/vnd.openxmlformats-officedocument.wordprocessingml.document
                   13769: >>>>&26         string          ppt/            Microsoft PowerPoint 2007+
                   13770: !:mime application/vnd.openxmlformats-officedocument.presentationml.presentation
                   13771: >>>>&26         string          xl/             Microsoft Excel 2007+
                   13772: !:mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                   13773: >>>>&26         default         x               Microsoft OOXML
                   13774: !:strength +10
                   13775: 
1.1       misho    13776: #------------------------------------------------------------------------------
1.1.1.2   misho    13777: # $File: msvc,v 1.5 2009/09/19 16:28:11 christos Exp $
1.1       misho    13778: # msvc:  file(1) magic for msvc
                   13779: # "H. Nanosecond" <aldomel@ix.netcom.com>
                   13780: # Microsoft visual C
                   13781: # 
                   13782: # I have version 1.0
                   13783: 
                   13784: # .aps
                   13785: 0      string  HWB\000\377\001\000\000\000     Microsoft Visual C .APS file
                   13786: 
                   13787: # .ide
                   13788: #too long 0    string  \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316        MSVC .ide
                   13789: 0      string  \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157    MSVC .ide
                   13790: 
                   13791: # .res
                   13792: 0      string  \000\000\000\000\040\000\000\000\377    MSVC .res
                   13793: 0      string  \377\003\000\377\001\000\020\020\350    MSVC .res
                   13794: 0      string  \377\003\000\377\001\000\060\020\350    MSVC .res
                   13795: 
                   13796: #.lib
                   13797: 0      string  \360\015\000\000        Microsoft Visual C library
                   13798: 0      string  \360\075\000\000        Microsoft Visual C library
                   13799: 0      string  \360\175\000\000        Microsoft Visual C library
                   13800: 
                   13801: #.pch
                   13802: 0      string  DTJPCH0\000\022\103\006\200     Microsoft Visual C .pch
                   13803: 
                   13804: # .pdb
                   13805: # too long 0   string  Microsoft\ C/C++\ program\ database\ 
                   13806: 0      string  Microsoft\ C/C++\       MSVC program database
                   13807: >18    string  program\ database\      
                   13808: >33    string  >\0     ver %s
                   13809: 
                   13810: #.sbr
                   13811: 0      string  \000\002\000\007\000    MSVC .sbr
                   13812: >5     string  >\0     %s
                   13813: 
                   13814: #.bsc
                   13815: 0      string  \002\000\002\001        MSVC .bsc
                   13816: 
                   13817: #.wsp
                   13818: 0      string  1.00\ .0000.0000\000\003        MSVC .wsp version 1.0000.0000
                   13819: # these seem to start with the version and contain menus
1.1.1.2   misho    13820: 
1.1       misho    13821: # ------------------------------------------------------------------------
1.1.1.2   misho    13822: # $File: mup,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    13823: # mup: file(1) magic for Mup (Music Publisher) input file.
                   13824: #
                   13825: # From: Abel Cheung <abel (@) oaka.org>
                   13826: #
                   13827: # NOTE: This header is mainly proposed in the Arkkra mailing list,
                   13828: # and is not a mandatory header because of old mup input file
                   13829: # compatibility. Noteedit also use mup format, but is not forcing
                   13830: # user to use any header as well.
                   13831: #
                   13832: 0              search/1        //!Mup          Mup music publication program input text
                   13833: >6             string          -Arkkra         (Arkkra)
                   13834: >>13           string          -               
                   13835: >>>16          string          .               
                   13836: >>>>14         string          x               \b, need V%.4s
                   13837: >>>15          string          .               
                   13838: >>>>14         string          x               \b, need V%.3s
                   13839: >6             string          -               
                   13840: >>9            string          .               
                   13841: >>>7           string          x               \b, need V%.4s
                   13842: >>8            string          .               
                   13843: >>>7           string          x               \b, need V%.3s
1.1.1.3   misho    13844: #------------------------------------------------------------------------------
                   13845: # $File: music,v 1.1 2011/11/25 03:28:17 christos Exp $
                   13846: # music:  file (1) magic for music formats
                   13847: 
                   13848: # BWW format used by Bagpipe Music Writer Gold by Robert MacNeil Musicworks
                   13849: # and Bagpipe Writer by Doug Wickstrom
                   13850: #
                   13851: 0      string          Bagpipe         Bagpipe
                   13852: >8     string          Reader          Reader
                   13853: >>15   string          >\0             (version %.3s)
                   13854: >8     string          Music\ Writer   Music Writer
                   13855: >>20   string          :
                   13856: >>>21  string          >\0             (version %.3s)
                   13857: >>21   string          Gold            Gold
                   13858: >>>25  string          :
                   13859: >>>>26 string          >\0             (version %.3s)
                   13860: 
1.1       misho    13861: 
                   13862: #-----------------------------------------------------------------------------
1.1.1.3   misho    13863: # $File: natinst,v 1.5 2013/02/06 14:18:52 christos Exp $
1.1       misho    13864: # natinst:  file(1) magic for National Instruments Code Files
                   13865: 
                   13866: #
1.1.1.3   misho    13867: # From <egamez@fcfm.buap.mx> Enrique Gamez-Flores
1.1       misho    13868: # version 1
                   13869: # Many formats still missing, we use, for the moment LabVIEW
                   13870: # We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
                   13871: #
                   13872: 0       string          RSRC            National Instruments,
                   13873: # Check if it's a LabVIEW File
                   13874: >8      string          LV              LabVIEW File,
                   13875: # Check wich kind of file is
                   13876: >>10    string          SB              Code Resource File, data
                   13877: >>10    string          IN              Virtual Instrument Program, data
                   13878: >>10    string          AR              VI Library, data
                   13879: # This is for Menu Libraries
                   13880: >8      string          LMNULBVW        Portable File Names, data
                   13881: # This is for General Resources
                   13882: >8      string          rsc             Resources File, data
                   13883: # This is for VXI Package
                   13884: 0       string          VMAP            National Instruments, VXI File, data
                   13885: 
                   13886: #------------------------------------------------------------------------------
1.1.1.2   misho    13887: # $File: ncr,v 1.7 2009/09/19 16:28:11 christos Exp $
1.1       misho    13888: # ncr:  file(1) magic for NCR Tower objects
                   13889: #
                   13890: # contributed by
                   13891: # Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
                   13892: # uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
                   13893: #
                   13894: 0      beshort         000610  Tower/XP rel 2 object
                   13895: >12       belong               >0      not stripped
                   13896: >20       beshort              0407    executable
                   13897: >20       beshort              0410    pure executable
                   13898: >22       beshort              >0      - version %ld
                   13899: 0      beshort         000615  Tower/XP rel 2 object
                   13900: >12       belong               >0      not stripped
                   13901: >20       beshort              0407    executable
                   13902: >20       beshort              0410    pure executable
                   13903: >22       beshort              >0      - version %ld
                   13904: 0      beshort         000620  Tower/XP rel 3 object
                   13905: >12       belong               >0      not stripped
                   13906: >20       beshort              0407    executable
                   13907: >20       beshort              0410    pure executable
                   13908: >22       beshort              >0      - version %ld
                   13909: 0      beshort         000625  Tower/XP rel 3 object
                   13910: >12       belong               >0      not stripped
                   13911: >20       beshort              0407    executable
                   13912: >20       beshort              0410    pure executable
                   13913: >22       beshort              >0      - version %ld
                   13914: 0      beshort         000630  Tower32/600/400 68020 object
                   13915: >12       belong               >0      not stripped
                   13916: >20       beshort              0407    executable
                   13917: >20       beshort              0410    pure executable
                   13918: >22       beshort              >0      - version %ld
                   13919: 0      beshort         000640  Tower32/800 68020
                   13920: >18       beshort              &020000 w/68881 object
                   13921: >18       beshort              &040000 compatible object
                   13922: >18       beshort              &060000 object
                   13923: >20       beshort              0407    executable
                   13924: >20       beshort              0413    pure executable
                   13925: >12       belong               >0      not stripped
                   13926: >22       beshort              >0      - version %ld
                   13927: 0      beshort         000645  Tower32/800 68010
                   13928: >18       beshort              &040000 compatible object
                   13929: >18       beshort              &060000 object
                   13930: >20       beshort              0407    executable
                   13931: >20       beshort              0413    pure executable
                   13932: >12       belong               >0      not stripped
                   13933: >22       beshort              >0      - version %ld
                   13934: 
                   13935: #------------------------------------------------------------------------------
1.1.1.3   misho    13936: # $File: netbsd,v 1.20 2013/01/09 22:37:24 christos Exp $
1.1       misho    13937: # netbsd:  file(1) magic for NetBSD objects
                   13938: #
                   13939: # All new-style magic numbers are in network byte order.
1.1.1.3   misho    13940: # The old-style magic numbers are indistinguishable from the same magic
                   13941: # numbers used in other systems, and are handled, for all those systems,
                   13942: # in aout.
1.1       misho    13943: #
                   13944: 
                   13945: 0      belong&0377777777       041400413       a.out NetBSD/i386 demand paged
                   13946: >0     byte                    &0x80           
                   13947: >>20   lelong                  <4096           shared library
                   13948: >>20   lelong                  =4096           dynamically linked executable
                   13949: >>20   lelong                  >4096           dynamically linked executable
                   13950: >0     byte                    ^0x80           executable
                   13951: >16    lelong                  >0              not stripped
                   13952: 0      belong&0377777777       041400410       a.out NetBSD/i386 pure
                   13953: >0     byte                    &0x80           dynamically linked executable
                   13954: >0     byte                    ^0x80           executable
                   13955: >16    lelong                  >0              not stripped
                   13956: 0      belong&0377777777       041400407       a.out NetBSD/i386
                   13957: >0     byte                    &0x80           dynamically linked executable
                   13958: >0     byte                    ^0x80
                   13959: >>0    byte                    &0x40           position independent
                   13960: >>20   lelong                  !0              executable
                   13961: >>20   lelong                  =0              object file
                   13962: >16    lelong                  >0              not stripped
                   13963: 0      belong&0377777777       041400507       a.out NetBSD/i386 core
                   13964: >12    string                  >\0             from '%s'
                   13965: >32    lelong                  !0              (signal %d)
                   13966: 
                   13967: 0      belong&0377777777       041600413       a.out NetBSD/m68k demand paged
                   13968: >0     byte                    &0x80           
                   13969: >>20   belong                  <8192           shared library
                   13970: >>20   belong                  =8192           dynamically linked executable
                   13971: >>20   belong                  >8192           dynamically linked executable
                   13972: >0     byte                    ^0x80           executable
                   13973: >16    belong                  >0              not stripped
                   13974: 0      belong&0377777777       041600410       a.out NetBSD/m68k pure
                   13975: >0     byte                    &0x80           dynamically linked executable
                   13976: >0     byte                    ^0x80           executable
                   13977: >16    belong                  >0              not stripped
                   13978: 0      belong&0377777777       041600407       a.out NetBSD/m68k
                   13979: >0     byte                    &0x80           dynamically linked executable
                   13980: >0     byte                    ^0x80
                   13981: >>0    byte                    &0x40           position independent
                   13982: >>20   belong                  !0              executable
                   13983: >>20   belong                  =0              object file
                   13984: >16    belong                  >0              not stripped
                   13985: 0      belong&0377777777       041600507       a.out NetBSD/m68k core
                   13986: >12    string                  >\0             from '%s'
                   13987: >32    belong                  !0              (signal %d)
                   13988: 
                   13989: 0      belong&0377777777       042000413       a.out NetBSD/m68k4k demand paged
                   13990: >0     byte                    &0x80           
                   13991: >>20   belong                  <4096           shared library
                   13992: >>20   belong                  =4096           dynamically linked executable
                   13993: >>20   belong                  >4096           dynamically linked executable
                   13994: >0     byte                    ^0x80           executable
                   13995: >16    belong                  >0              not stripped
                   13996: 0      belong&0377777777       042000410       a.out NetBSD/m68k4k pure
                   13997: >0     byte                    &0x80           dynamically linked executable
                   13998: >0     byte                    ^0x80           executable
                   13999: >16    belong                  >0              not stripped
                   14000: 0      belong&0377777777       042000407       a.out NetBSD/m68k4k
                   14001: >0     byte                    &0x80           dynamically linked executable
                   14002: >0     byte                    ^0x80
                   14003: >>0    byte                    &0x40           position independent
                   14004: >>20   belong                  !0              executable
                   14005: >>20   belong                  =0              object file
                   14006: >16    belong                  >0              not stripped
                   14007: 0      belong&0377777777       042000507       a.out NetBSD/m68k4k core
                   14008: >12    string                  >\0             from '%s'
                   14009: >32    belong                  !0              (signal %d)
                   14010: 
                   14011: 0      belong&0377777777       042200413       a.out NetBSD/ns32532 demand paged
                   14012: >0     byte                    &0x80           
                   14013: >>20   lelong                  <4096           shared library
                   14014: >>20   lelong                  =4096           dynamically linked executable
                   14015: >>20   lelong                  >4096           dynamically linked executable
                   14016: >0     byte                    ^0x80           executable
                   14017: >16    lelong                  >0              not stripped
                   14018: 0      belong&0377777777       042200410       a.out NetBSD/ns32532 pure
                   14019: >0     byte                    &0x80           dynamically linked executable
                   14020: >0     byte                    ^0x80           executable
                   14021: >16    lelong                  >0              not stripped
                   14022: 0      belong&0377777777       042200407       a.out NetBSD/ns32532
                   14023: >0     byte                    &0x80           dynamically linked executable
                   14024: >0     byte                    ^0x80
                   14025: >>0    byte                    &0x40           position independent
                   14026: >>20   lelong                  !0              executable
                   14027: >>20   lelong                  =0              object file
                   14028: >16    lelong                  >0              not stripped
                   14029: 0      belong&0377777777       042200507       a.out NetBSD/ns32532 core
                   14030: >12    string                  >\0             from '%s'
                   14031: >32    lelong                  !0              (signal %d)
                   14032: 
                   14033: 0      belong&0377777777       045200507       a.out NetBSD/powerpc core
                   14034: >12    string                  >\0             from '%s'
                   14035: 
                   14036: 0      belong&0377777777       042400413       a.out NetBSD/sparc demand paged
                   14037: >0     byte                    &0x80           
                   14038: >>20   belong                  <8192           shared library
                   14039: >>20   belong                  =8192           dynamically linked executable
                   14040: >>20   belong                  >8192           dynamically linked executable
                   14041: >0     byte                    ^0x80           executable
                   14042: >16    belong                  >0              not stripped
                   14043: 0      belong&0377777777       042400410       a.out NetBSD/sparc pure
                   14044: >0     byte                    &0x80           dynamically linked executable
                   14045: >0     byte                    ^0x80           executable
                   14046: >16    belong                  >0              not stripped
                   14047: 0      belong&0377777777       042400407       a.out NetBSD/sparc
                   14048: >0     byte                    &0x80           dynamically linked executable
                   14049: >0     byte                    ^0x80
                   14050: >>0    byte                    &0x40           position independent
                   14051: >>20   belong                  !0              executable
                   14052: >>20   belong                  =0              object file
                   14053: >16    belong                  >0              not stripped
                   14054: 0      belong&0377777777       042400507       a.out NetBSD/sparc core
                   14055: >12    string                  >\0             from '%s'
                   14056: >32    belong                  !0              (signal %d)
                   14057: 
                   14058: 0      belong&0377777777       042600413       a.out NetBSD/pmax demand paged
                   14059: >0     byte                    &0x80           
                   14060: >>20   lelong                  <4096           shared library
                   14061: >>20   lelong                  =4096           dynamically linked executable
                   14062: >>20   lelong                  >4096           dynamically linked executable
                   14063: >0     byte                    ^0x80           executable
                   14064: >16    lelong                  >0              not stripped
                   14065: 0      belong&0377777777       042600410       a.out NetBSD/pmax pure
                   14066: >0     byte                    &0x80           dynamically linked executable
                   14067: >0     byte                    ^0x80           executable
                   14068: >16    lelong                  >0              not stripped
                   14069: 0      belong&0377777777       042600407       a.out NetBSD/pmax
                   14070: >0     byte                    &0x80           dynamically linked executable
                   14071: >0     byte                    ^0x80
                   14072: >>0    byte                    &0x40           position independent
                   14073: >>20   lelong                  !0              executable
                   14074: >>20   lelong                  =0              object file
                   14075: >16    lelong                  >0              not stripped
                   14076: 0      belong&0377777777       042600507       a.out NetBSD/pmax core
                   14077: >12    string                  >\0             from '%s'
                   14078: >32    lelong                  !0              (signal %d)
                   14079: 
                   14080: 0      belong&0377777777       043000413       a.out NetBSD/vax 1k demand paged
                   14081: >0     byte                    &0x80           
                   14082: >>20   lelong                  <4096           shared library
                   14083: >>20   lelong                  =4096           dynamically linked executable
                   14084: >>20   lelong                  >4096           dynamically linked executable
                   14085: >0     byte                    ^0x80           executable
                   14086: >16    lelong                  >0              not stripped
                   14087: 0      belong&0377777777       043000410       a.out NetBSD/vax 1k pure
                   14088: >0     byte                    &0x80           dynamically linked executable
                   14089: >0     byte                    ^0x80           executable
                   14090: >16    lelong                  >0              not stripped
                   14091: 0      belong&0377777777       043000407       a.out NetBSD/vax 1k
                   14092: >0     byte                    &0x80           dynamically linked executable
                   14093: >0     byte                    ^0x80
                   14094: >>0    byte                    &0x40           position independent
                   14095: >>20   lelong                  !0              executable
                   14096: >>20   lelong                  =0              object file
                   14097: >16    lelong                  >0              not stripped
                   14098: 0      belong&0377777777       043000507       a.out NetBSD/vax 1k core
                   14099: >12    string                  >\0             from '%s'
                   14100: >32    lelong                  !0              (signal %d)
                   14101: 
                   14102: 0      belong&0377777777       045400413       a.out NetBSD/vax 4k demand paged
                   14103: >0     byte                    &0x80           
                   14104: >>20   lelong                  <4096           shared library
                   14105: >>20   lelong                  =4096           dynamically linked executable
                   14106: >>20   lelong                  >4096           dynamically linked executable
                   14107: >0     byte                    ^0x80           executable
                   14108: >16    lelong                  >0              not stripped
                   14109: 0      belong&0377777777       045400410       a.out NetBSD/vax 4k pure
                   14110: >0     byte                    &0x80           dynamically linked executable
                   14111: >0     byte                    ^0x80           executable
                   14112: >16    lelong                  >0              not stripped
                   14113: 0      belong&0377777777       045400407       a.out NetBSD/vax 4k
                   14114: >0     byte                    &0x80           dynamically linked executable
                   14115: >0     byte                    ^0x80
                   14116: >>0    byte                    &0x40           position independent
                   14117: >>20   lelong                  !0              executable
                   14118: >>20   lelong                  =0              object file
                   14119: >16    lelong                  >0              not stripped
                   14120: 0      belong&0377777777       045400507       a.out NetBSD/vax 4k core
                   14121: >12    string                  >\0             from '%s'
                   14122: >32    lelong                  !0              (signal %d)
                   14123: 
                   14124: # NetBSD/alpha does not support (and has never supported) a.out objects,
                   14125: # so no rules are provided for them.  NetBSD/alpha ELF objects are 
                   14126: # dealt with in "elf".
                   14127: 0      lelong          0x00070185              ECOFF NetBSD/alpha binary
                   14128: >10    leshort         0x0001                  not stripped
                   14129: >10    leshort         0x0000                  stripped
                   14130: 0      belong&0377777777       043200507       a.out NetBSD/alpha core
                   14131: >12    string                  >\0             from '%s'
                   14132: >32    lelong                  !0              (signal %d)
                   14133: 
                   14134: 0      belong&0377777777       043400413       a.out NetBSD/mips demand paged
                   14135: >0     byte                    &0x80           
                   14136: >>20   belong                  <8192           shared library
                   14137: >>20   belong                  =8192           dynamically linked executable
                   14138: >>20   belong                  >8192           dynamically linked executable
                   14139: >0     byte                    ^0x80           executable
                   14140: >16    belong                  >0              not stripped
                   14141: 0      belong&0377777777       043400410       a.out NetBSD/mips pure
                   14142: >0     byte                    &0x80           dynamically linked executable
                   14143: >0     byte                    ^0x80           executable
                   14144: >16    belong                  >0              not stripped
                   14145: 0      belong&0377777777       043400407       a.out NetBSD/mips
                   14146: >0     byte                    &0x80           dynamically linked executable
                   14147: >0     byte                    ^0x80
                   14148: >>0    byte                    &0x40           position independent
                   14149: >>20   belong                  !0              executable
                   14150: >>20   belong                  =0              object file
                   14151: >16    belong                  >0              not stripped
                   14152: 0      belong&0377777777       043400507       a.out NetBSD/mips core
                   14153: >12    string                  >\0             from '%s'
                   14154: >32    belong                  !0              (signal %d)
                   14155: 
                   14156: 0      belong&0377777777       043600413       a.out NetBSD/arm32 demand paged
                   14157: >0     byte                    &0x80
                   14158: >>20   lelong                  <4096           shared library
                   14159: >>20   lelong                  =4096           dynamically linked executable
                   14160: >>20   lelong                  >4096           dynamically linked executable
                   14161: >0     byte                    ^0x80           executable
                   14162: >16    lelong                  >0              not stripped
                   14163: 0      belong&0377777777       043600410       a.out NetBSD/arm32 pure
                   14164: >0     byte                    &0x80           dynamically linked executable
                   14165: >0     byte                    ^0x80           executable
                   14166: >16    lelong                  >0              not stripped
                   14167: 0      belong&0377777777       043600407       a.out NetBSD/arm32
                   14168: >0     byte                    &0x80           dynamically linked executable
                   14169: >0     byte                    ^0x80
                   14170: >>0    byte                    &0x40           position independent
                   14171: >>20   lelong                  !0              executable
                   14172: >>20   lelong                  =0              object file
                   14173: >16    lelong                  >0              not stripped
                   14174: # NetBSD/arm26 has always used ELF objects, but it shares a core file
                   14175: # format with NetBSD/arm32.
                   14176: 0      belong&0377777777       043600507       a.out NetBSD/arm core
                   14177: >12    string                  >\0             from '%s'
                   14178: >32    lelong                  !0              (signal %d)
                   14179: 
1.1.1.3   misho    14180: # Kernel core dump format
                   14181: 0      belong&0x0000ffff 0x00008fca    NetBSD kernel core file
                   14182: >0     belong&0x03ff0000 0x00000000    \b, Unknown
                   14183: >0     belong&0x03ff0000 0x00001000    \b, sun 68010/68020
                   14184: >0     belong&0x03ff0000 0x00020000    \b, sun 68020
                   14185: >0     belong&0x03ff0000 0x00640000    \b, 386 PC
                   14186: >0     belong&0x03ff0000 0x00860000    \b, i386 BSD
                   14187: >0     belong&0x03ff0000 0x00870000    \b, m68k BSD (8K pages)
                   14188: >0     belong&0x03ff0000 0x00880000    \b, m68k BSD (4K pages)
                   14189: >0     belong&0x03ff0000 0x00890000    \b, ns32532 BSD
                   14190: >0     belong&0x03ff0000 0x008a0000    \b, sparc/32 BSD
                   14191: >0     belong&0x03ff0000 0x008b0000    \b, pmax BSD
                   14192: >0     belong&0x03ff0000 0x008c0000    \b, vax BSD (1K pages)
                   14193: >0     belong&0x03ff0000 0x008d0000    \b, alpha BSD
                   14194: >0     belong&0x03ff0000 0x008e0000    \b, mips BSD (Big Endian)
                   14195: >0     belong&0x03ff0000 0x008f0000    \b, arm6 BSD
                   14196: >0     belong&0x03ff0000 0x00900000    \b, m68k BSD (2K pages)
                   14197: >0     belong&0x03ff0000 0x00910000    \b, sh3 BSD
                   14198: >0     belong&0x03ff0000 0x00920000    \b, ppc BSD (Big Endian)
                   14199: >0     belong&0x03ff0000 0x00930000    \b, vax BSD (4K pages)
                   14200: >0     belong&0x03ff0000 0x00940000    \b, mips1 BSD
                   14201: >0     belong&0x03ff0000 0x00950000    \b, mips2 BSD
                   14202: >0     belong&0x03ff0000 0x00960000    \b, parisc BSD
                   14203: >0     belong&0x03ff0000 0x00970000    \b, sh5/64 BSD
                   14204: >0     belong&0x03ff0000 0x00980000    \b, sparc/64 BSD
                   14205: >0     belong&0x03ff0000 0x00990000    \b, amd64 BSD
                   14206: >0     belong&0x03ff0000 0x009a0000    \b, hp200 (68010) BSD
                   14207: >0     belong&0x03ff0000 0x009b0000    \b, hp300 (68020+68881) BSD
                   14208: >0     belong&0x03ff0000 0x009b0000    \b, hp300 (68020+68881) BSD
                   14209: >0     belong&0x03ff0000 0x00c80000    \b, hp200
                   14210: >0     belong&0x03ff0000 0x020b0000    \b, hp300 (68020+68881) HP-UX
                   14211: >0     belong&0x03ff0000 0x020c0000    \b, hp300 (68020+68881) HP-UX
                   14212: >0     belong&0xfc000000 0x04000000    \b, CPU
                   14213: >0     belong&0xfc000000 0x08000000    \b, DATA
                   14214: >0     belong&0xfc000000 0x10000000    \b, STACK
                   14215: >4     leshort x                       \b, (headersize = %d
                   14216: >6     leshort x                       \b, segmentsize = %d
                   14217: >6     lelong  x                       \b, segments = %d)
                   14218: 
1.1       misho    14219: #------------------------------------------------------------------------------
1.1.1.2   misho    14220: # $File: netscape,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14221: # netscape:  file(1) magic for Netscape files
                   14222: # "H. Nanosecond" <aldomel@ix.netcom.com>
                   14223: # version 3 and 4 I think
                   14224: #
                   14225: 
                   14226: # Netscape Address book  .nab
                   14227: 0      string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
                   14228: 
                   14229: # Netscape Communicator address book
                   14230: 0   string   \000\017\102\111 Netscape Communicator address book
                   14231: 
                   14232: # .snm Caches
                   14233: 0      string          #\ Netscape\ folder\ cache      Netscape folder cache
                   14234: 0      string  \000\036\204\220\000    Netscape folder cache
                   14235: # .n2p 
                   14236: # Net 2 Phone 
                   14237: #0     string  123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
                   14238: 0      string  SX961999        Net2phone
                   14239: 
                   14240: #
                   14241: #This is files ending in .art, FIXME add more rules
                   14242: 0       string          JG\004\016\0\0\0\0      ART
                   14243: 
                   14244: #------------------------------------------------------------------------------
1.1.1.2   misho    14245: # $File: netware,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14246: # netware:  file(1) magic for NetWare Loadable Modules (NLMs)
                   14247: # From: Mads Martin Joergensen <mmj@suse.de>
                   14248: 
                   14249: 0      string  NetWare\ Loadable\ Module       NetWare Loadable Module
                   14250: 
                   14251: #------------------------------------------------------------------------------
1.1.1.2   misho    14252: # $File: news,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14253: # news:  file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
                   14254: #
                   14255: 0      string          StartFontMetrics        ASCII font metrics
                   14256: 0      string          StartFont       ASCII font bits
                   14257: 0      belong          0x137A2944      NeWS bitmap font
                   14258: 0      belong          0x137A2947      NeWS font family
                   14259: 0      belong          0x137A2950      scalable OpenFont binary
                   14260: 0      belong          0x137A2951      encrypted scalable OpenFont binary
                   14261: 8      belong          0x137A2B45      X11/NeWS bitmap font
                   14262: 8      belong          0x137A2B48      X11/NeWS font family
1.1.1.2   misho    14263: 
1.1       misho    14264: #------------------------------------------------------------------------------
1.1.1.2   misho    14265: # $File: nitpicker,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14266: # nitpicker:  file(1) magic for Flowfiles.
                   14267: # From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
                   14268: 0      string  NPFF    NItpicker Flow File 
                   14269: >4     byte    x       V%d.
                   14270: >5     byte    x       %d
                   14271: >6     bedate  x       started: %s
                   14272: >10    bedate  x       stopped: %s
                   14273: >14    belong  x       Bytes: %u
                   14274: >18    belong  x       Bytes1: %u
                   14275: >22    belong  x       Flows: %u
                   14276: >26    belong  x       Pkts: %u
                   14277: 
                   14278: #------------------------------------------------------------------------------
1.1.1.3   misho    14279: # $File: oasis,v 1.1 2011/03/15 02:09:38 christos Exp $
                   14280: # OASIS
                   14281: # Summary: OASIS stream file
                   14282: # Long descripton: Open Artwork System Interchange Standard
                   14283: # File extension: .oas
                   14284: # Full name:   Ben Cowley (bcowley@broadcom.com)
                   14285: #              Philip Dixon (pdixon@broadcom.com)
                   14286: # Reference: http://www.wrcad.com/oasis/oasis-3626-042303-draft.pdf
                   14287: #              (see page 3)
                   14288: 0      string  %SEMI-OASIS\r\n         OASIS Stream file
                   14289: 
                   14290: #------------------------------------------------------------------------------
                   14291: # $File: ocaml,v 1.5 2010/09/20 18:55:20 rrt Exp $
1.1       misho    14292: # ocaml: file(1) magic for Objective Caml files.
                   14293: 0      string  Caml1999        OCaml
                   14294: >8     string  X               exec file
                   14295: >8     string  I               interface file (.cmi)
                   14296: >8     string  O               object file (.cmo)
                   14297: >8     string  A               library file (.cma)
                   14298: >8     string  Y               native object file (.cmx)
                   14299: >8     string  Z               native library file (.cmxa)
                   14300: >8     string  M               abstract syntax tree implementation file
                   14301: >8     string  N               abstract syntax tree interface file
                   14302: >9     string  >\0             (Version %3.3s)
1.1.1.2   misho    14303: 
1.1       misho    14304: #------------------------------------------------------------------------------
1.1.1.2   misho    14305: # $File: octave,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14306: # octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
                   14307: 0      string          Octave-1-L      Octave binary data (little endian)
                   14308: 0      string          Octave-1-B      Octave binary data (big endian)
                   14309: 
                   14310: #------------------------------------------------------------------------------
1.1.1.2   misho    14311: # $File: ole2compounddocs,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14312: # Microsoft OLE 2 Compound Documents : file(1) magic for Microsoft Structured
                   14313: # storage (http://en.wikipedia.org/wiki/Structured_Storage)
                   14314: # Additional tests for OLE 2 Compound Documents should be under this recipe.
                   14315: 
                   14316: 0   string  \320\317\021\340\241\261\032\341      OLE 2 Compound Document
                   14317: # - Microstation V8 DGN files (www.bentley.com)
                   14318: #   Last update on 10/23/2006 by Lester Hightower
                   14319: > 0x480  string  D\000g\000n\000~\000H                : Microstation V8 DGN
                   14320: # - Visio documents
                   14321: #   Last update on 10/23/2006 by Lester Hightower
                   14322: > 0x480  string  V\000i\000s\000i\000o\000D\000o\000c : Visio Document
                   14323: 
                   14324: #------------------------------------------------------------------------------
1.1.1.2   misho    14325: # $File: olf,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14326: # olf:  file(1) magic for OLF executables
                   14327: #
                   14328: # We have to check the byte order flag to see what byte order all the
                   14329: # other stuff in the header is in.
                   14330: #
                   14331: # MIPS R3000 may also be for MIPS R2000.
                   14332: # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
                   14333: #
                   14334: # Created by Erik Theisen <etheisen@openbsd.org>
                   14335: # Based on elf from Daniel Quinlan <quinlan@yggdrasil.com>
                   14336: 0      string          \177OLF         OLF
                   14337: >4     byte            0               invalid class
                   14338: >4     byte            1               32-bit
                   14339: >4     byte            2               64-bit
                   14340: >7     byte            0               invalid os
                   14341: >7     byte            1               OpenBSD
                   14342: >7     byte            2               NetBSD
                   14343: >7     byte            3               FreeBSD
                   14344: >7     byte            4               4.4BSD
                   14345: >7     byte            5               Linux
                   14346: >7     byte            6               SVR4
                   14347: >7     byte            7               esix
                   14348: >7     byte            8               Solaris
                   14349: >7     byte            9               Irix
                   14350: >7     byte            10              SCO
                   14351: >7     byte            11              Dell
                   14352: >7     byte            12              NCR
                   14353: >5     byte            0               invalid byte order
                   14354: >5     byte            1               LSB
                   14355: >>16   leshort         0               no file type,
                   14356: >>16   leshort         1               relocatable,
                   14357: >>16   leshort         2               executable,
                   14358: >>16   leshort         3               shared object,
                   14359: # Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
                   14360: # corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
                   14361: >>16   leshort         4               core file
                   14362: >>>(0x38+0xcc) string  >\0             of '%s'
                   14363: >>>(0x38+0x10) lelong  >0              (signal %d),
                   14364: >>16   leshort         &0xff00         processor-specific,
                   14365: >>18   leshort         0               no machine,
                   14366: >>18   leshort         1               AT&T WE32100 - invalid byte order,
                   14367: >>18   leshort         2               SPARC - invalid byte order,
                   14368: >>18   leshort         3               Intel 80386,
                   14369: >>18   leshort         4               Motorola 68000 - invalid byte order,
                   14370: >>18   leshort         5               Motorola 88000 - invalid byte order,
                   14371: >>18   leshort         6               Intel 80486,
                   14372: >>18   leshort         7               Intel 80860,
                   14373: >>18   leshort         8               MIPS R3000_BE - invalid byte order,
                   14374: >>18   leshort         9               Amdahl - invalid byte order,
                   14375: >>18   leshort         10              MIPS R3000_LE,
                   14376: >>18   leshort         11              RS6000 - invalid byte order,
                   14377: >>18   leshort         15              PA-RISC - invalid byte order,
                   14378: >>18   leshort         16              nCUBE,
                   14379: >>18   leshort         17              VPP500,
                   14380: >>18   leshort         18              SPARC32PLUS,
                   14381: >>18   leshort         20              PowerPC,
                   14382: >>18   leshort         0x9026          Alpha,
                   14383: >>20   lelong          0               invalid version
                   14384: >>20   lelong          1               version 1
                   14385: >>36   lelong          1               MathCoPro/FPU/MAU Required
                   14386: >8     string          >\0             (%s)
                   14387: >5     byte            2               MSB
                   14388: >>16   beshort         0               no file type,
                   14389: >>16   beshort         1               relocatable,
                   14390: >>16   beshort         2               executable,
                   14391: >>16   beshort         3               shared object,
                   14392: >>16   beshort         4               core file,
                   14393: >>>(0x38+0xcc) string  >\0             of '%s'
                   14394: >>>(0x38+0x10) belong  >0              (signal %d),
                   14395: >>16   beshort         &0xff00         processor-specific,
                   14396: >>18   beshort         0               no machine,
                   14397: >>18   beshort         1               AT&T WE32100,
                   14398: >>18   beshort         2               SPARC,
                   14399: >>18   beshort         3               Intel 80386 - invalid byte order,
                   14400: >>18   beshort         4               Motorola 68000,
                   14401: >>18   beshort         5               Motorola 88000,
                   14402: >>18   beshort         6               Intel 80486 - invalid byte order,
                   14403: >>18   beshort         7               Intel 80860,
                   14404: >>18   beshort         8               MIPS R3000_BE,
                   14405: >>18   beshort         9               Amdahl,
                   14406: >>18   beshort         10              MIPS R3000_LE - invalid byte order,
                   14407: >>18   beshort         11              RS6000,
                   14408: >>18   beshort         15              PA-RISC,
                   14409: >>18   beshort         16              nCUBE,
                   14410: >>18   beshort         17              VPP500,
                   14411: >>18   beshort         18              SPARC32PLUS,
                   14412: >>18   beshort         20              PowerPC or cisco 4500,
                   14413: >>18   beshort         21              cisco 7500,
                   14414: >>18   beshort         24              cisco SVIP,
                   14415: >>18   beshort         25              cisco 7200,
                   14416: >>18   beshort         36              cisco 12000,
                   14417: >>18   beshort         0x9026          Alpha,
                   14418: >>20   belong          0               invalid version
                   14419: >>20   belong          1               version 1
                   14420: >>36   belong          1               MathCoPro/FPU/MAU Required
1.1.1.2   misho    14421: 
1.1       misho    14422: #------------------------------------------------------------------------------
1.1.1.2   misho    14423: # $File: os2,v 1.7 2009/09/19 16:28:11 christos Exp $
1.1       misho    14424: # os2:  file(1) magic for OS/2 files
                   14425: #
                   14426: 
                   14427: # Provided 1998/08/22 by
                   14428: # David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
                   14429: 1      search/1        InternetShortcut        MS Windows 95 Internet shortcut text
                   14430: >24    search/1        >\                      (URL=<%s>)
                   14431: 
                   14432: # OS/2 URL objects
                   14433: # Provided 1998/08/22 by
                   14434: # David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
                   14435: #0     string  http:                   OS/2 URL object text
                   14436: #>5    string  >\                      (WWW) <http:%s>
                   14437: #0     string  mailto:                 OS/2 URL object text
                   14438: #>7    string  >\                      (email) <%s>
                   14439: #0     string  news:                   OS/2 URL object text
                   14440: #>5    string  >\                      (Usenet) <%s>
                   14441: #0     string  ftp:                    OS/2 URL object text
                   14442: #>4    string  >\                      (FTP) <ftp:%s>
                   14443: #0     string  file:                   OS/2 URL object text
                   14444: #>5    string  >\                      (Local file) <%s>
                   14445: 
                   14446: # >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
                   14447: # Carl Hauser (chauser.parc@xerox.com) and 
                   14448: # Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
                   14449: # list the following header format in inf02a.doc:
                   14450: #
                   14451: #  int16 ID;           // ID magic word (5348h = "HS")
                   14452: #  int8  unknown1;     // unknown purpose, could be third letter of ID
                   14453: #  int8  flags;        // probably a flag word...
                   14454: #                      //  bit 0: set if INF style file
                   14455: #                      //  bit 4: set if HLP style file
                   14456: #                      // patching this byte allows reading HLP files
                   14457: #                      // using the VIEW command, while help files 
                   14458: #                      // seem to work with INF settings here as well.
                   14459: #  int16 hdrsize;      // total size of header
                   14460: #  int16 unknown2;     // unknown purpose
                   14461: # 
                   14462: 0   string  HSP\x01\x9b\x00 OS/2 INF
                   14463: >107 string >0                      (%s)
                   14464: 0   string  HSP\x10\x9b\x00     OS/2 HLP
                   14465: >107 string >0                      (%s)
                   14466: 
                   14467: # OS/2 INI (this is a guess)
                   14468: 0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
1.1.1.2   misho    14469: 
1.1       misho    14470: #------------------------------------------------------------------------------
1.1.1.2   misho    14471: # $File: os400,v 1.5 2009/09/19 16:28:11 christos Exp $
1.1       misho    14472: # os400:  file(1) magic for IBM OS/400 files
                   14473: #
                   14474: # IBM OS/400 (i5/OS) Save file (SAVF) - gerardo.cacciari@gmail.com
                   14475: # In spite of its quite variable format (due to internal memory page
                   14476: # length differences between CISC and RISC versions of the OS) the
                   14477: # SAVF structure hasn't suitable offsets to identify the catalog
                   14478: # header in the first descriptor where there are some useful infos,
                   14479: # so we must search in a somewhat large area for a particular string
                   14480: # that represents the EBCDIC encoding of 'QSRDSSPC' (save/restore
                   14481: # descriptor space) preceded by a two byte constant.
                   14482: #
                   14483: 1090    search/7393    \x19\xDB\xD8\xE2\xD9\xC4\xE2\xE2\xD7\xC3 IBM OS/400 save file data
                   14484: >&212   byte           0x01                     \b, created with SAVOBJ
                   14485: >&212   byte           0x02                     \b, created with SAVLIB
                   14486: >&212   byte           0x07                     \b, created with SAVCFG
                   14487: >&212   byte           0x08                     \b, created with SAVSECDTA
                   14488: >&212   byte           0x0A                     \b, created with SAVSECDTA
                   14489: >&212   byte           0x0B                     \b, created with SAVDLO
                   14490: >&212   byte           0x0D                     \b, created with SAVLICPGM
                   14491: >&212   byte           0x11                     \b, created with SAVCHGOBJ
                   14492: >&213   byte           0x44                     \b, at least V5R4 to open
                   14493: >&213   byte           0x43                     \b, at least V5R3 to open
                   14494: >&213   byte           0x42                     \b, at least V5R2 to open
                   14495: >&213   byte           0x41                     \b, at least V5R1 to open
                   14496: >&213   byte           0x40                     \b, at least V4R5 to open
                   14497: >&213   byte           0x3F                     \b, at least V4R4 to open
                   14498: >&213   byte           0x3E                     \b, at least V4R3 to open
                   14499: >&213   byte           0x3C                     \b, at least V4R2 to open
                   14500: >&213   byte           0x3D                     \b, at least V4R1M4 to open
                   14501: >&213   byte           0x3B                     \b, at least V4R1 to open
                   14502: >&213   byte           0x3A                     \b, at least V3R7 to open
                   14503: >&213   byte           0x35                     \b, at least V3R6 to open
                   14504: >&213   byte           0x36                     \b, at least V3R2 to open
                   14505: >&213   byte           0x34                     \b, at least V3R1 to open
                   14506: >&213   byte           0x31                     \b, at least V3R0M5 to open
                   14507: >&213   byte           0x30                     \b, at least V2R3 to open
1.1.1.2   misho    14508: 
                   14509: #------------------------------------------------------------------------------
1.1.1.3   misho    14510: # $File: os9,v 1.7 2011/05/13 22:15:54 christos Exp $
1.1       misho    14511: #
                   14512: # Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
                   14513: #
                   14514: # Redistribution and use in source and binary forms, with or without
                   14515: # modification, are permitted provided that the following conditions
                   14516: # are met:
                   14517: # 1. Redistributions of source code must retain the above copyright
                   14518: #    notice, this list of conditions and the following disclaimer.
                   14519: # 2. Redistributions in binary form must reproduce the above copyright
                   14520: #    notice, this list of conditions and the following disclaimer in the
                   14521: #    documentation and/or other materials provided with the distribution.
                   14522: #
                   14523: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                   14524: # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                   14525: # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  
                   14526: # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
                   14527: # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                   14528: # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                   14529: # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                   14530: # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                   14531: # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
                   14532: # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                   14533: #
                   14534: #
                   14535: #
                   14536: # OS9/6809 module descriptions:
                   14537: #
                   14538: 0      beshort         0x87CD  OS9/6809 module:
                   14539: #
                   14540: >6     byte&0x0f       0x00    non-executable
                   14541: >6     byte&0x0f       0x01    machine language
                   14542: >6     byte&0x0f       0x02    BASIC I-code
                   14543: >6     byte&0x0f       0x03    Pascal P-code
                   14544: >6     byte&0x0f       0x04    C I-code
                   14545: >6     byte&0x0f       0x05    COBOL I-code
                   14546: >6     byte&0x0f       0x06    Fortran I-code
                   14547: #
                   14548: >6     byte&0xf0       0x10    program executable
                   14549: >6     byte&0xf0       0x20    subroutine
                   14550: >6     byte&0xf0       0x30    multi-module
                   14551: >6     byte&0xf0       0x40    data module
                   14552: #
                   14553: >6     byte&0xf0       0xC0    system module
                   14554: >6     byte&0xf0       0xD0    file manager
                   14555: >6     byte&0xf0       0xE0    device driver
                   14556: >6     byte&0xf0       0xF0    device descriptor
                   14557: #
                   14558: # OS9/m68k stuff (to be continued)
                   14559: #
                   14560: 0      beshort         0x4AFC  OS9/68K module:
                   14561: #
                   14562: # attr
                   14563: >0x14  byte&0x80       0x80    re-entrant
                   14564: >0x14  byte&0x40       0x40    ghost
                   14565: >0x14  byte&0x20       0x20    system-state
                   14566: #
                   14567: # lang:
                   14568: #
                   14569: >0x13  byte            1       machine language
                   14570: >0x13  byte            2       BASIC I-code
                   14571: >0x13  byte            3       Pascal P-code
                   14572: >0x13  byte            4       C I-code
                   14573: >0x13  byte            5       COBOL I-code
                   14574: >0x13  byte            6       Fortran I-code
                   14575: #
                   14576: #
                   14577: # type:
                   14578: #
                   14579: >0x12  byte            1       program executable
                   14580: >0x12  byte            2       subroutine
                   14581: >0x12  byte            3       multi-module
                   14582: >0x12  byte            4       data module
                   14583: >0x12  byte            11      trap library
                   14584: >0x12  byte            12      system module
                   14585: >0x12  byte            13      file manager
                   14586: >0x12  byte            14      device driver
                   14587: >0x12  byte            15      device descriptor
1.1.1.2   misho    14588: 
                   14589: #------------------------------------------------------------------------------
                   14590: # $File: osf1,v 1.7 2009/09/19 16:28:11 christos Exp $
1.1       misho    14591: #
                   14592: # Mach magic number info
                   14593: #
                   14594: 0      long            0xefbe  OSF/Rose object
                   14595: # I386 magic number info
                   14596: #
                   14597: 0      short           0565    i386 COFF object
                   14598: 
                   14599: #------------------------------------------------------------------------------
1.1.1.3   misho    14600: # $File: palm,v 1.9 2012/01/16 15:16:43 christos Exp $
                   14601: # palm:         file(1) magic for PalmOS {.prc,.pdb}: applications, docfiles, and hacks
1.1       misho    14602: #
                   14603: # Brian Lalor <blalor@hcirisc.cs.binghamton.edu>
                   14604: 
1.1.1.3   misho    14605: # These are weak, byte 59 is not guaranteed to be 0 and there are
                   14606: # 8 character identifiers at byte 60, one I found for appl is BIGb.
                   14607: # What are the possibilities and where is this documented?
                   14608: 
1.1       misho    14609: # appl
1.1.1.3   misho    14610: #59    byte                    \0
                   14611: #>60   string                  appl            PalmOS application
                   14612: #>0    string                  >\0             "%s"
1.1       misho    14613: # TEXt
1.1.1.3   misho    14614: #59    byte                    \0
                   14615: #>60   belong                  TEXt            AportisDoc file
                   14616: #>0    string                  >\0             "%s"
1.1       misho    14617: # HACK
1.1.1.3   misho    14618: #59    byte                    \0
                   14619: #>60   string                  HACK            HackMaster hack
                   14620: #>0    string                  >\0             "%s"
1.1       misho    14621: 
                   14622: # Variety of PalmOS document types
                   14623: # Michael-John Turner <mj@debian.org>
                   14624: # Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
1.1.1.3   misho    14625: 60     string                  BVokBDIC        BDicty PalmOS document
                   14626: >0     string                  >\0             "%s"
                   14627: 60     string                  DB99DBOS        DB PalmOS document
                   14628: >0     string                  >\0             "%s"
                   14629: 60     string                  vIMGView        FireViewer/ImageViewer PalmOS document
                   14630: >0     string                  >\0             "%s"
                   14631: 60     string                  PmDBPmDB        HanDBase PalmOS document
                   14632: >0     string                  >\0             "%s"
                   14633: 60     string                  InfoINDB        InfoView PalmOS document
                   14634: >0     string                  >\0             "%s"
                   14635: 60     string                  ToGoToGo        iSilo PalmOS document
                   14636: >0     string                  >\0             "%s"
                   14637: 60     string                  JfDbJBas        JFile PalmOS document
                   14638: >0     string                  >\0             "%s"
                   14639: 60     string                  JfDbJFil        JFile Pro PalmOS document
                   14640: >0     string                  >\0             "%s"
                   14641: 60     string                  DATALSdb        List PalmOS document
                   14642: >0     string                  >\0             "%s"
                   14643: 60     string                  Mdb1Mdb1        MobileDB PalmOS document
                   14644: >0     string                  >\0             "%s"
                   14645: 60     string                  PNRdPPrs        PeanutPress PalmOS document
                   14646: >0     string                  >\0             "%s"
                   14647: 60     string                  DataPlkr        Plucker PalmOS document
                   14648: >0     string                  >\0             "%s"
                   14649: 60     string                  DataSprd        QuickSheet PalmOS document
                   14650: >0     string                  >\0             "%s"
                   14651: 60     string                  SM01SMem        SuperMemo PalmOS document
                   14652: >0     string                  >\0             "%s"
                   14653: 60     string                  TEXtTlDc        TealDoc PalmOS document
                   14654: >0     string                  >\0             "%s"
                   14655: 60     string                  InfoTlIf        TealInfo PalmOS document
                   14656: >0     string                  >\0             "%s"
                   14657: 60     string                  DataTlMl        TealMeal PalmOS document
                   14658: >0     string                  >\0             "%s"
                   14659: 60     string                  DataTlPt        TealPaint PalmOS document
                   14660: >0     string                  >\0             "%s"
                   14661: 60     string                  dataTDBP        ThinkDB PalmOS document
                   14662: >0     string                  >\0             "%s"
                   14663: 60     string                  TdatTide        Tides PalmOS document
                   14664: >0     string                  >\0             "%s"
                   14665: 60     string                  ToRaTRPW        TomeRaider PalmOS document
                   14666: >0     string                  >\0             "%s"
1.1       misho    14667: 
                   14668: # A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
                   14669: # For version 1.xx zTXTs, outputs version and numbers of bookmarks and
                   14670: #   annotations.
                   14671: # For other versions, just outputs version.
                   14672: #
                   14673: 60             string          zTXT            A GutenPalm zTXT e-book
                   14674: >0             string          >\0             "%s"
                   14675: >(0x4E.L)      byte            0
                   14676: >>(0x4E.L+1)   byte            x               (v0.%02d)
                   14677: >(0x4E.L)      byte            1
                   14678: >>(0x4E.L+1)   byte            x               (v1.%02d)
                   14679: >>>(0x4E.L+10) beshort         >0
                   14680: >>>>(0x4E.L+10) beshort                <2              - 1 bookmark
                   14681: >>>>(0x4E.L+10) beshort                >1              - %d bookmarks
                   14682: >>>(0x4E.L+14) beshort         >0
                   14683: >>>>(0x4E.L+14) beshort                <2              - 1 annotation
                   14684: >>>>(0x4E.L+14) beshort                >1              - %d annotations
                   14685: >(0x4E.L)      byte            >1              (v%d.
                   14686: >>(0x4E.L+1)   byte            x               %02d)
                   14687: 
                   14688: # Palm OS .prc file types
                   14689: 60             string          libr            Palm OS dynamic library data
                   14690: >0             string          >\0             "%s"
                   14691: 60             string          ptch            Palm OS operating system patch data
                   14692: >0             string          >\0             "%s"
                   14693: 
                   14694: # Mobipocket (www.mobipocket.com), donated by Carl Witty
1.1.1.3   misho    14695: 60     string                  BOOKMOBI        Mobipocket E-book
                   14696: >0     string                  >\0             "%s"
1.1       misho    14697: 
                   14698: #------------------------------------------------------------------------------
1.1.1.2   misho    14699: # $File: parix,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    14700: #
                   14701: # Parix COFF executables
                   14702: # From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
                   14703: #
                   14704: 0      beshort&0xfff   0xACE   PARIX
                   14705: >0     byte&0xf0       0x80    T800
                   14706: >0     byte&0xf0       0x90    T9000
                   14707: >19    byte&0x02       0x02    executable
                   14708: >19    byte&0x02       0x00    object
                   14709: >19    byte&0x0c       0x00    not stripped
1.1.1.3   misho    14710: #------------------------------------------------------------------------------
                   14711: # $File: parrot,v 1.1 2010/07/08 20:18:40 christos Exp $
                   14712: # parrot: file(1) magic for Parrot Virtual Machine
                   14713: # URL: http://www.lua.org/
                   14714: # From: Lubomir Rintel <lkundrak@v3.sk>
                   14715: 
                   14716: # Compiled Parrot byte code
                   14717: 0      string  \376PBC\r\n\032\n       Parrot bytecode
                   14718: >64    byte    x                       %d.
                   14719: >72    byte    x                       \b%d,
                   14720: >8     byte    >0                      %d byte words,
                   14721: >16    byte    0                       little-endian,
                   14722: >16    byte    1                       big-endian,
                   14723: >32    byte    0                       IEEE-754 8 byte double floats,
                   14724: >32    byte    1                       x86 12 byte long double floats,
                   14725: >32    byte    2                       IEEE-754 16 byte long double floats,
                   14726: >32    byte    3                       MIPS 16 byte long double floats,
                   14727: >32    byte    4                       AIX 16 byte long double floats,
                   14728: >32    byte    5                       4-byte floats,
                   14729: >40    byte    x                       Parrot %d.
                   14730: >48    byte    x                       \b%d.
                   14731: >56    byte    x                       \b%d
                   14732: #------------------------------------------------------------------------------
                   14733: # $File: pascal,v 1.1 2011/12/08 12:12:46 rrt Exp $
                   14734: # pascal:  file(1) magic for Pascal source
                   14735: #
                   14736: 0      search/8192     (input,         Pascal source text
                   14737: !:mime text/x-pascal
                   14738: 0      regex           \^program       Pascal source text
                   14739: !:mime text/x-pascal
                   14740: 0      regex                   \^record                Pascal source text
                   14741: !:mime text/x-pascal
1.1       misho    14742: 
                   14743: #------------------------------------------------------------------------------
1.1.1.2   misho    14744: # $File: pbm,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14745: # pbm:  file(1) magic for Portable Bitmap files
                   14746: #
                   14747: # XXX - byte order?
                   14748: #
                   14749: 0      short   0x2a17  "compact bitmap" format (Poskanzer)
1.1.1.2   misho    14750: 
1.1       misho    14751: #------------------------------------------------------------------------------
1.1.1.2   misho    14752: # $File: pdf,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14753: # pdf:  file(1) magic for Portable Document Format
                   14754: #
                   14755: 
                   14756: 0      string          %PDF-           PDF document
                   14757: !:mime application/pdf
                   14758: >5     byte            x               \b, version %c
                   14759: >7     byte            x               \b.%c
                   14760: 
                   14761: # From: Nick Schmalenberger <nick@schmalenberger.us>
                   14762: # Forms Data Format
                   14763: 0       string          %FDF-           FDF document
                   14764: >5      byte            x               \b, version %c
                   14765: >7      byte            x               \b.%c
                   14766: 
                   14767: #------------------------------------------------------------------------------
1.1.1.2   misho    14768: # $File: pdp,v 1.8 2009/09/19 16:28:11 christos Exp $
1.1       misho    14769: # pdp:  file(1) magic for PDP-11 executable/object and APL workspace
                   14770: #
                   14771: 0      lelong          0101555         PDP-11 single precision APL workspace
                   14772: 0      lelong          0101554         PDP-11 double precision APL workspace
                   14773: #
                   14774: # PDP-11 a.out
                   14775: #
                   14776: 0      leshort         0407            PDP-11 executable
                   14777: >8     leshort         >0              not stripped
                   14778: >15    byte            >0              - version %ld
                   14779: 
                   14780: 0      leshort         0401            PDP-11 UNIX/RT ldp
                   14781: 0      leshort         0405            PDP-11 old overlay
                   14782: 
                   14783: 0      leshort         0410            PDP-11 pure executable
                   14784: >8     leshort         >0              not stripped
                   14785: >15    byte            >0              - version %ld
                   14786: 
                   14787: 0      leshort         0411            PDP-11 separate I&D executable
                   14788: >8     leshort         >0              not stripped
                   14789: >15    byte            >0              - version %ld
                   14790: 
                   14791: 0      leshort         0437            PDP-11 kernel overlay
                   14792: 
                   14793: # These last three are derived from 2.11BSD file(1)
                   14794: 0      leshort         0413            PDP-11 demand-paged pure executable
                   14795: >8     leshort         >0              not stripped
                   14796: 
                   14797: 0      leshort         0430            PDP-11 overlaid pure executable
                   14798: >8     leshort         >0              not stripped
                   14799: 
                   14800: 0      leshort         0431            PDP-11 overlaid separate executable
                   14801: >8     leshort         >0              not stripped
                   14802: #------------------------------------------------------------------------------
1.1.1.3   misho    14803: # $File: perl,v 1.20 2012/06/21 01:16:49 christos Exp $
1.1       misho    14804: # perl:  file(1) magic for Larry Wall's perl language.
                   14805: #
                   14806: # The `eval' lines recognizes an outrageously clever hack.
                   14807: # Keith Waclena <keith@cerberus.uchicago.edu>
                   14808: # Send additions to <perl5-porters@perl.org>
1.1.1.2   misho    14809: 0      search/1/w      #!\ /bin/perl                   Perl script text executable
1.1       misho    14810: !:mime text/x-perl
                   14811: 0      search/1        eval\ "exec\ /bin/perl          Perl script text
                   14812: !:mime text/x-perl
1.1.1.2   misho    14813: 0      search/1/w      #!\ /usr/bin/perl               Perl script text executable
1.1       misho    14814: !:mime text/x-perl
                   14815: 0      search/1        eval\ "exec\ /usr/bin/perl      Perl script text
                   14816: !:mime text/x-perl
1.1.1.2   misho    14817: 0      search/1/w      #!\ /usr/local/bin/perl         Perl script text executable
1.1       misho    14818: !:mime text/x-perl
                   14819: 0      search/1        eval\ "exec\ /usr/local/bin/perl        Perl script text
                   14820: !:mime text/x-perl
                   14821: 0      search/1        eval\ '(exit\ $?0)'\ &&\ eval\ 'exec    Perl script text
                   14822: !:mime text/x-perl
1.1.1.3   misho    14823: 0      search/1        #!/usr/bin/env\ perl    Perl script text executable
                   14824: !:mime text/x-perl
                   14825: 0      search/1        #!\ /usr/bin/env\ perl  Perl script text executable
                   14826: !:mime text/x-perl
1.1       misho    14827: 
                   14828: # by Dmitry V. Levin and Alexey Tourbin
                   14829: # check the first line
                   14830: 0      search/1        package
                   14831: >0     regex           \^package[\ \t]+[0-9A-Za-z_:]+\ *;      Perl5 module source text
1.1.1.3   misho    14832: !:strength + 10
1.1       misho    14833: # not 'p', check other lines
                   14834: 0      search/1        !p
                   14835: >0     regex           \^package[\ \t]+[0-9A-Za-z_:]+\ *;
                   14836: >>0    regex           \^1\ *;|\^(use|sub|my)\ .*[(;{=]        Perl5 module source text
1.1.1.3   misho    14837: !:strength + 10
1.1       misho    14838: 
                   14839: # Perl POD documents
                   14840: # From: Tom Hukins <tom@eborcom.com>
1.1.1.2   misho    14841: 0      search/1/W      \=pod\n         Perl POD document text
                   14842: 0      search/1/W      \n\=pod\n       Perl POD document text
                   14843: 0      search/1/W      \=head1\        Perl POD document text
                   14844: 0      search/1/W      \n\=head1\      Perl POD document text
                   14845: 0      search/1/W      \=head2\        Perl POD document text
                   14846: 0      search/1/W      \n\=head2\      Perl POD document text
1.1.1.3   misho    14847: 0      search/1/W      \=encoding\     Perl POD document text
                   14848: 0      search/1/W      \n\=encoding\   Perl POD document text
                   14849: 
1.1       misho    14850: 
                   14851: # Perl Storable data files.
                   14852: 0      string  perl-store      perl Storable (v0.6) data
                   14853: >4     byte    >0      (net-order %d)
                   14854: >>4    byte    &01     (network-ordered)
                   14855: >>4    byte    =3      (major 1)
                   14856: >>4    byte    =2      (major 1)
                   14857: 
                   14858: 0      string  pst0    perl Storable (v0.7) data
                   14859: >4     byte    >0
                   14860: >>4    byte    &01     (network-ordered)
                   14861: >>4    byte    =5      (major 2)
                   14862: >>4    byte    =4      (major 2)
                   14863: >>5    byte    >0      (minor %d)
                   14864: 
                   14865: #------------------------------------------------------------------------------
1.1.1.2   misho    14866: # $File: pgp,v 1.9 2009/09/19 16:28:11 christos Exp $
1.1       misho    14867: # pgp:  file(1) magic for Pretty Good Privacy
                   14868: # see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
                   14869: #
                   14870: 0       beshort         0x9900                  PGP key public ring
                   14871: !:mime application/x-pgp-keyring
                   14872: 0       beshort         0x9501                  PGP key security ring
                   14873: !:mime application/x-pgp-keyring
                   14874: 0       beshort         0x9500                  PGP key security ring
                   14875: !:mime application/x-pgp-keyring
                   14876: 0      beshort         0xa600                  PGP encrypted data
                   14877: #!:mime        application/pgp-encrypted
                   14878: #0     string          -----BEGIN\040PGP       text/PGP armored data
                   14879: !:mime text/PGP # encoding: armored data
                   14880: #>15   string  PUBLIC\040KEY\040BLOCK- public key block
                   14881: #>15   string  MESSAGE-                message
                   14882: #>15   string  SIGNED\040MESSAGE-      signed message
                   14883: #>15   string  PGP\040SIGNATURE-       signature
                   14884: 
                   14885: 2      string  ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-      PGP public key block
                   14886: !:mime application/pgp-keys
                   14887: 0      string  -----BEGIN\040PGP\40MESSAGE-            PGP message
                   14888: !:mime application/pgp
                   14889: 0      string  -----BEGIN\040PGP\40SIGNATURE-          PGP signature
                   14890: !:mime application/pgp-signature
                   14891: 
                   14892: #------------------------------------------------------------------------------
1.1.1.2   misho    14893: # $File: pkgadd,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14894: # pkgadd:  file(1) magic for SysV R4 PKG Datastreams
                   14895: #
                   14896: 0       string          #\ PaCkAgE\ DaTaStReAm  pkg Datastream (SVR4)
                   14897: !:mime application/x-svr4-package
                   14898: 
                   14899: #------------------------------------------------------------------------------
1.1.1.2   misho    14900: # $File: plan9,v 1.5 2009/09/19 16:28:11 christos Exp $
1.1       misho    14901: # plan9:  file(1) magic for AT&T Bell Labs' Plan 9 executables
                   14902: # From: "Stefan A. Haubenthal" <polluks@web.de>
                   14903: #
                   14904: 0      belong          0x00000107      Plan 9 executable, Motorola 68k
                   14905: 0      belong          0x000001EB      Plan 9 executable, Intel 386
                   14906: 0      belong          0x00000247      Plan 9 executable, Intel 960
                   14907: 0      belong          0x000002AB      Plan 9 executable, SPARC
                   14908: 0      belong          0x00000407      Plan 9 executable, MIPS R3000
                   14909: 0      belong          0x0000048B      Plan 9 executable, AT&T DSP 3210
                   14910: 0      belong          0x00000517      Plan 9 executable, MIPS R4000 BE
                   14911: 0      belong          0x000005AB      Plan 9 executable, AMD 29000
                   14912: 0      belong          0x00000647      Plan 9 executable, ARM 7-something
                   14913: 0      belong          0x000006EB      Plan 9 executable, PowerPC
                   14914: 0      belong          0x00000797      Plan 9 executable, MIPS R4000 LE
                   14915: 0      belong          0x0000084B      Plan 9 executable, DEC Alpha
                   14916: 
                   14917: #------------------------------------------------------------------------------
1.1.1.2   misho    14918: # $File: plus5,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    14919: # plus5:  file(1) magic for Plus Five's UNIX MUMPS
                   14920: #
                   14921: # XXX - byte order?  Paging Hokey....
                   14922: #
                   14923: 0      short           0x259           mumps avl global
                   14924: >2     byte            >0              (V%d)
                   14925: >6     byte            >0              with %d byte name
                   14926: >7     byte            >0              and %d byte data cells
                   14927: 0      short           0x25a           mumps blt global
                   14928: >2     byte            >0              (V%d)
                   14929: >8     short           >0              - %d byte blocks
                   14930: >15    byte            0x00            - P/D format
                   14931: >15    byte            0x01            - P/K/D format
                   14932: >15    byte            0x02            - K/D format
                   14933: >15    byte            >0x02           - Bad Flags
                   14934: 
                   14935: #------------------------------------------------------------------------------
1.1.1.3   misho    14936: # $File: printer,v 1.25 2011/05/20 23:31:46 christos Exp $
1.1       misho    14937: # printer:  file(1) magic for printer-formatted files
                   14938: #
                   14939: 
                   14940: # PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
                   14941: 0      string          %!              PostScript document text
                   14942: !:mime application/postscript
1.1.1.2   misho    14943: !:apple        ASPSTEXT
1.1       misho    14944: >2     string          PS-Adobe-       conforming
                   14945: >>11   string          >\0             DSC level %.3s
                   14946: >>>15  string          EPS             \b, type %s
                   14947: >>>15  string          Query           \b, type %s
                   14948: >>>15  string          ExitServer      \b, type %s
                   14949: >>>15   search/1000            %%LanguageLevel:\ 
                   14950: >>>>&0 string          >\0             \b, Level %s
                   14951: # Some PCs have the annoying habit of adding a ^D as a document separator
                   14952: 0      string          \004%!          PostScript document text
                   14953: !:mime application/postscript
1.1.1.2   misho    14954: !:apple        ASPSTEXT
1.1       misho    14955: >3     string          PS-Adobe-       conforming
                   14956: >>12   string          >\0             DSC level %.3s
                   14957: >>>16  string          EPS             \b, type %s
                   14958: >>>16  string          Query           \b, type %s
                   14959: >>>16  string          ExitServer      \b, type %s
                   14960: >>>16   search/1000            %%LanguageLevel:\ 
                   14961: >>>>&0 string          >\0             \b, Level %s
                   14962: 0      string          \033%-12345X%!PS        PostScript document
                   14963: 
                   14964: # DOS EPS Binary File Header
                   14965: # From: Ed Sznyter <ews@Black.Market.NET>
                   14966: 0       belong          0xC5D0D3C6      DOS EPS Binary File
                   14967: >4      long            >0              Postscript starts at byte %d
                   14968: >>8     long            >0              length %d
                   14969: >>>12   long            >0              Metafile starts at byte %d
                   14970: >>>>16  long            >0              length %d
                   14971: >>>20   long            >0              TIFF starts at byte %d
                   14972: >>>>24  long            >0              length %d
                   14973: 
                   14974: # Summary: Adobe's PostScript Printer Description File
                   14975: # Extension: .ppd
                   14976: # Reference: http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
                   14977: # Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
                   14978: #
                   14979: 0      string          *PPD-Adobe:\x20 PPD file
                   14980: >&0    string          x               \b, version %s
                   14981: 
                   14982: # HP Printer Job Language
                   14983: 0      string          \033%-12345X@PJL        HP Printer Job Language data
                   14984: # HP Printer Job Language
                   14985: # The header found on Win95 HP plot files is the "Silliest Thing possible" 
                   14986: # (TM)
                   14987: # Every driver puts the language at some random position, with random case
                   14988: # (LANGUAGE and Language)
                   14989: # For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
                   14990: # From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
                   14991: # 
                   14992: 0      string          \033%-12345X@PJL        HP Printer Job Language data
                   14993: >&0    string          >\0                     %s                      
                   14994: >>&0   string          >\0                     %s                      
                   14995: >>>&0  string          >\0                     %s              
                   14996: >>>>&0 string          >\0                     %s              
                   14997: #>15   string          \ ENTER\ LANGUAGE\ =
                   14998: #>31   string          PostScript              PostScript
                   14999: 
1.1.1.3   misho    15000: # From: Stefan Thurner <thurners@nicsys.de>
                   15001: 0      string          \033%-12345X@PJL
                   15002: >&0    search/10000    %!                      PJL encapsulated PostScript document text
                   15003: 
1.1       misho    15004: # HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
                   15005: 0      string          \033E\033       HP PCL printer data
                   15006: >3     string          \&l0A           - default page size
                   15007: >3     string          \&l1A           - US executive page size
                   15008: >3     string          \&l2A           - US letter page size
                   15009: >3     string          \&l3A           - US legal page size
                   15010: >3     string          \&l26A          - A4 page size
                   15011: >3     string          \&l80A          - Monarch envelope size
                   15012: >3     string          \&l81A          - No. 10 envelope size
                   15013: >3     string          \&l90A          - Intl. DL envelope size
                   15014: >3     string          \&l91A          - Intl. C5 envelope size
                   15015: >3     string          \&l100A         - Intl. B5 envelope size
                   15016: >3     string          \&l-81A         - No. 10 envelope size (landscape)
                   15017: >3     string          \&l-90A         - Intl. DL envelope size (landscape)
                   15018: 
                   15019: # IMAGEN printer-ready files:
                   15020: 0      string  @document(              Imagen printer
                   15021: # this only works if "language xxx" is first item in Imagen header.
                   15022: >10    string  language\ impress       (imPRESS data)
                   15023: >10    string  language\ daisy         (daisywheel text)
                   15024: >10    string  language\ diablo        (daisywheel text)
                   15025: >10    string  language\ printer       (line printer emulation)
                   15026: >10    string  language\ tektronix     (Tektronix 4014 emulation)
                   15027: # Add any other languages that your Imagen uses - remember
                   15028: # to keep the word `text' if the file is human-readable.
                   15029: # [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
                   15030: #
                   15031: # Now magic for IMAGEN font files...
                   15032: 0      string          Rast            RST-format raster font data
                   15033: >45    string          >0              face %s
                   15034: # From Jukka Ukkonen
                   15035: 0      string          \033[K\002\0\0\017\033(a\001\0\001\033(g        Canon Bubble Jet BJC formatted data
                   15036: 
                   15037: # From <mike@flyn.org>
                   15038: # These are the /etc/magic entries to decode data sent to an Epson printer.
                   15039: 0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data
                   15040: 
                   15041: 
                   15042: #------------------------------------------------------------------------------
                   15043: # zenographics:  file(1) magic for Zenographics ZjStream printer data
                   15044: # Rick Richardson  rickr@mn.rr.com
                   15045: 0      string          JZJZ
                   15046: >0x12  string          ZZ              Zenographics ZjStream printer data (big-endian)
                   15047: 0      string          ZJZJ
                   15048: >0x12  string          ZZ              Zenographics ZjStream printer data (little-endian)
                   15049: 
                   15050: 
                   15051: #------------------------------------------------------------------------------
                   15052: # Oak Technologies printer stream
                   15053: # Rick Richardson <rickr@mn.rr.com>
                   15054: 0       string          OAK
                   15055: >0x07  byte            0
                   15056: >0x0b  byte            0       Oak Technologies printer stream
                   15057: 
                   15058: # This would otherwise be recognized as PostScript - nick@debian.org
                   15059: 0      string          %!VMF           SunClock's Vector Map Format data
                   15060: 
                   15061: #------------------------------------------------------------------------------
                   15062: # HP LaserJet 1000 series downloadable firmware file
                   15063: 0      string  \xbe\xefABCDEFGH        HP LaserJet 1000 series downloadable firmware   
                   15064: 
                   15065: # From: Paolo <oopla@users.sf.net>
                   15066: # Epson ESC/Page, ESC/PageColor 
                   15067: 0      string  \x1b\x01@EJL    Epson ESC/Page language printer data
                   15068: 
                   15069: #------------------------------------------------------------------------------
1.1.1.2   misho    15070: # $File: project,v 1.4 2009/09/19 16:28:11 christos Exp $
1.1       misho    15071: # project:  file(1) magic for Project management
                   15072: # 
                   15073: # Magic strings for ftnchek project files. Alexander Mai
                   15074: 0      string  FTNCHEK_\ P     project file for ftnchek
                   15075: >10    string  1               version 2.7
                   15076: >10    string  2               version 2.8 to 2.10
                   15077: >10    string  3               version 2.11 or later
                   15078: 
                   15079: #------------------------------------------------------------------------------
1.1.1.2   misho    15080: # $File: psdbms,v 1.6 2009/09/19 16:28:11 christos Exp $
1.1       misho    15081: # psdbms:  file(1) magic for psdatabase
                   15082: #
                   15083: 0      belong&0xff00ffff       0x56000000      ps database
                   15084: >1     string  >\0     version %s
                   15085: >4     string  >\0     from kernel %s
                   15086: 
                   15087: #------------------------------------------------------------------------------
1.1.1.2   misho    15088: # $File: pulsar,v 1.5 2009/09/19 16:28:12 christos Exp $
1.1       misho    15089: # pulsar:  file(1) magic for Pulsar POP3 daemon binary files
                   15090: #
                   15091: # http://pulsar.sourceforge.net
                   15092: # mailto:rok.papez@lugos.si
                   15093: #
                   15094: 
                   15095: 0      belong  0x1ee7f11e      Pulsar POP3 daemon mailbox cache file.
                   15096: >4     ubelong x               Version: %d.
                   15097: >8     ubelong x               \b%d
                   15098: 
                   15099: 
                   15100: #------------------------------------------------------------------------------
1.1.1.3   misho    15101: # $File: pwsafe,v 1.1 2012/10/25 00:12:19 christos Exp $
                   15102: # pwsafe: file(1) magic for passwordsafe file
                   15103: #
                   15104: # Password Safe
                   15105: # http://passwordsafe.sourceforge.net/
                   15106: # file format specs
                   15107: # http://passwordsafe.svn.sourceforge.net/viewvc/passwordsafe/trunk/pwsafe/pwsafe/docs/formatV3.txt
                   15108: # V2 http://passwordsafe.svn.sourceforge.net/viewvc/passwordsafe/trunk/pwsafe/pwsafe/docs/formatV2.txt
                   15109: # V1 http://passwordsafe.svn.sourceforge.net/viewvc/passwordsafe/trunk/pwsafe/pwsafe/docs/notes.txt
                   15110: # V2 and V1 have no easy identifier that I can find
                   15111: # .psafe3
                   15112: 0      string  PWS3    Password Safe V3 database
                   15113: 
                   15114: #------------------------------------------------------------------------------
1.1.1.2   misho    15115: # $File: pyramid,v 1.7 2009/09/19 16:28:12 christos Exp $
1.1       misho    15116: # pyramid:  file(1) magic for Pyramids
                   15117: #
                   15118: # XXX - byte order?
                   15119: #
                   15120: 0      long            0x50900107      Pyramid 90x family executable
                   15121: 0      long            0x50900108      Pyramid 90x family pure executable
                   15122: >16    long            >0              not stripped
                   15123: 0      long            0x5090010b      Pyramid 90x family demand paged pure executable
                   15124: >16    long            >0              not stripped
                   15125: 
                   15126: #------------------------------------------------------------------------------
1.1.1.3   misho    15127: # $File: python,v 1.22 2013/03/18 12:49:55 christos Exp $
1.1       misho    15128: # python:  file(1) magic for python
                   15129: #
1.1.1.3   misho    15130: # Outlook puts """ too for urgent messages
1.1       misho    15131: # From: David Necas <yeti@physics.muni.cz>
                   15132: # often the module starts with a multiline string
1.1.1.3   misho    15133: 0      string/t        """     Python script text executable
                   15134: # MAGIC as specified in Python/import.c (1.5 to 2.7a0 and 3.1a0, assuming
1.1.1.2   misho    15135: # that Py_UnicodeFlag is off for Python 2)
1.1       misho    15136: # 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
                   15137: 0      belong          0x994e0d0a      python 1.5/1.6 byte-compiled
                   15138: 0      belong          0x87c60d0a      python 2.0 byte-compiled
                   15139: 0      belong          0x2aeb0d0a      python 2.1 byte-compiled
                   15140: 0      belong          0x2ded0d0a      python 2.2 byte-compiled
                   15141: 0      belong          0x3bf20d0a      python 2.3 byte-compiled
                   15142: 0      belong          0x6df20d0a      python 2.4 byte-compiled
                   15143: 0      belong          0xb3f20d0a      python 2.5 byte-compiled
1.1.1.2   misho    15144: 0      belong          0xd1f20d0a      python 2.6 byte-compiled
1.1.1.3   misho    15145: 0      belong          0x03f30d0a      python 2.7 byte-compiled
1.1.1.2   misho    15146: 0      belong          0x3b0c0d0a      python 3.0 byte-compiled
                   15147: 0      belong          0x4f0c0d0a      python 3.1 byte-compiled
1.1.1.3   misho    15148: 0      belong          0x6c0c0d0a      python 3.2 byte-compiled
                   15149: 0      belong          0x9e0c0d0a      python 3.3 byte-compiled
1.1.1.2   misho    15150: 
                   15151: 0      search/1/w      #!\ /usr/bin/python     Python script text executable
                   15152: !:mime text/x-python
                   15153: 0      search/1/w      #!\ /usr/local/bin/python       Python script text executable
                   15154: !:mime text/x-python
                   15155: 0      search/1        #!/usr/bin/env\ python  Python script text executable
                   15156: !:mime text/x-python
1.1.1.3   misho    15157: 0      search/1        #!\ /usr/bin/env\ python        Python script text executable
                   15158: !:mime text/x-python
                   15159: 
                   15160: 
                   15161: # from module.submodule import func1, func2
                   15162: 0      regex   \^from\\s+(\\w|\\.)+\\s+import.*$       Python script text executable
                   15163: !:mime text/x-python
                   15164: 
                   15165: # def __init__ (self, ...):
                   15166: 0      search/4096     def\ __init__
                   15167: >&0    search/64 self  Python script text executable
                   15168: !:mime text/x-python
                   15169: 
                   15170: # comments
                   15171: 0      search/4096     '''
                   15172: >&0    regex   .*'''$  Python script text executable
                   15173: !:mime text/x-python
                   15174: 
                   15175: 0      search/4096     """
                   15176: >&0    regex   .*"""$  Python script text executable
                   15177: !:mime text/x-python
                   15178: 
                   15179: # try:
                   15180: # except: or finally:
                   15181: # block
                   15182: 0      search/4096     try:
                   15183: >&0    regex   \^\\s*except.*: Python script text executable
                   15184: !:mime text/x-python
                   15185: >&0    search/4096     finally:        Python script text executable
                   15186: !:mime text/x-python
                   15187: 
                   15188: # def name(args, args):
                   15189: 0      regex    \^(\ |\\t)*def\ +[a-zA-Z]+
                   15190: >&0    regex   \ *\\(([a-zA-Z]|,|\ )*\\):$ Python script text executable
1.1.1.2   misho    15191: !:mime text/x-python
1.1       misho    15192: 
                   15193: #------------------------------------------------------------------------------
1.1.1.3   misho    15194: # $File: revision,v 1.9 2013/02/06 14:18:52 christos Exp $
1.1       misho    15195: # file(1) magic for revision control files
                   15196: # From Hendrik Scholz <hendrik@scholz.net>
1.1.1.3   misho    15197: 0      string/t        /1\ :pserver:   cvs password text file
1.1       misho    15198: 
                   15199: # Conary changesets
                   15200: # From: Jonathan Smith <smithj@rpath.com>
                   15201: 0      belong  0xea3f81bb      Conary changeset data
                   15202: 
                   15203: # Type: Git bundles (git-bundle)
                   15204: # From: Josh Triplett <josh@freedesktop.org>
                   15205: 0      string  #\ v2\ git\ bundle\n    Git bundle
                   15206: 
1.1.1.2   misho    15207: # Type: Git pack
                   15208: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   15209: # The actual magic is 'PACK', but that clashes with Doom/Quake packs. However,
                   15210: # those have a little-endian offset immediately following the magic 'PACK',
                   15211: # the first byte of which is never 0, while the first byte of the Git pack
                   15212: # version, since it's a tiny number stored in big-endian format, is always 0.
                   15213: 0      string  PACK\0          Git pack
                   15214: >4     belong  >0              \b, version %d
                   15215: >>8    belong  >0              \b, %d objects
                   15216: 
                   15217: # Type: Git pack index
                   15218: # From: Adam Buchbinder <adam.buchbinder@gmail.com>
                   15219: 0      string  \377tOc         Git pack index
                   15220: >4     belong  =2              \b, version 2
                   15221: 
                   15222: # Type: Git index file
1.1.1.3   misho    15223: # From: Frederic Briare <fbriere@fbriere.net>
1.1.1.2   misho    15224: 0      string  DIRC            Git index
                   15225: >4     belong  >0              \b, version %d
                   15226: >>8    belong  >0              \b, %d entries
                   15227: 
1.1       misho    15228: # Type:        Mercurial bundles
                   15229: # From:        Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
                   15230: 0      string  HG10            Mercurial bundle,
                   15231: >4     string  UN              uncompressed
                   15232: >4     string  BZ              bzip2 compressed
                   15233: 
                   15234: # Type:        Subversion (SVN) dumps
                   15235: # From:        Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
                   15236: 0      string  SVN-fs-dump-format-version:     Subversion dumpfile
                   15237: >28    string  >\0                             (version: %s)
                   15238: 
                   15239: # Type:        Bazaar revision bundles and merge requests
                   15240: # URL: http://www.bazaar-vcs.org/
                   15241: # From:        Jelmer Vernooij <jelmer@samba.org>
                   15242: 0      string  #\ Bazaar\ revision\ bundle\ v Bazaar Bundle
                   15243: 0      string  #\ Bazaar\ merge\ directive\ format Bazaar merge directive
                   15244: 
                   15245: #------------------------------------------------------------------------------
1.1.1.3   misho    15246: # $File: riff,v 1.23 2013/02/06 14:18:52 christos Exp $
1.1       misho    15247: # riff:  file(1) magic for RIFF format
                   15248: # See
                   15249: #
                   15250: #      http://www.seanet.com/users/matts/riffmci/riffmci.htm
                   15251: #
1.1.1.3   misho    15252: # AVI section extended by Patrik Radman <patrik+file-magic@iki.fi>
1.1       misho    15253: #
                   15254: 0      string          RIFF            RIFF (little-endian) data
                   15255: # RIFF Palette format
                   15256: >8     string          PAL             \b, palette
                   15257: >>16   leshort         x               \b, version %d
                   15258: >>18   leshort         x               \b, %d entries
                   15259: # RIFF Device Independent Bitmap format
                   15260: >8     string          RDIB            \b, device-independent bitmap
                   15261: >>16   string          BM              
                   15262: >>>30  leshort         12              \b, OS/2 1.x format
                   15263: >>>>34 leshort         x               \b, %d x
                   15264: >>>>36 leshort         x               %d
                   15265: >>>30  leshort         64              \b, OS/2 2.x format
                   15266: >>>>34 leshort         x               \b, %d x
                   15267: >>>>36 leshort         x               %d
                   15268: >>>30  leshort         40              \b, Windows 3.x format
                   15269: >>>>34 lelong          x               \b, %d x
                   15270: >>>>38 lelong          x               %d x
                   15271: >>>>44 leshort         x               %d
                   15272: # RIFF MIDI format
                   15273: >8     string          RMID            \b, MIDI
                   15274: # RIFF Multimedia Movie File format
                   15275: >8     string          RMMP            \b, multimedia movie
                   15276: # RIFF wrapper for MP3
                   15277: >8     string          RMP3            \b, MPEG Layer 3 audio
                   15278: # Microsoft WAVE format (*.wav)
                   15279: >8     string          WAVE            \b, WAVE audio
                   15280: !:mime audio/x-wav
                   15281: >>20   leshort         1               \b, Microsoft PCM
                   15282: >>>34  leshort         >0              \b, %d bit
                   15283: >>20   leshort         2               \b, Microsoft ADPCM
                   15284: >>20   leshort         6               \b, ITU G.711 A-law
                   15285: >>20   leshort         7               \b, ITU G.711 mu-law
1.1.1.2   misho    15286: >>20   leshort         8               \b, Microsoft DTS
1.1       misho    15287: >>20   leshort         17              \b, IMA ADPCM
                   15288: >>20   leshort         20              \b, ITU G.723 ADPCM (Yamaha)
                   15289: >>20   leshort         49              \b, GSM 6.10
                   15290: >>20   leshort         64              \b, ITU G.721 ADPCM
                   15291: >>20   leshort         80              \b, MPEG
                   15292: >>20   leshort         85              \b, MPEG Layer 3
1.1.1.2   misho    15293: >>20   leshort         0x2001          \b, DTS
1.1       misho    15294: >>22   leshort         =1              \b, mono
                   15295: >>22   leshort         =2              \b, stereo
                   15296: >>22   leshort         >2              \b, %d channels
                   15297: >>24   lelong          >0              %d Hz
                   15298: # Corel Draw Picture
                   15299: >8     string          CDRA            \b, Corel Draw Picture
                   15300: !:mime image/x-coreldraw
                   15301: # AVI == Audio Video Interleave
                   15302: >8     string          AVI\040         \b, AVI
                   15303: !:mime video/x-msvideo
                   15304: >>12    string          LIST
                   15305: >>>20   string          hdrlavih
                   15306: >>>>&36 lelong          x               \b, %lu x
                   15307: >>>>&40 lelong          x               %lu,
                   15308: >>>>&4  lelong          >1000000        <1 fps,
                   15309: >>>>&4  lelong          1000000         1.00 fps,
                   15310: >>>>&4  lelong          500000          2.00 fps,
                   15311: >>>>&4  lelong          333333          3.00 fps,
                   15312: >>>>&4  lelong          250000          4.00 fps,
                   15313: >>>>&4  lelong          200000          5.00 fps,
                   15314: >>>>&4  lelong          166667          6.00 fps,
                   15315: >>>>&4  lelong          142857          7.00 fps,
                   15316: >>>>&4  lelong          125000          8.00 fps,
                   15317: >>>>&4  lelong          111111          9.00 fps,
                   15318: >>>>&4  lelong          100000          10.00 fps,
                   15319: # ]9.9,10.1[
                   15320: >>>>&4  lelong          <101010
                   15321: >>>>>&-4        lelong  >99010
                   15322: >>>>>>&-4       lelong  !100000         ~10 fps,
                   15323: >>>>&4  lelong          83333           12.00 fps,
                   15324: # ]11.9,12.1[
                   15325: >>>>&4  lelong          <84034
                   15326: >>>>>&-4        lelong  >82645
                   15327: >>>>>>&-4       lelong  !83333          ~12 fps,
                   15328: >>>>&4  lelong          66667           15.00 fps,
                   15329: # ]14.9,15.1[
                   15330: >>>>&4  lelong          <67114
                   15331: >>>>>&-4        lelong  >66225
                   15332: >>>>>>&-4       lelong  !66667          ~15 fps,
                   15333: >>>>&4  lelong          50000           20.00 fps,
                   15334: >>>>&4  lelong          41708           23.98 fps,
                   15335: >>>>&4  lelong          41667           24.00 fps,
                   15336: # ]23.9,24.1[
                   15337: >>>>&4  lelong          <41841
                   15338: >>>>>&-4        lelong  >41494
                   15339: >>>>>>&-4       lelong  !41708
                   15340: >>>>>>>&-4      lelong  !41667          ~24 fps,
                   15341: >>>>&4  lelong          40000           25.00 fps,
                   15342: # ]24.9,25.1[
                   15343: >>>>&4  lelong          <40161
                   15344: >>>>>&-4        lelong  >39841
                   15345: >>>>>>&-4       lelong  !40000          ~25 fps,
                   15346: >>>>&4  lelong          33367           29.97 fps,
                   15347: >>>>&4  lelong          33333           30.00 fps,
                   15348: # ]29.9,30.1[
                   15349: >>>>&4  lelong          <33445
                   15350: >>>>>&-4        lelong  >33223
                   15351: >>>>>>&-4       lelong  !33367
                   15352: >>>>>>>&-4      lelong  !33333          ~30 fps,
                   15353: >>>>&4  lelong          <32224          >30 fps,
                   15354: ##>>>>&4  lelong          x               (%lu)
                   15355: ##>>>>&20 lelong          x               %lu frames,
                   15356: # Note: The tests below assume that the AVI has 1 or 2 streams,
                   15357: #       "vids" optionally followed by "auds".
                   15358: #       (Should cover 99.9% of all AVIs.)
                   15359: # assuming avih length = 56
                   15360: >>>88   string  LIST
                   15361: >>>>96  string  strlstrh
                   15362: >>>>>108        string  vids    video:
                   15363: >>>>>>&0        lelong  0               uncompressed
                   15364: # skip past vids strh
                   15365: >>>>>>(104.l+108)       string  strf
                   15366: >>>>>>>(104.l+132)      lelong          1       RLE 8bpp
                   15367: >>>>>>>(104.l+132)      string/c        cvid    Cinepak
                   15368: >>>>>>>(104.l+132)      string/c        i263    Intel I.263
                   15369: >>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
                   15370: >>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
                   15371: >>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
                   15372: >>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
                   15373: >>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
                   15374: >>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
                   15375: >>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
                   15376: >>>>>>>(104.l+132)      string/c        div3    DivX 3
                   15377: >>>>>>>>112             string/c        div3    Low-Motion
                   15378: >>>>>>>>112             string/c        div4    Fast-Motion
                   15379: >>>>>>>(104.l+132)      string/c        divx    DivX 4
                   15380: >>>>>>>(104.l+132)      string/c        dx50    DivX 5
                   15381: >>>>>>>(104.l+132)      string/c        xvid    XviD
                   15382: >>>>>>>(104.l+132)     string/c        h264    H.264
                   15383: >>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
                   15384: >>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
                   15385: >>>>>>>(104.l+132)      lelong  0
                   15386: ##>>>>>>>(104.l+132)      string  x       (%.4s)
                   15387: # skip past first (video) LIST
                   15388: >>>>(92.l+96)   string  LIST
                   15389: >>>>>(92.l+104) string  strlstrh
                   15390: >>>>>>(92.l+116)        string          auds    \b, audio:
                   15391: # auds strh length = 56:
                   15392: >>>>>>>(92.l+172)       string          strf
                   15393: >>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
                   15394: >>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
                   15395: >>>>>>>>(92.l+180)      leshort 0x0006  aLaw
                   15396: >>>>>>>>(92.l+180)      leshort 0x0007  uLaw
                   15397: >>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
                   15398: >>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
                   15399: >>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
                   15400: >>>>>>>>(92.l+180)      leshort 0x0161  DivX
                   15401: ##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
                   15402: >>>>>>>>(92.l+182)      leshort 1       (mono,
                   15403: >>>>>>>>(92.l+182)      leshort 2       (stereo,
                   15404: >>>>>>>>(92.l+182)      leshort >2      (%d channels,
                   15405: >>>>>>>>(92.l+184)      lelong  x       %d Hz)
                   15406: # auds strh length = 64:
                   15407: >>>>>>>(92.l+180)       string          strf
                   15408: >>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
                   15409: >>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
                   15410: >>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
                   15411: >>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
                   15412: >>>>>>>>(92.l+188)      leshort 0x0161  DivX
                   15413: ##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
                   15414: >>>>>>>>(92.l+190)      leshort 1       (mono,
                   15415: >>>>>>>>(92.l+190)      leshort 2       (stereo,
                   15416: >>>>>>>>(92.l+190)      leshort >2      (%d channels,
                   15417: >>>>>>>>(92.l+192)      lelong  x       %d Hz)
                   15418: # Animated Cursor format
                   15419: >8     string          ACON            \b, animated cursor
                   15420: # SoundFont 2 <mpruett@sgi.com>
                   15421: >8     string          sfbk            SoundFont/Bank
                   15422: # MPEG-1 wrapped in a RIFF, apparently
                   15423: >8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
                   15424: >8     string          4XMV            \b, 4X Movie file 
1.1.1.3   misho    15425: # AMV-type AVI file: http://wiki.multimedia.cx/index.php?title=AMV
                   15426: >8     string          AMV\040         \b, AMV 
1.1       misho    15427: 
                   15428: #
                   15429: # XXX - some of the below may only appear in little-endian form.
                   15430: #
                   15431: # Also "MV93" appears to be for one form of Macromedia Director
                   15432: # files, and "GDMF" appears to be another multimedia format.
                   15433: #
                   15434: 0      string          RIFX            RIFF (big-endian) data
                   15435: # RIFF Palette format
                   15436: >8     string          PAL             \b, palette
                   15437: >>16   beshort         x               \b, version %d
                   15438: >>18   beshort         x               \b, %d entries
                   15439: # RIFF Device Independent Bitmap format
                   15440: >8     string          RDIB            \b, device-independent bitmap
                   15441: >>16   string          BM              
                   15442: >>>30  beshort         12              \b, OS/2 1.x format
                   15443: >>>>34 beshort         x               \b, %d x
                   15444: >>>>36 beshort         x               %d
                   15445: >>>30  beshort         64              \b, OS/2 2.x format
                   15446: >>>>34 beshort         x               \b, %d x
                   15447: >>>>36 beshort         x               %d
                   15448: >>>30  beshort         40              \b, Windows 3.x format
                   15449: >>>>34 belong          x               \b, %d x
                   15450: >>>>38 belong          x               %d x
                   15451: >>>>44 beshort         x               %d
                   15452: # RIFF MIDI format
                   15453: >8     string          RMID            \b, MIDI
                   15454: # RIFF Multimedia Movie File format
                   15455: >8     string          RMMP            \b, multimedia movie
                   15456: # Microsoft WAVE format (*.wav)
                   15457: >8     string          WAVE            \b, WAVE audio
                   15458: >>20   leshort         1               \b, Microsoft PCM
                   15459: >>>34  leshort         >0              \b, %d bit
                   15460: >>22   beshort         =1              \b, mono
                   15461: >>22   beshort         =2              \b, stereo
                   15462: >>22   beshort         >2              \b, %d channels
                   15463: >>24   belong          >0              %d Hz
                   15464: # Corel Draw Picture
                   15465: >8     string          CDRA            \b, Corel Draw Picture
                   15466: # AVI == Audio Video Interleave
                   15467: >8     string          AVI\040         \b, AVI
                   15468: # Animated Cursor format
                   15469: >8     string          ACON            \b, animated cursor
                   15470: # Notation Interchange File Format (big-endian only)
                   15471: >8     string          NIFF            \b, Notation Interchange File Format
                   15472: # SoundFont 2 <mpruett@sgi.com>
                   15473: >8     string          sfbk            SoundFont/Bank
1.1.1.2   misho    15474: 
1.1       misho    15475: #------------------------------------------------------------------------------
1.1.1.3   misho    15476: # Sony Wave64
                   15477: # see http://www.vcs.de/fileadmin/user_upload/MBS/PDF/Whitepaper/Informations_about_Sony_Wave64.pdf
                   15478: # 128 bit RIFF-GUID { 66666972-912E-11CF-A5D6-28DB04C10000 } in little-endian 
                   15479: 0      string  riff\x2E\x91\xCF\x11\xA5\xD6\x28\xDB\x04\xC1\x00\x00            Sony Wave64 RIFF data
                   15480: # 128 bit + total file size (64 bits) so 24 bytes
                   15481: # then WAVE-GUID { 65766177-ACF3-11D3-8CD1-00C04F8EDB8A }
                   15482: >24    string          wave\xF3\xAC\xD3\x11\x8C\xD1\x00\xC0\x4F\x8E\xDB\x8A            \b, WAVE 64 audio
                   15483: !:mime audio/x-w64
                   15484: # FMT-GUID { 20746D66-ACF3-11D3-8CD1-00C04F8EDB8A }
                   15485: >>40   search/256      fmt\x20\xF3\xAC\xD3\x11\x8C\xD1\x00\xC0\x4F\x8E\xDB\x8A         \b
                   15486: >>>&10 leshort         =1              \b, mono
                   15487: >>>&10 leshort         =2              \b, stereo
                   15488: >>>&10 leshort         >2              \b, %d channels
                   15489: >>>&12 lelong          >0              %d Hz
                   15490: 
                   15491: #------------------------------------------------------------------------------
                   15492: # MBWF/RF64
                   15493: # see EBU TECH 3306 http://tech.ebu.ch/docs/tech/tech3306-2009.pdf
                   15494: 0      string  RF64\xff\xff\xff\xffWAVEds64            MBWF/RF64 audio
                   15495: !:mime audio/x-wav
                   15496: >40    search/256      fmt\x20         \b
                   15497: >>&6   leshort         =1              \b, mono
                   15498: >>&6   leshort         =2              \b, stereo
                   15499: >>&6   leshort         >2              \b, %d channels
                   15500: >>&8   lelong          >0              %d Hz
                   15501: 
                   15502: 
                   15503: #------------------------------------------------------------------------------
                   15504: # $File: rinex,v 1.4 2011/05/03 01:44:17 christos Exp $
                   15505: # rinex:  file(1) magic for RINEX files
                   15506: # http://igscb.jpl.nasa.gov/igscb/data/format/rinex210.txt
                   15507: # ftp://cddis.gsfc.nasa.gov/pub/reports/formats/rinex300.pdf
                   15508: # data for testing: ftp://cddis.gsfc.nasa.gov/pub/gps/data
                   15509: 60     string          RINEX
                   15510: >80    search/256      XXRINEXB        RINEX Data, GEO SBAS Broadcast
                   15511: >>&32  string          x               \b, date %15.15s
                   15512: >>5    string          x               \b, version %6.6s
                   15513: !:mime rinex/broadcast
                   15514: >80    search/256      XXRINEXD        RINEX Data, Observation (Hatanaka comp)
                   15515: >>&32  string          x               \b, date %15.15s
                   15516: >>5    string          x               \b, version %6.6s
                   15517: !:mime rinex/observation
                   15518: >80    search/256      XXRINEXC        RINEX Data, Clock
                   15519: >>&32  string          x               \b, date %15.15s
                   15520: >>5    string          x               \b, version %6.6s
                   15521: !:mime rinex/clock
                   15522: >80    search/256      XXRINEXH        RINEX Data, GEO SBAS Navigation
                   15523: >>&32  string          x               \b, date %15.15s
                   15524: >>5    string          x               \b, version %6.6s
                   15525: !:mime rinex/navigation
                   15526: >80    search/256      XXRINEXG        RINEX Data, GLONASS Navigation
                   15527: >>&32  string          x               \b, date %15.15s
                   15528: >>5    string          x               \b, version %6.6s
                   15529: !:mime rinex/navigation
                   15530: >80    search/256      XXRINEXL        RINEX Data, Galileo Navigation
                   15531: >>&32  string          x               \b, date %15.15s
                   15532: >>5    string          x               \b, version %6.6s
                   15533: !:mime rinex/navigation
                   15534: >80    search/256      XXRINEXM        RINEX Data, Meteorological
                   15535: >>&32  string          x               \b, date %15.15s
                   15536: >>5    string          x               \b, version %6.6s
                   15537: !:mime rinex/meteorological
                   15538: >80    search/256      XXRINEXN        RINEX Data, Navigation  
                   15539: >>&32  string          x               \b, date %15.15s
                   15540: >>5    string          x               \b, version %6.6s
                   15541: !:mime rinex/navigation
                   15542: >80    search/256      XXRINEXO        RINEX Data, Observation
                   15543: >>&32  string          x               \b, date %15.15s
                   15544: >>5    string          x               \b, version %6.6s
                   15545: !:mime rinex/observation
                   15546: 
                   15547: #------------------------------------------------------------------------------
                   15548: # $File: rpm,v 1.12 2013/01/11 16:45:23 christos Exp $
1.1       misho    15549: #
                   15550: # RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
                   15551: #
1.1.1.3   misho    15552: 0      belong          0xedabeedb      RPM
1.1       misho    15553: !:mime application/x-rpm
1.1.1.3   misho    15554: >4     byte            x               v%d
                   15555: >5     byte            x               \b.%d
                   15556: >6     beshort         1               src
                   15557: >6     beshort         0               bin
                   15558: >>8    beshort         1               i386/x86_64
                   15559: >>8    beshort         2               Alpha/Sparc64
                   15560: >>8    beshort         3               Sparc
                   15561: >>8    beshort         4               MIPS
                   15562: >>8    beshort         5               PowerPC
                   15563: >>8    beshort         6               68000
                   15564: >>8    beshort         7               SGI
                   15565: >>8    beshort         8               RS6000
                   15566: >>8    beshort         9               IA64
                   15567: >>8    beshort         10              Sparc64
                   15568: >>8    beshort         11              MIPSel
                   15569: >>8    beshort         12              ARM
                   15570: >>8    beshort         13              MiNT
                   15571: >>8    beshort         14              S/390
                   15572: >>8    beshort         15              S/390x
                   15573: >>8    beshort         16              PowerPC64
                   15574: >>8    beshort         17              SuperH
                   15575: >>8    beshort         18              Xtensa
                   15576: >>8    beshort         255             noarch
1.1.1.2   misho    15577: 
                   15578: #delta RPM    Daniel Novotny (dnovotny@redhat.com)
1.1.1.3   misho    15579: 0      string          drpm            Delta RPM
1.1.1.2   misho    15580: !:mime  application/x-rpm
                   15581: >12    string  x       %s
1.1.1.3   misho    15582: >>8    beshort         11              MIPSel
                   15583: >>8    beshort         12              ARM
                   15584: >>8    beshort         13              MiNT
                   15585: >>8    beshort         14              S/390
                   15586: >>8    beshort         15              S/390x
                   15587: >>8    beshort         16              PowerPC64
                   15588: >>8    beshort         17              SuperH
                   15589: >>8    beshort         18              Xtensa
1.1       misho    15590: >>10   string          x               %s
                   15591: 
                   15592: #------------------------------------------------------------------------------
1.1.1.2   misho    15593: # $File: rtf,v 1.7 2009/09/19 16:28:12 christos Exp $
1.1       misho    15594: # rtf: file(1) magic for Rich Text Format (RTF)
                   15595: #
                   15596: # Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk
                   15597: #
                   15598: 0      string          {\\rtf          Rich Text Format data,
                   15599: !:mime text/rtf
                   15600: >5     string          1               version 1,
                   15601: >>6    string          \\ansi          ANSI
                   15602: >>6    string          \\mac           Apple Macintosh
                   15603: >>6    string          \\pc            IBM PC, code page 437
                   15604: >>6    string          \\pca           IBM PS/2, code page 850
                   15605: >>6    default         x               unknown character set
                   15606: >5     default         x               unknown version
1.1.1.2   misho    15607: 
1.1       misho    15608: #------------------------------------------------------------------------------
1.1.1.3   misho    15609: # $File: ruby,v 1.5 2010/07/21 16:47:17 christos Exp $
1.1.1.2   misho    15610: # ruby:  file(1) magic for Ruby scripting language
1.1       misho    15611: # URL:  http://www.ruby-lang.org/
                   15612: # From: Reuben Thomas <rrt@sc3d.org>
                   15613: 
                   15614: # Ruby scripts
1.1.1.2   misho    15615: 0      search/1/w      #!\ /usr/bin/ruby       Ruby script text executable
                   15616: !:mime text/x-ruby
                   15617: 0      search/1/w      #!\ /usr/local/bin/ruby Ruby script text executable
                   15618: !:mime text/x-ruby
1.1       misho    15619: 0      search/1        #!/usr/bin/env\ ruby    Ruby script text executable
1.1.1.2   misho    15620: !:mime text/x-ruby
1.1       misho    15621: 0      search/1        #!\ /usr/bin/env\ ruby  Ruby script text executable
1.1.1.2   misho    15622: !:mime text/x-ruby
1.1       misho    15623: 
1.1.1.3   misho    15624: # What looks like ruby, but does not have a shebang
                   15625: # (modules and such)
                   15626: # From: Lubomir Rintel <lkundrak@v3.sk>
                   15627: 0      regex           \^[\ \t]*require[\ \t]'[A-Za-z_/]+'
                   15628: >0     regex           include\ [A-Z]|def\ [a-z]|\ do$
                   15629: >>0    regex           \^[\ \t]*end([\ \t]*[;#].*)?$           Ruby script text
                   15630: !:mime text/x-ruby
                   15631: 0      regex           \^[\ \t]*(class|module)[\ \t][A-Z]
                   15632: >0     regex           (modul|includ)e\ [A-Z]|def\ [a-z]
                   15633: >>0    regex           \^[\ \t]*end([\ \t]*[;#].*)?$           Ruby module source text
                   15634: !:mime text/x-ruby
                   15635: 
1.1       misho    15636: #------------------------------------------------------------------------------
1.1.1.2   misho    15637: # $File: sc,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    15638: # sc:  file(1) magic for "sc" spreadsheet
                   15639: #
                   15640: 38     string          Spreadsheet     sc spreadsheet file
                   15641: !:mime application/x-sc
                   15642: 
                   15643: #------------------------------------------------------------------------------
1.1.1.2   misho    15644: # $File: sccs,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    15645: # sccs:  file(1) magic for SCCS archives
                   15646: #
                   15647: # SCCS archive structure:
                   15648: # \001h01207
                   15649: # \001s 00276/00000/00000
                   15650: # \001d D 1.1 87/09/23 08:09:20 ian 1 0
                   15651: # \001c date and time created 87/09/23 08:09:20 by ian
                   15652: # \001e
                   15653: # \001u
                   15654: # \001U
                   15655: # ... etc.
                   15656: # Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
                   15657: # *Sigh*. And these both came from various parts of the USG.
                   15658: # Maybe we should just switch everybody from SCCS to RCS!
                   15659: # Further, you can't just say '\001h0', because the five-digit number
                   15660: # is a checksum that could (presumably) have any leading digit,
                   15661: # and we don't have regular expression matching yet. 
                   15662: # Hence the following official kludge:
                   15663: 8      string          \001s\                  SCCS archive data
1.1.1.2   misho    15664: 
1.1       misho    15665: #------------------------------------------------------------------------------
1.1.1.3   misho    15666: # $File: scientific,v 1.7 2010/09/20 19:19:17 rrt Exp $
1.1       misho    15667: # scientific:  file(1) magic for scientific formats 
                   15668: #
                   15669: # From: Joe Krahn <krahn@niehs.nih.gov>
                   15670: 
                   15671: ########################################################
                   15672: # CCP4 data and plot files:
                   15673: 0      string          MTZ\040         MTZ reflection file
                   15674: 
                   15675: 92     string          PLOT%%84        Plot84 plotting file
                   15676: >52    byte            1               , Little-endian
                   15677: >55    byte            1               , Big-endian
                   15678: 
                   15679: ########################################################
                   15680: # Electron density MAP/MASK formats
                   15681: 
                   15682: 0      string          EZD_MAP NEWEZD Electron Density Map
                   15683: 109    string          MAP\040(  Old EZD Electron Density Map
                   15684: 
                   15685: 0      string/c        :-)\040Origin   BRIX Electron Density Map
                   15686: >170   string          >0      , Sigma:%.12s
                   15687: #>4    string          >0      %.178s
                   15688: #>4    addr            x       %.178s
                   15689: 
                   15690: 7      string          18\040!NTITLE   XPLOR ASCII Electron Density Map
                   15691: 9      string          \040!NTITLE\012\040REMARK       CNS ASCII electron density map
                   15692: 
                   15693: 208    string          MAP\040 CCP4 Electron Density Map
                   15694: # Assumes same stamp for float and double (normal case)
                   15695: >212   byte            17      \b, Big-endian
                   15696: >212   byte            34      \b, VAX format
                   15697: >212   byte            68      \b, Little-endian
                   15698: >212   byte            85      \b, Convex native
                   15699: 
                   15700: ############################################################
                   15701: # X-Ray Area Detector images
                   15702: 0      string  R-AXIS4\ \ \    R-Axis Area Detector Image:
                   15703: >796   lelong  <20             Little-endian, IP #%d,
                   15704: >>768  lelong  >0              Size=%dx
                   15705: >>772  lelong  >0              \b%d
                   15706: >796   belong  <20             Big-endian, IP #%d,
                   15707: >>768  belong  >0              Size=%dx
                   15708: >>772  belong  >0              \b%d
                   15709: 
                   15710: 0      string  RAXIS\ \ \ \ \  R-Axis Area Detector Image, Win32:
                   15711: >796   lelong  <20             Little-endian, IP #%d,
                   15712: >>768  lelong  >0              Size=%dx
                   15713: >>772  lelong  >0              \b%d
                   15714: >796   belong  <20             Big-endian, IP #%d,
                   15715: >>768  belong  >0              Size=%dx
                   15716: >>772  belong  >0              \b%d
                   15717: 
                   15718: 
                   15719: 1028   string  MMX\000\000\000\000\000\000\000\000\000\000\000\000\000 MAR Area Detector Image,
                   15720: >1072  ulong   >1              Compressed(%d),
                   15721: >1100  ulong   >1              %d headers,
                   15722: >1104  ulong   >0              %d x
                   15723: >1108  ulong   >0              %d,
                   15724: >1120  ulong   >0              %d bits/pixel
                   15725: 
                   15726: # Type: GEDCOM genealogical (family history) data
                   15727: # From: Giuseppe Bilotta
                   15728: 0       search/1/c     0\ HEAD         GEDCOM genealogy text
                   15729: >&0     search         1\ GEDC
                   15730: >>&0    search         2\ VERS         version
                   15731: >>>&1   search/1       >\0             %s
                   15732: # From: Phil Endecott <phil05@chezphil.org>
                   15733: 0      string  \000\060\000\040\000\110\000\105\000\101\000\104                GEDCOM data
                   15734: 0      string  \060\000\040\000\110\000\105\000\101\000\104\000                GEDCOM data
                   15735: 0      string  \376\377\000\060\000\040\000\110\000\105\000\101\000\104        GEDCOM data
                   15736: 0      string  \377\376\060\000\040\000\110\000\105\000\101\000\104\000        GEDCOM data
1.1.1.2   misho    15737: 
                   15738: # PDB: Protein Data Bank files
                   15739: # Adam Buchbinder <adam.buchbinder@gmail.com>
                   15740: #
                   15741: # http://www.wwpdb.org/documentation/format32/sect2.html
                   15742: # http://www.ch.ic.ac.uk/chemime/
                   15743: #
                   15744: # The PDB file format is fixed-field, 80 columns. From the spec:
                   15745: #
                   15746: # COLS        DATA
                   15747: #  1 -  6      "HEADER"
                   15748: #  11 - 50     String(40)
                   15749: #  51 - 59     Date
                   15750: #  63 - 66     IDcode
                   15751: #
                   15752: # Thus, positions 7-10, 60-62 and 67-80 are spaces. The Date must be in the
                   15753: # format DD-MMM-YY, e.g., 01-JAN-70, and the IDcode consists of numbers and
                   15754: # uppercase letters. However, examples have been seen without the date string,
                   15755: # e.g., the example on the chemime site.
                   15756: 0      string  HEADER\ \ \ \ 
                   15757: >&0    regex/1 \^.{40}
                   15758: >>&0   regex/1 [0-9]{2}-[A-Z]{3}-[0-9]{2}\ {3}
                   15759: >>>&0  regex/1s        [A-Z0-9]{4}.{14}$
                   15760: >>>>&0 regex/1 [A-Z0-9]{4}     Protein Data Bank data, ID Code %s
                   15761: !:mime chemical/x-pdb
                   15762: >>>>0  regex/1 [0-9]{2}-[A-Z]{3}-[0-9]{2}      \b, %s
                   15763: 
                   15764: # Type:        GDSII Stream file
                   15765: 0      belong  0x00060002      GDSII Stream file
                   15766: >4     byte    0x00
                   15767: >>5    byte    x               version %d.0
                   15768: >4     byte    >0x00           version %d
                   15769: >>5    byte    x               \b.%d
                   15770: 
                   15771: #------------------------------------------------------------------------------
                   15772: # $File: securitycerts,v 1.4 2009/09/19 16:28:12 christos Exp $
1.1       misho    15773: 0      search/1                -----BEGIN\ CERTIFICATE------   RFC1421 Security Certificate text
                   15774: 0      search/1                -----BEGIN\ NEW\ CERTIFICATE    RFC1421 Security Certificate Signing Request text
                   15775: 0      belong  0xedfeedfe      Sun 'jks' Java Keystore File data
                   15776: # Type:        SE Linux policy modules *.pp reference policy
                   15777: #      for Fedora 5 to 9, RHEL5, and Debian Etch and Lenny.
                   15778: # URL: http://doc.coker.com.au/computers/selinux-magic
                   15779: # From:        Russell Coker <russell@coker.com.au>
                   15780: 
                   15781: 0              lelong  0xf97cff8f      SE Linux modular policy
                   15782: >4             lelong  x               version %d,
                   15783: >8             lelong  x               %d sections,
                   15784: >>(12.l)       lelong  0xf97cff8d
                   15785: >>>(12.l+27)   lelong  x               mod version %d,
                   15786: >>>(12.l+31)   lelong  0               Not MLS,
                   15787: >>>(12.l+31)   lelong  1               MLS,
                   15788: >>>(12.l+23)   lelong  2
                   15789: >>>>(12.l+47)  string  >\0             module name %s
                   15790: >>>(12.l+23)   lelong  1               base
                   15791: 
                   15792: 1      string  policy_module(  SE Linux policy module source
                   15793: 2      string  policy_module(  SE Linux policy module source
                   15794: 
                   15795: 0      string  ##\ <summary>   SE Linux policy interface source
                   15796: 
                   15797: #0     search  gen_context(    SE Linux policy file contexts
                   15798: 
                   15799: #0     search  gen_sens(       SE Linux policy MLS constraints source
                   15800: 
                   15801: #------------------------------------------------------------------------------
1.1.1.2   misho    15802: # $File: sendmail,v 1.7 2009/09/19 16:28:12 christos Exp $
1.1       misho    15803: # sendmail:  file(1) magic for sendmail config files
                   15804: #
                   15805: # XXX - byte order?
                   15806: #
                   15807: 0      byte    046       Sendmail frozen configuration 
                   15808: >16    string  >\0       - version %s
                   15809: 0      short   0x271c    Sendmail frozen configuration
                   15810: >16    string  >\0       - version %s
                   15811: 
                   15812: #------------------------------------------------------------------------------
                   15813: # sendmail:  file(1) magic for sendmail m4(1) files
                   15814: #
                   15815: # From Hendrik Scholz <hendrik@scholz.net>
                   15816: # i.e. files in /usr/share/sendmail/cf/
                   15817: #
                   15818: 0   string  divert(-1)\n    sendmail m4 text file
                   15819: 
                   15820: 
                   15821: #------------------------------------------------------------------------------
1.1.1.2   misho    15822: # $File: sequent,v 1.8 2009/09/19 16:28:12 christos Exp $
1.1       misho    15823: # sequent:  file(1) magic for Sequent machines
                   15824: #
                   15825: # Sequent information updated by Don Dwiggins <atsun!dwiggins>.
                   15826: # For Sequent's multiprocessor systems (incomplete).
                   15827: 0      lelong  0x00ea          BALANCE NS32000 .o
                   15828: >16    lelong  >0              not stripped
                   15829: >124   lelong  >0              version %ld
                   15830: 0      lelong  0x10ea          BALANCE NS32000 executable (0 @ 0)
                   15831: >16    lelong  >0              not stripped
                   15832: >124   lelong  >0              version %ld
                   15833: 0      lelong  0x20ea          BALANCE NS32000 executable (invalid @ 0)
                   15834: >16    lelong  >0              not stripped
                   15835: >124   lelong  >0              version %ld
                   15836: 0      lelong  0x30ea          BALANCE NS32000 standalone executable
                   15837: >16    lelong  >0              not stripped
                   15838: >124   lelong  >0              version %ld
                   15839: #
                   15840: # Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
                   15841: # Symmetry magic nums will not be reached if DOS COM comes before them;
                   15842: # byte 0xeb is matched before these get a chance.
                   15843: 0      leshort 0x12eb          SYMMETRY i386 .o
                   15844: >16    lelong  >0              not stripped
                   15845: >124   lelong  >0              version %ld
                   15846: 0      leshort 0x22eb          SYMMETRY i386 executable (0 @ 0)
                   15847: >16    lelong  >0              not stripped
                   15848: >124   lelong  >0              version %ld
                   15849: 0      leshort 0x32eb          SYMMETRY i386 executable (invalid @ 0)
                   15850: >16    lelong  >0              not stripped
                   15851: >124   lelong  >0              version %ld
                   15852: 0      leshort 0x42eb          SYMMETRY i386 standalone executable
                   15853: >16    lelong  >0              not stripped
                   15854: >124   lelong  >0              version %ld
                   15855: 
                   15856: #------------------------------------------------------------------------------
1.1.1.3   misho    15857: # $File: sgi,v 1.19 2013/01/12 03:09:51 christos Exp $
                   15858: # sgi:  file(1) magic for Silicon Graphics operating systems and applications
                   15859: #
                   15860: # Executable images are handled either in aout (for old-style a.out
                   15861: # files for 68K; they are indistinguishable from other big-endian 32-bit
                   15862: # a.out files) or in mips (for MIPS ECOFF and Ucode files)
                   15863: #
                   15864: 
                   15865: # kbd file definitions
                   15866: 0      string  kbd!map         kbd map file
                   15867: >8     byte    >0              Ver %d:
                   15868: >10    short   >0              with %d table(s)
                   15869: 
                   15870: 0      beshort 0x8765          disk quotas file
                   15871: 
                   15872: 0      beshort 0x0506          IRIS Showcase file
                   15873: >2     byte    0x49            -
                   15874: >3     byte    x               - version %ld
                   15875: 0      beshort 0x0226          IRIS Showcase template
                   15876: >2     byte    0x63            -
                   15877: >3     byte    x               - version %ld
                   15878: 0      belong  0x5343464d      IRIS Showcase file
                   15879: >4     byte    x               - version %ld
                   15880: 0      belong  0x5443464d      IRIS Showcase template
                   15881: >4     byte    x               - version %ld
                   15882: 0      belong  0xdeadbabe      IRIX Parallel Arena
                   15883: >8     belong  >0              - version %ld
                   15884: 
                   15885: # core files
                   15886: #
                   15887: # 32bit core file
                   15888: 0      belong  0xdeadadb0      IRIX core dump
                   15889: >4     belong  1               of
                   15890: >16    string  >\0             '%s'
                   15891: # 64bit core file
                   15892: 0      belong  0xdeadad40      IRIX 64-bit core dump
                   15893: >4     belong  1               of
                   15894: >16    string  >\0             '%s'
                   15895: # N32bit core file
                   15896: 0       belong 0xbabec0bb      IRIX N32 core dump
                   15897: >4      belong 1               of
                   15898: >16     string >\0             '%s'
                   15899: # New style crash dump file
                   15900: 0      string  \x43\x72\x73\x68\x44\x75\x6d\x70        IRIX vmcore dump of
                   15901: >36    string  >\0                                     '%s'
                   15902: 
                   15903: # Trusted IRIX info
                   15904: 0      string  SGIAUDIT        SGI Audit file
                   15905: >8     byte    x               - version %d
                   15906: >9     byte    x               \b.%ld
                   15907: #
                   15908: 0      string  WNGZWZSC        Wingz compiled script
                   15909: 0      string  WNGZWZSS        Wingz spreadsheet
                   15910: 0      string  WNGZWZHP        Wingz help file
                   15911: #
                   15912: 0      string  #Inventor V     IRIS Inventor 1.0 file
                   15913: 0      string  #Inventor V2    Open Inventor 2.0 file
                   15914: # GLF is OpenGL stream encoding
                   15915: 0      string  glfHeadMagic();         GLF_TEXT
                   15916: 4      belong  0x7d000000              GLF_BINARY_LSB_FIRST
                   15917: !:strength -30
                   15918: 4      belong  0x0000007d              GLF_BINARY_MSB_FIRST
                   15919: !:strength -30
                   15920: # GLS is OpenGL stream encoding; GLS is the successor of GLF
                   15921: 0      string  glsBeginGLS(            GLS_TEXT
                   15922: 4      belong  0x10000000              GLS_BINARY_LSB_FIRST
                   15923: !:strength -30
                   15924: 4      belong  0x00000010              GLS_BINARY_MSB_FIRST
                   15925: !:strength -30
1.1       misho    15926: 
                   15927: #
                   15928: #
                   15929: # Performance Co-Pilot file types
                   15930: 0      string  PmNs                            PCP compiled namespace (V.0)
                   15931: 0      string  PmN                             PCP compiled namespace
                   15932: >3     string  >\0                             (V.%1.1s)
                   15933: #3     lelong  0x84500526                      PCP archive
                   15934: 3      belong  0x84500526                      PCP archive
                   15935: >7     byte    x                               (V.%d)
                   15936: #>20   lelong  -2                              temporal index
                   15937: #>20   lelong  -1                              metadata
                   15938: #>20   lelong  0                               log volume #0
                   15939: #>20   lelong  >0                              log volume #%ld
                   15940: >20    belong  -2                              temporal index
                   15941: >20    belong  -1                              metadata
                   15942: >20    belong  0                               log volume #0
                   15943: >20    belong  >0                              log volume #%ld
                   15944: >24    string  >\0                             host: %s
                   15945: 0      string  PCPFolio                        PCP
                   15946: >9     string  Version:                        Archive Folio
                   15947: >18    string  >\0                             (V.%s)
                   15948: 0      string  #pmchart                        PCP pmchart view
                   15949: >9     string  Version
                   15950: >17    string  >\0                             (V%-3.3s)
                   15951: 0      string  #kmchart                        PCP kmchart view
                   15952: >9     string  Version
                   15953: >17    string  >\0                             (V.%s)
                   15954: 0      string  pmview                          PCP pmview config
                   15955: >7     string  Version
                   15956: >15    string  >\0                             (V%-3.3s)
                   15957: 0      string  #pmlogger                       PCP pmlogger config
                   15958: >10    string  Version
                   15959: >18    string  >\0                             (V%1.1s)
                   15960: 0      string  #pmdahotproc                    PCP pmdahotproc config
                   15961: >13    string  Version
                   15962: >21    string  >\0                             (V%-3.3s)
                   15963: 0      string  PcPh                            PCP Help
                   15964: >4     string  1                               Index
                   15965: >4     string  2                               Text
                   15966: >5     string  >\0                             (V.%1.1s)
                   15967: 0      string  #pmieconf-rules                 PCP pmieconf rules
                   15968: >16    string  >\0                             (V.%1.1s)
                   15969: 3      string  pmieconf-pmie                   PCP pmie config
                   15970: >17    string  >\0                             (V.%1.1s)
                   15971: 
                   15972: # SpeedShop data files
                   15973: 0      lelong  0x13130303                      SpeedShop data file
                   15974: 
                   15975: # mdbm files
                   15976: 0      lelong  0x01023962                      mdbm file, version 0 (obsolete)
                   15977: 0      string  mdbm                            mdbm file,
                   15978: >5     byte    x                               version %d,
                   15979: >6     byte    x                               2^%d pages,
                   15980: >7     byte    x                               pagesize 2^%d,
                   15981: >17    byte    x                               hash %d,
                   15982: >11    byte    x                               dataformat %d
                   15983: 
                   15984: # Alias Maya files
1.1.1.3   misho    15985: 0      string/t        //Maya ASCII    Alias Maya Ascii File,
1.1       misho    15986: >13    string  >\0     version %s
                   15987: 8      string  MAYAFOR4        Alias Maya Binary File,
                   15988: >32    string  >\0     version %s scene
                   15989: 8      string  MayaFOR4        Alias Maya Binary File,
                   15990: >32    string  >\0     version %s scene
                   15991: 8      string  CIMG            Alias Maya Image File
                   15992: 8      string  DEEP            Alias Maya Image File
                   15993: #------------------------------------------------------------------------------
1.1.1.3   misho    15994: # $File: sgml,v 1.29 2012/08/26 10:25:41 christos Exp $
1.1       misho    15995: # Type:        SVG Vectorial Graphics
                   15996: # From:        Noel Torres <tecnico@ejerciciosresueltos.com>
                   15997: 0      string          \<?xml\ version="
                   15998: >15    string          >\0
1.1.1.2   misho    15999: >>19   search/4096     \<svg                   SVG Scalable Vector Graphics image
1.1       misho    16000: !:mime image/svg+xml
1.1.1.2   misho    16001: >>19   search/4096     \<gnc-v2                GnuCash file
1.1       misho    16002: !:mime application/x-gnucash
                   16003: 
                   16004: # Sitemap file
1.1.1.3   misho    16005: 0      string/t                \<?xml\ version="
1.1       misho    16006: >15    string          >\0
1.1.1.2   misho    16007: >>19   search/4096     \<urlset                XML Sitemap document text
1.1       misho    16008: !:mime application/xml-sitemap
                   16009: 
1.1.1.2   misho    16010: # xhtml
1.1.1.3   misho    16011: 0      string/t                \<?xml\ version="
1.1.1.2   misho    16012: >15    string          >\0
1.1.1.3   misho    16013: >>19   search/4096/cWbt        \<!doctype\ html        XHTML document text
1.1.1.2   misho    16014: !:mime text/html
1.1.1.3   misho    16015: 0      string/t                \<?xml\ version='
1.1.1.2   misho    16016: >15    string          >\0
1.1.1.3   misho    16017: >>19   search/4096/cWbt        \<!doctype\ html        XHTML document text
1.1.1.2   misho    16018: !:mime text/html
1.1.1.3   misho    16019: 0      string/t                \<?xml\ version="
1.1.1.2   misho    16020: >15    string          >\0
1.1.1.3   misho    16021: >>19   search/4096/cWbt        \<html  broken XHTML document text
1.1.1.2   misho    16022: !:mime text/html
                   16023: 
1.1       misho    16024: #------------------------------------------------------------------------------
                   16025: # sgml:  file(1) magic for Standard Generalized Markup Language
                   16026: # HyperText Markup Language (HTML) is an SGML document type,
                   16027: # from Daniel Quinlan (quinlan@yggdrasil.com)
                   16028: # adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
1.1.1.3   misho    16029: 0      search/4096/cWt \<!doctype\ html        HTML document text
1.1.1.2   misho    16030: !:mime text/html
1.1.1.3   misho    16031: !:strength + 5
                   16032: 0      search/4096/cwt \<head                  HTML document text
1.1.1.2   misho    16033: !:mime text/html
1.1.1.3   misho    16034: !:strength + 5
                   16035: 0      search/4096/cwt \<title                 HTML document text
1.1.1.2   misho    16036: !:mime text/html
1.1.1.3   misho    16037: !:strength + 5
                   16038: 0      search/4096/cwt \<html                  HTML document text
1.1.1.2   misho    16039: !:mime text/html
1.1.1.3   misho    16040: !:strength + 5
                   16041: 0      search/4096/cwt \<script                HTML document text
1.1       misho    16042: !:mime text/html
1.1.1.3   misho    16043: !:strength + 5
                   16044: 0      search/4096/cwt \<style                 HTML document text
1.1       misho    16045: !:mime text/html
1.1.1.3   misho    16046: !:strength + 5
                   16047: 0      search/4096/cwt \<table                 HTML document text
1.1       misho    16048: !:mime text/html
1.1.1.3   misho    16049: !:strength + 5
                   16050: 0      search/4096/cwt \<a\ href=              HTML document text
1.1       misho    16051: !:mime text/html
1.1.1.3   misho    16052: !:strength + 5
1.1       misho    16053: 
                   16054: # Extensible markup language (XML), a subset of SGML
                   16055: # from Marc Prud'hommeaux (marc@apocalypse.org)
1.1.1.3   misho    16056: 0      search/1/cwt    \<?xml                  XML document text
1.1       misho    16057: !:mime application/xml
1.1.1.3   misho    16058: !:strength + 5
                   16059: 0      string/t                \<?xml\ version\ "      XML
1.1       misho    16060: !:mime application/xml
1.1.1.3   misho    16061: !:strength + 5
                   16062: 0      string/t                \<?xml\ version="       XML
1.1       misho    16063: !:mime application/xml
1.1.1.3   misho    16064: !:strength + 5
                   16065: >15    string/t        >\0                     %.3s document text
1.1       misho    16066: >>23   search/1        \<xsl:stylesheet        (XSL stylesheet)
                   16067: >>24   search/1        \<xsl:stylesheet        (XSL stylesheet)
                   16068: 0      string          \<?xml\ version='       XML
                   16069: !:mime application/xml
1.1.1.3   misho    16070: !:strength + 5
                   16071: >15    string/t        >\0                     %.3s document text
1.1       misho    16072: >>23   search/1        \<xsl:stylesheet        (XSL stylesheet)
                   16073: >>24   search/1        \<xsl:stylesheet        (XSL stylesheet)
1.1.1.2   misho    16074: 0      search/1/wbt    \<?xml                  XML document text
1.1       misho    16075: !:mime application/xml
1.1.1.2   misho    16076: !:strength - 10
1.1.1.3   misho    16077: 0      search/1/wt     \<?XML                  broken XML document text
1.1       misho    16078: !:mime application/xml
1.1.1.2   misho    16079: !:strength - 10
1.1       misho    16080: 
                   16081: 
                   16082: # SGML, mostly from rph@sq
1.1.1.3   misho    16083: 0      search/4096/cwt \<!doctype              exported SGML document text
                   16084: 0      search/4096/cwt \<!subdoc               exported SGML subdocument text
                   16085: 0      search/4096/cwt \<!--                   exported SGML document text
1.1.1.2   misho    16086: !:strength - 10
1.1       misho    16087: 
                   16088: # Web browser cookie files
                   16089: # (Mozilla, Galeon, Netscape 4, Konqueror..)
                   16090: # Ulf Harnhammar <ulfh@update.uu.se>
                   16091: 0      search/1        #\ HTTP\ Cookie\ File   Web browser cookie text
                   16092: 0      search/1        #\ Netscape\ HTTP\ Cookie\ File Netscape cookie text
                   16093: 0      search/1        #\ KDE\ Cookie\ File    Konqueror cookie text
                   16094: 
                   16095: #------------------------------------------------------------------------
1.1.1.2   misho    16096: # $File: sharc,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    16097: # file(1) magic for sharc files
                   16098: #
                   16099: # SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by 
                   16100: # FutureGroove Music (dsp@futuregroove.de)
                   16101: 
                   16102: #------------------------------------------------------------------------
                   16103: #0     string                  Draw            RiscOS Drawfile
                   16104: #0     string                  PACK            RiscOS PackdDir archive
                   16105: 
                   16106: #------------------------------------------------------------------------
                   16107: # SHARC DSP stuff (based on the FGM SHARC DSP SDK)
                   16108: 
                   16109: #0     string                  =!              Assembler source
                   16110: #0     string                  Analog          ADi asm listing file
                   16111: 0      string                  .SYSTEM         SHARC architecture file
                   16112: 0      string                  .system         SHARC architecture file
                   16113: 
                   16114: 0      leshort                 0x521C          SHARC COFF binary
                   16115: >2     leshort                 >1              , %hd sections
                   16116: >>12   lelong                  >0              , not stripped
                   16117: 
                   16118: #------------------------------------------------------------------------------
1.1.1.2   misho    16119: # $File: sinclair,v 1.5 2009/09/19 16:28:12 christos Exp $
1.1       misho    16120: # sinclair:  file(1) sinclair QL
                   16121: 
                   16122: # additions to /etc/magic by Thomas M. Ott (ThMO)
                   16123: 
                   16124: # Sinclair QL floppy disk formats (ThMO)
                   16125: 0      string  =QL5            QL disk dump data,
                   16126: >3     string  =A              720 KB,
                   16127: >3     string  =B              1.44 MB,
                   16128: >3     string  =C              3.2 MB,
                   16129: >4     string  >\0             label:%.10s
                   16130: 
                   16131: # Sinclair QL OS dump (ThMO)
                   16132: # (NOTE: if `file' would be able to use indirect references in a endian format
                   16133: #       differing from the natural host format, this could be written more
                   16134: #       reliably and faster...)
                   16135: #
                   16136: # we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
                   16137: # than the first 8K of a file... #-(
                   16138: #
                   16139: #0             belong  =0x30000
                   16140: #>49124                belong  <47104
                   16141: #>>49128               belong  <47104
                   16142: #>>>49132      belong  <47104
                   16143: #>>>>49136     belong  <47104  QL OS dump data,
                   16144: #>>>>>49148    string  >\0     type %.3s,
                   16145: #>>>>>49142    string  >\0     version %.4s
                   16146: 
                   16147: # Sinclair QL firmware executables (ThMO)
                   16148: 0      string  NqNqNq`\004     QL firmware executable (BCPL)
                   16149: 
                   16150: # Sinclair QL libraries (was ThMO)
                   16151: 0      beshort 0xFB01          QDOS object
                   16152: >2     pstring x               '%s'
                   16153: 
                   16154: # Sinclair QL executables (was ThMO)
                   16155: 4      belong  0x4AFB          QDOS executable
                   16156: >9     pstring x               '%s'
                   16157: 
                   16158: # Sinclair QL ROM (ThMO)
                   16159: 0      belong  =0x4AFB0001     QL plugin-ROM data,
                   16160: >9     pstring =\0             un-named
                   16161: >9     pstring >\0             named: %s
                   16162: # Type: SiSU Markup Language
                   16163: # URL:  http://www.sisudoc.org/
                   16164: # From: Ralph Amissah <ralph.amissah@gmail.com>
                   16165: 
                   16166: 0      regex   \^%?[\ \t]*SiSU[\ \t]+insert    SiSU text insert
                   16167: >5     regex   [0-9.]+                         %s
                   16168: 
                   16169: 0      regex   \^%[\ \t]+SiSU[\ \t]+master     SiSU text master
                   16170: >5     regex   [0-9.]+                         %s
                   16171: 
                   16172: 0      regex   \^%?[\ \t]*SiSU[\ \t]+text      SiSU text
                   16173: >5     regex   [0-9.]+                         %s
                   16174: 
                   16175: 0      regex   \^%?[\ \t]*SiSU[\ \t][0-9.]+    SiSU text
                   16176: >5     regex   [0-9.]+                         %s
                   16177: 
                   16178: 0      regex   \^%*[\ \t]*sisu-[0-9.]+         SiSU text
                   16179: >5     regex   [0-9.]+                         %s
1.1.1.2   misho    16180: 
1.1       misho    16181: #------------------------------------------------------------------------------
1.1.1.2   misho    16182: # $File: sketch,v 1.4 2009/09/19 16:28:12 christos Exp $
1.1       misho    16183: # Sketch Drawings: http://sketch.sourceforge.net/ 
                   16184: # From: Edwin Mons <e@ik.nu>
                   16185: 0      search/1        ##Sketch        Sketch document text
                   16186: 
                   16187: #-----------------------------------------------
1.1.1.2   misho    16188: # $File: smalltalk,v 1.5 2009/09/19 16:28:12 christos Exp $
1.1       misho    16189: # GNU Smalltalk image, starting at version 1.6.2
                   16190: # From: catull_us@yahoo.com
                   16191: #
                   16192: 0      string  GSTIm\0\0       GNU SmallTalk
                   16193: # little-endian
                   16194: >7     byte&1  =0              LE image version
                   16195: >>10   byte    x               %d.
                   16196: >>9    byte    x               \b%d.
                   16197: >>8    byte    x               \b%d
                   16198: #>>12  lelong  x               , data: %ld
                   16199: #>>16  lelong  x               , table: %ld
                   16200: #>>20  lelong  x               , memory: %ld
                   16201: # big-endian
                   16202: >7     byte&1  =1              BE image version
                   16203: >>8    byte    x               %d.
                   16204: >>9    byte    x               \b%d.
                   16205: >>10   byte    x               \b%d
                   16206: #>>12  belong  x               , data: %ld
                   16207: #>>16  belong  x               , table: %ld
                   16208: #>>20  belong  x               , memory: %ld
                   16209: 
                   16210: 
                   16211: 
                   16212: #------------------------------------------------------------------------------
1.1.1.3   misho    16213: # $File: smile,v 1.1 2011/08/17 17:37:18 christos Exp $
                   16214: # smile:  file(1) magic for Smile serialization
                   16215: #
                   16216: # The Smile serialization format uses a 4-byte header:
                   16217: #
                   16218: #   Constant byte #0: 0x3A (ASCII ':')
                   16219: #   Constant byte #1: 0x29 (ASCII ')')
                   16220: #   Constant byte #2: 0x0A (ASCII linefeed, '\n')
                   16221: #   Variable byte #3, consisting of bits:
                   16222: #     Bits 4-7 (4 MSB): 4-bit version number
                   16223: #     Bits 3: Reserved
                   16224: #     Bit 2 (mask 0x04): Whether raw binary (unescaped 8-bit) values may be present in content
                   16225: #     Bit 1 (mask 0x02): Whether shared String value checking was enabled during encoding, default false
                   16226: #     Bit 0 (mask 0x01): Whether shared property name checking was enabled during encoding, default true
                   16227: #
                   16228: # Reference: http://wiki.fasterxml.com/SmileFormatSpec
                   16229: # Created by: Pierre-Alexandre Meyer <pierre@mouraf.org>
                   16230: 
                   16231: # Detection
                   16232: 0      string          :)\n    Smile binary data
                   16233: 
                   16234: # Versioning
                   16235: >3     byte&0xF0       x               version %d:
                   16236: 
                   16237: # Properties
                   16238: >3     byte&0x04       0x04            binary raw,
                   16239: >3     byte&0x04       0x00            binary encoded,
                   16240: >3     byte&0x02       0x02            shared String values enabled,
                   16241: >3     byte&0x02       0x00            shared String values disabled,
                   16242: >3     byte&0x01       0x01            shared field names enabled
                   16243: >3     byte&0x01       0x00            shared field names disabled
                   16244: 
                   16245: 
                   16246: #------------------------------------------------------------------------------
                   16247: # $File: sniffer,v 1.19 2013/01/06 01:11:04 christos Exp $
1.1       misho    16248: # sniffer:  file(1) magic for packet capture files
                   16249: #
                   16250: # From: guy@alum.mit.edu (Guy Harris)
                   16251: #
                   16252: 
                   16253: #
                   16254: # Microsoft Network Monitor 1.x capture files.
                   16255: #
                   16256: 0      string          RTSS            NetMon capture file
                   16257: >5     byte            x               - version %d
                   16258: >4     byte            x               \b.%d
                   16259: >6     leshort         0               (Unknown)
                   16260: >6     leshort         1               (Ethernet)
                   16261: >6     leshort         2               (Token Ring)
                   16262: >6     leshort         3               (FDDI)
                   16263: >6     leshort         4               (ATM)
1.1.1.3   misho    16264: >6     leshort         >4              (type %d)
1.1       misho    16265: 
                   16266: #
                   16267: # Microsoft Network Monitor 2.x capture files.
                   16268: #
                   16269: 0      string          GMBU            NetMon capture file
                   16270: >5     byte            x               - version %d
                   16271: >4     byte            x               \b.%d
                   16272: >6     leshort         0               (Unknown)
                   16273: >6     leshort         1               (Ethernet)
                   16274: >6     leshort         2               (Token Ring)
                   16275: >6     leshort         3               (FDDI)
                   16276: >6     leshort         4               (ATM)
1.1.1.3   misho    16277: >6     leshort         5               (IP-over-IEEE 1394)
                   16278: >6     leshort         6               (802.11)
                   16279: >6     leshort         7               (Raw IP)
                   16280: >6     leshort         8               (Raw IP)
                   16281: >6     leshort         9               (Raw IP)
                   16282: >6     leshort         >9              (type %d)
1.1       misho    16283: 
                   16284: #
                   16285: # Network General Sniffer capture files.
                   16286: # Sorry, make that "Network Associates Sniffer capture files."
                   16287: # Sorry, make that "Network General old DOS Sniffer capture files."
                   16288: #
                   16289: 0      string          TRSNIFF\ data\ \ \ \ \032       Sniffer capture file
                   16290: >33    byte            2               (compressed)
                   16291: >23    leshort         x               - version %d
                   16292: >25    leshort         x               \b.%d
                   16293: >32    byte            0               (Token Ring)
                   16294: >32    byte            1               (Ethernet)
                   16295: >32    byte            2               (ARCNET)
                   16296: >32    byte            3               (StarLAN)
                   16297: >32    byte            4               (PC Network broadband)
                   16298: >32    byte            5               (LocalTalk)
                   16299: >32    byte            6               (Znet)
                   16300: >32    byte            7               (Internetwork Analyzer)
                   16301: >32    byte            9               (FDDI)
                   16302: >32    byte            10              (ATM)
                   16303: 
                   16304: #
                   16305: # Cinco Networks NetXRay capture files.
                   16306: # Sorry, make that "Network General Sniffer Basic capture files."
                   16307: # Sorry, make that "Network Associates Sniffer Basic capture files."
                   16308: # Sorry, make that "Network Associates Sniffer Basic, and Windows
                   16309: # Sniffer Pro", capture files."
                   16310: # Sorry, make that "Network General Sniffer capture files."
1.1.1.3   misho    16311: # Sorry, make that "NetScout Sniffer capture files."
1.1       misho    16312: #
                   16313: 0      string          XCP\0           NetXRay capture file
                   16314: >4     string          >\0             - version %s
                   16315: >44    leshort         0               (Ethernet)
                   16316: >44    leshort         1               (Token Ring)
                   16317: >44    leshort         2               (FDDI)
                   16318: >44    leshort         3               (WAN)
                   16319: >44    leshort         8               (ATM)
                   16320: >44    leshort         9               (802.11)
                   16321: 
                   16322: #
                   16323: # "libpcap" capture files.
                   16324: # (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
                   16325: # the main program that uses that format, but there are other programs
                   16326: # that use "libpcap", or that use the same capture file format.)
                   16327: #
1.1.1.3   misho    16328: 0      name            pcap-be
1.1       misho    16329: >4     beshort         x               - version %d
                   16330: >6     beshort         x               \b.%d
                   16331: >20    belong          0               (No link-layer encapsulation
                   16332: >20    belong          1               (Ethernet
                   16333: >20    belong          2               (3Mb Ethernet
                   16334: >20    belong          3               (AX.25
                   16335: >20    belong          4               (ProNET
                   16336: >20    belong          5               (CHAOS
                   16337: >20    belong          6               (Token Ring
                   16338: >20    belong          7               (BSD ARCNET
                   16339: >20    belong          8               (SLIP
                   16340: >20    belong          9               (PPP
                   16341: >20    belong          10              (FDDI
                   16342: >20    belong          11              (RFC 1483 ATM
                   16343: >20    belong          12              (raw IP
                   16344: >20    belong          13              (BSD/OS SLIP
                   16345: >20    belong          14              (BSD/OS PPP
                   16346: >20    belong          19              (Linux ATM Classical IP
                   16347: >20    belong          50              (PPP or Cisco HDLC
                   16348: >20    belong          51              (PPP-over-Ethernet
                   16349: >20    belong          99              (Symantec Enterprise Firewall
                   16350: >20    belong          100             (RFC 1483 ATM
                   16351: >20    belong          101             (raw IP
                   16352: >20    belong          102             (BSD/OS SLIP
                   16353: >20    belong          103             (BSD/OS PPP
                   16354: >20    belong          104             (BSD/OS Cisco HDLC
                   16355: >20    belong          105             (802.11
                   16356: >20    belong          106             (Linux Classical IP over ATM
                   16357: >20    belong          107             (Frame Relay
                   16358: >20    belong          108             (OpenBSD loopback
                   16359: >20    belong          109             (OpenBSD IPsec encrypted
                   16360: >20    belong          112             (Cisco HDLC
                   16361: >20    belong          113             (Linux "cooked"
                   16362: >20    belong          114             (LocalTalk
                   16363: >20    belong          117             (OpenBSD PFLOG
                   16364: >20    belong          119             (802.11 with Prism header
                   16365: >20    belong          122             (RFC 2625 IP over Fibre Channel
                   16366: >20    belong          123             (SunATM
                   16367: >20    belong          127             (802.11 with radiotap header
                   16368: >20    belong          129             (Linux ARCNET
                   16369: >20    belong          138             (Apple IP over IEEE 1394
1.1.1.3   misho    16370: >20    belong          139             (MTP2 with pseudo-header
1.1       misho    16371: >20    belong          140             (MTP2
                   16372: >20    belong          141             (MTP3
1.1.1.3   misho    16373: >20    belong          142             (SCCP
1.1       misho    16374: >20    belong          143             (DOCSIS
                   16375: >20    belong          144             (IrDA
                   16376: >20    belong          147             (Private use 0
                   16377: >20    belong          148             (Private use 1
                   16378: >20    belong          149             (Private use 2
                   16379: >20    belong          150             (Private use 3
                   16380: >20    belong          151             (Private use 4
                   16381: >20    belong          152             (Private use 5
                   16382: >20    belong          153             (Private use 6
                   16383: >20    belong          154             (Private use 7
                   16384: >20    belong          155             (Private use 8
                   16385: >20    belong          156             (Private use 9
                   16386: >20    belong          157             (Private use 10
                   16387: >20    belong          158             (Private use 11
                   16388: >20    belong          159             (Private use 12
                   16389: >20    belong          160             (Private use 13
                   16390: >20    belong          161             (Private use 14
                   16391: >20    belong          162             (Private use 15
                   16392: >20    belong          163             (802.11 with AVS header
1.1.1.3   misho    16393: >20    belong          165             (BACnet MS/TP
                   16394: >20    belong          166             (PPPD
                   16395: >20    belong          169             (GPRS LLC
                   16396: >20    belong          177             (Linux LAPD
                   16397: >20    belong          187             (Bluetooth HCI H4
                   16398: >20    belong          189             (Linux USB
                   16399: >20    belong          192             (PPI
                   16400: >20    belong          195             (802.15.4
                   16401: >20    belong          196             (SITA
                   16402: >20    belong          197             (Endace ERF
                   16403: >20    belong          201             (Bluetooth HCI H4 with pseudo-header
                   16404: >20    belong          202             (AX.25 with KISS header
                   16405: >20    belong          203             (LAPD
                   16406: >20    belong          204             (PPP with direction pseudo-header
                   16407: >20    belong          205             (Cisco HDLC with direction pseudo-header
                   16408: >20    belong          206             (Frame Relay with direction pseudo-header
                   16409: >20    belong          209             (Linux IPMB
                   16410: >20    belong          215             (802.15.4 with non-ASK PHY header
                   16411: >20    belong          220             (Memory-mapped Linux USB
                   16412: >20    belong          224             (Fibre Channel FC-2
                   16413: >20    belong          225             (Fibre Channel FC-2 with frame delimiters
                   16414: >20    belong          226             (Solaris IPNET
                   16415: >20    belong          227             (SocketCAN
                   16416: >20    belong          228             (Raw IPv4
                   16417: >20    belong          229             (Raw IPv6
                   16418: >20    belong          230             (802.15.4 without FCS
                   16419: >20    belong          231             (D-Bus messages
                   16420: >20    belong          235             (DVB-CI
                   16421: >20    belong          236             (MUX27010
                   16422: >20    belong          237             (STANAG 5066 D_PDUs
                   16423: >20    belong          239             (Linux netlink NFLOG messages
                   16424: >20    belong          240             (Hilscher netAnalyzer
                   16425: >20    belong          241             (Hilscher netAnalyzer with delimiters
                   16426: >20    belong          242             (IP-over-Infiniband
                   16427: >20    belong          243             (MPEG-2 Transport Stream packets
                   16428: >20    belong          244             (ng4t ng40
                   16429: >20    belong          245             (NFC LLCP
                   16430: >20    belong          247             (Infiniband
                   16431: >20    belong          248             (SCTP
1.1       misho    16432: >16    belong          x               \b, capture length %d)
1.1.1.3   misho    16433: 
                   16434: 0      ubelong         0xa1b2c3d4      tcpdump capture file (big-endian)
                   16435: !:mime application/vnd.tcpdump.pcap
                   16436: >0     use     pcap-be
1.1       misho    16437: 0      ulelong         0xa1b2c3d4      tcpdump capture file (little-endian)
1.1.1.3   misho    16438: !:mime application/vnd.tcpdump.pcap
                   16439: >0     use     \^pcap-be
1.1       misho    16440: 
                   16441: #
                   16442: # "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
                   16443: # (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
                   16444: # the main program that uses that format, but there are other programs
                   16445: # that use "libpcap", or that use the same capture file format.)
                   16446: #
                   16447: 0      ubelong         0xa1b2cd34      extended tcpdump capture file (big-endian)
1.1.1.3   misho    16448: >0     use     pcap-be
1.1       misho    16449: 0      ulelong         0xa1b2cd34      extended tcpdump capture file (little-endian)
1.1.1.3   misho    16450: >0     use     \^pcap-be
                   16451: 
                   16452: #
                   16453: # "pcap-ng" capture files.
                   16454: # http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html
                   16455: # Pcap-ng files can contain multiple sections. Printing the endianness,
                   16456: # snaplen, or other information from the first SHB may be misleading.
                   16457: #
                   16458: 0      ubelong         0x0a0d0d0a
                   16459: >8     ubelong         0x1a2b3c4d      pcap-ng capture file
                   16460: >>12   beshort         x               - version %d
                   16461: >>14   beshort         x               \b.%d
                   16462: 0      ulelong         0x0a0d0d0a
                   16463: >8     ulelong         0x1a2b3c4d      pcap-ng capture file
                   16464: >>12   leshort         x               - version %d
                   16465: >>14   leshort         x               \b.%d
1.1       misho    16466: 
                   16467: #
                   16468: # AIX "iptrace" capture files.
                   16469: #
                   16470: 0      string          iptrace\ 1.0    "iptrace" capture file
                   16471: 0      string          iptrace\ 2.0    "iptrace" capture file
                   16472: 
                   16473: #
                   16474: # Novell LANalyzer capture files.
                   16475: #
                   16476: 0      leshort         0x1001          LANalyzer capture file
                   16477: 0      leshort         0x1007          LANalyzer capture file
                   16478: 
                   16479: #
                   16480: # HP-UX "nettl" capture files.
                   16481: #
                   16482: 0      string          \x54\x52\x00\x64\x00    "nettl" capture file
                   16483: 
                   16484: #
                   16485: # RADCOM WAN/LAN Analyzer capture files.
                   16486: #
                   16487: 0      string          \x42\xd2\x00\x34\x12\x66\x22\x88        RADCOM WAN/LAN Analyzer capture file
                   16488: 
                   16489: #
                   16490: # NetStumbler log files.  Not really packets, per se, but about as
                   16491: # close as you can get.  These are log files from NetStumbler, a
                   16492: # Windows program, that scans for 802.11b networks.
                   16493: #
                   16494: 0      string          NetS            NetStumbler log file
                   16495: >8     lelong          x               \b, %d stations found
                   16496: 
                   16497: #
1.1.1.3   misho    16498: # *Peek tagged capture files.
1.1       misho    16499: #
1.1.1.3   misho    16500: 0      string          \177ver         EtherPeek/AiroPeek/OmniPeek capture file
1.1       misho    16501: 
                   16502: #
                   16503: # Visual Networks traffic capture files.
                   16504: #
                   16505: 0      string          \x05VNF         Visual Networks traffic capture file
                   16506: 
                   16507: #
                   16508: # Network Instruments Observer capture files.
                   16509: #
                   16510: 0      string          ObserverPktBuffe        Network Instruments Observer capture file
                   16511: 
                   16512: #
                   16513: # Files from Accellent Group's 5View products.
                   16514: #
                   16515: 0      string          \xaa\xaa\xaa\xaa        5View capture file
1.1.1.2   misho    16516: 
1.1       misho    16517: #------------------------------------------------------------------------------
1.1.1.2   misho    16518: # $File: softquad,v 1.13 2009/09/19 16:28:12 christos Exp $
1.1       misho    16519: # softquad:  file(1) magic for SoftQuad Publishing Software
                   16520: #
                   16521: # Author/Editor and RulesBuilder
                   16522: #
                   16523: # XXX - byte order?
                   16524: #
                   16525: 0      string          \<!SQ\ DTD>     Compiled SGML rules file
                   16526: >9     string          >\0              Type %s
                   16527: 0      string          \<!SQ\ A/E>     A/E SGML Document binary
                   16528: >9     string          >\0              Type %s
                   16529: 0      string          \<!SQ\ STS>     A/E SGML binary styles file
                   16530: >9     string          >\0              Type %s
                   16531: 0      short           0xc0de          Compiled PSI (v1) data
                   16532: 0      short           0xc0da          Compiled PSI (v2) data
                   16533: >3     string          >\0             (%s)
                   16534: # Binary sqtroff font/desc files...
                   16535: 0      short           0125252         SoftQuad DESC or font file binary
                   16536: >2     short           >0              - version %d
                   16537: # Bitmaps...
                   16538: 0      search/1        SQ\ BITMAP1     SoftQuad Raster Format text
                   16539: #0     string          SQ\ BITMAP2     SoftQuad Raster Format data
                   16540: # sqtroff intermediate language (replacement for ditroff int. lang.)
                   16541: 0      string          X\              SoftQuad troff Context intermediate
                   16542: >2     string          495             for AT&T 495 laser printer
                   16543: >2     string          hp              for Hewlett-Packard LaserJet
                   16544: >2     string          impr            for IMAGEN imPRESS
                   16545: >2     string          ps              for PostScript
                   16546: 
                   16547: # From: Michael Piefel <piefel@debian.org>
                   16548: # sqtroff intermediate language (replacement for ditroff int. lang.)
                   16549: 0      string          X\ 495          SoftQuad troff Context intermediate for AT&T 495 laser printer
                   16550: 0      string          X\ hp           SoftQuad troff Context intermediate for HP LaserJet
                   16551: 0      string          X\ impr         SoftQuad troff Context intermediate for IMAGEN imPRESS
                   16552: 0      string          X\ ps           SoftQuad troff Context intermediate for PostScript
                   16553: 
                   16554: #------------------------------------------------------------------------------
1.1.1.2   misho    16555: # $File: spec,v 1.4 2009/09/19 16:28:12 christos Exp $
1.1       misho    16556: # spec:  file(1) magic for SPEC raw results (*.raw, *.rsf)
                   16557: #
                   16558: # Cloyce D. Spradling <cloyce@headgear.org>
                   16559: 
                   16560: 0      string  spec                    SPEC
                   16561: >4     string  .cpu                    CPU
                   16562: >>8    string  <:                      \b%.4s
                   16563: >>12   string  .                       raw result text
                   16564: 
                   16565: 17     string  version=SPECjbb         SPECjbb
                   16566: >32    string  <:                      \b%.4s
                   16567: >>37   string  <:                      v%.4s raw result text
                   16568: 
                   16569: 0      string  BEGIN\040SPECWEB        SPECweb
                   16570: >13    string  <:                      \b%.2s
                   16571: >>15   string  _SSL                    \b_SSL
                   16572: >>>20  string  <:                      v%.4s raw result text
                   16573: >>16   string  <:                      v%.4s raw result text
                   16574: 
                   16575: #------------------------------------------------------------------------------
1.1.1.3   misho    16576: # $File: spectrum,v 1.7 2010/09/20 18:55:20 rrt Exp $
1.1       misho    16577: # spectrum:  file(1) magic for Spectrum emulator files.
                   16578: #
                   16579: # John Elliott <jce@seasip.demon.co.uk>
                   16580: 
                   16581: #
                   16582: # Spectrum +3DOS header
                   16583: #
                   16584: 0       string          PLUS3DOS\032    Spectrum +3 data
                   16585: >15     byte            0               - BASIC program
                   16586: >15     byte            1               - number array
                   16587: >15     byte            2               - character array
                   16588: >15     byte            3               - memory block
                   16589: >>16    belong          0x001B0040      (screen)
                   16590: >15     byte            4               - Tasword document
                   16591: >15     string          TAPEFILE        - ZXT tapefile
                   16592: #
                   16593: # Tape file. This assumes the .TAP starts with a Spectrum-format header,
                   16594: # which nearly all will.
                   16595: #
1.1.1.2   misho    16596: # Update: Sanity-check string contents to be printable.
                   16597: #  -Adam Buchbinder <adam.buchbinder@gmail.com>
                   16598: #
                   16599: 0       string          \023\000\000
                   16600: >4      string          >\0
                   16601: >>4     string          <\177           Spectrum .TAP data "%-10.10s"
                   16602: >>>3    byte            0               - BASIC program
                   16603: >>>3    byte            1               - number array
                   16604: >>>3    byte            2               - character array
                   16605: >>>3    byte            3               - memory block
                   16606: >>>>14  belong          0x001B0040      (screen)
1.1       misho    16607: 
                   16608: # The following three blocks are from pak21-spectrum@srcf.ucam.org
                   16609: # TZX tape images
                   16610: 0      string          ZXTape!\x1a     Spectrum .TZX data
                   16611: >8     byte            x               version %d
                   16612: >9     byte            x               \b.%d
                   16613: 
                   16614: # RZX input recording files
                   16615: 0      string          RZX!            Spectrum .RZX data
                   16616: >4     byte            x               version %d
                   16617: >5     byte            x               \b.%d
                   16618: 
                   16619: # Floppy disk images
                   16620: 0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
                   16621: 0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
                   16622: 0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
                   16623: 0      string          SINCLAIR        Spectrum .SCL Betadisk image
                   16624: 
                   16625: # Hard disk images
                   16626: 0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
                   16627: >7     byte            x               \b, version 0x%02x
                   16628: 
                   16629: #------------------------------------------------------------------------------
1.1.1.3   misho    16630: # $File: sql,v 1.11 2013/02/21 15:27:01 christos Exp $
1.1       misho    16631: # sql:  file(1) magic for SQL files
                   16632: #
                   16633: # From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
                   16634: # Recognize some MySQL files.
1.1.1.3   misho    16635: # Elan Ruusamae <glen@delfi.ee>, added MariaDB signatures
                   16636: # from https://bazaar.launchpad.net/~maria-captains/maria/5.5/view/head:/support-files/magic
1.1       misho    16637: #
                   16638: 0      beshort                 0xfe01          MySQL table definition file
                   16639: >2     byte                    x               Version %d
1.1.1.3   misho    16640: 0      belong&0xffffff00       0xfefe0700      MySQL MyISAM index file
1.1       misho    16641: >3     byte                    x               Version %d
1.1.1.3   misho    16642: 0      belong&0xffffff00       0xfefe0800      MySQL MyISAM compressed data file
                   16643: >3     byte                    x               Version %d
                   16644: 0      belong&0xffffff00       0xfefe0900      MySQL Maria index file
                   16645: >3     byte                    x               Version %d
                   16646: 0      belong&0xffffff00       0xfefe0A00      MySQL Maria compressed data file
1.1       misho    16647: >3     byte                    x               Version %d
                   16648: 0      belong&0xffffff00       0xfefe0500      MySQL ISAM index file
                   16649: >3     byte                    x               Version %d
                   16650: 0      belong&0xffffff00       0xfefe0600      MySQL ISAM compressed data file
                   16651: >3     byte                    x               Version %d
1.1.1.3   misho    16652: 0      string                  \376bin         MySQL replication log
                   16653: 0      belong&0xffffff00       0xfefe0b00
                   16654: >4     string                  MARIALOG        MySQL Maria transaction log file
                   16655: >>3    byte                    x               Version %d
                   16656: 0      belong&0xffffff00       0xfefe0c00
                   16657: >4     string                  MACF            MySQL Maria control file
                   16658: >>3    byte                    x               Version %d
1.1       misho    16659: 
                   16660: #------------------------------------------------------------------------------
                   16661: # iRiver H Series database file 
                   16662: # From Ken Guest <ken@linux.ie>
                   16663: # As observed from iRivNavi.iDB and unencoded firmware
                   16664: #
                   16665: 0   string             iRivDB  iRiver Database file
                   16666: >11  string    >\0     Version %s
                   16667: >39  string            iHP-100 [H Series]
                   16668: 
                   16669: #------------------------------------------------------------------------------
                   16670: # SQLite database files
                   16671: # Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
                   16672: #
                   16673: # Version 1 used GDBM internally; its files cannot be distinguished
                   16674: # from other GDBM files.
                   16675: #
                   16676: # Version 2 used this format:
                   16677: 0      string  **\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
                   16678: 
                   16679: # Version 3 of SQLite allows applications to embed their own "user version"
                   16680: # number in the database.  Detect this and distinguish those files.
                   16681: 
                   16682: 0   string  SQLite\ format\ 3
                   16683: >60 string  _MTN               Monotone source repository
                   16684: >60 belong  !0                 SQLite 3.x database, user version %u
                   16685: >60 belong  0                  SQLite 3.x database
1.1.1.3   misho    16686: 
                   16687: # Panasonic channel list database svl.bin or svl.db added by Joerg Jenderek
                   16688: # http://www.ullrich.es/job/service-menue/panasonic/panasonic-sendersortierung-sat-am-pc/
                   16689: # pceditor_V2003.jar
                   16690: 0      string          PSDB\0                  Panasonic channel list database
                   16691: >126   string          SQLite\ format\ 3       
                   16692: >>&-15 indirect        x                       \b; contains 
1.1.1.2   misho    16693: # Type:        OpenSSH key files
                   16694: # From:        Nicolas Collignon <tsointsoin@gmail.com>
                   16695: 
                   16696: 0      string  SSH\ PRIVATE\ KEY       OpenSSH RSA1 private key,
                   16697: >28    string  >\0                     version %s
                   16698: 
1.1.1.3   misho    16699: 0      string  ssh-dss\                OpenSSH DSA public key
                   16700: 0      string  ssh-rsa\                OpenSSH RSA public key
1.1.1.2   misho    16701: # Type: OpenSSL certificates/key files
                   16702: # From: Nicolas Collignon <tsointsoin@gmail.com>
                   16703: 
                   16704: 0      string  -----BEGIN\ CERTIFICATE-----    PEM certificate
                   16705: 0      string  -----BEGIN\ CERTIFICATE\ REQ    PEM certificate request
                   16706: 0      string  -----BEGIN\ RSA\ PRIVATE        PEM RSA private key
                   16707: 0      string  -----BEGIN\ DSA\ PRIVATE        PEM DSA private key
1.1       misho    16708: 
                   16709: #------------------------------------------------------------------------------
1.1.1.3   misho    16710: # $File: sun,v 1.25 2013/01/09 22:37:24 christos Exp $
1.1       misho    16711: # sun:  file(1) magic for Sun machines
                   16712: #
                   16713: # Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
1.1.1.3   misho    16714: # releases.  (5.x uses ELF.)  Entries for executables without an
                   16715: # architecture type, used before the 68020-based Sun-3's came out,
                   16716: # are in aout, as they're indistinguishable from other big-endian
                   16717: # 32-bit a.out files.
1.1       misho    16718: #
1.1.1.3   misho    16719: 0      belong&077777777        0600413         a.out SunOS sparc demand paged
1.1       misho    16720: >0     byte            &0x80
                   16721: >>20   belong          <4096           shared library
                   16722: >>20   belong          =4096           dynamically linked executable
                   16723: >>20   belong          >4096           dynamically linked executable
                   16724: >0     byte            ^0x80           executable
                   16725: >16    belong          >0              not stripped
                   16726: 
1.1.1.3   misho    16727: 0      belong&077777777        0600410         a.out SunOS sparc pure
1.1       misho    16728: >0     byte            &0x80           dynamically linked executable
                   16729: >0     byte            ^0x80           executable
                   16730: >16    belong          >0              not stripped
                   16731: 
1.1.1.3   misho    16732: 0      belong&077777777        0600407         a.out SunOS sparc
1.1       misho    16733: >0     byte            &0x80           dynamically linked executable
                   16734: >0     byte            ^0x80           executable
                   16735: >16    belong          >0              not stripped
                   16736: 
1.1.1.3   misho    16737: 0      belong&077777777        0400413         a.out SunOS mc68020 demand paged
1.1       misho    16738: >0     byte            &0x80
                   16739: >>20   belong          <4096           shared library
                   16740: >>20   belong          =4096           dynamically linked executable
                   16741: >>20   belong          >4096           dynamically linked executable
                   16742: >0     byte            ^0x80           executable
                   16743: >16    belong          >0              not stripped
                   16744: 
1.1.1.3   misho    16745: 0      belong&077777777        0400410         a.out SunOS mc68020 pure
1.1       misho    16746: >0     byte            &0x80           dynamically linked executable
                   16747: >0     byte            ^0x80           executable
                   16748: >16    belong          >0              not stripped
                   16749: 
1.1.1.3   misho    16750: 0      belong&077777777        0400407         a.out SunOS mc68020
1.1       misho    16751: >0     byte            &0x80           dynamically linked executable
                   16752: >0     byte            ^0x80           executable
                   16753: >16    belong          >0              not stripped
                   16754: 
1.1.1.3   misho    16755: 0      belong&077777777        0200413         a.out SunOS mc68010 demand paged
1.1       misho    16756: >0     byte            &0x80
                   16757: >>20   belong          <4096           shared library
                   16758: >>20   belong          =4096           dynamically linked executable
                   16759: >>20   belong          >4096           dynamically linked executable
                   16760: >0     byte            ^0x80           executable
                   16761: >16    belong          >0              not stripped
                   16762: 
1.1.1.3   misho    16763: 0      belong&077777777        0200410         a.out SunOS mc68010 pure
1.1       misho    16764: >0     byte            &0x80           dynamically linked executable
                   16765: >0     byte            ^0x80           executable
                   16766: >16    belong          >0              not stripped
                   16767: 
1.1.1.3   misho    16768: 0      belong&077777777        0200407         a.out SunOS mc68010
1.1       misho    16769: >0     byte            &0x80           dynamically linked executable
                   16770: >0     byte            ^0x80           executable
                   16771: >16    belong          >0              not stripped
                   16772: 
                   16773: #
                   16774: # Core files.  "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
                   16775: # binary executed in compatibility mode under SunOS 5.x".
                   16776: #
                   16777: 0      belong          0x080456        SunOS core file
                   16778: >4     belong          432             (SPARC)
                   16779: >>132  string          >\0             from '%s'
                   16780: >>116  belong          =3              (quit)
                   16781: >>116  belong          =4              (illegal instruction)
                   16782: >>116  belong          =5              (trace trap)
                   16783: >>116  belong          =6              (abort)
                   16784: >>116  belong          =7              (emulator trap)
                   16785: >>116  belong          =8              (arithmetic exception)
                   16786: >>116  belong          =9              (kill)
                   16787: >>116  belong          =10             (bus error)
                   16788: >>116  belong          =11             (segmentation violation)
                   16789: >>116  belong          =12             (bad argument to system call)
                   16790: >>116  belong          =29             (resource lost)
                   16791: >>120  belong          x               (T=%dK,
                   16792: >>124  belong          x               D=%dK,
                   16793: >>128  belong          x               S=%dK)
                   16794: >4     belong          826             (68K)
                   16795: >>128  string          >\0             from '%s'
                   16796: >4     belong          456             (SPARC 4.x BCP)
                   16797: >>152  string          >\0             from '%s'
                   16798: # Sun SunPC
                   16799: 0      long            0xfa33c08e      SunPC 4.0 Hard Disk
                   16800: 0      string          #SUNPC_CONFIG   SunPC 4.0 Properties Values
1.1.1.3   misho    16801: # Sun snoop (see RFC 1761, which describes the capture file format,
                   16802: # RFC 3827, which describes some additional datalink types, and
                   16803: # http://www.iana.org/assignments/snoop-datalink-types/snoop-datalink-types.xml,
                   16804: # which is the IANA registry of Snoop datalink types)
1.1       misho    16805: #
                   16806: 0      string          snoop           Snoop capture file
                   16807: >8     belong          >0              - version %ld
                   16808: >12    belong          0               (IEEE 802.3)
                   16809: >12    belong          1               (IEEE 802.4)
                   16810: >12    belong          2               (IEEE 802.5)
                   16811: >12    belong          3               (IEEE 802.6)
                   16812: >12    belong          4               (Ethernet)
                   16813: >12    belong          5               (HDLC)
                   16814: >12    belong          6               (Character synchronous)
                   16815: >12    belong          7               (IBM channel-to-channel adapter)
                   16816: >12    belong          8               (FDDI)
1.1.1.3   misho    16817: >12    belong          9               (Other)
                   16818: >12    belong          10              (type %ld)
                   16819: >12    belong          11              (type %ld)
                   16820: >12    belong          12              (type %ld)
                   16821: >12    belong          13              (type %ld)
                   16822: >12    belong          14              (type %ld)
                   16823: >12    belong          15              (type %ld)
                   16824: >12    belong          16              (Fibre Channel)
                   16825: >12    belong          17              (ATM)
                   16826: >12    belong          18              (ATM Classical IP)
                   16827: >12    belong          19              (type %ld)
                   16828: >12    belong          20              (type %ld)
                   16829: >12    belong          21              (type %ld)
                   16830: >12    belong          22              (type %ld)
                   16831: >12    belong          23              (type %ld)
                   16832: >12    belong          24              (type %ld)
                   16833: >12    belong          25              (type %ld)
                   16834: >12    belong          26              (IP over Infiniband)
                   16835: >12    belong          >26             (type %ld)
1.1       misho    16836: 
                   16837: #---------------------------------------------------------------------------
                   16838: # The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
                   16839: # lead Sun/Cobalt developer) who agrees that they are good and worthy of
                   16840: # inclusion.
                   16841: 
                   16842: # Boot ROM images for Sun/Cobalt Linux server appliances
                   16843: 0       string  Cobalt\ Networks\ Inc.\nFirmware\ v     Paged COBALT boot rom
                   16844: >38     string x        V%.4s
                   16845: 
                   16846: # New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
                   16847: # at the very end where file(1) can't get it.
                   16848: 0       string CRfs     COBALT boot rom data (Flat boot rom or file system)
                   16849: 
                   16850: #------------------------------------------------------------------------
1.1.1.2   misho    16851: # $File: sysex,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    16852: # sysex: file(1) magic for MIDI sysex files
                   16853: #
                   16854: # 
                   16855: 0      byte                    0xF0            SysEx File -
                   16856: 
                   16857: # North American Group
                   16858: >1     byte                    0x01            Sequential
                   16859: >1     byte                    0x02            IDP
                   16860: >1     byte                    0x03            OctavePlateau
                   16861: >1     byte                    0x04            Moog
                   16862: >1     byte                    0x05            Passport
                   16863: >1     byte                    0x06            Lexicon
                   16864: >1     byte                    0x07            Kurzweil/Future Retro
                   16865: >>3    byte                    0x77            777
                   16866: >>4    byte                    0x00            Bank
                   16867: >>4    byte                    0x01            Song
                   16868: >>5    byte                    0x0f            16
                   16869: >>5    byte                    0x0e            15
                   16870: >>5    byte                    0x0d            14
                   16871: >>5    byte                    0x0c            13
                   16872: >>5    byte                    0x0b            12
                   16873: >>5    byte                    0x0a            11
                   16874: >>5    byte                    0x09            10
                   16875: >>5    byte                    0x08            9
                   16876: >>5    byte                    0x07            8
                   16877: >>5    byte                    0x06            7
                   16878: >>5    byte                    0x05            6
                   16879: >>5    byte                    0x04            5
                   16880: >>5    byte                    0x03            4
                   16881: >>5    byte                    0x02            3
                   16882: >>5    byte                    0x01            2
                   16883: >>5    byte                    0x00            1
                   16884: >>5    byte                    0x10            (ALL)
                   16885: >>2    byte                    x                       \b, Channel %d
                   16886: >1     byte                    0x08            Fender
                   16887: >1     byte                    0x09            Gulbransen
                   16888: >1     byte                    0x0a            AKG
                   16889: >1     byte                    0x0b            Voyce
                   16890: >1     byte                    0x0c            Waveframe
                   16891: >1     byte                    0x0d            ADA
                   16892: >1     byte                    0x0e            Garfield
                   16893: >1     byte                    0x0f            Ensoniq
                   16894: >1     byte                    0x10            Oberheim
                   16895: >>2    byte                    0x06            Matrix 6 series
                   16896: >>3    byte                    0x0A            Dump (All)
                   16897: >>3    byte                    0x01            Dump (Bank)
                   16898: >>4 belong                     0x0002040E              Matrix 1000
                   16899: >>>11 byte                     <2                      User bank %d
                   16900: >>>11 byte                     >1                      Preset bank %d
                   16901: >1     byte                    0x11            Apple
                   16902: >1     byte                    0x12            GreyMatter
                   16903: >1     byte                    0x14            PalmTree
                   16904: >1     byte                    0x15            JLCooper
                   16905: >1     byte                    0x16            Lowrey
                   16906: >1     byte                    0x17            AdamsSmith
                   16907: >1     byte                    0x18            E-mu
                   16908: >1     byte                    0x19            Harmony
                   16909: >1     byte                    0x1a            ART
                   16910: >1     byte                    0x1b            Baldwin
                   16911: >1     byte                    0x1c            Eventide
                   16912: >1     byte                    0x1d            Inventronics
                   16913: >1     byte                    0x1f            Clarity
                   16914: 
                   16915: # European Group
                   16916: >1     byte                    0x21            SIEL
                   16917: >1     byte                    0x22            Synthaxe
                   16918: >1     byte                    0x24            Hohner
                   16919: >1     byte                    0x25            Twister
                   16920: >1     byte                    0x26            Solton
                   16921: >1     byte                    0x27            Jellinghaus
                   16922: >1     byte                    0x28            Southworth
                   16923: >1     byte                    0x29            PPG
                   16924: >1     byte                    0x2a            JEN
                   16925: >1     byte                    0x2b            SSL
                   16926: >1     byte                    0x2c            AudioVertrieb
                   16927: 
                   16928: >1     byte                    0x2f            ELKA
                   16929: >>3    byte                    0x09            EK-44
                   16930: 
                   16931: >1     byte                    0x30            Dynacord
                   16932: >1     byte                    0x31            Jomox
                   16933: >1     byte                    0x33            Clavia
                   16934: >1     byte                    0x39            Soundcraft
                   16935: # Some Waldorf info from http://Stromeko.Synth.net/Downloads#WaldorfDocs
                   16936: >1     byte                    0x3e            Waldorf
                   16937: >>2    byte                    0x00            microWave
                   16938: >>2    byte                    0x0E            microwave2 / XT
                   16939: >>2    byte                    0x0F            Q / Q+
                   16940: >>3    byte                    =0                      (default id)
                   16941: >>3 byte                       >0                      (
                   16942: >>>3 byte                      <0x7F           \bdevice %d)
                   16943: >>>3 byte                      =0x7F           \bbroadcast id)
                   16944: >>3    byte                    0x7f            Microwave I
                   16945: >>>4   byte                    0x00            SNDR (Sound Request)
                   16946: >>>4   byte                    0x10            SNDD (Sound Dump)
                   16947: >>>4   byte                    0x20            SNDP (Sound Parameter Change)
                   16948: >>>4   byte                    0x30            SNDQ (Sound Parameter Inquiry)
                   16949: >>>4   byte                    0x70            BOOT (Sound Reserved)
                   16950: >>>4   byte                    0x01            MULR (Multi Request)
                   16951: >>>4   byte                    0x11            MULD (Multi Dump)
                   16952: >>>4   byte                    0x21            MULP (Multi Parameter Change)
                   16953: >>>4   byte                    0x31            MULQ (Multi Parameter Inquiry)
                   16954: >>>4   byte                    0x71            OS (Multi Reserved)
                   16955: >>>4   byte                    0x02            DRMR (Drum Map Request)
                   16956: >>>4   byte                    0x12            DRMD (Drum Map Dump)
                   16957: >>>4   byte                    0x22            DRMP (Drum Map Parameter Change)
                   16958: >>>4   byte                    0x32            DRMQ (Drum Map Parameter Inquiry)
                   16959: >>>4   byte                    0x72            BIN (Drum Map Reserved)
                   16960: >>>4   byte                    0x03            PATR (Sequencer Pattern Request)
                   16961: >>>4   byte                    0x13            PATD (Sequencer Pattern Dump)
                   16962: >>>4   byte                    0x23            PATP (Sequencer Pattern Parameter Change)
                   16963: >>>4   byte                    0x33            PATQ (Sequencer Pattern Parameter Inquiry)
                   16964: >>>4   byte                    0x73            AFM (Sequencer Pattern Reserved)
                   16965: >>>4   byte                    0x04            GLBR (Global Parameter Request)
                   16966: >>>4   byte                    0x14            GLBD (Global Parameter Dump)
                   16967: >>>4   byte                    0x24            GLBP (Global Parameter Parameter Change)
                   16968: >>>4   byte                    0x34            GLBQ (Global Parameter Parameter Inquiry)
                   16969: >>>4   byte                    0x07            MODR (Mode Parameter Request)
                   16970: >>>4   byte                    0x17            MODD (Mode Parameter Dump)
                   16971: >>>4   byte                    0x27            MODP (Mode Parameter Parameter Change)
                   16972: >>>4   byte                    0x37            MODQ (Mode Parameter Parameter Inquiry)
                   16973: >>2    byte                    0x10            microQ
                   16974: >>>4   byte                    0x00            SNDR (Sound Request)
                   16975: >>>4   byte                    0x10            SNDD (Sound Dump)
                   16976: >>>4   byte                    0x20            SNDP (Sound Parameter Change)
                   16977: >>>4   byte                    0x30            SNDQ (Sound Parameter Inquiry)
                   16978: >>>4   byte                    0x70            (Sound Reserved)
                   16979: >>>4   byte                    0x01            MULR (Multi Request)
                   16980: >>>4   byte                    0x11            MULD (Multi Dump)
                   16981: >>>4   byte                    0x21            MULP (Multi Parameter Change)
                   16982: >>>4   byte                    0x31            MULQ (Multi Parameter Inquiry)
                   16983: >>>4   byte                    0x71            OS (Multi Reserved)
                   16984: >>>4   byte                    0x02            DRMR (Drum Map Request)
                   16985: >>>4   byte                    0x12            DRMD (Drum Map Dump)
                   16986: >>>4   byte                    0x22            DRMP (Drum Map Parameter Change)
                   16987: >>>4   byte                    0x32            DRMQ (Drum Map Parameter Inquiry)
                   16988: >>>4   byte                    0x72            BIN (Drum Map Reserved)
                   16989: >>>4   byte                    0x04            GLBR (Global Parameter Request)
                   16990: >>>4   byte                    0x14            GLBD (Global Parameter Dump)
                   16991: >>>4   byte                    0x24            GLBP (Global Parameter Parameter Change)
                   16992: >>>4   byte                    0x34            GLBQ (Global Parameter Parameter Inquiry)
                   16993: >>2    byte                    0x11            rackAttack
                   16994: >>>4   byte                    0x00            SNDR (Sound Parameter Request)
                   16995: >>>4   byte                    0x10            SNDD (Sound Parameter Dump)
                   16996: >>>4   byte                    0x20            SNDP (Sound Parameter Parameter Change)
                   16997: >>>4   byte                    0x30            SNDQ (Sound Parameter Parameter Inquiry)
                   16998: >>>4   byte                    0x01            PRGR (Program Parameter Request)
                   16999: >>>4   byte                    0x11            PRGD (Program Parameter Dump)
                   17000: >>>4   byte                    0x21            PRGP (Program Parameter Parameter Change)
                   17001: >>>4   byte                    0x31            PRGQ (Program Parameter Parameter Inquiry)
                   17002: >>>4   byte                    0x71            OS (Program Parameter Reserved)
                   17003: >>>4   byte                    0x03            PATR (Pattern Parameter Request)
                   17004: >>>4   byte                    0x13            PATD (Pattern Parameter Dump)
                   17005: >>>4   byte                    0x23            PATP (Pattern Parameter Parameter Change)
                   17006: >>>4   byte                    0x33            PATQ (Pattern Parameter Parameter Inquiry)
                   17007: >>>4   byte                    0x04            GLBR (Global Parameter Request)
                   17008: >>>4   byte                    0x14            GLBD (Global Parameter Dump)
                   17009: >>>4   byte                    0x24            GLBP (Global Parameter Parameter Change)
                   17010: >>>4   byte                    0x34            GLBQ (Global Parameter Parameter Inquiry)
                   17011: >>>4   byte                    0x05            EFXR (FX Parameter Request)
                   17012: >>>4   byte                    0x15            EFXD (FX Parameter Dump)
                   17013: >>>4   byte                    0x25            EFXP (FX Parameter Parameter Change)
                   17014: >>>4   byte                    0x35            EFXQ (FX Parameter Parameter Inquiry)
                   17015: >>>4   byte                    0x07            MODR (Mode Command Request)
                   17016: >>>4   byte                    0x17            MODD (Mode Command Dump)
                   17017: >>>4   byte                    0x27            MODP (Mode Command Parameter Change)
                   17018: >>>4   byte                    0x37            MODQ (Mode Command Parameter Inquiry)
                   17019: >>2    byte                    0x03            Wave
                   17020: >>>4   byte                    0x00            SBPR (Soundprogram)
                   17021: >>>4   byte                    0x01            SAPR (Performance)
                   17022: >>>4   byte                    0x02            SWAVE (Wave)
                   17023: >>>4   byte                    0x03            SWTBL (Wave control table)
                   17024: >>>4   byte                    0x04            SVT (Velocity Curve)
                   17025: >>>4   byte                    0x05            STT (Tuning Table)
                   17026: >>>4   byte                    0x06            SGLB (Global Parameters)
                   17027: >>>4   byte                    0x07            SARRMAP (Performance Program Change Map)
                   17028: >>>4   byte                    0x08            SBPRMAP (Sound Program Change Map)
                   17029: >>>4   byte                    0x09            SBPRPAR (Sound Parameter)
                   17030: >>>4   byte                    0x0A            SARRPAR (Performance Parameter)
                   17031: >>>4   byte                    0x0B            SINSPAR (Instrument/External Parameter)
                   17032: >>>4   byte                    0x0F            SBULK (Bulk Switch on/off)
                   17033: 
                   17034: # Japanese Group
                   17035: >1     byte                    0x40            Kawai
                   17036: >>3    byte                    0x20            K1
                   17037: >>3    byte                    0x22            K4
                   17038: 
                   17039: >1     byte                    0x41            Roland
                   17040: >>3    byte                    0x14            D-50
                   17041: >>3    byte                    0x2b            U-220
                   17042: >>3    byte                    0x02            TR-707
                   17043: 
                   17044: >1     byte                    0x42            Korg
                   17045: >>3    byte                    0x19            M1
                   17046: 
                   17047: >1     byte                    0x43            Yamaha
                   17048: >1     byte                    0x44            Casio
                   17049: >1     byte                    0x46            Kamiya
                   17050: >1     byte                    0x47            Akai
                   17051: >1     byte                    0x48            Victor
                   17052: >1     byte                    0x49            Mesosha
                   17053: >1     byte                    0x4b            Fujitsu
                   17054: >1     byte                    0x4c            Sony
                   17055: >1     byte                    0x4e            Teac
                   17056: >1     byte                    0x50            Matsushita
                   17057: >1     byte                    0x51            Fostex
                   17058: >1     byte                    0x52            Zoom
                   17059: >1     byte                    0x54            Matsushita
                   17060: >1     byte                    0x57            Acoustic tech. lab.
                   17061: 
                   17062: >1     belong&0xffffff00       0x00007400      Ta Horng
                   17063: >1     belong&0xffffff00       0x00007500      e-Tek
                   17064: >1     belong&0xffffff00       0x00007600      E-Voice
                   17065: >1     belong&0xffffff00       0x00007700      Midisoft
                   17066: >1     belong&0xffffff00       0x00007800      Q-Sound
                   17067: >1     belong&0xffffff00       0x00007900      Westrex
                   17068: >1     belong&0xffffff00       0x00007a00      Nvidia*
                   17069: >1     belong&0xffffff00       0x00007b00      ESS
                   17070: >1     belong&0xffffff00       0x00007c00      Mediatrix
                   17071: >1     belong&0xffffff00       0x00007d00      Brooktree
                   17072: >1     belong&0xffffff00       0x00007e00      Otari
                   17073: >1     belong&0xffffff00       0x00007f00      Key Electronics
                   17074: >1     belong&0xffffff00       0x00010000      Shure
                   17075: >1     belong&0xffffff00       0x00010100      AuraSound
                   17076: >1     belong&0xffffff00       0x00010200      Crystal
                   17077: >1     belong&0xffffff00       0x00010300      Rockwell
                   17078: >1     belong&0xffffff00       0x00010400      Silicon Graphics
                   17079: >1     belong&0xffffff00       0x00010500      Midiman
                   17080: >1     belong&0xffffff00       0x00010600      PreSonus
                   17081: >1     belong&0xffffff00       0x00010800      Topaz
                   17082: >1     belong&0xffffff00       0x00010900      Cast Lightning
                   17083: >1     belong&0xffffff00       0x00010a00      Microsoft
                   17084: >1     belong&0xffffff00       0x00010b00      Sonic Foundry
                   17085: >1     belong&0xffffff00       0x00010c00      Line 6
                   17086: >1     belong&0xffffff00       0x00010d00      Beatnik Inc.
                   17087: >1     belong&0xffffff00       0x00010e00      Van Koerving
                   17088: >1     belong&0xffffff00       0x00010f00      Altech Systems
                   17089: >1     belong&0xffffff00       0x00011000      S & S Research
                   17090: >1     belong&0xffffff00       0x00011100      VLSI Technology
                   17091: >1     belong&0xffffff00       0x00011200      Chromatic
                   17092: >1     belong&0xffffff00       0x00011300      Sapphire
                   17093: >1     belong&0xffffff00       0x00011400      IDRC
                   17094: >1     belong&0xffffff00       0x00011500      Justonic Tuning
                   17095: >1     belong&0xffffff00       0x00011600      TorComp
                   17096: >1     belong&0xffffff00       0x00011700      Newtek Inc.
                   17097: >1     belong&0xffffff00       0x00011800      Sound Sculpture
                   17098: >1     belong&0xffffff00       0x00011900      Walker Technical
                   17099: >1     belong&0xffffff00       0x00011a00      Digital Harmony
                   17100: >1     belong&0xffffff00       0x00011b00      InVision
                   17101: >1     belong&0xffffff00       0x00011c00      T-Square
                   17102: >1     belong&0xffffff00       0x00011d00      Nemesys
                   17103: >1     belong&0xffffff00       0x00011e00      DBX
                   17104: >1     belong&0xffffff00       0x00011f00      Syndyne
                   17105: >1     belong&0xffffff00       0x00012000      Bitheadz        
                   17106: >1     belong&0xffffff00       0x00012100      Cakewalk
                   17107: >1     belong&0xffffff00       0x00012200      Staccato
                   17108: >1     belong&0xffffff00       0x00012300      National Semicon.
                   17109: >1     belong&0xffffff00       0x00012400      Boom Theory
                   17110: >1     belong&0xffffff00       0x00012500      Virtual DSP Corp
                   17111: >1     belong&0xffffff00       0x00012600      Antares
                   17112: >1     belong&0xffffff00       0x00012700      Angel Software
                   17113: >1     belong&0xffffff00       0x00012800      St Louis Music
                   17114: >1     belong&0xffffff00       0x00012900      Lyrrus dba G-VOX
                   17115: >1     belong&0xffffff00       0x00012a00      Ashley Audio
                   17116: >1     belong&0xffffff00       0x00012b00      Vari-Lite
                   17117: >1     belong&0xffffff00       0x00012c00      Summit Audio
                   17118: >1     belong&0xffffff00       0x00012d00      Aureal Semicon.
                   17119: >1     belong&0xffffff00       0x00012e00      SeaSound
                   17120: >1     belong&0xffffff00       0x00012f00      U.S. Robotics
                   17121: >1     belong&0xffffff00       0x00013000      Aurisis
                   17122: >1     belong&0xffffff00       0x00013100      Nearfield Multimedia
                   17123: >1     belong&0xffffff00       0x00013200      FM7 Inc.
                   17124: >1     belong&0xffffff00       0x00013300      Swivel Systems
                   17125: >1     belong&0xffffff00       0x00013400      Hyperactive
                   17126: >1     belong&0xffffff00       0x00013500      MidiLite
                   17127: >1     belong&0xffffff00       0x00013600      Radical
                   17128: >1     belong&0xffffff00       0x00013700      Roger Linn
                   17129: >1     belong&0xffffff00       0x00013800      Helicon
                   17130: >1     belong&0xffffff00       0x00013900      Event
                   17131: >1     belong&0xffffff00       0x00013a00      Sonic Network
                   17132: >1     belong&0xffffff00       0x00013b00      Realtime Music
                   17133: >1     belong&0xffffff00       0x00013c00      Apogee Digital
                   17134: 
                   17135: >1     belong&0xffffff00       0x00202b00      Medeli Electronics
                   17136: >1     belong&0xffffff00       0x00202c00      Charlie Lab
                   17137: >1     belong&0xffffff00       0x00202d00      Blue Chip Music
                   17138: >1     belong&0xffffff00       0x00202e00      BEE OH Corp
                   17139: >1     belong&0xffffff00       0x00202f00      LG Semicon America
                   17140: >1     belong&0xffffff00       0x00203000      TESI
                   17141: >1     belong&0xffffff00       0x00203100      EMAGIC
                   17142: >1     belong&0xffffff00       0x00203200      Behringer
                   17143: >1     belong&0xffffff00       0x00203300      Access Music
                   17144: >1     belong&0xffffff00       0x00203400      Synoptic
                   17145: >1     belong&0xffffff00       0x00203500      Hanmesoft Corp
                   17146: >1     belong&0xffffff00       0x00203600      Terratec
                   17147: >1     belong&0xffffff00       0x00203700      Proel SpA
                   17148: >1     belong&0xffffff00       0x00203800      IBK MIDI
                   17149: >1     belong&0xffffff00       0x00203900      IRCAM
                   17150: >1     belong&0xffffff00       0x00203a00      Propellerhead Software
                   17151: >1     belong&0xffffff00       0x00203b00      Red Sound Systems
                   17152: >1     belong&0xffffff00       0x00203c00      Electron ESI AB
                   17153: >1     belong&0xffffff00       0x00203d00      Sintefex Audio
                   17154: >1     belong&0xffffff00       0x00203e00      Music and More
                   17155: >1     belong&0xffffff00       0x00203f00      Amsaro
                   17156: >1     belong&0xffffff00       0x00204000      CDS Advanced Technology
                   17157: >1     belong&0xffffff00       0x00204100      Touched by Sound
                   17158: >1     belong&0xffffff00       0x00204200      DSP Arts
                   17159: >1     belong&0xffffff00       0x00204300      Phil Rees Music
                   17160: >1     belong&0xffffff00       0x00204400      Stamer Musikanlagen GmbH
                   17161: >1     belong&0xffffff00       0x00204500      Soundart
                   17162: >1     belong&0xffffff00       0x00204600      C-Mexx Software
                   17163: >1     belong&0xffffff00       0x00204700      Klavis Tech.
                   17164: >1     belong&0xffffff00       0x00204800      Noteheads AB
                   17165: 
                   17166: 0      string                  T707            Roland TR-707 Data
1.1.1.3   misho    17167: #------------------------------------------------------------------------------
                   17168: # file:  file(1) magic for Tcl scripting language
                   17169: # URL:  http://www.tcl.tk/
                   17170: # From: gustaf neumann
                   17171: 
                   17172: # Tcl scripts
                   17173: 0      search/1/w      #!\ /usr/bin/tcl        Tcl script text executable
                   17174: !:mime text/x-lua
                   17175: 0      search/1/w      #!\ /usr/local/bin/tcl  Tcl script text executable
                   17176: !:mime text/x-tcl
                   17177: 0      search/1        #!/usr/bin/env\ tcl     Tcl script text executable
                   17178: !:mime text/x-tcl
                   17179: 0      search/1        #!\ /usr/bin/env\ tcl   Tcl script text executable
                   17180: !:mime text/x-tcl
                   17181: 0      search/1/w      #!\ /usr/bin/wish       Tcl/Tk script text executable
                   17182: !:mime text/x-tcl
                   17183: 0      search/1/w      #!\ /usr/local/bin/wish Tcl/Tk script text executable
                   17184: !:mime text/x-tcl
                   17185: 0      search/1        #!/usr/bin/env\ wish    Tcl/Tk script text executable
                   17186: !:mime text/x-tcl
                   17187: 0      search/1        #!\ /usr/bin/env\ wish  Tcl/Tk script text executable
                   17188: !:mime text/x-tcl
                   17189: 
                   17190: # check the first line
                   17191: 0      search/1        package\ req
                   17192: >0     regex           \^package[\ \t]+req     Tcl script
                   17193: # not 'p', check other lines
                   17194: 0      search/1        !p
                   17195: >0     regex           \^package[\ \t]+req     Tcl script
1.1.1.2   misho    17196: 
1.1       misho    17197: #------------------------------------------------------------------------------
1.1.1.2   misho    17198: # $File: teapot,v 1.4 2009/09/19 16:28:12 christos Exp $
1.1       misho    17199: # teapot:  file(1) magic for "teapot" spreadsheet
                   17200: #
                   17201: 0       string          #!teapot\012xdr      teapot work sheet (XDR format)
                   17202: 
                   17203: #------------------------------------------------------------------------------
1.1.1.2   misho    17204: # $File: terminfo,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    17205: # terminfo:  file(1) magic for terminfo
                   17206: #
                   17207: # XXX - byte order for screen images?
                   17208: #
                   17209: 0      string          \032\001        Compiled terminfo entry
                   17210: 0      short           0433            Curses screen image
                   17211: 0      short           0434            Curses screen image
1.1.1.2   misho    17212: 
1.1       misho    17213: #------------------------------------------------------------------------------
1.1.1.3   misho    17214: # $File: tex,v 1.18 2011/02/08 13:45:15 christos Exp $
1.1       misho    17215: # tex:  file(1) magic for TeX files
                   17216: #
                   17217: # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
                   17218: #
                   17219: # From <conklin@talisman.kaleida.com>
                   17220: 
                   17221: # Although we may know the offset of certain text fields in TeX DVI
                   17222: # and font files, we can't use them reliably because they are not
                   17223: # zero terminated. [but we do anyway, christos]
                   17224: 0      string          \367\002        TeX DVI file
                   17225: !:mime application/x-dvi
                   17226: >16    string          >\0             (%s)
                   17227: 0      string          \367\203        TeX generic font data
                   17228: 0      string          \367\131        TeX packed font data
                   17229: >3     string          >\0             (%s)
                   17230: 0      string          \367\312        TeX virtual font data
                   17231: 0      search/1        This\ is\ TeX,  TeX transcript text
                   17232: 0      search/1        This\ is\ METAFONT,     METAFONT transcript text
                   17233: 
                   17234: # There is no way to detect TeX Font Metric (*.tfm) files without
                   17235: # breaking them apart and reading the data.  The following patterns
                   17236: # match most *.tfm files generated by METAFONT or afm2tfm.
                   17237: 2      string          \000\021        TeX font metric data
                   17238: !:mime application/x-tex-tfm
                   17239: >33    string          >\0             (%s)
                   17240: 2      string          \000\022        TeX font metric data
                   17241: !:mime application/x-tex-tfm
                   17242: >33    string          >\0             (%s)
                   17243: 
                   17244: # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
                   17245: 0      search/1        \\input\ texinfo        Texinfo source text
                   17246: !:mime text/x-texinfo
                   17247: 0      search/1        This\ is\ Info\ file    GNU Info text
                   17248: !:mime text/x-info
                   17249: 
                   17250: # TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
1.1.1.3   misho    17251: 0      search/4096     \\input         TeX document text
1.1       misho    17252: !:mime text/x-tex
1.1.1.3   misho    17253: !:strength + 15
                   17254: 0      search/4096     \\section       LaTeX document text
1.1       misho    17255: !:mime text/x-tex
1.1.1.3   misho    17256: !:strength + 18
                   17257: 0      search/4096     \\setlength     LaTeX document text
1.1       misho    17258: !:mime text/x-tex
1.1.1.3   misho    17259: !:strength + 15
                   17260: 0      search/4096     \\documentstyle LaTeX document text
1.1       misho    17261: !:mime text/x-tex
1.1.1.3   misho    17262: !:strength + 18
                   17263: 0      search/4096     \\chapter       LaTeX document text
1.1       misho    17264: !:mime text/x-tex
1.1.1.3   misho    17265: !:strength + 18
                   17266: 0      search/4096     \\documentclass LaTeX 2e document text
1.1       misho    17267: !:mime text/x-tex
1.1.1.3   misho    17268: !:strength + 15
                   17269: 0      search/4096     \\relax         LaTeX auxiliary file
1.1       misho    17270: !:mime text/x-tex
1.1.1.3   misho    17271: !:strength + 15
                   17272: 0      search/4096     \\contentsline  LaTeX table of contents
1.1       misho    17273: !:mime text/x-tex
1.1.1.3   misho    17274: !:strength + 15
                   17275: 0      search/4096     %\ -*-latex-*-  LaTeX document text
1.1       misho    17276: !:mime text/x-tex
                   17277: 
                   17278: # Tex document, from Hendrik Scholz <hendrik@scholz.net>
                   17279: 0      search/1        \\ifx           TeX document text
                   17280: 
                   17281: # Index and glossary files
1.1.1.3   misho    17282: 0      search/4096     \\indexentry    LaTeX raw index file
                   17283: 0      search/4096     \\begin{theindex}       LaTeX sorted index
                   17284: 0      search/4096     \\glossaryentry LaTeX raw glossary
                   17285: 0      search/4096     \\begin{theglossary}    LaTeX sorted glossary
                   17286: 0      search/4096     This\ is\ makeindex     Makeindex log file
1.1       misho    17287: 
                   17288: # End of TeX
                   17289: 
                   17290: #------------------------------------------------------------------------------
                   17291: # file(1) magic for BibTex text files
                   17292: # From Hendrik Scholz <hendrik@scholz.net>
                   17293: 
                   17294: 0      search/1/c      @article{       BibTeX text file
                   17295: 0      search/1/c      @book{          BibTeX text file
                   17296: 0      search/1/c      @inbook{        BibTeX text file
                   17297: 0      search/1/c      @incollection{  BibTeX text file
                   17298: 0      search/1/c      @inproceedings{ BibTeX text file
                   17299: 0      search/1/c      @manual{        BibTeX text file
                   17300: 0      search/1/c      @misc{          BibTeX text file
                   17301: 0      search/1/c      @preamble{      BibTeX text file
                   17302: 0      search/1/c      @phdthesis{     BibTeX text file
                   17303: 0      search/1/c      @techreport{    BibTeX text file
                   17304: 0      search/1/c      @unpublished{   BibTeX text file
                   17305: 
                   17306: 73     search/1        %%%\ \          BibTeX-file{ BibTex text file (with full header)
                   17307: 
                   17308: 73     search/1        %%%\ \ @BibTeX-style-file{   BibTeX style text file (with full header)
                   17309: 
                   17310: 0      search/1        %\ BibTeX\ standard\ bibliography\      BibTeX standard bibliography style text file
                   17311: 
                   17312: 0      search/1        %\ BibTeX\ `    BibTeX custom bibliography style text file
                   17313: 
                   17314: 0      search/1        @c\ @mapfile{   TeX font aliases text file
1.1.1.2   misho    17315: 
1.1.1.3   misho    17316: 0      string          #LyX            LyX document text
1.1.1.2   misho    17317: 
1.1       misho    17318: #------------------------------------------------------------------------------
1.1.1.3   misho    17319: # $File: tgif,v 1.7 2010/09/20 19:03:46 rrt Exp $
1.1       misho    17320: # file(1) magic for tgif(1) files
                   17321: # From Hendrik Scholz <hendrik@scholz.net>
1.1.1.3   misho    17322: 0      string  %TGIF\                  Tgif file version
1.1.1.2   misho    17323: >6     string  x                       %s
1.1       misho    17324: 
1.1.1.2   misho    17325: #------------------------------------------------------------------------------
                   17326: # $File: ti-8x,v 1.6 2009/09/19 16:28:12 christos Exp $
1.1       misho    17327: # ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
                   17328: #
                   17329: # From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
                   17330: #
                   17331: # Update: Romain Lievin (roms@lpg.ticalc.org).
                   17332: #
                   17333: # NOTE: This list is not complete.
                   17334: # Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
                   17335: # program/group magic numbers in here because I cannot find any.
                   17336: 0              string          **TI80**        TI-80 Graphing Calculator File.
                   17337: 0              string          **TI81**        TI-81 Graphing Calculator File.
                   17338: #
                   17339: # Magic Numbers for the TI-73
                   17340: #
                   17341: 0              string          **TI73**        TI-73 Graphing Calculator
                   17342: >0x00003B      byte            0x00            (real number)
                   17343: >0x00003B      byte            0x01            (list)
                   17344: >0x00003B      byte            0x02            (matrix)
                   17345: >0x00003B      byte            0x03            (equation)
                   17346: >0x00003B      byte            0x04            (string)
                   17347: >0x00003B      byte            0x05            (program)
                   17348: >0x00003B      byte            0x06            (assembly program)
                   17349: >0x00003B      byte            0x07            (picture)
                   17350: >0x00003B      byte            0x08            (gdb)
                   17351: >0x00003B      byte            0x0C            (complex number)
                   17352: >0x00003B      byte            0x0F            (window settings)
                   17353: >0x00003B      byte            0x10            (zoom)
                   17354: >0x00003B      byte            0x11            (table setup)
                   17355: >0x00003B      byte            0x13            (backup)
                   17356: 
                   17357: # Magic Numbers for the TI-82
                   17358: #
                   17359: 0              string          **TI82**        TI-82 Graphing Calculator
                   17360: >0x00003B      byte            0x00            (real)
                   17361: >0x00003B      byte            0x01            (list)
                   17362: >0x00003B      byte            0x02            (matrix)
                   17363: >0x00003B      byte            0x03            (Y-variable)
                   17364: >0x00003B      byte            0x05            (program)
                   17365: >0x00003B      byte            0x06            (protected prgm)
                   17366: >0x00003B      byte            0x07            (picture)
                   17367: >0x00003B      byte            0x08            (gdb)
                   17368: >0x00003B      byte            0x0B            (window settings)
                   17369: >0x00003B      byte            0x0C            (window settings)
                   17370: >0x00003B      byte            0x0D            (table setup)
                   17371: >0x00003B      byte            0x0E            (screenshot)
                   17372: >0x00003B      byte            0x0F            (backup)
                   17373: #
                   17374: # Magic Numbers for the TI-83
                   17375: #
                   17376: 0              string          **TI83**        TI-83 Graphing Calculator
                   17377: >0x00003B      byte            0x00            (real)
                   17378: >0x00003B      byte            0x01            (list)
                   17379: >0x00003B      byte            0x02            (matrix)
                   17380: >0x00003B      byte            0x03            (Y-variable)
                   17381: >0x00003B      byte            0x04            (string)
                   17382: >0x00003B      byte            0x05            (program)
                   17383: >0x00003B      byte            0x06            (protected prgm)
                   17384: >0x00003B      byte            0x07            (picture)
                   17385: >0x00003B      byte            0x08            (gdb)
                   17386: >0x00003B      byte            0x0B            (window settings)
                   17387: >0x00003B      byte            0x0C            (window settings)
                   17388: >0x00003B      byte            0x0D            (table setup)
                   17389: >0x00003B      byte            0x0E            (screenshot)
                   17390: >0x00003B      byte            0x13            (backup)
                   17391: #
                   17392: # Magic Numbers for the TI-83+
                   17393: #
                   17394: 0              string          **TI83F*        TI-83+ Graphing Calculator
                   17395: >0x00003B      byte            0x00            (real number)
                   17396: >0x00003B      byte            0x01            (list)
                   17397: >0x00003B      byte            0x02            (matrix)
                   17398: >0x00003B      byte            0x03            (equation)
                   17399: >0x00003B      byte            0x04            (string)
                   17400: >0x00003B      byte            0x05            (program)
                   17401: >0x00003B      byte            0x06            (assembly program)
                   17402: >0x00003B      byte            0x07            (picture)
                   17403: >0x00003B      byte            0x08            (gdb)
                   17404: >0x00003B      byte            0x0C            (complex number)
                   17405: >0x00003B      byte            0x0F            (window settings)
                   17406: >0x00003B      byte            0x10            (zoom)
                   17407: >0x00003B      byte            0x11            (table setup)
                   17408: >0x00003B      byte            0x13            (backup)
                   17409: >0x00003B      byte            0x15            (application variable)
                   17410: >0x00003B      byte            0x17            (group of variable)
                   17411: 
                   17412: #
                   17413: # Magic Numbers for the TI-85
                   17414: #
                   17415: 0              string          **TI85**        TI-85 Graphing Calculator
                   17416: >0x00003B      byte            0x00            (real number)
                   17417: >0x00003B      byte            0x01            (complex number)
                   17418: >0x00003B      byte            0x02            (real vector)
                   17419: >0x00003B      byte            0x03            (complex vector)
                   17420: >0x00003B      byte            0x04            (real list)
                   17421: >0x00003B      byte            0x05            (complex list)
                   17422: >0x00003B      byte            0x06            (real matrix)
                   17423: >0x00003B      byte            0x07            (complex matrix)
                   17424: >0x00003B      byte            0x08            (real constant)
                   17425: >0x00003B      byte            0x09            (complex constant)
                   17426: >0x00003B      byte            0x0A            (equation)
                   17427: >0x00003B      byte            0x0C            (string)
                   17428: >0x00003B      byte            0x0D            (function GDB)
                   17429: >0x00003B      byte            0x0E            (polar GDB)
                   17430: >0x00003B      byte            0x0F            (parametric GDB)
                   17431: >0x00003B      byte            0x10            (diffeq GDB)
                   17432: >0x00003B      byte            0x11            (picture)
                   17433: >0x00003B      byte            0x12            (program)
                   17434: >0x00003B      byte            0x13            (range)
                   17435: >0x00003B      byte            0x17            (window settings)
                   17436: >0x00003B      byte            0x18            (window settings)
                   17437: >0x00003B      byte            0x19            (window settings)
                   17438: >0x00003B      byte            0x1A            (window settings)
                   17439: >0x00003B      byte            0x1B            (zoom)
                   17440: >0x00003B      byte            0x1D            (backup)
                   17441: >0x00003B      byte            0x1E            (unknown)
                   17442: >0x00003B      byte            0x2A            (equation)
                   17443: >0x000032      string          ZS4             - ZShell Version 4 File.
                   17444: >0x000032      string          ZS3             - ZShell Version 3 File.
                   17445: #
                   17446: # Magic Numbers for the TI-86
                   17447: #
                   17448: 0              string          **TI86**        TI-86 Graphing Calculator
                   17449: >0x00003B      byte            0x00            (real number)
                   17450: >0x00003B      byte            0x01            (complex number)
                   17451: >0x00003B      byte            0x02            (real vector)
                   17452: >0x00003B      byte            0x03            (complex vector)
                   17453: >0x00003B      byte            0x04            (real list)
                   17454: >0x00003B      byte            0x05            (complex list)
                   17455: >0x00003B      byte            0x06            (real matrix)
                   17456: >0x00003B      byte            0x07            (complex matrix)
                   17457: >0x00003B      byte            0x08            (real constant)
                   17458: >0x00003B      byte            0x09            (complex constant)
                   17459: >0x00003B      byte            0x0A            (equation)
                   17460: >0x00003B      byte            0x0C            (string)
                   17461: >0x00003B      byte            0x0D            (function GDB)
                   17462: >0x00003B      byte            0x0E            (polar GDB)
                   17463: >0x00003B      byte            0x0F            (parametric GDB)
                   17464: >0x00003B      byte            0x10            (diffeq GDB)
                   17465: >0x00003B      byte            0x11            (picture)
                   17466: >0x00003B      byte            0x12            (program)
                   17467: >0x00003B      byte            0x13            (range)
                   17468: >0x00003B      byte            0x17            (window settings)
                   17469: >0x00003B      byte            0x18            (window settings)
                   17470: >0x00003B      byte            0x19            (window settings)
                   17471: >0x00003B      byte            0x1A            (window settings)
                   17472: >0x00003B      byte            0x1B            (zoom)
                   17473: >0x00003B      byte            0x1D            (backup)
                   17474: >0x00003B      byte            0x1E            (unknown)
                   17475: >0x00003B      byte            0x2A            (equation)
                   17476: #
                   17477: # Magic Numbers for the TI-89
                   17478: #
                   17479: 0              string          **TI89**        TI-89 Graphing Calculator
                   17480: >0x000048      byte            0x00            (expression)
                   17481: >0x000048      byte            0x04            (list)
                   17482: >0x000048      byte            0x06            (matrix)
                   17483: >0x000048      byte            0x0A            (data)
                   17484: >0x000048      byte            0x0B            (text)
                   17485: >0x000048      byte            0x0C            (string)
                   17486: >0x000048      byte            0x0D            (graphic data base)
                   17487: >0x000048      byte            0x0E            (figure)
                   17488: >0x000048      byte            0x10            (picture)
                   17489: >0x000048      byte            0x12            (program)
                   17490: >0x000048      byte            0x13            (function)
                   17491: >0x000048      byte            0x14            (macro)
                   17492: >0x000048      byte            0x1C            (zipped)
                   17493: >0x000048      byte            0x21            (assembler)
                   17494: #
                   17495: # Magic Numbers for the TI-92
                   17496: #
                   17497: 0              string          **TI92**        TI-92 Graphing Calculator
                   17498: >0x000048      byte            0x00            (expression)
                   17499: >0x000048      byte            0x04            (list)
                   17500: >0x000048      byte            0x06            (matrix)
                   17501: >0x000048      byte            0x0A            (data)
                   17502: >0x000048      byte            0x0B            (text)
                   17503: >0x000048      byte            0x0C            (string)
                   17504: >0x000048      byte            0x0D            (graphic data base)
                   17505: >0x000048      byte            0x0E            (figure)
                   17506: >0x000048      byte            0x10            (picture)
                   17507: >0x000048      byte            0x12            (program)
                   17508: >0x000048      byte            0x13            (function)
                   17509: >0x000048      byte            0x14            (macro)
                   17510: >0x000048      byte            0x1D            (backup)
                   17511: #
                   17512: # Magic Numbers for the TI-92+/V200
                   17513: #
                   17514: 0              string          **TI92P*        TI-92+/V200 Graphing Calculator
                   17515: >0x000048      byte            0x00            (expression)
                   17516: >0x000048      byte            0x04            (list)
                   17517: >0x000048      byte            0x06            (matrix)
                   17518: >0x000048      byte            0x0A            (data)
                   17519: >0x000048      byte            0x0B            (text)
                   17520: >0x000048      byte            0x0C            (string)
                   17521: >0x000048      byte            0x0D            (graphic data base)
                   17522: >0x000048      byte            0x0E            (figure)
                   17523: >0x000048      byte            0x10            (picture)
                   17524: >0x000048      byte            0x12            (program)
                   17525: >0x000048      byte            0x13            (function)
                   17526: >0x000048      byte            0x14            (macro)
                   17527: >0x000048      byte            0x1C            (zipped)
                   17528: >0x000048      byte            0x21            (assembler)
                   17529: #
                   17530: # Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
                   17531: #
                   17532: 0x0000016      string          Advanced        TI-XX Graphing Calculator (FLASH)
                   17533: 0              string          **TIFL**        TI-XX Graphing Calculator (FLASH)
                   17534: >8             byte            >0              - Revision %d
                   17535: >>9            byte            x               \b.%d,
                   17536: >12            byte            >0              Revision date %02x
                   17537: >>13           byte            x               \b/%02x
                   17538: >>14           beshort         x               \b/%04x,
                   17539: >17            string          >/0             name: '%s',
                   17540: >48            byte            0x74            device: TI-73,
                   17541: >48            byte            0x73            device: TI-83+,
                   17542: >48            byte            0x98            device: TI-89,
                   17543: >48            byte            0x88            device: TI-92+,
                   17544: >49            byte            0x23            type: OS upgrade,
                   17545: >49            byte            0x24            type: application,
                   17546: >49            byte            0x25            type: certificate,
                   17547: >49            byte            0x3e            type: license,
                   17548: >74            lelong          >0              size: %ld bytes
                   17549: 
                   17550: # VTi & TiEmu skins (TI Graphing Calculators).
                   17551: # From: Romain Lievin (roms@lpg.ticalc.org).
                   17552: # Magic Numbers for the VTi skins
                   17553: 0               string          VTI            Virtual TI skin
                   17554: >3             string          v               - Version
                   17555: >>4            byte            >0              \b %c
                   17556: >>6            byte            x               \b.%c
                   17557: # Magic Numbers for the TiEmu skins
                   17558: 0              string          TiEmu           TiEmu skin
                   17559: >6              string          v               - Version
                   17560: >>7             byte            >0              \b %c
                   17561: >>9             byte            x               \b.%c
                   17562: >>10           byte            x               \b%c
                   17563: 
                   17564: #------------------------------------------------------------------------------
1.1.1.2   misho    17565: # $File: timezone,v 1.11 2009/09/19 16:28:12 christos Exp $
1.1       misho    17566: # timezone:  file(1) magic for timezone data
                   17567: #
                   17568: # from Daniel Quinlan (quinlan@yggdrasil.com)
                   17569: # this should work on Linux, SunOS, and maybe others
                   17570: # Added new official magic number for recent versions of the Olson code
                   17571: 0      string  TZif    timezone data
1.1.1.2   misho    17572: >4     byte    0       \b, old version
                   17573: >4     byte    >0      \b, version %c
                   17574: >20    belong  0       \b, no gmt time flags
                   17575: >20    belong  1       \b, 1 gmt time flag
                   17576: >20    belong  >1      \b, %d gmt time flags
                   17577: >24    belong  0       \b, no std time flags
                   17578: >20    belong  1       \b, 1 std time flag
                   17579: >24    belong  >1      \b, %d std time flags
                   17580: >28    belong  0       \b, no leap seconds
                   17581: >28    belong  1       \b, 1 leap second
                   17582: >28    belong  >1      \b, %d leap seconds
                   17583: >32    belong  0       \b, no transition times
                   17584: >32    belong  1       \b, 1 transition time
                   17585: >32    belong  >1      \b, %d transition times
                   17586: >36    belong  0       \b, no abbreviation chars
                   17587: >36    belong  1       \b, 1 abbreviation char
                   17588: >36    belong  >1      \b, %d abbreviation chars
1.1       misho    17589: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0      old timezone data
                   17590: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0      old timezone data
                   17591: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0      old timezone data
                   17592: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0      old timezone data
                   17593: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0      old timezone data
                   17594: 0      string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0      old timezone data
1.1.1.2   misho    17595: 
1.1       misho    17596: #------------------------------------------------------------------------------
1.1.1.2   misho    17597: # $File: troff,v 1.10 2009/09/19 16:28:12 christos Exp $
1.1       misho    17598: # troff:  file(1) magic for *roff
                   17599: #
                   17600: # updated by Daniel Quinlan (quinlan@yggdrasil.com)
                   17601: 
                   17602: # troff input
                   17603: 0      search/1        .\\"            troff or preprocessor input text
                   17604: !:mime text/troff
                   17605: 0      search/1        '\\"            troff or preprocessor input text
                   17606: !:mime text/troff
                   17607: 0      search/1        '.\\"           troff or preprocessor input text
                   17608: !:mime text/troff
                   17609: 0      search/1        \\"             troff or preprocessor input text
                   17610: !:mime text/troff
                   17611: 0      search/1        '''             troff or preprocessor input text
                   17612: !:mime text/troff
1.1.1.2   misho    17613: 0      regex/20        \^\\.[A-Za-z0-9][A-Za-z0-9][\ \t]       troff or preprocessor input text
                   17614: !:mime text/troff
                   17615: 0      regex/20        \^\\.[A-Za-z0-9][A-Za-z0-9]$    troff or preprocessor input text
                   17616: !:mime text/troff
1.1       misho    17617: 
                   17618: # ditroff intermediate output text
                   17619: 0      search/1        x\ T            ditroff output text
                   17620: >4     search/1        cat             for the C/A/T phototypesetter
                   17621: >4     search/1        ps              for PostScript
                   17622: >4     search/1        dvi             for DVI
                   17623: >4     search/1        ascii           for ASCII
                   17624: >4     search/1        lj4             for LaserJet 4
                   17625: >4     search/1        latin1          for ISO 8859-1 (Latin 1)
                   17626: >4     search/1        X75             for xditview at 75dpi
                   17627: >>7    search/1        -12             (12pt)
                   17628: >4     search/1        X100            for xditview at 100dpi
                   17629: >>8    search/1        -12             (12pt)
                   17630: 
                   17631: # output data formats
                   17632: 0      string          \100\357        very old (C/A/T) troff output data
1.1.1.2   misho    17633: 
1.1       misho    17634: #------------------------------------------------------------------------------
1.1.1.2   misho    17635: # $File: tuxedo,v 1.4 2009/09/19 16:28:13 christos Exp $
1.1       misho    17636: # tuxedo:      file(1) magic for BEA TUXEDO data files
                   17637: #
                   17638: # from Ian Springer <ispringer@hotmail.com>
                   17639: #
                   17640: 0      string          \0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0      BEA TUXEDO DES mask data
                   17641: 
                   17642: #------------------------------------------------------------------------------
1.1.1.2   misho    17643: # $File: typeset,v 1.8 2009/09/19 16:28:13 christos Exp $
1.1       misho    17644: # typeset:  file(1) magic for other typesetting
                   17645: #
                   17646: 0      string          Interpress/Xerox        Xerox InterPress data
                   17647: >16    string          /                       (version
                   17648: >>17   string          >\0                     %s)
1.1.1.2   misho    17649: 
                   17650: #------------------------------------------------------------------------------
1.1.1.3   misho    17651: # $File: unicode,v 1.6 2010/09/20 18:55:20 rrt Exp $
1.1       misho    17652: # Unicode:  BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
                   17653: # GRR: These types should be recognised in file_ascmagic so these
                   17654: # encodings can be treated by text patterns.
                   17655: # Missing types are already dealt with internally.
                   17656: #
                   17657: 0      string  +/v8                    Unicode text, UTF-7
                   17658: 0      string  +/v9                    Unicode text, UTF-7
                   17659: 0      string  +/v+                    Unicode text, UTF-7
                   17660: 0      string  +/v/                    Unicode text, UTF-7
                   17661: 0      string  \335\163\146\163        Unicode text, UTF-8-EBCDIC
1.1.1.2   misho    17662: 0      string  \000\000\376\377        Unicode text, UTF-32, big-endian
1.1       misho    17663: 0      string  \377\376\000\000        Unicode text, UTF-32, little-endian
                   17664: 0      string  \016\376\377            Unicode text, SCSU (Standard Compression Scheme for Unicode)
                   17665: 
                   17666: #------------------------------------------------------------------------------
1.1.1.3   misho    17667: # $File: unknown,v 1.8 2013/01/09 22:37:24 christos Exp $
1.1       misho    17668: # unknown:  file(1) magic for unknown machines
                   17669: #
1.1.1.3   misho    17670: # 0x107 is 0407, 0x108 is 0410, and 0x109 is 0411; those are all PDP-11
                   17671: # (executable, pure, and split I&D, respectively), but the PDP-11 version
                   17672: # doesn't have the "version %ld", which may be a bogus COFFism (I don't
                   17673: # think there was ever COFF for the PDP-11).
1.1       misho    17674: #
                   17675: # 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
1.1.1.3   misho    17676: # long, as it would be on a VAX.  In any case, that could collide with
                   17677: # VAX demand-paged files, as the magic number is little-endian on those
                   17678: # binaries, so the first 16 bits of the file would contain 0x10B.
                   17679: #
                   17680: # Therefore, those entries are commented out.
                   17681: #
                   17682: # 0x10C is 0414 and 0x10E is 0416; those *are* unknown.
                   17683: #
                   17684: #0     short           0x107           unknown machine executable
                   17685: #>8    short           >0              not stripped
                   17686: #>15   byte            >0              - version %ld
                   17687: #0     short           0x108           unknown pure executable
                   17688: #>8    short           >0              not stripped
                   17689: #>15   byte            >0              - version %ld
                   17690: #0     short           0x109           PDP-11 separate I&D
                   17691: #>8    short           >0              not stripped
                   17692: #>15   byte            >0              - version %ld
                   17693: #0     short           0x10b           unknown pure executable
                   17694: #>8    short           >0              not stripped
                   17695: #>15   byte            >0              - version %ld
1.1       misho    17696: 0      long            0x10c           unknown demand paged pure executable
                   17697: >16    long            >0              not stripped
                   17698: 0      long            0x10e           unknown readable demand paged pure executable
1.1.1.2   misho    17699: 
1.1       misho    17700: #------------------------------------------------------------------------------
1.1.1.3   misho    17701: # $File: uterus,v 1.1 2012/12/18 18:53:32 christos Exp $
                   17702: # file(1) magic for uterus files
                   17703: # http://freecode.com/projects/uterus
                   17704: #
                   17705: 0      string          UTE+    uterus file
                   17706: >4     string          v       \b, version
                   17707: >5     byte            x       %c
                   17708: >6     string          .       \b.
                   17709: >7     byte            x       \b%c
                   17710: >8     string          \<\>    \b, big-endian
                   17711: >>16   belong          >0      \b, slut size %u
                   17712: >8     string          \>\<    \b, litte-endian
                   17713: >>16   lelong          >0      \b, slut size %u
                   17714: >10    byte            &8      \b, compressed
                   17715: 
                   17716: #------------------------------------------------------------------------------
1.1.1.2   misho    17717: # $File: uuencode,v 1.7 2009/09/19 16:28:13 christos Exp $
1.1       misho    17718: # uuencode:  file(1) magic for ASCII-encoded files
                   17719: #
                   17720: 
                   17721: # GRR:  the first line of xxencoded files is identical to that in uuencoded
                   17722: # files, but the first character in most subsequent lines is 'h' instead of
                   17723: # 'M'.  (xxencoding uses lowercase letters in place of most of uuencode's
                   17724: # punctuation and survives BITNET gateways better.)  If regular expressions
                   17725: # were supported, this entry could possibly be split into two with
                   17726: # "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs).
                   17727: 0      search/1        begin\          uuencoded or xxencoded text
                   17728: 
                   17729: # btoa(1) is an alternative to uuencode that requires less space.
                   17730: 0      search/1        xbtoa\ Begin    btoa'd text
                   17731: 
                   17732: # ship(1) is another, much cooler alternative to uuencode.
                   17733: # Greg Roelofs, newt@uchicago.edu
                   17734: 0      search/1        $\012ship       ship'd binary text
                   17735: 
                   17736: # bencode(8) is used to encode compressed news batches (Bnews/Cnews only?)
                   17737: # Greg Roelofs, newt@uchicago.edu
                   17738: 0      search/1        Decode\ the\ following\ with\ bdeco     bencoded News text
                   17739: 
                   17740: # BinHex is the Macintosh ASCII-encoded file format (see also "apple")
                   17741: # Daniel Quinlan, quinlan@yggdrasil.com
                   17742: 11     search/1        must\ be\ converted\ with\ BinHex       BinHex binary text
                   17743: >41    search/1        x                                       \b, version %.3s
                   17744: 
                   17745: # GRR: handle BASE64
                   17746: 
                   17747: #------------------------------------------------------------------------------
1.1.1.3   misho    17748: # $File: varied.out,v 1.22 2010/07/02 00:06:27 christos Exp $
1.1       misho    17749: # varied.out:  file(1) magic for various USG systems
                   17750: #
                   17751: #      Herewith many of the object file formats used by USG systems.
                   17752: #      Most have been moved to files for a particular processor,
                   17753: #      and deleted if they duplicate other entries.
                   17754: #
                   17755: 0      short           0610            Perkin-Elmer executable
                   17756: # AMD 29K
                   17757: 0      beshort         0572            amd 29k coff noprebar executable
                   17758: 0      beshort         01572           amd 29k coff prebar executable
                   17759: 0      beshort         0160007         amd 29k coff archive
                   17760: # Cray
                   17761: 6      beshort         0407            unicos (cray) executable
                   17762: # Ultrix 4.3
                   17763: 596    string          \130\337\377\377        Ultrix core file
                   17764: >600   string          >\0             from '%s'
                   17765: # BeOS and MAcOS PEF executables
                   17766: # From: hplus@zilker.net (Jon Watte)
                   17767: 0      string          Joy!peffpwpc    header for PowerPC PEF executable
                   17768: #
                   17769: # ava assembler/linker Uros Platise <uros.platise@ijs.si>
                   17770: 0       string          avaobj  AVR assembler object code
                   17771: >7      string          >\0     version '%s'
                   17772: # gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
                   17773: 0      string          gmon            GNU prof performance data
                   17774: >4     long            x               - version %ld
                   17775: # From: Dave Pearson <davep@davep.org>
1.1.1.3   misho    17776: # Harbour <URL:http://harbour-project.org/> HRB files.
1.1       misho    17777: 0      string          \xc0HRB         Harbour HRB file
1.1.1.3   misho    17778: >4     leshort         x               version %d
                   17779: # Harbour HBV files
                   17780: 0      string          \xc0HBV         Harbour variable dump file
                   17781: >4     leshort         x               version %d
1.1       misho    17782: 
                   17783: # From: Alex Beregszaszi <alex@fsn.hu>
                   17784: # 0    string          exec            BugOS executable
                   17785: # 0    string          pack            BugOS archive
                   17786: 
                   17787: # From: Jason Spence <jspence@lightconsulting.com>
                   17788: # Generated by the "examples" in STM's ST40 devkit, and derived code.
                   17789: 0      lelong          0x13a9f17e      ST40 component image format
                   17790: >4     string          >\0             \b, name '%s'
                   17791: 
                   17792: #------------------------------------------------------------------------------
1.1.1.3   misho    17793: # $File: varied.script,v 1.9 2011/12/16 16:32:48 rrt Exp $
1.1       misho    17794: # varied.script:  file(1) magic for various interpreter scripts
                   17795: 
1.1.1.3   misho    17796: 0      string/t                #!\ /                   a
1.1       misho    17797: >3     string          >\0                     %s script text executable
1.1.1.3   misho    17798: !:strength / 2
                   17799: 0      string/t                #!\t/                   a
1.1       misho    17800: >3     string          >\0                     %s script text executable
1.1.1.3   misho    17801: !:strength / 2
                   17802: 0      string/t                #!/                     a
1.1       misho    17803: >2     string          >\0                     %s script text executable
1.1.1.3   misho    17804: !:strength / 2
                   17805: 0      string/t                #!\                     script text executable
1.1       misho    17806: >3     string          >\0                     for %s
1.1.1.3   misho    17807: !:strength / 3
                   17808: 
                   17809: # using env
                   17810: 0      string/t        #!/usr/bin/env          a
                   17811: >15    string/t        >\0                     %s script text executable
                   17812: !:strength / 10
                   17813: 0      string/t        #!\ /usr/bin/env        a
                   17814: >16    string/t        >\0                     %s script text executable
                   17815: !:strength / 10
1.1       misho    17816: 
                   17817: # From: arno <arenevier@fdn.fr>
                   17818: # mozilla xpconnect typelib
                   17819: # see http://www.mozilla.org/scriptable/typelib_file.html
                   17820: 0      string          XPCOM\nTypeLib\r\n\032          XPConnect Typelib
                   17821: >0x10  byte        x       version %d
                   17822: >>0x11 byte        x      \b.%d
                   17823: 
                   17824: #------------------------------------------------------------------------------
1.1.1.3   misho    17825: # $File: vax,v 1.8 2013/01/09 22:37:24 christos Exp $
1.1       misho    17826: # vax:  file(1) magic for VAX executable/object and APL workspace
                   17827: #
                   17828: 0      lelong          0101557         VAX single precision APL workspace
                   17829: 0      lelong          0101556         VAX double precision APL workspace
                   17830: 
                   17831: #
1.1.1.3   misho    17832: # VAX a.out (BSD; others collide with 386 and other 32-bit little-endian
                   17833: # executables, and are handled in aout)
1.1       misho    17834: #
1.1.1.3   misho    17835: 0      lelong          0420            a.out VAX demand paged (first page unmapped) pure executable
1.1       misho    17836: >16    lelong          >0              not stripped
                   17837: 
                   17838: #
                   17839: # VAX COFF
                   17840: #
1.1.1.3   misho    17841: # The `versions' were commented out, but have been un-commented out.
1.1       misho    17842: # (Was the problem just one of endianness?)
                   17843: #
                   17844: 0      leshort         0570            VAX COFF executable
                   17845: >12    lelong          >0              not stripped
                   17846: >22    leshort         >0              - version %ld
                   17847: 0      leshort         0575            VAX COFF pure executable
                   17848: >12    lelong          >0              not stripped
                   17849: >22    leshort         >0              - version %ld
                   17850: 
                   17851: #------------------------------------------------------------------------------
1.1.1.2   misho    17852: # $File: vicar,v 1.4 2009/09/19 16:28:13 christos Exp $
1.1       misho    17853: # vicar:  file(1) magic for VICAR files.
                   17854: #
                   17855: # From: Ossama Othman <othman@astrosun.tn.cornell.edu
                   17856: # VICAR is JPL's in-house spacecraft image processing program
                   17857: # VICAR image
                   17858: 0      string  LBLSIZE=        VICAR image data
                   17859: >32    string  BYTE            \b, 8 bits  = VAX byte
                   17860: >32    string  HALF            \b, 16 bits = VAX word     = Fortran INTEGER*2
                   17861: >32    string  FULL            \b, 32 bits = VAX longword = Fortran INTEGER*4
                   17862: >32    string  REAL            \b, 32 bits = VAX longword = Fortran REAL*4
                   17863: >32    string  DOUB            \b, 64 bits = VAX quadword = Fortran REAL*8
                   17864: >32    string  COMPLEX         \b, 64 bits = VAX quadword = Fortran COMPLEX*8
                   17865: # VICAR label file
                   17866: 43     string  SFDU_LABEL      VICAR label file
1.1.1.2   misho    17867: 
1.1       misho    17868: #------------------------------------------------------------------------------
1.1.1.3   misho    17869: # $File: virtual,v 1.2 2011/11/22 13:30:05 christos Exp $
1.1.1.2   misho    17870: # From: James Nobis <quel@quelrod.net>
                   17871: # Microsoft hard disk images for:
                   17872: # Virtual Server
                   17873: # Virtual PC
                   17874: # http://technet.microsoft.com/en-us/virtualserver/bb676673.aspx
                   17875: # .vhd
                   17876: 0      string  conectix        Microsoft Disk Image, Virtual Server or Virtual PC
                   17877: 
                   17878: # Sun xVM VirtualBox Disk Image
1.1.1.3   misho    17879: # From: Richard W.M. Jones <rich@annexia.org>
                   17880: # VirtualBox Disk Image
                   17881: 0x40   ulelong         0xbeda107f      VirtualBox Disk Image
                   17882: >0x44  uleshort        >0              \b, major %u
                   17883: >0x46  uleshort        >0              \b, minor %u
1.1.1.2   misho    17884: 
                   17885: #------------------------------------------------------------------------------
                   17886: # $File: virtutech,v 1.4 2009/09/19 16:28:13 christos Exp $
1.1       misho    17887: # Virtutech Compressed Random Access File Format
                   17888: #
                   17889: # From <gustav@virtutech.com>
                   17890: 0      string          \211\277\036\203        Virtutech CRAFF
                   17891: >4     belong          x               v%d
                   17892: >20    belong          0               uncompressed
                   17893: >20    belong          1               bzipp2ed
                   17894: >20    belong          2               gzipped
                   17895: >24    belong          0               not clean
                   17896: 
                   17897: #------------------------------------------------------------------------------
1.1.1.2   misho    17898: # $File: visx,v 1.5 2009/09/19 16:28:13 christos Exp $
1.1       misho    17899: # visx:  file(1) magic for Visx format files
                   17900: #
                   17901: 0      short           0x5555          VISX image file
                   17902: >2     byte            0               (zero)
                   17903: >2     byte            1               (unsigned char)
                   17904: >2     byte            2               (short integer)
                   17905: >2     byte            3               (float 32)
                   17906: >2     byte            4               (float 64)
                   17907: >2     byte            5               (signed char)
                   17908: >2     byte            6               (bit-plane)
                   17909: >2     byte            7               (classes)
                   17910: >2     byte            8               (statistics)
                   17911: >2     byte            10              (ascii text)
                   17912: >2     byte            15              (image segments)
                   17913: >2     byte            100             (image set)
                   17914: >2     byte            101             (unsigned char vector)
                   17915: >2     byte            102             (short integer vector)
                   17916: >2     byte            103             (float 32 vector)
                   17917: >2     byte            104             (float 64 vector)
                   17918: >2     byte            105             (signed char vector)
                   17919: >2     byte            106             (bit plane vector)
                   17920: >2     byte            121             (feature vector)
                   17921: >2     byte            122             (feature vector library)
                   17922: >2     byte            124             (chain code)
                   17923: >2     byte            126             (bit vector)
                   17924: >2     byte            130             (graph)
                   17925: >2     byte            131             (adjacency graph)
                   17926: >2     byte            132             (adjacency graph library)
                   17927: >2     string          .VISIX          (ascii text)
                   17928: 
                   17929: #------------------------------------------------------------------------------
1.1.1.3   misho    17930: # $File: vms,v 1.7 2013/03/09 22:36:00 christos Exp $
1.1       misho    17931: # vms:  file(1) magic for VMS executables (experimental)
                   17932: #
                   17933: # VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
                   17934: 
                   17935: # GRR 950122:  I'm just guessing on these, based on inspection of the headers
                   17936: # of three executables each for Alpha and VAX architectures.  The VAX files
                   17937: # all had headers similar to this:
                   17938: #
                   17939: #   00000  b0 00 30 00 44 00 60 00  00 00 00 00 30 32 30 35  ..0.D.`.....0205
                   17940: #   00010  01 01 00 00 ff ff ff ff  ff ff ff ff 00 00 00 00  ................
                   17941: #
                   17942: 0      string  \xb0\0\x30\0    VMS VAX executable
                   17943: >44032 string  PK\003\004      \b, Info-ZIP SFX archive v5.12 w/decryption
                   17944: #
                   17945: # The AXP files all looked like this, except that the byte at offset 0x22
                   17946: # was 06 in some of them and 07 in others:
                   17947: #
                   17948: #   00000  03 00 00 00 00 00 00 00  ec 02 00 00 10 01 00 00  ................
                   17949: #   00010  68 00 00 00 98 00 00 00  b8 00 00 00 00 00 00 00  h...............
                   17950: #   00020  00 00 07 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
                   17951: #   00030  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
                   17952: #   00040  00 00 00 00 ff ff ff ff  ff ff ff ff 02 00 00 00  ................
                   17953: #
1.1.1.3   misho    17954: # GRR this test is still too general as it catches example addressen.dbt
                   17955: 0      belong  0x03000000      
                   17956: >8     ubelong 0xec020000      VMS Alpha executable
                   17957: >>75264        string  PK\003\004      \b, Info-ZIP SFX archive v5.12 w/decryption
1.1       misho    17958: 
1.1.1.2   misho    17959: #------------------------------------------------------------------------------
                   17960: # $File: vmware,v 1.7 2009/09/19 16:28:13 christos Exp $
1.1       misho    17961: # VMware specific files (deducted from version 1.1 and log file entries)
                   17962: # Anthon van der Neut (anthon@mnt.org)
                   17963: 0      belong  0x4d52564e      VMware nvram 
                   17964: 
                   17965: #------------------------------------------------------------------------------
1.1.1.2   misho    17966: # $File: vorbis,v 1.16 2009/09/19 16:28:13 christos Exp $
1.1       misho    17967: # vorbis:  file(1) magic for Ogg/Vorbis files
                   17968: #
                   17969: # From Felix von Leitner <leitner@fefe.de>
                   17970: # Extended by Beni Cherniavsky <cben@crosswinds.net>
                   17971: # Further extended by Greg Wooledge <greg@wooledge.org>
                   17972: #
                   17973: # Most (everything but the number of channels and bitrate) is commented
                   17974: # out with `##' as it's not interesting to the average user.  The most
                   17975: # probable things advanced users would want to uncomment are probably
                   17976: # the number of comments and the encoder version.
                   17977: #
                   17978: # FIXME: The first match has been made a search, so that it can skip
                   17979: # over prepended ID3 tags. This will work for MIME type detection, but
                   17980: # won't work for detecting other properties of the file (they all need
                   17981: # to be made relative to the search). In any case, if the file has ID3
                   17982: # tags, the ID3 information will be printed, not the Ogg information,
                   17983: # so until that's fixed, this doesn't matter.
                   17984: # FIXME[2]: Disable the above for now, since search assumes text mode.
                   17985: #
                   17986: # --- Ogg Framing ---
                   17987: #0             search/1000     OggS            Ogg data
                   17988: 0              string  OggS            Ogg data
                   17989: !:mime         application/ogg
                   17990: >4             byte            !0              UNKNOWN REVISION %u
                   17991: ##>4           byte            0               revision 0
                   17992: >4             byte            0
                   17993: ##>>14         lelong          x               (Serial %lX)
                   17994: # non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
                   17995: >>28           string          \x7fFLAC        \b, FLAC audio
                   17996: # non-Vorbis content: Theora
                   17997: >>28           string          \x80theora      \b, Theora video
                   17998: # non-Vorbis content: Kate
                   17999: >>28           string          \x80kate\0\0\0\0        \b, Kate
                   18000: >>>37          ubyte           x               v%u
                   18001: >>>38          ubyte           x               \b.%u,
                   18002: >>>40          byte            0               utf8 encoding,
                   18003: >>>40          byte            !0              unknown character encoding,
                   18004: >>>60          string          >\0             language %s,
                   18005: >>>60          string          \0              no language set,
                   18006: >>>76          string          >\0             category %s
                   18007: >>>76          string          \0              no category set
                   18008: # non-Vorbis content: Skeleton
                   18009: >>28           string          fishead\0       \b, Skeleton
                   18010: >>>36          short           x               v%u
                   18011: >>>40          short           x               \b.%u
                   18012: # non-Vorbis content: Speex
                   18013: >>28           string          Speex\ \ \      \b, Speex audio
                   18014: # non-Vorbis content: OGM
                   18015: >>28           string          \x01video\0\0\0 \b, OGM video
                   18016: >>>37          string/c        div3            (DivX 3)
                   18017: >>>37          string/c        divx            (DivX 4)
                   18018: >>>37          string/c        dx50            (DivX 5)
                   18019: >>>37          string/c        xvid            (XviD)
                   18020: # --- First vorbis packet - general header ---
                   18021: >>28           string          \x01vorbis      \b, Vorbis audio,
                   18022: >>>35          lelong          !0              UNKNOWN VERSION %lu,
                   18023: ##>>>35                lelong          0               version 0,
                   18024: >>>35          lelong          0
                   18025: >>>>39         ubyte           1               mono,
                   18026: >>>>39         ubyte           2               stereo,
                   18027: >>>>39         ubyte           >2              %u channels,
                   18028: >>>>40         lelong          x               %lu Hz
                   18029: # Minimal, nominal and maximal bitrates specified when encoding
                   18030: >>>>48         string          <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff       \b,
                   18031: # The above tests if at least one of these is specified:
                   18032: >>>>>52                lelong          !-1
                   18033: # Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
                   18034: # instead of -1.
                   18035: # Vorbis 1.0 uses 0 instead of -1.
                   18036: >>>>>>52       lelong          !0
                   18037: >>>>>>>52      lelong          !-1000
                   18038: >>>>>>>>52     lelong          x               <%lu
                   18039: >>>>>48                lelong          !-1
                   18040: >>>>>>48       lelong          x               ~%lu
                   18041: >>>>>44                lelong          !-1
                   18042: >>>>>>44       lelong          !-1000
                   18043: >>>>>>>44      lelong          !0
                   18044: >>>>>>>>44     lelong          x               >%lu
                   18045: >>>>>48                string          <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff       bps
                   18046: # -- Second vorbis header packet - the comments
                   18047: # A kludge to read the vendor string.  It's a counted string, not a
                   18048: # zero-terminated one, so file(1) can't read it in a generic way.
                   18049: # libVorbis is the only one existing currently, so I detect specifically
                   18050: # it.  The interesting value is the cvs date (8 digits decimal).
                   18051: # Post-RC1 Ogg files have the second header packet (and thus the version)
                   18052: # in a different place, so we must use an indirect offset.
                   18053: >>>(84.b+85)           string          \x03vorbis
                   18054: >>>>(84.b+96)          string/c        Xiphophorus\ libVorbis\ I       \b, created by: Xiphophorus libVorbis I
                   18055: >>>>>(84.b+120)                string          >00000000       
                   18056: # Map to beta version numbers:
                   18057: >>>>>>(84.b+120)       string          <20000508       (<beta1, prepublic)
                   18058: >>>>>>(84.b+120)       string          20000508        (1.0 beta 1 or beta 2)
                   18059: >>>>>>(84.b+120)       string          >20000508
                   18060: >>>>>>>(84.b+120)      string          <20001031       (beta2-3)
                   18061: >>>>>>(84.b+120)       string          20001031        (1.0 beta 3)
                   18062: >>>>>>(84.b+120)       string          >20001031
                   18063: >>>>>>>(84.b+120)      string          <20010225       (beta3-4)
                   18064: >>>>>>(84.b+120)       string          20010225        (1.0 beta 4)
                   18065: >>>>>>(84.b+120)       string          >20010225
                   18066: >>>>>>>(84.b+120)      string          <20010615       (beta4-RC1)
                   18067: >>>>>>(84.b+120)       string          20010615        (1.0 RC1)
                   18068: >>>>>>(84.b+120)       string          20010813        (1.0 RC2)
                   18069: >>>>>>(84.b+120)       string          20010816        (RC2 - Garf tuned v1)
                   18070: >>>>>>(84.b+120)       string          20011014        (RC2 - Garf tuned v2)
                   18071: >>>>>>(84.b+120)       string          20011217        (1.0 RC3)
                   18072: >>>>>>(84.b+120)       string          20011231        (1.0 RC3)
                   18073: # Some pre-1.0 CVS snapshots still had "Xiphphorus"...
                   18074: >>>>>>(84.b+120)       string          >20011231       (pre-1.0 CVS)
                   18075: # For the 1.0 release, Xiphophorus is replaced by Xiph.Org
                   18076: >>>>(84.b+96)          string/c        Xiph.Org\ libVorbis\ I  \b, created by: Xiph.Org libVorbis I
                   18077: >>>>>(84.b+117)                string          >00000000       
                   18078: >>>>>>(84.b+117)       string          <20020717       (pre-1.0 CVS)
                   18079: >>>>>>(84.b+117)       string          20020717        (1.0)
                   18080: >>>>>>(84.b+117)       string          20030909        (1.0.1)
                   18081: >>>>>>(84.b+117)       string          20040629        (1.1.0 RC1)
                   18082: 
                   18083: #------------------------------------------------------------------------------
1.1.1.2   misho    18084: # $File: vxl,v 1.4 2009/09/19 16:28:13 christos Exp $
1.1       misho    18085: # VXL: file(1) magic for VXL binary IO data files
                   18086: #
                   18087: # from Ian Scott <scottim@sf.net>
                   18088: #
                   18089: # VXL is a collection of C++ libraries for Computer Vision.
                   18090: # See the vsl chapter in the VXL Book for more info
                   18091: # http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
                   18092: # http:/vxl.sf.net
                   18093: 
                   18094: 2      lelong  0x472b2c4e      VXL data file,
                   18095: >0     leshort >0              schema version no %d
                   18096: 
                   18097: #------------------------------------------------------------------------------
1.1.1.3   misho    18098: # $File: warc,v 1.3 2010/11/25 15:05:43 christos Exp $
1.1       misho    18099: # warc:  file(1) magic for WARC files
                   18100: 
                   18101: 0      string  WARC/   WARC Archive
                   18102: >5     string  x       version %.4s
1.1.1.3   misho    18103: !:mime application/warc
                   18104: 
                   18105: #------------------------------------------------------------------------------
                   18106: # Arc File Format from Internet Archive
                   18107: # see http://www.archive.org/web/researcher/ArcFileFormat.php
                   18108: 0      string          filedesc://     Internet Archive File
                   18109: !:mime application/x-ia-arc
                   18110: >11    search/256      \x0A    \b
                   18111: >>&0   ubyte   >0      \b version %c
1.1.1.2   misho    18112: 
1.1       misho    18113: #------------------------------------------------------------------------------
                   18114: # weak:  file(1) magic for very weak magic entries, disabled by default
                   18115: #
                   18116: # These entries are so weak that they might interfere identification of
                   18117: # other formats. Example include:
                   18118: # - Only identify for 1 or 2 bytes
                   18119: # - Match against very wide range of values
                   18120: # - Match against generic word in some spoken languages (e.g. English)
                   18121: 
                   18122: # Summary: Computer Graphics Metafile
                   18123: # Extension: .cgm
                   18124: #0     beshort&0xffe0  0x0020          binary Computer Graphics Metafile
                   18125: #0     beshort         0x3020          character Computer Graphics Metafile
                   18126: 
                   18127: #0     string          =!!             Bennet Yee's "face" format
                   18128: 
                   18129: #------------------------------------------------------------------------------
1.1.1.3   misho    18130: # $File: windows,v 1.5 2012/04/03 22:25:07 christos Exp $
1.1       misho    18131: # windows:  file(1) magic for Microsoft Windows
                   18132: #
                   18133: # This file is mainly reserved for files where programs
                   18134: # using them are run almost always on MS Windows 3.x or
                   18135: # above, or files only used exclusively in Windows OS,
                   18136: # where there is no better category to allocate for.
                   18137: # For example, even though WinZIP almost run on Windows
                   18138: # only, it is better to treat them as "archive" instead.
                   18139: # For format usable in DOS, such as generic executable
                   18140: # format, please specify under "msdos" file.
                   18141: #
                   18142: 
                   18143: 
                   18144: # Summary: Outlook Express DBX file
                   18145: # Extension: .dbx
                   18146: # Created by: Christophe Monniez
                   18147: 0      string  \xCF\xAD\x12\xFE        MS Outlook Express DBX file
                   18148: >4     byte    =0xC5                   \b, message database
                   18149: >4     byte    =0xC6                   \b, folder database
                   18150: >4     byte    =0xC7                   \b, account information
                   18151: >4     byte    =0x30                   \b, offline database
                   18152: 
                   18153: 
                   18154: # Summary: Windows crash dump
                   18155: # Extension: .dmp
                   18156: # Created by: Andreas Schuster (http://computer.forensikblog.de/)
                   18157: # Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
                   18158: # Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
                   18159: 0      string          PAGE            
                   18160: >4     string          DUMP            MS Windows 32bit crash dump
                   18161: >>0x05c        byte            0               \b, no PAE
                   18162: >>0x05c        byte            1               \b, PAE
                   18163: >>0xf88        lelong          1               \b, full dump
                   18164: >>0xf88        lelong          2               \b, kernel dump
                   18165: >>0xf88        lelong          3               \b, small dump
                   18166: >>0x068        lelong          x               \b, %ld pages
                   18167: >4     string          DU64            MS Windows 64bit crash dump
                   18168: >>0xf98        lelong          1               \b, full dump
                   18169: >>0xf98        lelong          2               \b, kernel dump
                   18170: >>0xf98        lelong          3               \b, small dump
                   18171: >>0x090        lequad          x               \b, %lld pages
                   18172: 
                   18173: 
                   18174: # Summary: Vista Event Log
                   18175: # Extension: .evtx
                   18176: # Created by: Andreas Schuster (http://computer.forensikblog.de/)
                   18177: # Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
                   18178: 0      string          ElfFile\0       MS Windows Vista Event Log
                   18179: >0x2a  leshort         x               \b, %d chunks
                   18180: >>0x10 lelong          x               \b (no. %d in use)
                   18181: >0x18  lelong          >1              \b, next record no. %d
                   18182: >0x18  lelong          =1              \b, empty
                   18183: >0x78  lelong          &1              \b, DIRTY
                   18184: >0x78  lelong          &2              \b, FULL
                   18185: 
                   18186: 
                   18187: # Summary: Windows 3.1 group files
                   18188: # Extension: .grp
                   18189: # Created by: unknown
                   18190: 0      string          \120\115\103\103        MS Windows 3.1 group files
                   18191: 
                   18192: 
                   18193: # Summary: Old format help files
                   18194: # Extension: .hlp
                   18195: # Created by: Dirk Jagdmann <doj@cubic.org>
                   18196: 0      lelong          0x00035f3f              MS Windows 3.x help file
                   18197: 
                   18198: 
                   18199: # Summary: Hyper terminal
                   18200: # Extension: .ht
                   18201: # Created by: unknown
                   18202: 0      string          HyperTerminal\ 
                   18203: >15    string          1.0\ --\ HyperTerminal\ data\ file      MS Windows HyperTerminal profile
                   18204: 
1.1.1.3   misho    18205: # http://ithreats.files.wordpress.com/2009/05/\
                   18206: # lnk_the_windows_shortcut_file_format.pdf
1.1       misho    18207: # Summary: Windows shortcut
                   18208: # Extension: .lnk
                   18209: # Created by: unknown
1.1.1.3   misho    18210: # 'L' + GUUID
1.1       misho    18211: 0      string          \114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106    MS Windows shortcut
1.1.1.3   misho    18212: >20    lelong&1        1       \b, Item id list present
                   18213: >20    lelong&2        2       \b, Points to a file or directory
                   18214: >20    lelong&4        4       \b, Has Description string
                   18215: >20    lelong&8        8       \b, Has Relative path
                   18216: >20    lelong&16       16      \b, Has Working directory
                   18217: >20    lelong&32       32      \b, Has command line arguments
                   18218: >20    lelong&64       64      \b, Icon
                   18219: >>56   lelong                  \b number=%d
                   18220: >24    lelong&1        1       \b, Read-Only
                   18221: >24    lelong&2        2       \b, Hidden
                   18222: >24    lelong&4        4       \b, System
                   18223: >24    lelong&8        8       \b, Volume Label
                   18224: >24    lelong&16       16      \b, Directory
                   18225: >24    lelong&32       32      \b, Archive
                   18226: >24    lelong&64       64      \b, Encrypted
                   18227: >24    lelong&128      128     \b, Normal
                   18228: >24    lelong&256      256     \b, Temporary
                   18229: >24    lelong&512      512     \b, Sparse
                   18230: >24    lelong&1024     1024    \b, Reparse point
                   18231: >24    lelong&2048     2048    \b, Compressed
                   18232: >24    lelong&4096     4096    \b, Offline
                   18233: >28    leqwdate        x       \b, ctime=%s
                   18234: >36    leqwdate        x       \b, mtime=%s
                   18235: >44    leqwdate        x       \b, atime=%s
                   18236: >52    lelong          x       \b, length=%u, window=
                   18237: >60    lelong&1        1       \bhide
                   18238: >60    lelong&2        2       \bnormal
                   18239: >60    lelong&4        4       \bshowminimized
                   18240: >60    lelong&8        8       \bshowmaximized
                   18241: >60    lelong&16       16      \bshownoactivate
                   18242: >60    lelong&32       32      \bminimize
                   18243: >60    lelong&64       64      \bshowminnoactive
                   18244: >60    lelong&128      128     \bshowna
                   18245: >60    lelong&256      256     \brestore
                   18246: >60    lelong&512      512     \bshowdefault
                   18247: #>20   lelong&1        0
                   18248: #>>20  lelong&2        2
                   18249: #>>>(72.l-64)  pstring/h       x       \b [%s]
                   18250: #>20   lelong&1        1
                   18251: #>>20  lelong&2        2
                   18252: #>>>(72.s)     leshort x
                   18253: #>>>&75        pstring/h       x       \b [%s]
1.1       misho    18254: 
                   18255: # Summary: Outlook Personal Folders
                   18256: # Created by: unknown
                   18257: 0      lelong          0x4E444221      Microsoft Outlook email folder
                   18258: >10    leshort         0x0e            (<=2002)
                   18259: >10    leshort         0x17            (>=2003)
                   18260: 
                   18261: 
                   18262: # Summary: Windows help cache
                   18263: # Created by: unknown
                   18264: 0      string          \164\146\115\122\012\000\000\000\001\000\000\000        MS Windows help cache
                   18265: 
                   18266: 
                   18267: # Summary: IE cache file
                   18268: # Created by: Christophe Monniez
                   18269: 0      string  Client\ UrlCache\ MMF   Internet Explorer cache file
                   18270: >20    string  >\0                     version %s
                   18271: 
                   18272: 
                   18273: # Summary: Registry files
                   18274: # Created by: unknown
                   18275: # Modified by (1): Joerg Jenderek
                   18276: 0      string          regf            MS Windows registry file, NT/2000 or above
                   18277: 0      string          CREG            MS Windows 95/98/ME registry file
                   18278: 0      string          SHCC3           MS Windows 3.1 registry file
                   18279: 
                   18280: 
                   18281: # Summary: Windows Registry text
                   18282: # Extension: .reg
                   18283: # Submitted by: Abel Cheung <abelcheung@gmail.com>
                   18284: 0      string          REGEDIT4\r\n\r\n        Windows Registry text (Win95 or above)
                   18285: 0      string          Windows\ Registry\ Editor\ 
                   18286: >&0    string          Version\ 5.00\r\n\r\n   Windows Registry text (Win2K or above)
1.1.1.2   misho    18287: 
                   18288: 
                   18289: # From: Pal Tamas <folti@balabit.hu>
                   18290: # Autorun File
                   18291: 0       string/c          [autorun]\r\n   Microsoft Windows Autorun file.
                   18292: !:mime application/x-setupscript. 
                   18293: 
1.1       misho    18294: #------------------------------------------------------------------------------
1.1.1.2   misho    18295: # $File: wireless,v 1.2 2009/09/19 16:28:13 christos Exp $
                   18296: # wireless-regdb:        file(1) magic for CRDA wireless-regdb file format
                   18297: #
                   18298: 0      string  RGDB    CRDA wireless regulatory database file
                   18299: >4     belong  19      (Version 1)
                   18300: 
                   18301: #------------------------------------------------------------------------------
1.1.1.3   misho    18302: # $File: wordprocessors,v 1.17 2013/02/06 14:18:52 christos Exp $
1.1       misho    18303: # wordprocessors:  file(1) magic fo word processors.
                   18304: #
                   18305: ####### PWP file format used on Smith Corona Personal Word Processors:
                   18306: 2      string  \040\040\040\040\040\040\040\040\040\040\040ML4D\040'92 Smith Corona PWP
                   18307: >24    byte    2       \b, single spaced
                   18308: >24    byte    3       \b, 1.5 spaced
                   18309: >24    byte    4       \b, double spaced
                   18310: >25    byte    0x42    \b, letter
                   18311: >25    byte    0x54    \b, legal
                   18312: >26    byte    0x46    \b, A4
                   18313: 
                   18314: #WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
                   18315: 0      string  \377WPC\020\000\000\000\022\012\001\001\000\000\000\000 (WP) loadable file
                   18316: >15    byte    0       Optimized for Intel
                   18317: >15    byte    1       Optimized for Non-Intel
                   18318: 1      string  WPC     (Corel/WP)
                   18319: >8     short   257     WordPerfect macro
                   18320: >8     short   258     WordPerfect help file
                   18321: >8     short   259     WordPerfect keyboard file
                   18322: >8     short   266     WordPerfect document
                   18323: >8     short   267     WordPerfect dictionary
                   18324: >8     short   268     WordPerfect thesaurus
                   18325: >8     short   269     WordPerfect block
                   18326: >8     short   270     WordPerfect rectangular block
                   18327: >8     short   271     WordPerfect column block
                   18328: >8     short   272     WordPerfect printer data
                   18329: >8     short   275     WordPerfect printer data
                   18330: >8     short   276     WordPerfect driver resource data
                   18331: >8     short   279     WordPerfect hyphenation code
                   18332: >8     short   280     WordPerfect hyphenation data
                   18333: >8     short   281     WordPerfect macro resource data
                   18334: >8     short   283     WordPerfect hyphenation lex
                   18335: >8     short   285     WordPerfect wordlist
                   18336: >8     short   286     WordPerfect equation resource data
                   18337: >8     short   289     WordPerfect spell rules
                   18338: >8     short   290     WordPerfect dictionary rules
                   18339: >8     short   295     WordPerfect spell rules (Microlytics)
                   18340: >8     short   299     WordPerfect settings file
                   18341: >8     short   301     WordPerfect 4.2 document
                   18342: >8     short   325     WordPerfect dialog file
                   18343: >8     short   332     WordPerfect button bar
                   18344: >8     short   513     Shell macro
                   18345: >8     short   522     Shell definition
                   18346: >8     short   769     Notebook macro
                   18347: >8     short   770     Notebook help file
                   18348: >8     short   771     Notebook keyboard file
                   18349: >8     short   778     Notebook definition
                   18350: >8     short   1026    Calculator help file
                   18351: >8     short   1538    Calendar help file
                   18352: >8     short   1546    Calendar data file
                   18353: >8     short   1793    Editor macro
                   18354: >8     short   1794    Editor help file
                   18355: >8     short   1795    Editor keyboard file
                   18356: >8     short   1817    Editor macro resource file
                   18357: >8     short   2049    Macro editor macro
                   18358: >8     short   2050    Macro editor help file
                   18359: >8     short   2051    Macro editor keyboard file
                   18360: >8     short   2305    PlanPerfect macro
                   18361: >8     short   2306    PlanPerfect help file
                   18362: >8     short   2307    PlanPerfect keyboard file
                   18363: >8     short   2314    PlanPerfect worksheet
                   18364: >8     short   2319    PlanPerfect printer definition
                   18365: >8     short   2322    PlanPerfect graphic definition
                   18366: >8     short   2323    PlanPerfect data
                   18367: >8     short   2324    PlanPerfect temporary printer
                   18368: >8     short   2329    PlanPerfect macro resource data
                   18369: >8     byte    11      Mail
                   18370: >8     short   2818    help file
                   18371: >8     short   2821    distribution list
                   18372: >8     short   2826    out box
                   18373: >8     short   2827    in box
                   18374: >8     short   2836    users archived mailbox
                   18375: >8     short   2837    archived message database
                   18376: >8     short   2838    archived attachments
                   18377: >8     short   3083    Printer temporary file
                   18378: >8     short   3330    Scheduler help file
                   18379: >8     short   3338    Scheduler in file
                   18380: >8     short   3339    Scheduler out file
                   18381: >8     short   3594    GroupWise settings file
                   18382: >8     short   3601    GroupWise directory services
                   18383: >8     short   3627    GroupWise settings file
                   18384: >8     short   4362    Terminal resource data
                   18385: >8     short   4363    Terminal resource data
                   18386: >8     short   4395    Terminal resource data
                   18387: >8     short   4619    GUI loadable text
                   18388: >8     short   4620    graphics resource data
                   18389: >8     short   4621    printer settings file
                   18390: >8     short   4622    port definition file
                   18391: >8     short   4623    print queue parameters
                   18392: >8     short   4624    compressed file
                   18393: >8     short   5130    Network service msg file
                   18394: >8     short   5131    Network service msg file
                   18395: >8     short   5132    Async gateway login msg
                   18396: >8     short   5134    GroupWise message file
                   18397: >8     short   7956    GroupWise admin domain database
                   18398: >8     short   7957    GroupWise admin host database
                   18399: >8     short   7959    GroupWise admin remote host database
                   18400: >8     short   7960    GroupWise admin ADS deferment data file
                   18401: >8     short   8458    IntelliTAG (SGML) compiled DTD
                   18402: >8     long    18219264        WordPerfect graphic image (1.0)
                   18403: >8     long    18219520        WordPerfect graphic image (2.0)
                   18404: #end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
                   18405: 
                   18406: # Hangul (Korean) Word Processor File
                   18407: 0      string  HWP\ Document\ File     Hangul (Korean) Word Processor File 3.0
                   18408: # From: Won-Kyu Park <wkpark@kldp.org>
                   18409: 512    string          R\0o\0o\0t\0    Hangul (Korean) Word Processor File 2000
                   18410: !:mime application/x-hwp
                   18411: 
1.1.1.3   misho    18412: # CosmicBook, from Benoit Rouits
1.1       misho    18413: 0       string  CSBK    Ted Neslson's CosmicBook hypertext file
                   18414: 
                   18415: 2       string  EYWR    AmigaWriter file
                   18416: 
                   18417: # chi:  file(1) magic for ChiWriter files
                   18418: 0       string          \\1cw\          ChiWriter file
                   18419: >5      string          >\0             version %s
                   18420: 0       string          \\1cw           ChiWriter file
                   18421: 
                   18422: # Quark Express from http://www.garykessler.net/library/file_sigs.html
                   18423: 2      string  IIXPR3                  Intel Quark Express Document (English)
                   18424: 2      string  IIXPRa                  Intel Quark Express Document (Korean)
                   18425: 2      string  MMXPR3                  Motorola Quark Express Document (English)
                   18426: !:mime application/x-quark-xpress-3
                   18427: 2      string  MMXPRa                  Motorola Quark Express Document (Korean)
                   18428: 
                   18429: # adobe indesign (document, whatever...) from querkan
                   18430: 0      belong  0x0606edf5              Adobe InDesign
                   18431: >16    string  DOCUMENT                Document
                   18432: 
                   18433: #------------------------------------------------------------------------------
                   18434: # ichitaro456: file(1) magic for Just System Word Processor Ichitaro
                   18435: #
                   18436: # Contributor kenzo-:
                   18437: # Reversed-engineered JS Ichitaro magic numbers
                   18438: #
                   18439: 
                   18440: 0      string          DOC
                   18441: >43    byte            0x14    Just System Word Processor Ichitaro v4
                   18442: !:mime application/x-ichitaro4
                   18443: >144   string  JDASH           application/x-ichitaro4
                   18444: 
                   18445: 0      string          DOC
                   18446: >43    byte            0x15    Just System Word Processor Ichitaro v5
                   18447: !:mime application/x-ichitaro5
                   18448: 
                   18449: 0      string          DOC
                   18450: >43    byte            0x16    Just System Word Processor Ichitaro v6
                   18451: !:mime application/x-ichitaro6
                   18452: 
                   18453: # Type: Freemind mindmap documents
                   18454: # From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
1.1.1.2   misho    18455: 0      string/w        \<map\ version  Freemind document
1.1       misho    18456: !:mime application/x-freemind
                   18457: 
                   18458: # Type:        Scribus
                   18459: # From:        Werner Fink <werner@suse.de>
                   18460: 0      string  \<SCRIBUSUTF8\ Version          Scribus Document
                   18461: 0      string  \<SCRIBUSUTF8NEW\ Version       Scribus Document
                   18462: !:mime application/x-scribus
                   18463: 
1.1.1.3   misho    18464: # help files .hlp compiled from html and used by gfxboot added by Joerg Jenderek
                   18465: # markups page=0x04,label=0x12, followed by strings like "opt" or "main" and title=0x14
                   18466: 0      ulelong&0x8080FFFF      0x00001204      gfxboot compiled html help file
                   18467: 
                   18468: #------------------------------------------------------------------------------
                   18469: # $File: wsdl,v 1.3 2013/02/06 14:18:52 christos Exp $
                   18470: # wsdl: PHP WSDL Cache, http://www.php.net/manual/en/book.soap.php
                   18471: # Cache format extracted from source:
                   18472: # http://svn.php.net/viewvc/php/php-src/trunk/ext/soap/php_sdl.c?revision=HEAD&view=markup
                   18473: # Requires file >= 5.05, see http://mx.gw.com/pipermail/file/2010/000683.html
                   18474: # By Elan Ruusamae <glen@delfi.ee>, Patryk Zawadzki <patrys@pld-linux.org>, 2010-2011
                   18475: 0              string          wsdl            PHP WSDL cache,
                   18476: >4             byte            x               version 0x%02x
                   18477: >6             ledate          x               \b, created %s
                   18478: 
                   18479: # uri
                   18480: >10            lelong          <0x7fffffff
                   18481: >>10           pstring/l       x               \b, uri: "%s"
                   18482: 
                   18483: # source
                   18484: >>>&0          lelong          <0x7fffffff
                   18485: >>>>&-4                pstring/l       x               \b, source: "%s"
                   18486: 
                   18487: # target_ns
                   18488: >>>>>&0                lelong          <0x7fffffff
                   18489: >>>>>>&-4      pstring/l       x               \b, target_ns: "%s"
                   18490: 
1.1       misho    18491: #------------------------------------------------------------------------------
1.1.1.3   misho    18492: # $File: xdelta,v 1.5 2011/08/08 09:01:05 christos Exp $
1.1       misho    18493: # file(1) magic(5) data for xdelta  Josh MacDonald <jmacd@CS.Berkeley.EDU>
                   18494: #
                   18495: 0      string  %XDELTA%        XDelta binary patch file 0.14
                   18496: 0      string  %XDZ000%        XDelta binary patch file 0.18
                   18497: 0      string  %XDZ001%        XDelta binary patch file 0.20
                   18498: 0      string  %XDZ002%        XDelta binary patch file 1.0
                   18499: 0      string  %XDZ003%        XDelta binary patch file 1.0.4
                   18500: 0      string  %XDZ004%        XDelta binary patch file 1.1
                   18501: 
1.1.1.3   misho    18502: 0      string \xD6\xC3\xC4\x00 VCDIFF binary diff
                   18503: 
1.1       misho    18504: #------------------------------------------------------------------------------
1.1.1.2   misho    18505: # $File: xenix,v 1.9 2009/09/19 16:28:13 christos Exp $
1.1       misho    18506: # xenix:  file(1) magic for Microsoft Xenix
                   18507: #
                   18508: # "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
                   18509: # model" lifted from "magic.xenix", with comment "derived empirically;
                   18510: # treat as folklore until proven"
                   18511: #
                   18512: # "small model", "large model", "huge model" stuff lifted from XXX
                   18513: #
                   18514: # XXX - "x.out" collides with PDP-11 archives
                   18515: #
                   18516: 0      string          core            core file (Xenix)
                   18517: 0      byte            0x80            8086 relocatable (Microsoft)
                   18518: 0      leshort         0xff65          x.out
                   18519: >2     string          __.SYMDEF        randomized
                   18520: >0     byte            x               archive
                   18521: 0      leshort         0x206           Microsoft a.out
                   18522: >8     leshort         1               Middle model
                   18523: >0x1e  leshort         &0x10           overlay
                   18524: >0x1e  leshort         &0x2            separate
                   18525: >0x1e  leshort         &0x4            pure
                   18526: >0x1e  leshort         &0x800          segmented
                   18527: >0x1e  leshort         &0x400          standalone
                   18528: >0x1e  leshort         &0x8            fixed-stack
                   18529: >0x1c  byte            &0x80           byte-swapped
                   18530: >0x1c  byte            &0x40           word-swapped
                   18531: >0x10  lelong          >0              not-stripped
                   18532: >0x1e  leshort         ^0xc000         pre-SysV
                   18533: >0x1e  leshort         &0x4000         V2.3
                   18534: >0x1e  leshort         &0x8000         V3.0
                   18535: >0x1c  byte            &0x4            86
                   18536: >0x1c  byte            &0xb            186
                   18537: >0x1c  byte            &0x9            286
                   18538: >0x1c  byte            &0xa            386
                   18539: >0x1f  byte            <0x040          small model
                   18540: >0x1f  byte            =0x048          large model     
                   18541: >0x1f  byte            =0x049          huge model 
                   18542: >0x1e  leshort         &0x1            executable
                   18543: >0x1e  leshort         ^0x1            object file
                   18544: >0x1e  leshort         &0x40           Large Text
                   18545: >0x1e  leshort         &0x20           Large Data
                   18546: >0x1e  leshort         &0x120          Huge Objects Enabled
                   18547: >0x10  lelong          >0              not stripped
                   18548: 
                   18549: 0      leshort         0x140           old Microsoft 8086 x.out
                   18550: >0x3   byte            &0x4            separate
                   18551: >0x3   byte            &0x2            pure
                   18552: >0     byte            &0x1            executable
                   18553: >0     byte            ^0x1            relocatable
                   18554: >0x14  lelong          >0              not stripped
                   18555: 
                   18556: 0      lelong          0x206           b.out
                   18557: >0x1e  leshort         &0x10           overlay
                   18558: >0x1e  leshort         &0x2            separate
                   18559: >0x1e  leshort         &0x4            pure
                   18560: >0x1e  leshort         &0x800          segmented
                   18561: >0x1e  leshort         &0x400          standalone
                   18562: >0x1e  leshort         &0x1            executable
                   18563: >0x1e  leshort         ^0x1            object file
                   18564: >0x1e  leshort         &0x4000         V2.3
                   18565: >0x1e  leshort         &0x8000         V3.0
                   18566: >0x1c  byte            &0x4            86
                   18567: >0x1c  byte            &0xb            186
                   18568: >0x1c  byte            &0x9            286
                   18569: >0x1c  byte            &0x29           286
                   18570: >0x1c  byte            &0xa            386
                   18571: >0x1e  leshort         &0x4            Large Text
                   18572: >0x1e  leshort         &0x2            Large Data
                   18573: >0x1e  leshort         &0x102          Huge Objects Enabled
                   18574: 
                   18575: 0      leshort         0x580           XENIX 8086 relocatable or 80286 small model
                   18576: 
                   18577: #------------------------------------------------------------------------------
1.1.1.3   misho    18578: # $File: xilinx,v 1.5 2013/01/08 03:06:50 christos Exp $
1.1       misho    18579: # This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
                   18580: # Xilinx-Magic@RevRagnarok.com
                   18581: # Got the info from FPGA-FAQ 0026
                   18582: #
                   18583: # First there is the sync header and its length
                   18584: 0      beshort 0x0009
                   18585: >2     belong  =0x0ff00ff0
                   18586: >>&0   belong  =0x0ff00ff0
                   18587: >>>&0  beshort =0x0000 
                   18588: >>>>&0 pstring a       Xilinx BIT data
                   18589: # Next is a Pascal-style string with the NCD name. We want to capture that.
                   18590: >>>>0x0F       pstring x       - from %s
                   18591: # It is followed by a NUL
                   18592: >>>>>&1        byte    0x00
                   18593: # And then 'b'
                   18594: >>>>>&2        string b
                   18595: # With the part number:
                   18596: #>>>>>&5 string        4v      (Virtex4)
                   18597: #>>>>>&5 string  2v    (Virtex II
                   18598: #>>>>>>&0      string  !p      \b)
                   18599: #>>>>>>&0      string  p       Pro)
                   18600: >>>>>&4        pstring x       - for %s
                   18601: # And then NUL / 'c' / Build Data / NUL / 'd' / Date / NUL / 'e' / Data Length
                   18602: >>>>>>&1       byte    0x00
                   18603: >>>>>>&2       string  c
                   18604: >>>>>>&4       pstring x       - built %s
                   18605: >>>>>>>&1      byte    0x00
                   18606: >>>>>>>&2      string  d
                   18607: >>>>>>>&4      pstring x       \b(%s)
                   18608: >>>>>>>>&1     byte    0x00
                   18609: >>>>>>>>&2     string  e
                   18610: >>>>>>>>&4     belong  x       - data length 0x%lx
1.1.1.3   misho    18611: # Raw bitstream files
                   18612: 0      long    0xffffffff      
                   18613: >&0    belong  0xaa995566      Xilinx RAW bitstream (.BIN)
1.1       misho    18614: 
                   18615: #------------------------------------------------------------------------------
1.1.1.2   misho    18616: # $File: xo65,v 1.4 2009/09/19 16:28:13 christos Exp $
1.1       misho    18617: # xo65 object files
                   18618: # From: "Ullrich von Bassewitz" <uz@cc65.org>
                   18619: #
                   18620: 0      string          \x55\x7A\x6E\x61        xo65 object,
                   18621: >4     leshort         x                       version %d,
                   18622: >6     leshort&0x0001 =0x0001                  with debug info
                   18623: >6     leshort&0x0001 =0x0000                  no debug info
                   18624: 
                   18625: # xo65 library files
                   18626: 0      string          \x6E\x61\x55\x7A        xo65 library,
                   18627: >4     leshort         x                       version %d
                   18628: 
                   18629: # o65 object files
                   18630: 0      string          \x01\x00\x6F\x36\x35    o65
                   18631: >6     leshort&0x1000  =0x0000                 executable,
                   18632: >6     leshort&0x1000  =0x1000                 object,
                   18633: >5     byte            x                       version %d,
                   18634: >6     leshort&0x8000  =0x8000                 65816,
                   18635: >6     leshort&0x8000  =0x0000                 6502,
                   18636: >6     leshort&0x2000  =0x2000                 32 bit,
                   18637: >6     leshort&0x2000  =0x0000                 16 bit,
                   18638: >6     leshort&0x4000  =0x4000                 page reloc,
                   18639: >6     leshort&0x4000  =0x0000                 byte reloc,
                   18640: >6     leshort&0x0003  =0x0000                 alignment 1
                   18641: >6     leshort&0x0003  =0x0001                 alignment 2
                   18642: >6     leshort&0x0003  =0x0002                 alignment 4
                   18643: >6     leshort&0x0003  =0x0003                 alignment 256
                   18644: 
                   18645: #------------------------------------------------------------------------------
1.1.1.3   misho    18646: # $File: xwindows,v 1.8 2013/02/08 17:25:57 christos Exp $
1.1       misho    18647: # xwindows:  file(1) magic for various X/Window system file formats.
                   18648: 
                   18649: # Compiled X Keymap 
                   18650: # XKM (compiled X keymap) files (including version and byte ordering)
                   18651: 1      string  mkx                             Compiled XKB Keymap: lsb,
                   18652: >0     byte    >0                              version %d
                   18653: >0     byte    =0                              obsolete
                   18654: 0      string  xkm                             Compiled XKB Keymap: msb,
                   18655: >3     byte    >0                              version %d
1.1.1.3   misho    18656: >3     byte    =0                              obsolete
1.1       misho    18657: 
                   18658: # xfsdump archive
                   18659: 0      string  xFSdump0                        xfsdump archive
                   18660: >8     belong  x       (version %d)
                   18661: 
                   18662: # Jaleo XFS files
                   18663: 0      long    395726                          Jaleo XFS file
                   18664: >4     long    x                               - version %ld
                   18665: >8     long    x                               - [%ld -
1.1.1.3   misho    18666: >20    long    x                               \b%ldx
                   18667: >24    long    x                               \b%ldx
                   18668: >28    long    1008                            \bYUV422]
                   18669: >28    long    1000                            \bRGB24]
1.1       misho    18670: 
1.1.1.2   misho    18671: # Xcursor data
                   18672: # X11 mouse cursor format defined in libXcursor, see
                   18673: # http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
                   18674: # http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
                   18675: 0      string          Xcur            Xcursor data
                   18676: !:mime image/x-xcursor
                   18677: >10    leshort         x               version %hd
                   18678: >>8    leshort         x               \b.%hd
1.1.1.3   misho    18679: #------------------------------------------------------------------------------
                   18680: # zfs: file(1) magic for ZFS dumps
                   18681: #
                   18682: # From <rea-fbsd@codelabs.ru>
                   18683: # ZFS dump header has the following structure (as per zfs_ioctl.h
                   18684: # in FreeBSD with drr_type is set to DRR_BEGIN)
                   18685: #
                   18686: #   enum {
                   18687: #      DRR_BEGIN, DRR_OBJECT, DRR_FREEOBJECTS,
                   18688: #      DRR_WRITE, DRR_FREE, DRR_END,
                   18689: #   } drr_type;
                   18690: #   uint32_t drr_pad;
                   18691: #   uint64_t drr_magic;
                   18692: #   uint64_t drr_version;
                   18693: #   uint64_t drr_creation_time;
                   18694: #   dmu_objset_type_t drr_type;
                   18695: #   uint32_t drr_pad;
                   18696: #   uint64_t drr_toguid;
                   18697: #   uint64_t drr_fromguid;
                   18698: #   char drr_toname[MAXNAMELEN];
                   18699: #
                   18700: # Backup magic is 0x00000002f5bacbac (quad word)
                   18701: # The drr_type is defined as
                   18702: #   typedef enum dmu_objset_type {
                   18703: #        DMU_OST_NONE,
                   18704: #        DMU_OST_META,
                   18705: #        DMU_OST_ZFS,
                   18706: #        DMU_OST_ZVOL,
                   18707: #        DMU_OST_OTHER,                  /* For testing only! */
                   18708: #        DMU_OST_ANY,                    /* Be careful! */
                   18709: #        DMU_OST_NUMTYPES
                   18710: #  } dmu_objset_type_t;
                   18711: #
                   18712: # Almost all uint64_t fields are printed as the 32-bit ones (with high
                   18713: # 32 bits zeroed), because there is no simple way to print them as the
                   18714: # full 64-bit values.
                   18715: 
                   18716: # Big-endian values
                   18717: 8      string  \000\000\000\002\365\272\313\254 ZFS shapshot (big-endian machine),
                   18718: >20    belong  x       version %lu,
                   18719: >32    belong  0       type: NONE,
                   18720: >32    belong  1       type: META,
                   18721: >32    belong  2       type: ZFS,
                   18722: >32    belong  3       type: ZVOL,
                   18723: >32    belong  4       type: OTHER,
                   18724: >32    belong  5       type: ANY,
                   18725: >32    belong  >5      type: UNKNOWN (%lu),
                   18726: >40    byte    x       destination GUID: %02X
                   18727: >41    byte    x       %02X
                   18728: >42    byte    x       %02X
                   18729: >43    byte    x       %02X
                   18730: >44    byte    x       %02X
                   18731: >45    byte    x       %02X
                   18732: >46    byte    x       %02X
                   18733: >47    byte    x       %02X,
                   18734: >48    ulong   >0
                   18735: >>52   ulong   >0
                   18736: >>>48  byte    x       source GUID: %02X
                   18737: >>>49  byte    x       %02X
                   18738: >>>50  byte    x       %02X
                   18739: >>>51  byte    x       %02X
                   18740: >>>52  byte    x       %02X
                   18741: >>>53  byte    x       %02X
                   18742: >>>54  byte    x       %02X
                   18743: >>>55  byte    x       %02X,
                   18744: >56    string  >\0     name: '%s'
                   18745: 
                   18746: # Little-endian values
                   18747: 8      string  \254\313\272\365\002\000\000\000        ZFS shapshot (little-endian machine),
                   18748: >16    lelong  x       version %lu,
                   18749: >32    lelong  0       type: NONE,
                   18750: >32    lelong  1       type: META,
                   18751: >32    lelong  2       type: ZFS,
                   18752: >32    lelong  3       type: ZVOL,
                   18753: >32    lelong  4       type: OTHER,
                   18754: >32    lelong  5       type: ANY,
                   18755: >32    lelong  >5      type: UNKNOWN (%lu),
                   18756: >47    byte    x       destination GUID: %02X
                   18757: >46    byte    x       %02X
                   18758: >45    byte    x       %02X
                   18759: >44    byte    x       %02X
                   18760: >43    byte    x       %02X
                   18761: >42    byte    x       %02X
                   18762: >41    byte    x       %02X
                   18763: >40    byte    x       %02X,
                   18764: >48    ulong   >0
                   18765: >>52   ulong   >0
                   18766: >>>55  byte    x       source GUID: %02X
                   18767: >>>54  byte    x       %02X
                   18768: >>>53  byte    x       %02X
                   18769: >>>52  byte    x       %02X
                   18770: >>>51  byte    x       %02X
                   18771: >>>50  byte    x       %02X
                   18772: >>>49  byte    x       %02X
                   18773: >>>48  byte    x       %02X,
                   18774: >56    string  >\0     name: '%s'
1.1.1.2   misho    18775: 
1.1       misho    18776: #------------------------------------------------------------------------------
1.1.1.2   misho    18777: # $File: zilog,v 1.7 2009/09/19 16:28:13 christos Exp $
1.1       misho    18778: # zilog:  file(1) magic for Zilog Z8000.
                   18779: #
                   18780: # Was it big-endian or little-endian?  My Product Specification doesn't
                   18781: # say.
                   18782: #
                   18783: 0      long            0xe807          object file (z8000 a.out)
                   18784: 0      long            0xe808          pure object file (z8000 a.out)
                   18785: 0      long            0xe809          separate object file (z8000 a.out)
                   18786: 0      long            0xe805          overlay object file (z8000 a.out)
                   18787: 
                   18788: #------------------------------------------------------------------------------
1.1.1.2   misho    18789: # $File: zyxel,v 1.6 2009/09/19 16:28:13 christos Exp $
1.1       misho    18790: # zyxel:  file(1) magic for ZyXEL modems
                   18791: #
                   18792: # From <rob@pe1chl.ampr.org>
                   18793: # These are the /etc/magic entries to decode datafiles as used for the
                   18794: # ZyXEL U-1496E DATA/FAX/VOICE modems.  (This header conforms to a
                   18795: # ZyXEL-defined standard)
                   18796: 
                   18797: 0      string          ZyXEL\002       ZyXEL voice data
                   18798: >10    byte            0               - CELP encoding
                   18799: >10    byte&0x0B       1               - ADPCM2 encoding
                   18800: >10    byte&0x0B       2               - ADPCM3 encoding
                   18801: >10    byte&0x0B       3               - ADPCM4 encoding
                   18802: >10    byte&0x0B       8               - New ADPCM3 encoding
                   18803: >10    byte&0x04       4               with resync

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>