# Magic data for KMimeMagic (originally for file(1) command)
#
# The format is 4-5 columns:
#    Column #1: byte number to begin checking from, ">" indicates continuation
#    Column #2: type of data to match
#    Column #3: contents of data to match
#    Column #4: MIME type of result

#------------------------------------------------------------------------------
# Localstuff:  file(1) magic for locally observed files
# Add any locally observed files here.

#------------------------------------------------------------------------------
# end local stuff
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# audio:  file(1) magic for sound formats (see also "iff")
#
# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
# and others
#

# Sun/NeXT audio data
0	string		.snd
>12	belong		1		audio/basic
>12	belong		2		audio/basic
>12	belong		3		audio/basic
>12	belong		4		audio/basic
>12	belong		5		audio/basic
>12	belong		6		audio/basic
>12	belong		7		audio/basic

>12	belong		23		audio/x-adpcm
>12	belong		24		audio/x-adpcm
>12	belong		25		audio/x-adpcm
>12	belong		26		audio/x-adpcm
>12	belong		27		audio/x-adpcm

# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
# that uses little-endian encoding and has a different magic number
0	lelong		0x0064732E
>12	lelong		1		audio/x-adpcm
>12	lelong		2		audio/x-adpcm
>12	lelong		3		audio/x-adpcm
>12	lelong		4		audio/x-adpcm
>12	lelong		5		audio/x-adpcm
>12	lelong		6		audio/x-adpcm
>12	lelong		7		audio/x-adpcm
#                                       compressed (G.721 ADPCM)
>12	lelong		23		audio/x-adpcm

# Creative Labs AUDIO stuff
0       string	MThd            	audio/x-midi
#0	string	CTMF			Creative Music (CMF) data
#0	string	SBI			SoundBlaster instrument data
#0	string	Creative\ Voice\ File	Creative Labs voice data

# Real Audio (Magic .ra\0375)
0	belong		0x2e7261fd	audio/vnd.rn-realaudio
0	string		.RMF		application/vnd.rn-realmedia

# OGG files
# For theora at position 87, see bug #109598
0	string		OggS		application/ogg
>28	string		\x01vorbis	audio/vorbis
>28	string		fLaC		audio/x-oggflac
>28	string		\x80theora	video/x-theora
>87	string		\x80theora	video/x-theora
>28	string		Speex\ \ 	audio/x-speex
>29	string		video		video/x-ogm
>29	string		FLAC		audio/x-oggflac

# FLAC files
0	string		fLaC		audio/x-flac

# Musepack files
0	string		MP+		audio/x-musepack

# C64 PSID sound files
0	string		PSID		audio/prs.sid


#------------------------------------------------------------------------------
# riff:  file(1) magic for RIFF format
# See
#
#	http://www.seanet.com/users/matts/riffmci/riffmci.htm
#

#					RIFF (little-endian) data
0	string		RIFF
# RIFF MIDI format
#>8	string		RMID		audio/x-midi?
# Microsoft WAVE format (*.wav)
>8	string		WAVE		audio/x-wav
>>20	leshort		80		audio/mpeg
>>20	leshort		85		audio/x-mp3
# Corel Draw Picture
#>8	string		CDRA		Corel Draw Picture
# AVI == Audio Video Interleave
>8	string		AVI\040		video/x-msvideo

#					RIFF (big-endian) data
0	string		RIFX
# RIFF MIDI format
#>8	string		RMID		\b, MIDI
# Microsoft WAVE format (*.wav)
>8	string		WAVE		audio/x-wav
# Corel Draw Picture
#>8	string		CDRA		\b, Corel Draw Picture
# AVI == Audio Video Interleave
>8	string		AVI\040		video/x-msvideo


#------------------------------------------------------------------------------
# iff:	file(1) magic for Interchange File Format (see also "audio" & "images")
#
# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
# Arts for file interchange.  It has also been used by Apple, SGI, and
# especially Commodore-Amiga.
#
# IFF files begin with an 8 byte FORM header, followed by a 4 character
# FORM type, which is followed by the first chunk in the FORM.

0	string		FORM
>8	string		AIFF		audio/x-aiff
#					AIFF-C audio data
>8	string		AIFC		audio/x-aiff
#					IFF/8SVX audio data
>8	string		8SVX		audio/x-aiff
#>8	string		SAMP		\b, SAMP sampled audio
#>8	string		DTYP		\b, DTYP datatype description
#>8	string		PTCH		\b, PTCH binary patch
# image formats
#>8	string		ILBMBMHD	\b, ILBM interleaved image
# other formats
#>8	string		FTXT		\b, FTXT formatted text

#------------------------------------------------------------------------------
# KSysV stuff: logfiles and packages belonging to KSysV
#

# KSysV logfiles
0	string		KDE\ System\ V\ Init\ Editor	text/x-ksysv-log

# KSysV init packages
4	string	KSysV
>15	byte	>0x01	application/x-ksysv-package

#------------------------------------------------------------------------------
# c-lang:  file(1) magic for C programs or various scripts
#

# XPM icons (Greg Roelofs, newt@uchicago.edu)
# ideally should go into "images", but entries below would tag XPM as C source
0	string		/*\ XPM		image/x-xpm

# this first will upset you if you're a PL/1 shop... (are there any left?)
# in which case rm it; ascmagic will catch real C programs
#					C or REXX program text
#0	string		/*		text/x-c
#					C++ program text
#0	string		//		text/x-c++

#------------------------------------------------------------------------------
# commands:  file(1) magic for various shells and interpreters
#
#0       string          :\ shell archive or commands for antique kernel text
0       string          #!/bin/sh               application/x-shellscript
0       string          #!\ /bin/sh             application/x-shellscript
0       string          #!/bin/csh              application/x-shellscript
0       string          #!\ /bin/csh            application/x-shellscript
# korn shell magic, sent by George Wu, gwu@clyde.att.com
0       string          #!/bin/ksh              application/x-shellscript
0       string          #!\ /bin/ksh            application/x-shellscript
0       string          #!/bin/zsh              application/x-shellscript
0       string          #!\ /bin/zsh            application/x-shellscript
0       string          #!/bin/tcsh             application/x-shellscript
0       string          #!\ /bin/tcsh           application/x-shellscript
0       string          #!/usr/local/tcsh       application/x-shellscript
0       string          #!\ /usr/local/tcsh     application/x-shellscript
0       string          #!/usr/local/bin/tcsh   application/x-shellscript
0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
# /usr/bin paths for ksh, zsh and tcsh
0       string          #!/usr/bin/ksh          application/x-shellscript
0       string          #!\ /usr/bin/ksh        application/x-shellscript
0       string          #!/usr/bin/zsh          application/x-shellscript
0       string          #!\ /usr/bin/zsh        application/x-shellscript
0       string          #!/usr/bin/tcsh         application/x-shellscript
0       string          #!\ /usr/bin/tcsh       application/x-shellscript
# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
0       string          #!/bin/bash     		application/x-shellscript
0       string          #!\ /bin/bash           application/x-shellscript
0       string          #!/usr/local/bin/bash   application/x-shellscript
0       string          #!\ /usr/local/bin/bash application/x-shellscript

0       string          #!\ /bin/env\ bash      application/x-shellscript
0       string          #!/bin/env\ bash        application/x-shellscript
0       string          #!\ /usr/bin/env\ bash  application/x-shellscript
0       string          #!/usr/bin/env\ bash    application/x-shellscript

#
0       string          #!/bin/ash              application/x-shellscript
0       string          #!\ /bin/ash            application/x-shellscript
# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
0       string          #!/usr/local/bin/zsh    application/x-shellscript
0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
0       string          #!/usr/local/bin/ash    application/x-shellscript
0       string          #!\ /usr/local/bin/ash  application/x-shellscript
#0       string          #!/usr/local/bin/ae     Neil Brown's ae
#0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
0       string          #!/bin/nawk             application/x-nawk
0       string          #!\ /bin/nawk           application/x-nawk
0       string          #!/usr/bin/nawk         application/x-nawk
0       string          #!\ /usr/bin/nawk       application/x-nawk
0       string          #!/usr/local/bin/nawk   application/x-nawk
0       string          #!\ /usr/local/bin/nawk application/x-nawk
0       string          #!/bin/gawk             application/x-gawk
0       string          #!\ /bin/gawk           application/x-gawk
0       string          #!/usr/bin/gawk         application/x-gawk
0       string          #!\ /usr/bin/gawk       application/x-gawk
0       string          #!/usr/local/bin/gawk   application/x-gawk
0       string          #!\ /usr/local/bin/gawk application/x-gawk
#
0       string          #!/bin/awk              application/x-awk
0       string          #!\ /bin/awk            application/x-awk
0       string          #!/usr/bin/awk          application/x-awk
0       string          #!\ /usr/bin/awk        application/x-awk
#0       string          BEGIN                   application/x-awk

# For Larry Wall's perl language.  The ``eval'' line recognizes an
# outrageously clever hack for USG systems.
#                               Keith Waclena <keith@cerberus.uchicago.edu>
0       string          #!/bin/perl                     application/x-perl
0       string          #!\ /bin/perl                   application/x-perl
0       string          eval\ "exec\ /bin/perl          application/x-perl
0       string          #!/usr/bin/perl                 application/x-perl
0       string          #!\ /usr/bin/perl               application/x-perl
0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
0       string          #!/usr/local/bin/perl           application/x-perl
0       string          #!\ /usr/local/bin/perl         application/x-perl
0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
0	string		#!/bin/env\ perl                 application/x-perl
0	string		#!\ /bin/env\ perl               application/x-perl
0	string		#!/usr/bin/env\ perl             application/x-perl
0	string		#!\ /usr/bin/env\ perl           application/x-perl

# python.
#
0       string          #!/bin/python                     application/x-python
0       string          #!\ /bin/python                   application/x-python
0       string          eval\ "exec\ /bin/python          application/x-python
0       string          #!/usr/bin/python                 application/x-python
0       string          #!\ /usr/bin/python               application/x-python
0       string          eval\ "exec\ /usr/bin/python      application/x-python
0       string          #!/usr/local/bin/python           application/x-python
0       string          #!\ /usr/local/bin/python         application/x-python
0       string          eval\ "exec\ /usr/local/bin/python application/x-python
0	string		#!/bin/env\ python		  application/x-python
0	string		#!\ /bin/env\ python		  application/x-python
0	string		#!/usr/bin/env\ python		  application/x-python
0	string		#!\ /usr/bin/env\ python 	  application/x-python

# MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
# 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
#                                       python 1.5/1.6 byte-compiled
0       belong          0x994e0d0a      application/x-python-bytecode
#                                       python 2.0 byte-compiled
0       belong          0x87c60d0a      application/x-python-bytecode
#                                       python 2.1 byte-compiled
0       belong          0x2aeb0d0a      application/x-python-bytecode
#                                       python 2.2 byte-compiled
0       belong          0x2ded0d0a      application/x-python-bytecode
#                                       python 2.3 byte-compiled
0       belong          0x3bf20d0a      application/x-python-bytecode

# ruby
0	string		#!/bin/env\ ruby                   application/x-ruby
0	string		#!\ /bin/env\ ruby                 application/x-ruby
0	string		#!/usr/bin/env\ ruby               application/x-ruby
0	string		#!\ /usr/bin/env\ ruby             application/x-ruby

#------------------------------------------------------------------------------
# compress:  file(1) magic for pure-compression formats (no archives)
#
# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
#
# Formats for various forms of compressed data
# Formats for "compress" proper have been moved into "compress.c",
# because it tries to uncompress it to figure out what's inside.

# standard unix compress
0	string		\037\235	application/x-compress

# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
0       string          \037\213	application/x-gzip

# KOffice documents (gzipped, with an idenfication string in the 'orig filename' header)
>10	string		KOffice
>>18	string		application/x-kchart\004\006	application/x-kchart
>>18	string		application/x-kformula\004\006	application/x-kformula
>>18	string		application/x-killustrator\004\006	application/x-killustrator
>>18	string		application/x-kontour\004\006	application/x-kontour
>>18	string		application/x-kpresenter\004\006	application/x-kpresenter
>>18	string		application/x-kspread\004\006	application/x-kspread
>>18	string		application/x-kword\004\006	application/x-kword
>>18	string		application/x-krita\004\006	application/x-krita
>>18	string		application/x-kivio\004\006	application/x-kivio
>>18	string		application/x-karbon\004\006	application/x-karbon

# Rosegarden documents (like old KOffice documents, gzipped with id string in header)
>10	string		audio/x-rosegarden\000      	   audio/x-rosegarden
>10	string		audio/x-rosegarden-device\000      audio/x-rosegarden-device

#KOffice documents v1.2 and later (may 1 2002) using zip as a wrapper
0    string   PK\003\004                  application/x-zip
>30  string   mimetype
>>38 string   application/x-kchart        application/x-kchart
>>38 string   application/x-kformula      application/x-kformula
>>38 string   application/x-kontour       application/x-kontour
>>38 string   application/x-kpresenter    application/x-kpresenter
>>38 string   application/x-kspread       application/x-kspread
>>38 string   application/x-krita         application/x-krita
>>38 string   application/x-kword         application/x-kword
>>38 string   application/x-kivio         application/x-kivio
>>38 string   application/x-karbon        application/x-karbon

#KOffice documents writen using the kzip rewrite used 'unx' based
#zips; dislocating the mimetype.   This was (temporarily) for koffice 1.3 (okt 2003).
0    string   PK\003\004
>30  string   mimetype
>>55 string   application/x-kchart        application/x-kchart
>>55 string   application/x-kformula      application/x-kformula
>>55 string   application/x-kontour       application/x-kontour
>>55 string   application/x-kpresenter    application/x-kpresenter
>>55 string   application/x-kspread       application/x-kspread
>>55 string   application/x-krita         application/x-krita
>>55 string   application/x-kword         application/x-kword
>>55 string   application/x-kivio         application/x-kivio
>>55 string   application/x-karbon        application/x-karbon

# OpenOffice.org 1.1 puts the mimetype into the header too
0    string   PK\003\004
>30  string   mimetype
>>38 string   application/vnd.sun.xml.calc               application/vnd.sun.xml.calc
>>38 string   application/vnd.sun.xml.calc.template      application/vnd.sun.xml.calc.template
>>38 string   application/vnd.sun.xml.draw               application/vnd.sun.xml.draw
>>38 string   application/vnd.sun.xml.draw.template      application/vnd.sun.xml.draw.template
>>38 string   application/vnd.sun.xml.impress            application/vnd.sun.xml.impress
>>38 string   application/vnd.sun.xml.impress.template   application/vnd.sun.xml.impress.template
>>38 string   application/vnd.sun.xml.writer             application/vnd.sun.xml.writer
>>38 string   application/vnd.sun.xml.writer.master      application/vnd.sun.xml.writer.master
>>38 string   application/vnd.sun.xml.writer.template    application/vnd.sun.xml.writer.template
>>38 string   application/vnd.sun.xml.base               application/vnd.sun.xml.base

# OASIS OpenDocument (KOffice >= 1.4 and OpenOffice >= 2.0)
0    string   PK\003\004
>30  string   mimetype
>>38 string   application/vnd.oasis.opendocument.chart                  application/vnd.oasis.opendocument.chart
>>38 string   application/vnd.oasis.opendocument.formula                application/vnd.oasis.opendocument.formula
>>38 string   application/vnd.oasis.opendocument.graphics               application/vnd.oasis.opendocument.graphics
>>38 string   application/vnd.oasis.opendocument.graphics-template      application/vnd.oasis.opendocument.graphics-template
>>38 string   application/vnd.oasis.opendocument.image                  application/vnd.oasis.opendocument.image
>>38 string   application/vnd.oasis.opendocument.presentation           application/vnd.oasis.opendocument.presentation
>>38 string   application/vnd.oasis.opendocument.presentation-template  application/vnd.oasis.opendocument.presentation-template
>>38 string   application/vnd.oasis.opendocument.spreadsheet            application/vnd.oasis.opendocument.spreadsheet
>>38 string   application/vnd.oasis.opendocument.spreadsheet-template   application/vnd.oasis.opendocument.spreadsheet-template
>>38 string   application/vnd.oasis.opendocument.text                   application/vnd.oasis.opendocument.text
>>38 string   application/vnd.oasis.opendocument.text-template          application/vnd.oasis.opendocument.text-template

# BZIP2
0	string          BZh             application/x-bzip2

# BZIP
0	string		BZ		application/x-bzip

# According to gzip.h, this is the correct byte order for packed data.
0	string		\037\036	application/octet-stream
#
# This magic number is byte-order-independent.
#
0	short		017437		application/octet-stream


# ID Software's pak data archive
0	string		PACK		application/x-pak

# XXX - why *two* entries for "compacted data", one of which is
# byte-order independent, and one of which is byte-order dependent?
#
# compacted data
0	short		0x1fff		application/octet-stream
0	string		\377\037	application/octet-stream
# huf output
0	short		0145405		application/octet-stream

# Squeeze and Crunch...
# These numbers were gleaned from the Unix versions of the programs to
# handle these formats.  Note that I can only uncrunch, not crunch, and
# I didn't have a crunched file handy, so the crunch number is untested.
#				Keith Waclena <keith@cerberus.uchicago.edu>
#0	leshort		0x76FF		squeezed data (CP/M, DOS)
#0	leshort		0x76FE		crunched data (CP/M, DOS)

# Freeze
#0	string		\037\237	Frozen file 2.1
#0	string		\037\236	Frozen file 1.0 (or gzip 0.5)

# lzh?
#0	string		\037\240	LZH compressed data

#POSIX tar archive
257	string		ustar\0		application/x-tar
#GNU tar archive
257	string		ustar\040\040\0		application/x-tar

# The SVR4 "cpio(4)" hints that there are additional formats, but they
# are defined as "short"s; I think all the new formats are
# character-header formats and thus are strings, not numbers.
0	short		070707		application/x-cpio
0	short		0143561		application/x-cpio
0	string		070707		application/x-cpio
0       string          070701          application/x-cpio
0       string          070702          application/x-cpio

0	string		!<arch>\ndebian		application/x-debian-package
0	string		=<ar>			application/x-archive
0	string		!<arch>			application/x-archive

#------------------------------------------------------------------------------
#
# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
#
0       beshort         0xedab
>2      beshort         0xeedb          application/x-rpm

# lzw
0	lelong&0x8080ffff	0x0000081a	application/x-arc
# squashed
0	lelong&0x8080ffff	0x0000091a	application/x-arc
# uncompressed
0	lelong&0x8080ffff	0x0000021a	application/x-arc
# packed
0	lelong&0x8080ffff	0x0000031a	application/x-arc
# squeezed
0	lelong&0x8080ffff	0x0000041a	application/x-arc
# crunched
0	lelong&0x8080ffff	0x0000061a	application/x-arc

# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
2	string	-lh0-	application/x-lha
2	string	-lh1-	application/x-lha
2	string	-lz4-	application/x-lha
2	string	-lz5-	application/x-lha
#	[never seen any but the last; -lh4- reported in comp.compression:]
2	string	-lzs-	application/x-lha
2	string	-lh\40-	application/x-lha
2	string	-lhd-	application/x-lha
2	string	-lh2-	application/x-lha
2	string	-lh3-	application/x-lha
2	string	-lh4-	application/x-lha
2	string	-lh5-	application/x-lha
2	string	-lh6-	application/x-lha
2	string	-lh7-	application/x-lha

# ARJ archiver (jason@jarthur.Claremont.EDU)
0	leshort		0xea60			application/x-arj

# RAR archiver (Greg Roelofs, newt@uchicago.edu)
0	string		Rar!		application/x-rar

# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0	string		PK\003\004	application/x-zip
# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
0	string		PK00PK\003\004	application/x-zip

# Zoo archiver
20	lelong		0xfdc4a7dc	application/x-zoo

# Shell archives
10	string	#\ This\ is\ a\ shell\ archive	application/x-shellscript

# ACE archive
7      string        **ACE**     application/x-ace


#------------------------------------------------------------------------------
# frame:  file(1) magic for FrameMaker files
#
# This stuff came on a FrameMaker demo tape, most of which is
# copyright, but this file is "published" as witness the following:
#
0	string		\<MakerFile	application/x-frame
0	string		\<MIFFile	application/x-frame
0	string		\<MakerDictionary	application/x-frame
0	string		\<MakerScreenFon	application/x-frame
0	string		\<MML		application/x-frame
0	string		\<Book		application/x-frame
0	string		\<Maker		application/x-frame

#------------------------------------------------------------------------------
# html:  file(1) magic for HTML (HyperText Markup Language) docs
#
# from Daniel Quinlan <quinlan@yggdrasil.com>
#
0	string		\<HEAD	text/html
0	string		\<head	text/html
0	string		\<BODY	text/html
0	string		\<body	text/html
0	string		\<TITLE	text/html
0	string		\<title	text/html
0       string          \<html	text/html
0       string          \<HTML	text/html
0	string		\<!--	text/html
0	string		\<h1	text/html
0	string		\<H1	text/html
0	string		\<!doctype\ HTML	text/html
0	string		\<!DOCTYPE\ HTML	text/html
0	string		\<!doctype\ html	text/html
0	string		\<!DOCTYPE\ html	text/html

# PHP (offset should be "between 0 and 64"...)
0	string		\<?php	application/x-php

# Docbook
0	string		\<!doctype\ book\ public\ "-//OASIS//DTD\ DocBook 	text/docbook
# Hack: <?xml (with version but no encoding etc.) with a docbook mimetype afterwards.
0       string          \<?xml
>23	string		\<!doctype\ book\ public\ "-//OASIS//DTD\ DocBook 	text/docbook
>23	string		\<!DOCTYPE\ book\ PUBLIC\ "-//OASIS//DTD\ DocBook 	text/docbook
>23	string		\<!doctype\ book\ public\ "-//KDE//DTD\ DocBook 	text/docbook
>23	string		\<!DOCTYPE\ book\ PUBLIC\ "-//KDE//DTD\ DocBook 	text/docbook

# Extensible markup language (XML), a subset of SGML
# from Marc Prud'hommeaux (marc@apocalypse.org)
0       string          \<?xml          text/xml
0       string          \<?XML          text/xml
0       string          \<?Xml          text/xml


#-----------------------------------------------------------------------------
# troff stuff
#
0       string          .\\"            application/x-troff
0       string          '\\"            application/x-troff
0       string          '.\\"           application/x-troff
0       string          \\"             application/x-troff

#------------------------------------------------------------------------------
# images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
#
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
# additions by janl@ifi.uio.no as well as others. Jan also suggested
# merging several one- and two-line files into here.
#
# XXX - byte order for GIF and TIFF fields?
# [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
#

# [GRR:  what the hell is this doing in here?]
#0	string		xbtoa		btoa'd file

# PBMPLUS
#					PBM file
0	string		P1		image/x-portable-bitmap
#					PGM file
0	string		P2		image/x-portable-greymap
#					PPM file
0	string		P3		image/x-portable-pixmap
#					PBM "rawbits" file
0	string		P4		image/x-portable-bitmap
#					PGM "rawbits" file
0	string		P5		image/x-portable-greymap
#					PPM "rawbits" file
0	string		P6		image/x-portable-pixmap

# NIFF (Navy Interchange File Format, a modification of TIFF)
# [GRR:  this *must* go before TIFF]
0	string		IIN1		image/x-niff

0 	string		II\x2a\x00
>8	string		CR\x02		image/x-raw

# Phase One RAW image, big-endian
32	string		MMMMRawT	image/x-raw
# Phase One RAW image, little-endian
32	string		IIIITwaR	image/x-raw
# Canon RAW image
6	string		HEAPCCDR	image/x-raw
# Canon CR2 image (20D, 1Dmk2, ...)
0	string		II*\000\020\000\000\000CR	image/x-raw
# Minolta RAW image
0	string		\x00MRM		image/x-raw
# Fuji RAW image
0	string		FUJIFILM	image/x-raw
# Rollei RAW image
0	string		DSC-Image	image/x-raw
# Foveon RAW image
0	string		FOVb		image/x-raw

# TIFF and friends
#					TIFF file, big-endian
0	string		MM\x00\x2a		image/tiff
#					TIFF file, little-endian
0	string		II\x2a\x00		image/tiff

# GIF
0	string		GIF		image/gif

# JPEG images
0	beshort		0xffd8		image/jpeg

# JPEG2000 images
0 	beshort		0x0101010C6A50  image/jp2

# PNG images
0       string          \x89PNG         image/png

# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
0	string		BM
#(OS/2 1.x format)
>14	byte		12		image/x-bmp
#(OS/2 2.x format)
>14	byte		64		image/x-bmp
# (Windows 3.x format)
>14	byte		40		image/x-bmp

# PCX images (Nadeem Hasan)
0   byte        10
# Version 2.5
>1  byte        0       image/x-pcx
# Version 2.8 w/ palette
>1  byte        2       image/x-pcx
# Version 2.8 w/o pallete
>1  byte        3       image/x-pcx
# Version 3.0
>1  byte        5       image/x-pcx

#0	string		IC		icon
#0	string		PI		pointer
#0	string		CI		color icon
#0	string		CP		color pointer
#0	string		BA		bitmap array

# Gimp's XCF
0	string	gimp\ xcf	image/x-xcf-gimp

# X11 cursor files
0	string	Xcur	image/x-xcursor

# EXR images
0	lelong		0x762f3101	image/x-exr

# SGI images (*.rgb, *.rgba, *.bw, *.sgi)
0	beshort		474		image/x-rgb

#------------------------------------------------------------------------------
# lisp:  file(1) magic for lisp programs
#
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
#0	string	;;			text/plain
# Emacs 18 - this is always correct, but not very magical.
0	string	\012(			application/x-elc
# Emacs 19
0	string	;ELC\023\000\000\000	application/x-elc

#------------------------------------------------------------------------------
# mail.news:  file(1) magic for mail and news
#
# There are tests to ascmagic.c to cope with mail and news.

0	string		Relay-Version: 	message/rfc822
0	string		#!\ rnews	message/rfc822
0	string		N#!\ rnews	message/rfc822
0	string		Forward\ to 	message/rfc822
0	string		Pipe\ to 	message/rfc822
0	string		Return-Path:	message/rfc822
0       string          Return-Path:    message/rfc822
0       string          Path:           message/news
0       string          Xref:           message/news
0       string          From:           message/rfc822
0       string          From\x20        application/mbox
0       string          Article         message/news
#0       string          BABYL           message/x-gnu-rmail
0       string          Received:       message/rfc822



# TNEF files...
0	lelong		0x223E9F78	application/ms-tnef


#------------------------------------------------------------------------------
# mswrite

0	lelong		0xBE31		application/x-mswrite
# with OLE objects
0	lelong		0xBE32		application/x-mswrite

#------------------------------------------------------------------------------
# msword: file(1) magic for MS Word files
#
# Contributor claims:
# Reversed-engineered MS Word magic numbers
# Except that they are generic MSOffice magic numbers ! (DF)

0	string		\376\067\0\043			application/msword
0	string		\320\317\021\340\241\261	application/msword
0	string		\333\245-\0\0\0			application/msword
2080    string		Microsoft\ Word\ 6.0\ Document  application/msword
2112    string          Microsoft\ Word\ document\ data application/msword

# excel
2080    string  Microsoft\ Excel\ 5.0\ Worksheet	application/msexcel

#------------------------------------------------------------------------------
# word perfect

0	belong		0xff575053c405			application/wordperfect
1       string		WPC				application/wordperfect

#------------------------------------------------------------------------------
# printer:  file(1) magic for printer-formatted files
#

# PostScript
0	string		%!		application/postscript
>15	string		EPS		image/x-eps
0	string		\004%!		application/postscript
>16	string		EPS		image/x-eps

# Acrobat
# (due to clamen@cs.cmu.edu)
0	string		%PDF-		application/pdf

#------------------------------------------------------------------------------
# sc:  file(1) magic for "sc" spreadsheet
#
38	string		Spreadsheet	application/x-sc

#------------------------------------------------------------------------------
# tex:  file(1) magic for TeX files
#
# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
#
# From <conklin@talisman.kaleida.com>

# Although we may know the offset of certain text fields in TeX DVI
# and font files, we can't use them reliably because they are not
# zero terminated. [but we do anyway, christos]
0	string		\367\002	application/x-dvi
#0	string		\367\203	TeX generic font data
#0	string		\367\131	TeX packed font data
#0	string		\367\312	TeX virtual font data
# Maybe we should have a mimetype like x-tex-log, but in any case
# text/plain is better than nothing. (David Faure)
0	string		This\ is\ TeX,	text/plain
0	string		This\ is\ METAFONT,	text/plain

# XXX promoted from tex so that *.tfm is not mis-identified as mc68k file.
# There is no way to detect TeX Font Metric (*.tfm) files without
# breaking them apart and reading the data.  The following patterns
# match most *.tfm files generated by METAFONT or afm2tfm.
2	string		\000\021	application/x-tex-tfm
>33	string		>\0		application/x-tex-tfm
2	string		\000\022	application/x-tex-tfm
>33	string		>\0		application/x-tex-tfm

# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
#0	string		\\input\ texinfo	Texinfo source text
#0	string		This\ is\ Info\ file	GNU Info text

# correct TeX magic for Linux (and maybe more)
# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
#
0	leshort		0x02f7		application/x-dvi

# RTF - Rich Text Format
0	string		{\\rtf		text/rtf

# UTF16 (UTF16 docs are not MP3s - see the next audio/x-mp3 check :))
0  beshort		0xfffe		text/plain

#------------------------------------------------------------------------------
# animation:  file(1) magic for animation/movie formats
#
# animation formats
# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)

# MPEG animation format
0       belong          0x000001b3              video/mpeg
0       belong          0x000001ba              video/mpeg

# MPEG 1.0 audio (layer III,II,I)
0       beshort&0xfff8  0xfff8
>0      beshort&0x0006  0x0002         		audio/x-mp3
>0      beshort&0x0006  0x0004         		audio/x-mp2
>0      beshort&0x0006  0x0006         		audio/mpeg

# MPEG 2.0 audio (layer III,II,I)
0       beshort&0xfff8  0xfff0
>0      beshort&0x0006  0x0002         		audio/x-mp3
>0      beshort&0x0006  0x0004         		audio/x-mp2
>0      beshort&0x0006  0x0006         		audio/mpeg

# MPEG 2.5 audio (layer III,II,I)
0       beshort&0xfff8  0xff80
>0      beshort&0x0006  0x0002         		audio/x-mp3
>0      beshort&0x0006  0x0004         		audio/x-mp2
>0      beshort&0x0006  0x0006         		audio/mpeg

# MPEG-4 audio
16	string		M4A			audio/mp4


# FLI animation format
0	leshort		0xAF11				video/x-flic
# FLC animation format
0	leshort		0xAF12				video/x-flic

# SGI and Apple formats
0	string		MOVI				video/sgi
4	string		moov				video/quicktime
4	string		mdat				video/quicktime
4	string		wide				video/quicktime
4	string		free				video/quicktime

# DIF digital video file format <mpruett@sgi.com>
#0	belong&0xffffff00	0x1f070000      DIF

# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
0	belong			0x3026b275	video/x-ms-asf

# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
0	string			\x8aMNG		video/x-mng

# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
#0	string			\x8bJNG		JNG video data,

# Vivo video (Wolfram Kleff)
#3	string		\x0D\x0AVersion:Vivo	Vivo video data

# VRML (Virtual Reality Modelling Language)
#0       string/b        #VRML\ V1.0\ ascii	VRML 1 file
#0	string/b	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file

#------------------------------------------------------------------------------
# Databases
#
# GDBM magic numbers
#  Will be maintained as part of the GDBM distribution in the future.
#  <downsj@teeny.org>
0       belong  0x13579ace      application/x-gdbm
0       lelong  0x13579ace      application/x-gdbm
0       string  GDBM            application/x-gdbm
#
0       belong  0x061561        application/x-dbm
#
# Executables
#
0       string          \177ELF
>4      byte            0
>4      byte            1
>4      byte            2
>5      byte            0
>5      byte            1
>>16    leshort         0
>>16    leshort         1               application/x-object
>>16    leshort         2               application/x-executable
>>16    leshort         3               application/x-sharedlib
>>16    leshort         4               application/x-core
>5      byte            2
>>16    beshort         0
>>16    beshort         1               application/x-object
>>16    beshort         2               application/x-executable
>>16    beshort         3               application/x-sharedlib
>>16    beshort         4               application/x-core

# MS Access database (95 or newer, i.e. MS Jet 3.0 or newer)
4	  string	Standard\ Jet\ DB	application/x-msaccess

#
# DOS
0	string		MZ		application/x-msdos-program
#
# KDE desktop file
0		string  [Desktop\ Entry]        application/x-desktop
0		string  [Desktop\ Action        application/x-desktop
0		string	[KDE\ Desktop\ Entry]	application/x-desktop
0               string  \#\ Config\ File        application/x-desktop
0		string	\#\ KDE\ Config\ File	application/x-desktop
# xmcd database file for kscd
0		string	\#\ xmcd                text/xmcd
# SQLite database files
0	string		**\ This\ file\ contains\ an\ SQLite	application/x-sqlite2
0	string		SQLite\ format\ 3	application/x-sqlite3

#------------------------------------------------------------------------------
# Java

0	short		0xcafe
>2	short		0xbabe		application/x-java

# vcard / vcalendar
0	string		BEGIN:VCALENDAR	text/x-vcalendar
0	string		begin:vcalendar	text/x-vcalendar
0	string		BEGIN:VCARD	text/x-vcard
0	string		begin:vcard	text/x-vcard

# LDIF / LDAP interchange format
0	string		dn:\ cn=	text/x-ldif

# applix
#------------------------------------------------------------------------------
# applix:  file(1) magic for Applixware
# From: Peter Soos <sp@osb.hu>
#
0       string          *BEGIN
>7      string          WORDS           application/x-applixword
>7      string          GRAPHICS	application/x-applixgraphics
#>7      string          RASTER          application/x-applix
>7      string          SPREADSHEETS    application/x-applixspread
#>7      string          MACRO		application/x-applix
#>7      string          BUILDER		application/x-applix

#------------------------------------------------------------------------------
# diff:  file(1) magic for diff(1) output
#
0       string          diff\		text/x-diff
0       string          ***\		text/x-diff
0       string          Only\ in\ 	text/x-diff
0       string          Common\ subdirectories:\        text/x-diff


#------------------------------------------------------------------------------
# flash:        file(1) magic for Macromedia Flash file format
#
# See
#
#       http://www.macromedia.com/software/flash/open/
#
0       string          FWS             application/x-shockwave-flash

#------------------------------------------------------------------------------
# DjVu (Leon Bottou <leonb@research.att.com>):
#
4      string          FORM
>12    string          DJVU             image/x-djvu
>12    string          DJVM             image/x-djvu
>12    string          BM44             image/x-djvu
>12    string          PM44             image/x-djvu

#------------------------------------------------------------------------------
# adi: file(1) magic for ADi's objects
# From Gregory McGarry <g.mcgarry@ieee.org>
#
0	leshort		0x521c		application/x-executable # COFF DSP21k
>18	lelong		&02		application/x-executable # executable,
>18	lelong		^02
>>18	lelong		&01		application/x-executable # static object,
>>18	lelong		^01		application/x-executable # relocatable object,
>18	lelong		&010		application/x-executable # stripped
>18	lelong		^010		application/x-executable # not stripped

#------------------------------------------------------------------------------
# alliant:  file(1) magic for Alliant FX series a.out files
#
# If the FX series is the one that had a processor with a 68K-derived
# instruction set, the "short" should probably become "beshort" and the
# "long" should probably become "belong".
# If it's the i860-based one, they should probably become either the
# big-endian or little-endian versions, depending on the mode they ran
# the 860 in....
#
0	short		0420		application/x-executable # 0420 Alliant virtual executable
>2	short		&0x0020		application/x-sharedlib # common library
>16	long		>0		application/x-sharedlib # not stripped
0	short		0421		application/x-executable # 0421 Alliant compact executable
>2	short		&0x0020		application/x-sharedlib # common library
>16	long		>0		application/x-sharedlib # not stripped
#-----------------------------------------------------------

# alpha architecture description
#

0	leshort		0603		application/x-executable #  COFF format alpha
>22	leshort&030000	!020000		application/x-executable # executable
>24	leshort		0410		application/x-executable # pure
>24	leshort		0413		application/x-executable # paged
>22	leshort&020000	!0		application/x-executable # dynamically linked
>16	lelong		!0		application/x-executable # not stripped
>16	lelong		0		application/x-executable # stripped
>22	leshort&030000	020000		application/x-sharedlib # shared library
>24	leshort		0407		application/x-executable # object

# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
#
# The actual magic number is just "Core", followed by a 2-byte version
# number; however, treating any file that begins with "Core" as a Digital
# UNIX core dump file may produce too many false hits, so we include one
# byte of the version number as well; DU 5.0 appears only to be up to
# version 2.
#
0	string		Core\001	application/x-core # Alpha COFF format core dump (Digital UNIX)
0	string		Core\002	application/x-core # Alpha COFF format core dump (Digital UNIX)

#------------------------------------------------------------------------------
# Win95 InternetShortcut (URL): (Helge Deller <deller@gmx.de>):
#
1	string	InternetShortcut	application/x-mswinurl

#------------------------------------------------------------------------------
# amigaos:  file(1) magic for AmigaOS binary formats:

#
# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
# Some formats are still missing: AmigaOS special IFF's, e.g.: FORM....CTLG
# (the others should be separate, anyway)
#
0	belong		0x000003f3	application/x-executable # AmigaOS loadseg()ble executable/binary
0	belong		0x000003e7	application/x-sharedlib # AmigaOS object/library data

0 	string		%TGIF		application/x-tgif

0 	string		#FIG		application/x-xfig
0	string		#LyX\ 1		application/x-lyx

#------------------------------------------------------------------------------
# VRML
0	string		#VRML		model/vrml

#------------------------------------------------------------------------------
# KWallet file
0	string		KWALLET\012\015\000\015\012	application/x-kde-wallet

#------------------------------------------------------------------------------
# ICA Client configuration files
0	string		[WFClient]		application/x-ica
1	string		[WFClient]		application/x-ica
0	string		[ApplicationServers]	application/x-ica
1	string		[ApplicationServers]	application/x-ica
0	string		[ICA			application/x-ica
1	string		[ICA			application/x-ica
0	string		[Program\ Neighborhood	application/x-ica
1	string		[Program\ Neighborhood	application/x-ica

#------------------------------------------------------------------------------
# CD image files (ISO is imported from file 4.07)
32769	string		CD001			application/x-iso
32633	string		CD001			application/x-iso

# CDR-wins bin-with-cue files
#0	belong		0x00FFFFFF		application/x-cuebin

# FITS (see RFC 4047)
# The SIMPLE keyword is always on the first line, NAXIS on the third.
# Lines are supposed to be exactly 80 characters long.
# FITS files can be different but then they are not application/fits anymore.
0       string          SIMPLE\ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ T	application/fits
>160    string          NAXIS\ \ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2	image/fits
>160    string          NAXIS\ \ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 3	image/fits

# kate: space-indent off; replace-tabs off;
