mimemagic 0.3.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mimemagic might be problematic. Click here for more details.

checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: efe3279a33ec48d0735c73cde30e69399b4505168abada0bd91fba06f3f0bbed
4
+ data.tar.gz: 46bc87f21e649ef5b4ba8c18a9f3671f72c6ef965da23b19d9c3f1d3047bfd81
5
+ SHA512:
6
+ metadata.gz: 10c87d01990c408888c1164ed9551e484394718e81ea770712918865dbc191da1bd3f1d7ab0f843b2e1af9969386211500ec2fde33094914311e8af790bfb07b
7
+ data.tar.gz: e602f44a77095091cca81464d4de48d8ae1ddfc7fc587f0801d4627c0bfee0a004e59f0a90767a7177095fa610b537d6abbd66861312e635c360bae6c3d74a65
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.swp
2
+ *.gem
3
+ Gemfile.lock
4
+ .bundle
5
+ .yardoc
data/.travis.yml ADDED
@@ -0,0 +1,20 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1
6
+ - 2.2
7
+ - 2.3
8
+ - 2.4
9
+ - 2.5
10
+ - ruby-head
11
+ - jruby-19mode
12
+ - rbx-3
13
+ before_install:
14
+ # 1. The pre-installed Bundler version on Travis is very old; causes 1.9.3 build issues
15
+ # 2. Bundler 2.0 is not supported by the whole matrix
16
+ - gem install bundler -v'< 2'
17
+ matrix:
18
+ allow_failures:
19
+ - rvm: ruby-head
20
+ - rvm: rbx-3
data/.yardopts ADDED
@@ -0,0 +1,2 @@
1
+ --no-private
2
+ - README.md
data/CHANGELOG.md ADDED
@@ -0,0 +1,96 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ### Breaking Changes
6
+
7
+ None
8
+
9
+ ### Added
10
+
11
+ None
12
+
13
+ ### Fixed
14
+
15
+ None
16
+
17
+ ## 0.3.5 (2020-05-04)
18
+
19
+ Mimetype extensions are now ordered by freedesktop.org's priority
20
+
21
+ ## 0.3.4 (2020-01-28)
22
+
23
+ Added frozen string literal comments
24
+
25
+ ## 0.3.3 (2018-12-20)
26
+
27
+ Upgrade to shared-mime-info-1.10
28
+
29
+ ## 0.3.2 (2016-08-02)
30
+
31
+ ### Breaking Changes
32
+
33
+ None
34
+
35
+ ### Added
36
+
37
+ - [#37](https://github.com/minad/mimemagic/pull/37)
38
+ A convenient way to get all possible mime types by magic
39
+
40
+ ### Fixed
41
+
42
+ - [#40](https://github.com/minad/mimemagic/pull/40),
43
+ [#41](https://github.com/minad/mimemagic/pull/41)
44
+ Performance improvements
45
+ - [#38](https://github.com/minad/mimemagic/pull/38)
46
+ Updated to shared-mime-info 1.6
47
+
48
+ ## 0.3.1 (2016-01-04)
49
+
50
+ No release notes yet. Contributions welcome.
51
+
52
+ ## 0.3.0 (2015-03-25)
53
+
54
+ No release notes yet. Contributions welcome.
55
+
56
+ ## 0.2.1 (2013-07-29)
57
+
58
+ No release notes yet. Contributions welcome.
59
+
60
+ ## 0.2.0 (2012-10-19)
61
+
62
+ No release notes yet. Contributions welcome.
63
+
64
+ ## 0.1.9 (2012-09-20)
65
+
66
+ No release notes yet. Contributions welcome.
67
+
68
+ ## 0.1.8 (2009-05-08)
69
+
70
+ No release notes yet. Contributions welcome.
71
+
72
+ ## 0.1.7 (2009-05-08)
73
+
74
+ No release notes yet. Contributions welcome.
75
+
76
+ ## 0.1.5 (2009-05-08)
77
+
78
+ No release notes yet. Contributions welcome.
79
+
80
+ ## 0.1.4 (2009-05-08)
81
+
82
+ No release notes yet. Contributions welcome.
83
+
84
+ ## 0.1.3 (2009-05-08)
85
+
86
+ No release notes yet. Contributions welcome.
87
+
88
+ ## 0.1.2 (2009-05-08)
89
+
90
+ No release notes yet. Contributions welcome.
91
+
92
+ ## 0.1.1 (2009-05-08)
93
+
94
+ No release notes yet. Contributions welcome.
95
+
96
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org/'
2
+ gemspec
3
+
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2011 Daniel Mendler
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,51 @@
1
+ MimeMagic is a library to detect the mime type of a file by extension or by content. It uses the mime database
2
+ provided by freedesktop.org (see http://freedesktop.org/wiki/Software/shared-mime-info/).
3
+
4
+ [![Gem Version](https://img.shields.io/gem/v/mimemagic.svg)](http://rubygems.org/gems/mimemagic)
5
+ [![Gem Downloads](https://img.shields.io/gem/dt/mimemagic.svg)](http://rubygems.org/gems/mimemagic)
6
+ [![Build Status](https://secure.travis-ci.org/minad/mimemagic.svg?branch=master)](http://travis-ci.org/minad/mimemagic) [![Code Climate](https://codeclimate.com/github/minad/mimemagic.svg)](https://codeclimate.com/github/minad/mimemagic)
7
+ [![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=min4d&url=https://github.com/minad/mimemagic&title=MimeMagic&language=&tags=github&category=software)
8
+
9
+ Usage
10
+ =====
11
+
12
+ ```ruby
13
+ require 'mimemagic'
14
+ MimeMagic.by_extension('html').text?
15
+ MimeMagic.by_extension('.html').child_of? 'text/plain'
16
+ MimeMagic.by_path('filename.txt')
17
+ MimeMagic.by_magic(File.open('test.html'))
18
+ # etc...
19
+ ```
20
+
21
+ Extra magic overlay
22
+ =====
23
+
24
+ Microsoft Office 2007+ formats (xlsx, docx, and pptx) are not supported by the mime database at freedesktop.org. These files are all zipped collections of xml files and will be detected as "application/zip". Mimemagic comes with extra magic you can overlay on top of the defaults to correctly detect these file types. Enable it like this:
25
+
26
+ ```ruby
27
+ require 'mimemagic'
28
+ require 'mimemagic/overlay'
29
+ MimeMagic.by_magic(File.open('test.xlsx'))
30
+ ```
31
+
32
+ You can add your own magic with `MimeMagic.add`. See `lib/mimemagic/overlay.rb`.
33
+
34
+ API
35
+ ===
36
+
37
+ http://www.rubydoc.info/github/minad/mimemagic
38
+
39
+ Tests
40
+ =====
41
+
42
+ ```
43
+ bundle install
44
+
45
+ rake test
46
+ ```
47
+
48
+ Authors
49
+ =======
50
+
51
+ Daniel Mendler
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ require 'rake/testtask'
2
+
3
+ task :default => %w(test)
4
+
5
+ desc 'Run tests with minitest'
6
+ Rake::TestTask.new do |t|
7
+ t.libs << 'test'
8
+ t.pattern = 'test/*_test.rb'
9
+ end
10
+
11
+ desc 'Generate mime tables'
12
+ task :tables => 'lib/mimemagic/tables.rb'
13
+ file 'lib/mimemagic/tables.rb' => FileList['script/freedesktop.org.xml'] do |f|
14
+ sh "script/generate-mime.rb #{f.prerequisites.join(' ')} > #{f.name}"
15
+ end
16
+
data/lib/mimemagic.rb ADDED
@@ -0,0 +1,138 @@
1
+ require 'mimemagic/tables'
2
+ require 'mimemagic/version'
3
+
4
+ require 'stringio'
5
+
6
+ # Mime type detection
7
+ class MimeMagic
8
+ attr_reader :type, :mediatype, :subtype
9
+
10
+ # Mime type by type string
11
+ def initialize(type)
12
+ @type = type
13
+ @mediatype, @subtype = type.split('/', 2)
14
+ end
15
+
16
+ # Add custom mime type. Arguments:
17
+ # * <i>type</i>: Mime type
18
+ # * <i>options</i>: Options hash
19
+ #
20
+ # Option keys:
21
+ # * <i>:extensions</i>: String list or single string of file extensions
22
+ # * <i>:parents</i>: String list or single string of parent mime types
23
+ # * <i>:magic</i>: Mime magic specification
24
+ # * <i>:comment</i>: Comment string
25
+ def self.add(type, options)
26
+ extensions = [options[:extensions]].flatten.compact
27
+ TYPES[type] = [extensions,
28
+ [options[:parents]].flatten.compact,
29
+ options[:comment]]
30
+ extensions.each {|ext| EXTENSIONS[ext] = type }
31
+ MAGIC.unshift [type, options[:magic]] if options[:magic]
32
+ end
33
+
34
+ # Removes a mime type from the dictionary. You might want to do this if
35
+ # you're seeing impossible conflicts (for instance, application/x-gmc-link).
36
+ # * <i>type</i>: The mime type to remove. All associated extensions and magic are removed too.
37
+ def self.remove(type)
38
+ EXTENSIONS.delete_if {|ext, t| t == type }
39
+ MAGIC.delete_if {|t, m| t == type }
40
+ TYPES.delete(type)
41
+ end
42
+
43
+ # Returns true if type is a text format
44
+ def text?; mediatype == 'text' || child_of?('text/plain'); end
45
+
46
+ # Mediatype shortcuts
47
+ def image?; mediatype == 'image'; end
48
+ def audio?; mediatype == 'audio'; end
49
+ def video?; mediatype == 'video'; end
50
+
51
+ # Returns true if type is child of parent type
52
+ def child_of?(parent)
53
+ MimeMagic.child?(type, parent)
54
+ end
55
+
56
+ # Get string list of file extensions
57
+ def extensions
58
+ TYPES.key?(type) ? TYPES[type][0] : []
59
+ end
60
+
61
+ # Get mime comment
62
+ def comment
63
+ (TYPES.key?(type) ? TYPES[type][2] : nil).to_s
64
+ end
65
+
66
+ # Lookup mime type by file extension
67
+ def self.by_extension(ext)
68
+ ext = ext.to_s.downcase
69
+ mime = ext[0..0] == '.' ? EXTENSIONS[ext[1..-1]] : EXTENSIONS[ext]
70
+ mime && new(mime)
71
+ end
72
+
73
+ # Lookup mime type by filename
74
+ def self.by_path(path)
75
+ by_extension(File.extname(path))
76
+ end
77
+
78
+ # Lookup mime type by magic content analysis.
79
+ # This is a slow operation.
80
+ def self.by_magic(io)
81
+ mime = magic_match(io, :find)
82
+ mime && new(mime[0])
83
+ end
84
+
85
+ # Lookup all mime types by magic content analysis.
86
+ # This is a slower operation.
87
+ def self.all_by_magic(io)
88
+ magic_match(io, :select).map { |mime| new(mime[0]) }
89
+ end
90
+
91
+ # Return type as string
92
+ def to_s
93
+ type
94
+ end
95
+
96
+ # Allow comparison with string
97
+ def eql?(other)
98
+ type == other.to_s
99
+ end
100
+
101
+ def hash
102
+ type.hash
103
+ end
104
+
105
+ alias == eql?
106
+
107
+ def self.child?(child, parent)
108
+ child == parent || TYPES.key?(child) && TYPES[child][1].any? {|p| child?(p, parent) }
109
+ end
110
+
111
+ def self.magic_match(io, method)
112
+ return magic_match(StringIO.new(io.to_s), method) unless io.respond_to?(:read)
113
+
114
+ io.binmode if io.respond_to?(:binmode)
115
+ io.set_encoding(Encoding::BINARY) if io.respond_to?(:set_encoding)
116
+ buffer = "".force_encoding(Encoding::BINARY)
117
+
118
+ MAGIC.send(method) { |type, matches| magic_match_io(io, matches, buffer) }
119
+ end
120
+
121
+ def self.magic_match_io(io, matches, buffer)
122
+ matches.any? do |offset, value, children|
123
+ match =
124
+ if Range === offset
125
+ io.read(offset.begin, buffer)
126
+ x = io.read(offset.end - offset.begin + value.bytesize, buffer)
127
+ x && x.include?(value)
128
+ else
129
+ io.read(offset, buffer)
130
+ io.read(value.bytesize, buffer) == value
131
+ end
132
+ io.rewind
133
+ match && (!children || magic_match_io(io, children, buffer))
134
+ end
135
+ end
136
+
137
+ private_class_method :magic_match, :magic_match_io
138
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # Extra magic
3
+
4
+ [['application/vnd.openxmlformats-officedocument.presentationml.presentation', [[0, "PK\003\004", [[0..5000, '[Content_Types].xml', [[0..5000, 'ppt/']]]]]]],
5
+ ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', [[0, "PK\003\004", [[0..5000, '[Content_Types].xml', [[0..5000, 'xl/']]]]]]],
6
+ ['application/vnd.openxmlformats-officedocument.wordprocessingml.document', [[0, "PK\003\004", [[0..5000, '[Content_Types].xml', [[0..5000, 'word/']]]]]]]].each do |magic|
7
+ MimeMagic.add(magic[0], magic: magic[1])
8
+ end
@@ -0,0 +1,2067 @@
1
+ # -*- coding: binary -*-
2
+ # frozen_string_literal: true
3
+ # Generated from freedesktop.org.xml
4
+ class MimeMagic
5
+ # @private
6
+ # :nodoc:
7
+ EXTENSIONS = {
8
+ '123' => 'application/vnd.lotus-1-2-3',
9
+ '32x' => 'application/x-genesis-32x-rom',
10
+ '3ds' => 'image/x-3ds',
11
+ '3g2' => 'video/3gpp2',
12
+ '3ga' => 'video/3gpp',
13
+ '3gp' => 'video/3gpp',
14
+ '3gp2' => 'video/3gpp2',
15
+ '3gpp' => 'video/3gpp',
16
+ '3gpp2' => 'video/3gpp2',
17
+ '602' => 'application/x-t602',
18
+ '669' => 'audio/x-mod',
19
+ '7z' => 'application/x-7z-compressed',
20
+ 'a' => 'application/x-archive',
21
+ 'a26' => 'application/x-atari-2600-rom',
22
+ 'a78' => 'application/x-atari-7800-rom',
23
+ 'aa' => 'audio/x-pn-audibleaudio',
24
+ 'aac' => 'audio/aac',
25
+ 'aax' => 'audio/x-pn-audibleaudio',
26
+ 'abw' => 'application/x-abiword',
27
+ 'abw.crashed' => 'application/x-abiword',
28
+ 'abw.gz' => 'application/x-abiword',
29
+ 'ac3' => 'audio/ac3',
30
+ 'ace' => 'application/x-ace',
31
+ 'adb' => 'text/x-adasrc',
32
+ 'adf' => 'application/x-amiga-disk-format',
33
+ 'ads' => 'text/x-adasrc',
34
+ 'adts' => 'audio/aac',
35
+ 'afm' => 'application/x-font-afm',
36
+ 'ag' => 'image/x-applix-graphics',
37
+ 'agb' => 'application/x-gba-rom',
38
+ 'ai' => 'application/illustrator',
39
+ 'aif' => 'audio/x-aiff',
40
+ 'aifc' => 'audio/x-aifc',
41
+ 'aiff' => 'audio/x-aiff',
42
+ 'aiffc' => 'audio/x-aifc',
43
+ 'al' => 'application/x-perl',
44
+ 'alz' => 'application/x-alz',
45
+ 'amr' => 'audio/AMR',
46
+ 'amz' => 'audio/x-amzxml',
47
+ 'ani' => 'application/x-navi-animation',
48
+ 'anx' => 'application/annodex',
49
+ 'ape' => 'audio/x-ape',
50
+ 'apk' => 'application/vnd.android.package-archive',
51
+ 'appimage' => 'application/x-iso9660-appimage',
52
+ 'ar' => 'application/x-archive',
53
+ 'arj' => 'application/x-arj',
54
+ 'arw' => 'image/x-sony-arw',
55
+ 'as' => 'application/x-applix-spreadsheet',
56
+ 'asc' => 'application/pgp-encrypted',
57
+ 'asf' => 'application/vnd.ms-asf',
58
+ 'asp' => 'application/x-asp',
59
+ 'ass' => 'text/x-ssa',
60
+ 'asx' => 'audio/x-ms-asx',
61
+ 'atom' => 'application/atom+xml',
62
+ 'au' => 'audio/basic',
63
+ 'automount' => 'text/x-systemd-unit',
64
+ 'avf' => 'video/x-msvideo',
65
+ 'avi' => 'video/x-msvideo',
66
+ 'aw' => 'application/x-applix-word',
67
+ 'awb' => 'audio/AMR-WB',
68
+ 'awk' => 'application/x-awk',
69
+ 'axa' => 'audio/annodex',
70
+ 'axv' => 'video/annodex',
71
+ 'bak' => 'application/x-trash',
72
+ 'bcpio' => 'application/x-bcpio',
73
+ 'bdf' => 'application/x-font-bdf',
74
+ 'bdm' => 'video/mp2t',
75
+ 'bdmv' => 'video/mp2t',
76
+ 'bib' => 'text/x-bibtex',
77
+ 'bin' => 'application/x-sega-cd-rom',
78
+ 'blend' => 'application/x-blender',
79
+ 'blender' => 'application/x-blender',
80
+ 'bmp' => 'image/bmp',
81
+ 'bsdiff' => 'application/x-bsdiff',
82
+ 'bz' => 'application/x-bzip',
83
+ 'bz2' => 'application/x-bzip',
84
+ 'c' => 'text/x-c++src',
85
+ 'c++' => 'text/x-c++src',
86
+ 'cab' => 'application/vnd.ms-cab-compressed',
87
+ 'cap' => 'application/vnd.tcpdump.pcap',
88
+ 'cb7' => 'application/x-cb7',
89
+ 'cbl' => 'text/x-cobol',
90
+ 'cbr' => 'application/vnd.comicbook-rar',
91
+ 'cbt' => 'application/x-cbt',
92
+ 'cbz' => 'application/vnd.comicbook+zip',
93
+ 'cc' => 'text/x-c++src',
94
+ 'ccmx' => 'application/x-ccmx',
95
+ 'cdf' => 'application/x-netcdf',
96
+ 'cdr' => 'application/vnd.corel-draw',
97
+ 'cer' => 'application/pkix-cert',
98
+ 'cert' => 'application/x-x509-ca-cert',
99
+ 'cgb' => 'application/x-gameboy-color-rom',
100
+ 'cgm' => 'image/cgm',
101
+ 'chm' => 'application/vnd.ms-htmlhelp',
102
+ 'chrt' => 'application/x-kchart',
103
+ 'cl' => 'text/x-opencl-src',
104
+ 'class' => 'application/x-java',
105
+ 'clpi' => 'video/mp2t',
106
+ 'cls' => 'text/x-tex',
107
+ 'cmake' => 'text/x-cmake',
108
+ 'cob' => 'text/x-cobol',
109
+ 'coffee' => 'application/vnd.coffeescript',
110
+ 'cpi' => 'video/mp2t',
111
+ 'cpio' => 'application/x-cpio',
112
+ 'cpio.gz' => 'application/x-cpio-compressed',
113
+ 'cpp' => 'text/x-c++src',
114
+ 'cr2' => 'image/x-canon-cr2',
115
+ 'crdownload' => 'application/x-partial-download',
116
+ 'crl' => 'application/pkix-crl',
117
+ 'crt' => 'application/x-x509-ca-cert',
118
+ 'crw' => 'image/x-canon-crw',
119
+ 'cs' => 'text/x-csharp',
120
+ 'csh' => 'application/x-csh',
121
+ 'css' => 'text/css',
122
+ 'csv' => 'text/csv',
123
+ 'csvs' => 'text/csv-schema',
124
+ 'cue' => 'application/x-cue',
125
+ 'cur' => 'image/x-win-bitmap',
126
+ 'cxx' => 'text/x-c++src',
127
+ 'd' => 'text/x-dsrc',
128
+ 'dar' => 'application/x-dar',
129
+ 'dbf' => 'application/x-dbf',
130
+ 'dbk' => 'application/x-docbook+xml',
131
+ 'dc' => 'application/x-dc-rom',
132
+ 'dcl' => 'text/x-dcl',
133
+ 'dcm' => 'application/dicom',
134
+ 'dcr' => 'image/x-kodak-dcr',
135
+ 'dds' => 'image/x-dds',
136
+ 'deb' => 'application/vnd.debian.binary-package',
137
+ 'der' => 'application/x-x509-ca-cert',
138
+ 'desktop' => 'application/x-desktop',
139
+ 'device' => 'text/x-systemd-unit',
140
+ 'di' => 'text/x-dsrc',
141
+ 'dia' => 'application/x-dia-diagram',
142
+ 'dib' => 'image/bmp',
143
+ 'diff' => 'text/x-patch',
144
+ 'divx' => 'video/x-msvideo',
145
+ 'djv' => 'image/vnd.djvu',
146
+ 'djvu' => 'image/vnd.djvu',
147
+ 'dmg' => 'application/x-apple-diskimage',
148
+ 'dmp' => 'application/vnd.tcpdump.pcap',
149
+ 'dng' => 'image/x-adobe-dng',
150
+ 'doc' => 'application/msword',
151
+ 'docbook' => 'application/x-docbook+xml',
152
+ 'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
153
+ 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
154
+ 'dot' => 'application/msword-template',
155
+ 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
156
+ 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
157
+ 'dsl' => 'text/x-dsl',
158
+ 'dtd' => 'application/xml-dtd',
159
+ 'dts' => 'audio/vnd.dts',
160
+ 'dtshd' => 'audio/vnd.dts.hd',
161
+ 'dtx' => 'text/x-tex',
162
+ 'dv' => 'video/dv',
163
+ 'dvi' => 'application/x-dvi',
164
+ 'dvi.bz2' => 'application/x-bzdvi',
165
+ 'dvi.gz' => 'application/x-gzdvi',
166
+ 'dwg' => 'image/vnd.dwg',
167
+ 'dxf' => 'image/vnd.dxf',
168
+ 'e' => 'text/x-eiffel',
169
+ 'egon' => 'application/x-egon',
170
+ 'eif' => 'text/x-eiffel',
171
+ 'el' => 'text/x-emacs-lisp',
172
+ 'emf' => 'image/emf',
173
+ 'eml' => 'message/rfc822',
174
+ 'emp' => 'application/vnd.emusic-emusic_package',
175
+ 'ent' => 'application/xml-external-parsed-entity',
176
+ 'eps' => 'image/x-eps',
177
+ 'eps.bz2' => 'image/x-bzeps',
178
+ 'eps.gz' => 'image/x-gzeps',
179
+ 'epsf' => 'image/x-eps',
180
+ 'epsf.bz2' => 'image/x-bzeps',
181
+ 'epsf.gz' => 'image/x-gzeps',
182
+ 'epsi' => 'image/x-eps',
183
+ 'epsi.bz2' => 'image/x-bzeps',
184
+ 'epsi.gz' => 'image/x-gzeps',
185
+ 'epub' => 'application/epub+zip',
186
+ 'erl' => 'text/x-erlang',
187
+ 'es' => 'application/ecmascript',
188
+ 'etheme' => 'application/x-e-theme',
189
+ 'etx' => 'text/x-setext',
190
+ 'exe' => 'application/x-ms-dos-executable',
191
+ 'exr' => 'image/x-exr',
192
+ 'ez' => 'application/andrew-inset',
193
+ 'f' => 'text/x-fortran',
194
+ 'f4a' => 'audio/mp4',
195
+ 'f4b' => 'audio/x-m4b',
196
+ 'f4v' => 'video/mp4',
197
+ 'f90' => 'text/x-fortran',
198
+ 'f95' => 'text/x-fortran',
199
+ 'fb2' => 'application/x-fictionbook+xml',
200
+ 'fb2.zip' => 'application/x-zip-compressed-fb2',
201
+ 'fd' => 'application/x-raw-floppy-disk-image',
202
+ 'fds' => 'application/x-fds-disk',
203
+ 'feature' => 'text/x-gherkin',
204
+ 'fig' => 'image/x-xfig',
205
+ 'fits' => 'image/fits',
206
+ 'fl' => 'application/x-fluid',
207
+ 'flac' => 'audio/flac',
208
+ 'flatpak' => 'application/vnd.flatpak',
209
+ 'flatpakref' => 'application/vnd.flatpak.ref',
210
+ 'flatpakrepo' => 'application/vnd.flatpak.repo',
211
+ 'flc' => 'video/x-flic',
212
+ 'fli' => 'video/x-flic',
213
+ 'flv' => 'video/x-flv',
214
+ 'flw' => 'application/x-kivio',
215
+ 'fm' => 'application/vnd.framemaker',
216
+ 'fo' => 'text/x-xslfo',
217
+ 'fodg' => 'application/vnd.oasis.opendocument.graphics-flat-xml',
218
+ 'fodp' => 'application/vnd.oasis.opendocument.presentation-flat-xml',
219
+ 'fods' => 'application/vnd.oasis.opendocument.spreadsheet-flat-xml',
220
+ 'fodt' => 'application/vnd.oasis.opendocument.text-flat-xml',
221
+ 'for' => 'text/x-fortran',
222
+ 'fxm' => 'video/x-javafx',
223
+ 'g3' => 'image/fax-g3',
224
+ 'gb' => 'application/x-gameboy-rom',
225
+ 'gba' => 'application/x-gba-rom',
226
+ 'gbc' => 'application/x-gameboy-color-rom',
227
+ 'gbr' => 'image/x-gimp-gbr',
228
+ 'gcode' => 'text/x.gcode',
229
+ 'gcrd' => 'text/vcard',
230
+ 'ged' => 'application/x-gedcom',
231
+ 'gedcom' => 'application/x-gedcom',
232
+ 'gem' => 'application/x-tar',
233
+ 'gen' => 'application/x-genesis-rom',
234
+ 'geo.json' => 'application/geo+json',
235
+ 'geojson' => 'application/geo+json',
236
+ 'gf' => 'application/x-tex-gf',
237
+ 'gg' => 'application/x-gamegear-rom',
238
+ 'gif' => 'image/gif',
239
+ 'gih' => 'image/x-gimp-gih',
240
+ 'glade' => 'application/x-glade',
241
+ 'gml' => 'application/gml+xml',
242
+ 'gmo' => 'application/x-gettext-translation',
243
+ 'gnc' => 'application/x-gnucash',
244
+ 'gnd' => 'application/gnunet-directory',
245
+ 'gnucash' => 'application/x-gnucash',
246
+ 'gnumeric' => 'application/x-gnumeric',
247
+ 'gnuplot' => 'application/x-gnuplot',
248
+ 'go' => 'text/x-go',
249
+ 'gp' => 'application/x-gnuplot',
250
+ 'gpg' => 'application/pgp-encrypted',
251
+ 'gplt' => 'application/x-gnuplot',
252
+ 'gpx' => 'application/gpx+xml',
253
+ 'gra' => 'application/x-graphite',
254
+ 'gs' => 'text/x-genie',
255
+ 'gsf' => 'application/x-font-type1',
256
+ 'gsm' => 'audio/x-gsm',
257
+ 'gtar' => 'application/x-tar',
258
+ 'gv' => 'text/vnd.graphviz',
259
+ 'gvp' => 'text/x-google-video-pointer',
260
+ 'gz' => 'application/gzip',
261
+ 'h' => 'text/x-chdr',
262
+ 'h++' => 'text/x-c++hdr',
263
+ 'h4' => 'application/x-hdf',
264
+ 'h5' => 'application/x-hdf',
265
+ 'hdf' => 'application/x-hdf',
266
+ 'hdf4' => 'application/x-hdf',
267
+ 'hdf5' => 'application/x-hdf',
268
+ 'heic' => 'image/heif',
269
+ 'heif' => 'image/heif',
270
+ 'hfe' => 'application/x-hfe-floppy-image',
271
+ 'hh' => 'text/x-c++hdr',
272
+ 'hlp' => 'application/winhlp',
273
+ 'hp' => 'text/x-c++hdr',
274
+ 'hpgl' => 'application/vnd.hp-hpgl',
275
+ 'hpp' => 'text/x-c++hdr',
276
+ 'hs' => 'text/x-haskell',
277
+ 'htm' => 'text/html',
278
+ 'html' => 'text/html',
279
+ 'hwp' => 'application/x-hwp',
280
+ 'hwt' => 'application/x-hwt',
281
+ 'hxx' => 'text/x-c++hdr',
282
+ 'ica' => 'application/x-ica',
283
+ 'icb' => 'image/x-tga',
284
+ 'icc' => 'application/vnd.iccprofile',
285
+ 'icm' => 'application/vnd.iccprofile',
286
+ 'icns' => 'image/x-icns',
287
+ 'ico' => 'image/vnd.microsoft.icon',
288
+ 'ics' => 'text/calendar',
289
+ 'idl' => 'text/x-idl',
290
+ 'ief' => 'image/ief',
291
+ 'iff' => 'image/x-ilbm',
292
+ 'iges' => 'model/iges',
293
+ 'igs' => 'model/iges',
294
+ 'ilbm' => 'image/x-ilbm',
295
+ 'ime' => 'text/x-iMelody',
296
+ 'img' => 'application/x-raw-disk-image',
297
+ 'img.xz' => 'application/x-raw-disk-image-xz-compressed',
298
+ 'imy' => 'text/x-iMelody',
299
+ 'ins' => 'text/x-tex',
300
+ 'iptables' => 'text/x-iptables',
301
+ 'ipynb' => 'application/x-ipynb+json',
302
+ 'iso' => 'application/x-cd-image',
303
+ 'iso9660' => 'application/x-cd-image',
304
+ 'it' => 'audio/x-it',
305
+ 'it87' => 'application/x-it87',
306
+ 'j2c' => 'image/x-jp2-codestream',
307
+ 'j2k' => 'image/x-jp2-codestream',
308
+ 'jad' => 'text/vnd.sun.j2me.app-descriptor',
309
+ 'jar' => 'application/x-java-archive',
310
+ 'java' => 'text/x-java',
311
+ 'jceks' => 'application/x-java-jce-keystore',
312
+ 'jks' => 'application/x-java-keystore',
313
+ 'jng' => 'image/x-jng',
314
+ 'jnlp' => 'application/x-java-jnlp-file',
315
+ 'jp2' => 'image/jp2',
316
+ 'jpc' => 'image/x-jp2-codestream',
317
+ 'jpe' => 'image/jpeg',
318
+ 'jpeg' => 'image/jpeg',
319
+ 'jpf' => 'image/jpx',
320
+ 'jpg' => 'image/jpeg',
321
+ 'jpg2' => 'image/jp2',
322
+ 'jpgm' => 'image/jpm',
323
+ 'jpm' => 'image/jpm',
324
+ 'jpr' => 'application/x-jbuilder-project',
325
+ 'jpx' => 'application/x-jbuilder-project',
326
+ 'jrd' => 'application/jrd+json',
327
+ 'js' => 'application/javascript',
328
+ 'jsm' => 'application/javascript',
329
+ 'json' => 'application/json',
330
+ 'json-patch' => 'application/json-patch+json',
331
+ 'jsonld' => 'application/ld+json',
332
+ 'k25' => 'image/x-kodak-k25',
333
+ 'k7' => 'application/x-thomson-cassette',
334
+ 'kar' => 'audio/midi',
335
+ 'karbon' => 'application/x-karbon',
336
+ 'kdc' => 'image/x-kodak-kdc',
337
+ 'kdelnk' => 'application/x-desktop',
338
+ 'kexi' => 'application/x-kexiproject-sqlite2',
339
+ 'kexic' => 'application/x-kexi-connectiondata',
340
+ 'kexis' => 'application/x-kexiproject-shortcut',
341
+ 'key' => 'application/x-iwork-keynote-sffkey',
342
+ 'kfo' => 'application/x-kformula',
343
+ 'kil' => 'application/x-killustrator',
344
+ 'kino' => 'application/smil+xml',
345
+ 'kml' => 'application/vnd.google-earth.kml+xml',
346
+ 'kmz' => 'application/vnd.google-earth.kmz',
347
+ 'kon' => 'application/x-kontour',
348
+ 'kpm' => 'application/x-kpovmodeler',
349
+ 'kpr' => 'application/x-kpresenter',
350
+ 'kpt' => 'application/x-kpresenter',
351
+ 'kra' => 'application/x-krita',
352
+ 'ks' => 'application/x-java-keystore',
353
+ 'ksp' => 'application/x-kspread',
354
+ 'ktx' => 'image/ktx',
355
+ 'kud' => 'application/x-kugar',
356
+ 'kwd' => 'application/x-kword',
357
+ 'kwt' => 'application/x-kword',
358
+ 'la' => 'application/x-shared-library-la',
359
+ 'latex' => 'text/x-tex',
360
+ 'lbm' => 'image/x-ilbm',
361
+ 'ldif' => 'text/x-ldif',
362
+ 'lha' => 'application/x-lha',
363
+ 'lhs' => 'text/x-literate-haskell',
364
+ 'lhz' => 'application/x-lhz',
365
+ 'lnx' => 'application/x-atari-lynx-rom',
366
+ 'loas' => 'audio/usac',
367
+ 'log' => 'text/x-log',
368
+ 'lrv' => 'video/mp4',
369
+ 'lrz' => 'application/x-lrzip',
370
+ 'ltx' => 'text/x-tex',
371
+ 'lua' => 'text/x-lua',
372
+ 'lwo' => 'image/x-lwo',
373
+ 'lwob' => 'image/x-lwo',
374
+ 'lwp' => 'application/vnd.lotus-wordpro',
375
+ 'lws' => 'image/x-lws',
376
+ 'ly' => 'text/x-lilypond',
377
+ 'lyx' => 'application/x-lyx',
378
+ 'lz' => 'application/x-lzip',
379
+ 'lz4' => 'application/x-lz4',
380
+ 'lzh' => 'application/x-lha',
381
+ 'lzma' => 'application/x-lzma',
382
+ 'lzo' => 'application/x-lzop',
383
+ 'm' => 'text/x-objcsrc',
384
+ 'm15' => 'audio/x-mod',
385
+ 'm1u' => 'video/vnd.mpegurl',
386
+ 'm2t' => 'video/mp2t',
387
+ 'm2ts' => 'video/mp2t',
388
+ 'm3u' => 'audio/x-mpegurl',
389
+ 'm3u8' => 'audio/x-mpegurl',
390
+ 'm4' => 'application/x-m4',
391
+ 'm4a' => 'audio/mp4',
392
+ 'm4b' => 'audio/x-m4b',
393
+ 'm4r' => 'audio/x-m4r',
394
+ 'm4u' => 'video/vnd.mpegurl',
395
+ 'm4v' => 'video/mp4',
396
+ 'm7' => 'application/x-thomson-cartridge-memo7',
397
+ 'mab' => 'application/x-markaby',
398
+ 'mak' => 'text/x-makefile',
399
+ 'man' => 'application/x-troff-man',
400
+ 'manifest' => 'text/cache-manifest',
401
+ 'markdown' => 'text/markdown',
402
+ 'mbox' => 'application/mbox',
403
+ 'md' => 'text/markdown',
404
+ 'mdb' => 'application/vnd.ms-access',
405
+ 'mdi' => 'image/vnd.ms-modi',
406
+ 'mdx' => 'application/x-genesis-32x-rom',
407
+ 'me' => 'text/x-troff-me',
408
+ 'med' => 'audio/x-mod',
409
+ 'meta4' => 'application/metalink4+xml',
410
+ 'metalink' => 'application/metalink+xml',
411
+ 'mgp' => 'application/x-magicpoint',
412
+ 'mht' => 'application/x-mimearchive',
413
+ 'mhtml' => 'application/x-mimearchive',
414
+ 'mid' => 'audio/midi',
415
+ 'midi' => 'audio/midi',
416
+ 'mif' => 'application/x-mif',
417
+ 'minipsf' => 'audio/x-minipsf',
418
+ 'mj2' => 'video/mj2',
419
+ 'mjp2' => 'video/mj2',
420
+ 'mjpeg' => 'video/x-mjpeg',
421
+ 'mjpg' => 'video/x-mjpeg',
422
+ 'mjs' => 'application/javascript',
423
+ 'mk' => 'text/x-makefile',
424
+ 'mk3d' => 'video/x-matroska-3d',
425
+ 'mka' => 'audio/x-matroska',
426
+ 'mkd' => 'text/markdown',
427
+ 'mkv' => 'video/x-matroska',
428
+ 'ml' => 'text/x-ocaml',
429
+ 'mli' => 'text/x-ocaml',
430
+ 'mm' => 'text/x-troff-mm',
431
+ 'mmf' => 'application/x-smaf',
432
+ 'mml' => 'application/mathml+xml',
433
+ 'mng' => 'video/x-mng',
434
+ 'mo' => 'application/x-gettext-translation',
435
+ 'mo3' => 'audio/x-mo3',
436
+ 'mobi' => 'application/x-mobipocket-ebook',
437
+ 'moc' => 'text/x-moc',
438
+ 'mod' => 'audio/x-mod',
439
+ 'mof' => 'text/x-mof',
440
+ 'moov' => 'video/quicktime',
441
+ 'mount' => 'text/x-systemd-unit',
442
+ 'mov' => 'video/quicktime',
443
+ 'movie' => 'video/x-sgi-movie',
444
+ 'mp+' => 'audio/x-musepack',
445
+ 'mp2' => 'audio/mp2',
446
+ 'mp3' => 'audio/mpeg',
447
+ 'mp4' => 'video/mp4',
448
+ 'mpc' => 'audio/x-musepack',
449
+ 'mpe' => 'video/mpeg',
450
+ 'mpeg' => 'video/mpeg',
451
+ 'mpg' => 'video/mpeg',
452
+ 'mpga' => 'audio/mpeg',
453
+ 'mpl' => 'video/mp2t',
454
+ 'mpls' => 'video/mp2t',
455
+ 'mpp' => 'audio/x-musepack',
456
+ 'mrl' => 'text/x-mrml',
457
+ 'mrml' => 'text/x-mrml',
458
+ 'mrw' => 'image/x-minolta-mrw',
459
+ 'ms' => 'text/x-troff-ms',
460
+ 'msi' => 'application/x-msi',
461
+ 'msod' => 'image/x-msod',
462
+ 'msx' => 'application/x-msx-rom',
463
+ 'mtm' => 'audio/x-mod',
464
+ 'mts' => 'video/mp2t',
465
+ 'mup' => 'text/x-mup',
466
+ 'mxf' => 'application/mxf',
467
+ 'mxu' => 'video/vnd.mpegurl',
468
+ 'n64' => 'application/x-n64-rom',
469
+ 'nb' => 'application/mathematica',
470
+ 'nc' => 'application/x-netcdf',
471
+ 'nds' => 'application/x-nintendo-ds-rom',
472
+ 'nef' => 'image/x-nikon-nef',
473
+ 'nes' => 'application/x-nes-rom',
474
+ 'nez' => 'application/x-nes-rom',
475
+ 'nfo' => 'text/x-nfo',
476
+ 'ngc' => 'application/x-neo-geo-pocket-color-rom',
477
+ 'ngp' => 'application/x-neo-geo-pocket-rom',
478
+ 'not' => 'text/x-mup',
479
+ 'nsc' => 'application/x-netshow-channel',
480
+ 'nsv' => 'video/x-nsv',
481
+ 'nzb' => 'application/x-nzb',
482
+ 'o' => 'application/x-object',
483
+ 'obj' => 'application/x-tgif',
484
+ 'ocl' => 'text/x-ocl',
485
+ 'oda' => 'application/oda',
486
+ 'odb' => 'application/vnd.oasis.opendocument.database',
487
+ 'odc' => 'application/vnd.oasis.opendocument.chart',
488
+ 'odf' => 'application/vnd.oasis.opendocument.formula',
489
+ 'odg' => 'application/vnd.oasis.opendocument.graphics',
490
+ 'odi' => 'application/vnd.oasis.opendocument.image',
491
+ 'odm' => 'application/vnd.oasis.opendocument.text-master',
492
+ 'odp' => 'application/vnd.oasis.opendocument.presentation',
493
+ 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
494
+ 'odt' => 'application/vnd.oasis.opendocument.text',
495
+ 'oga' => 'audio/ogg',
496
+ 'ogg' => 'audio/ogg',
497
+ 'ogm' => 'video/x-ogm+ogg',
498
+ 'ogv' => 'video/ogg',
499
+ 'ogx' => 'application/ogg',
500
+ 'old' => 'application/x-trash',
501
+ 'oleo' => 'application/x-oleo',
502
+ 'ooc' => 'text/x-ooc',
503
+ 'opml' => 'text/x-opml+xml',
504
+ 'oprc' => 'application/vnd.palm',
505
+ 'opus' => 'audio/ogg',
506
+ 'ora' => 'image/openraster',
507
+ 'orf' => 'image/x-olympus-orf',
508
+ 'otc' => 'application/vnd.oasis.opendocument.chart-template',
509
+ 'otf' => 'application/vnd.oasis.opendocument.formula-template',
510
+ 'otg' => 'application/vnd.oasis.opendocument.graphics-template',
511
+ 'oth' => 'application/vnd.oasis.opendocument.text-web',
512
+ 'otp' => 'application/vnd.oasis.opendocument.presentation-template',
513
+ 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
514
+ 'ott' => 'application/vnd.oasis.opendocument.text-template',
515
+ 'owl' => 'application/rdf+xml',
516
+ 'owx' => 'application/owl+xml',
517
+ 'oxps' => 'application/oxps',
518
+ 'oxt' => 'application/vnd.openofficeorg.extension',
519
+ 'p' => 'text/x-pascal',
520
+ 'p10' => 'application/pkcs10',
521
+ 'p12' => 'application/pkcs12',
522
+ 'p65' => 'application/x-pagemaker',
523
+ 'p7b' => 'application/x-pkcs7-certificates',
524
+ 'p7c' => 'application/pkcs7-mime',
525
+ 'p7m' => 'application/pkcs7-mime',
526
+ 'p7s' => 'application/pkcs7-signature',
527
+ 'p8' => 'application/pkcs8',
528
+ 'p8e' => 'application/pkcs8-encrypted',
529
+ 'pack' => 'application/x-java-pack200',
530
+ 'pak' => 'application/x-pak',
531
+ 'par2' => 'application/x-par2',
532
+ 'part' => 'application/x-partial-download',
533
+ 'pas' => 'text/x-pascal',
534
+ 'pat' => 'image/x-gimp-pat',
535
+ 'patch' => 'text/x-patch',
536
+ 'path' => 'text/x-systemd-unit',
537
+ 'pbm' => 'image/x-portable-bitmap',
538
+ 'pcap' => 'application/vnd.tcpdump.pcap',
539
+ 'pcd' => 'image/x-photo-cd',
540
+ 'pce' => 'application/x-pc-engine-rom',
541
+ 'pcf' => 'application/x-font-pcf',
542
+ 'pcf.gz' => 'application/x-font-pcf',
543
+ 'pcf.z' => 'application/x-font-pcf',
544
+ 'pcl' => 'application/vnd.hp-pcl',
545
+ 'pct' => 'image/x-pict',
546
+ 'pcx' => 'image/vnd.zbrush.pcx',
547
+ 'pdb' => 'application/x-aportisdoc',
548
+ 'pdc' => 'application/x-aportisdoc',
549
+ 'pdf' => 'application/pdf',
550
+ 'pdf.bz2' => 'application/x-bzpdf',
551
+ 'pdf.gz' => 'application/x-gzpdf',
552
+ 'pdf.lz' => 'application/x-lzpdf',
553
+ 'pdf.xz' => 'application/x-xzpdf',
554
+ 'pef' => 'image/x-pentax-pef',
555
+ 'pem' => 'application/x-x509-ca-cert',
556
+ 'perl' => 'application/x-perl',
557
+ 'pfa' => 'application/x-font-type1',
558
+ 'pfb' => 'application/x-font-type1',
559
+ 'pfx' => 'application/pkcs12',
560
+ 'pgm' => 'image/x-portable-graymap',
561
+ 'pgn' => 'application/vnd.chess-pgn',
562
+ 'pgp' => 'application/pgp-encrypted',
563
+ 'php' => 'application/x-php',
564
+ 'php3' => 'application/x-php',
565
+ 'php4' => 'application/x-php',
566
+ 'php5' => 'application/x-php',
567
+ 'phps' => 'application/x-php',
568
+ 'pict' => 'image/x-pict',
569
+ 'pict1' => 'image/x-pict',
570
+ 'pict2' => 'image/x-pict',
571
+ 'pk' => 'application/x-tex-pk',
572
+ 'pkg' => 'application/x-xar',
573
+ 'pkipath' => 'application/pkix-pkipath',
574
+ 'pkr' => 'application/pgp-keys',
575
+ 'pl' => 'application/x-perl',
576
+ 'pla' => 'audio/x-iriver-pla',
577
+ 'pln' => 'application/x-planperfect',
578
+ 'pls' => 'audio/x-scpls',
579
+ 'pm' => 'application/x-perl',
580
+ 'pm6' => 'application/x-pagemaker',
581
+ 'pmd' => 'application/x-pagemaker',
582
+ 'png' => 'image/png',
583
+ 'pnm' => 'image/x-portable-anymap',
584
+ 'pntg' => 'image/x-macpaint',
585
+ 'po' => 'text/x-gettext-translation',
586
+ 'pod' => 'application/x-perl',
587
+ 'por' => 'application/x-spss-por',
588
+ 'pot' => 'application/vnd.ms-powerpoint',
589
+ 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
590
+ 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
591
+ 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
592
+ 'ppm' => 'image/x-portable-pixmap',
593
+ 'pps' => 'application/vnd.ms-powerpoint',
594
+ 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
595
+ 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
596
+ 'ppt' => 'application/vnd.ms-powerpoint',
597
+ 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
598
+ 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
599
+ 'ppz' => 'application/vnd.ms-powerpoint',
600
+ 'pqa' => 'application/vnd.palm',
601
+ 'prc' => 'application/x-mobipocket-ebook',
602
+ 'ps' => 'application/postscript',
603
+ 'ps.bz2' => 'application/x-bzpostscript',
604
+ 'ps.gz' => 'application/x-gzpostscript',
605
+ 'psd' => 'image/vnd.adobe.photoshop',
606
+ 'psf' => 'application/x-font-linux-psf',
607
+ 'psf.gz' => 'application/x-gz-font-linux-psf',
608
+ 'psflib' => 'audio/x-psflib',
609
+ 'psid' => 'audio/prs.sid',
610
+ 'psw' => 'application/x-pocket-word',
611
+ 'pub' => 'application/vnd.ms-publisher',
612
+ 'pw' => 'application/x-pw',
613
+ 'py' => 'text/x-python3',
614
+ 'py3' => 'text/x-python3',
615
+ 'py3x' => 'text/x-python3',
616
+ 'pyc' => 'application/x-python-bytecode',
617
+ 'pyo' => 'application/x-python-bytecode',
618
+ 'pyx' => 'text/x-python',
619
+ 'qd' => 'application/x-raw-floppy-disk-image',
620
+ 'qif' => 'application/x-qw',
621
+ 'qml' => 'text/x-qml',
622
+ 'qmlproject' => 'text/x-qml',
623
+ 'qmltypes' => 'text/x-qml',
624
+ 'qp' => 'application/x-qpress',
625
+ 'qt' => 'video/quicktime',
626
+ 'qti' => 'application/x-qtiplot',
627
+ 'qti.gz' => 'application/x-qtiplot',
628
+ 'qtif' => 'image/x-quicktime',
629
+ 'qtl' => 'application/x-quicktime-media-link',
630
+ 'qtvr' => 'video/quicktime',
631
+ 'ra' => 'audio/vnd.rn-realaudio',
632
+ 'raf' => 'image/x-fuji-raf',
633
+ 'ram' => 'application/ram',
634
+ 'raml' => 'application/raml+yaml',
635
+ 'rar' => 'application/vnd.rar',
636
+ 'ras' => 'image/x-cmu-raster',
637
+ 'raw' => 'image/x-panasonic-rw',
638
+ 'raw-disk-image' => 'application/x-raw-disk-image',
639
+ 'raw-disk-image.xz' => 'application/x-raw-disk-image-xz-compressed',
640
+ 'rax' => 'audio/vnd.rn-realaudio',
641
+ 'rb' => 'application/x-ruby',
642
+ 'rdf' => 'application/rdf+xml',
643
+ 'rdfs' => 'application/rdf+xml',
644
+ 'reg' => 'text/x-ms-regedit',
645
+ 'rej' => 'text/x-reject',
646
+ 'rgb' => 'image/x-rgb',
647
+ 'rle' => 'image/rle',
648
+ 'rm' => 'application/vnd.rn-realmedia',
649
+ 'rmj' => 'application/vnd.rn-realmedia',
650
+ 'rmm' => 'application/vnd.rn-realmedia',
651
+ 'rms' => 'application/vnd.rn-realmedia',
652
+ 'rmvb' => 'application/vnd.rn-realmedia',
653
+ 'rmx' => 'application/vnd.rn-realmedia',
654
+ 'rnc' => 'application/relax-ng-compact-syntax',
655
+ 'rng' => 'application/xml',
656
+ 'roff' => 'text/troff',
657
+ 'rp' => 'image/vnd.rn-realpix',
658
+ 'rpm' => 'application/x-rpm',
659
+ 'rs' => 'text/rust',
660
+ 'rss' => 'application/rss+xml',
661
+ 'rt' => 'text/vnd.rn-realtext',
662
+ 'rtf' => 'application/rtf',
663
+ 'rtx' => 'text/richtext',
664
+ 'rv' => 'video/vnd.rn-realvideo',
665
+ 'rvx' => 'video/vnd.rn-realvideo',
666
+ 'rw2' => 'image/x-panasonic-rw2',
667
+ 's3m' => 'audio/x-s3m',
668
+ 'sam' => 'application/x-amipro',
669
+ 'sami' => 'application/x-sami',
670
+ 'sap' => 'application/x-thomson-sap-image',
671
+ 'sass' => 'text/x-sass',
672
+ 'sav' => 'application/x-spss-sav',
673
+ 'scala' => 'text/x-scala',
674
+ 'scm' => 'text/x-scheme',
675
+ 'scope' => 'text/x-systemd-unit',
676
+ 'scss' => 'text/x-scss',
677
+ 'sda' => 'application/vnd.stardivision.draw',
678
+ 'sdc' => 'application/vnd.stardivision.calc',
679
+ 'sdd' => 'application/vnd.stardivision.impress',
680
+ 'sdp' => 'application/vnd.stardivision.impress',
681
+ 'sds' => 'application/vnd.stardivision.chart',
682
+ 'sdw' => 'application/vnd.stardivision.writer',
683
+ 'service' => 'text/x-dbus-service',
684
+ 'sfc' => 'application/vnd.nintendo.snes.rom',
685
+ 'sg' => 'application/x-sg1000-rom',
686
+ 'sgb' => 'application/x-gameboy-rom',
687
+ 'sgf' => 'application/x-go-sgf',
688
+ 'sgi' => 'image/x-sgi',
689
+ 'sgl' => 'application/vnd.stardivision.writer',
690
+ 'sgm' => 'text/sgml',
691
+ 'sgml' => 'text/sgml',
692
+ 'sh' => 'application/x-shellscript',
693
+ 'shape' => 'application/x-dia-shape',
694
+ 'shar' => 'application/x-shar',
695
+ 'shn' => 'application/x-shorten',
696
+ 'siag' => 'application/x-siag',
697
+ 'sid' => 'audio/prs.sid',
698
+ 'sig' => 'application/pgp-signature',
699
+ 'sik' => 'application/x-trash',
700
+ 'sis' => 'application/vnd.symbian.install',
701
+ 'sisx' => 'x-epoc/x-sisx-app',
702
+ 'sit' => 'application/x-stuffit',
703
+ 'siv' => 'application/sieve',
704
+ 'sk' => 'image/x-skencil',
705
+ 'sk1' => 'image/x-skencil',
706
+ 'skr' => 'application/pgp-keys',
707
+ 'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
708
+ 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
709
+ 'slice' => 'text/x-systemd-unit',
710
+ 'slk' => 'text/spreadsheet',
711
+ 'smaf' => 'application/x-smaf',
712
+ 'smc' => 'application/vnd.nintendo.snes.rom',
713
+ 'smd' => 'application/vnd.stardivision.mail',
714
+ 'smf' => 'application/vnd.stardivision.math',
715
+ 'smi' => 'application/smil+xml',
716
+ 'smil' => 'application/smil+xml',
717
+ 'sml' => 'application/smil+xml',
718
+ 'sms' => 'application/x-sms-rom',
719
+ 'snap' => 'application/vnd.snap',
720
+ 'snd' => 'audio/basic',
721
+ 'so' => 'application/x-sharedlib',
722
+ 'socket' => 'text/x-systemd-unit',
723
+ 'spc' => 'application/x-pkcs7-certificates',
724
+ 'spd' => 'application/x-font-speedo',
725
+ 'spec' => 'text/x-rpm-spec',
726
+ 'spl' => 'application/vnd.adobe.flash.movie',
727
+ 'spm' => 'application/x-source-rpm',
728
+ 'spx' => 'audio/x-speex',
729
+ 'sql' => 'application/sql',
730
+ 'sqlite2' => 'application/x-sqlite2',
731
+ 'sqlite3' => 'application/vnd.sqlite3',
732
+ 'sqsh' => 'application/vnd.squashfs',
733
+ 'sr2' => 'image/x-sony-sr2',
734
+ 'src' => 'application/x-wais-source',
735
+ 'src.rpm' => 'application/x-source-rpm',
736
+ 'srf' => 'image/x-sony-srf',
737
+ 'srt' => 'application/x-subrip',
738
+ 'ss' => 'text/x-scheme',
739
+ 'ssa' => 'text/x-ssa',
740
+ 'stc' => 'application/vnd.sun.xml.calc.template',
741
+ 'std' => 'application/vnd.sun.xml.draw.template',
742
+ 'sti' => 'application/vnd.sun.xml.impress.template',
743
+ 'stl' => 'model/stl',
744
+ 'stm' => 'audio/x-stm',
745
+ 'stw' => 'application/vnd.sun.xml.writer.template',
746
+ 'sty' => 'text/x-tex',
747
+ 'sub' => 'text/x-microdvd',
748
+ 'sun' => 'image/x-sun-raster',
749
+ 'sv' => 'text/x-svsrc',
750
+ 'sv4cpio' => 'application/x-sv4cpio',
751
+ 'sv4crc' => 'application/x-sv4crc',
752
+ 'svg' => 'image/svg+xml',
753
+ 'svgz' => 'image/svg+xml-compressed',
754
+ 'svh' => 'text/x-svhdr',
755
+ 'swap' => 'text/x-systemd-unit',
756
+ 'swf' => 'application/vnd.adobe.flash.movie',
757
+ 'swm' => 'application/x-ms-wim',
758
+ 'sxc' => 'application/vnd.sun.xml.calc',
759
+ 'sxd' => 'application/vnd.sun.xml.draw',
760
+ 'sxg' => 'application/vnd.sun.xml.writer.global',
761
+ 'sxi' => 'application/vnd.sun.xml.impress',
762
+ 'sxm' => 'application/vnd.sun.xml.math',
763
+ 'sxw' => 'application/vnd.sun.xml.writer',
764
+ 'sylk' => 'text/spreadsheet',
765
+ 't' => 'application/x-perl',
766
+ 't2t' => 'text/x-txt2tags',
767
+ 'tar' => 'application/x-tar',
768
+ 'tar.bz' => 'application/x-bzip-compressed-tar',
769
+ 'tar.bz2' => 'application/x-bzip-compressed-tar',
770
+ 'tar.gz' => 'application/x-compressed-tar',
771
+ 'tar.lrz' => 'application/x-lrzip-compressed-tar',
772
+ 'tar.lz' => 'application/x-lzip-compressed-tar',
773
+ 'tar.lz4' => 'application/x-lz4-compressed-tar',
774
+ 'tar.lzma' => 'application/x-lzma-compressed-tar',
775
+ 'tar.lzo' => 'application/x-tzo',
776
+ 'tar.xz' => 'application/x-xz-compressed-tar',
777
+ 'tar.z' => 'application/x-tarz',
778
+ 'target' => 'text/x-systemd-unit',
779
+ 'taz' => 'application/x-tarz',
780
+ 'tb2' => 'application/x-bzip-compressed-tar',
781
+ 'tbz' => 'application/x-bzip-compressed-tar',
782
+ 'tbz2' => 'application/x-bzip-compressed-tar',
783
+ 'tcl' => 'text/x-tcl',
784
+ 'tex' => 'text/x-tex',
785
+ 'texi' => 'text/x-texinfo',
786
+ 'texinfo' => 'text/x-texinfo',
787
+ 'tga' => 'image/x-tga',
788
+ 'tgz' => 'application/x-compressed-tar',
789
+ 'theme' => 'application/x-theme',
790
+ 'themepack' => 'application/x-windows-themepack',
791
+ 'tif' => 'image/tiff',
792
+ 'tiff' => 'image/tiff',
793
+ 'timer' => 'text/x-systemd-unit',
794
+ 'tk' => 'text/x-tcl',
795
+ 'tlrz' => 'application/x-lrzip-compressed-tar',
796
+ 'tlz' => 'application/x-lzma-compressed-tar',
797
+ 'tnef' => 'application/vnd.ms-tnef',
798
+ 'tnf' => 'application/vnd.ms-tnef',
799
+ 'toc' => 'application/x-cdrdao-toc',
800
+ 'torrent' => 'application/x-bittorrent',
801
+ 'tpic' => 'image/x-tga',
802
+ 'tr' => 'text/troff',
803
+ 'trig' => 'application/trig',
804
+ 'ts' => 'text/vnd.qt.linguist',
805
+ 'tsv' => 'text/tab-separated-values',
806
+ 'tta' => 'audio/x-tta',
807
+ 'ttc' => 'font/collection',
808
+ 'ttf' => 'font/ttf',
809
+ 'ttl' => 'text/turtle',
810
+ 'ttx' => 'application/x-font-ttx',
811
+ 'twig' => 'text/x-twig',
812
+ 'txt' => 'text/plain',
813
+ 'txz' => 'application/x-xz-compressed-tar',
814
+ 'tzo' => 'application/x-tzo',
815
+ 'udeb' => 'application/vnd.debian.binary-package',
816
+ 'ufraw' => 'application/x-ufraw',
817
+ 'ui' => 'application/x-designer',
818
+ 'uil' => 'text/x-uil',
819
+ 'ult' => 'audio/x-mod',
820
+ 'unf' => 'application/x-nes-rom',
821
+ 'uni' => 'audio/x-mod',
822
+ 'unif' => 'application/x-nes-rom',
823
+ 'url' => 'application/x-mswinurl',
824
+ 'ustar' => 'application/x-ustar',
825
+ 'uue' => 'text/x-uuencode',
826
+ 'v' => 'text/x-verilog',
827
+ 'v64' => 'application/x-n64-rom',
828
+ 'vala' => 'text/x-vala',
829
+ 'vapi' => 'text/x-vala',
830
+ 'vb' => 'application/x-virtual-boy-rom',
831
+ 'vcard' => 'text/vcard',
832
+ 'vcf' => 'text/vcard',
833
+ 'vcs' => 'text/calendar',
834
+ 'vct' => 'text/vcard',
835
+ 'vda' => 'image/x-tga',
836
+ 'vhd' => 'text/x-vhdl',
837
+ 'vhdl' => 'text/x-vhdl',
838
+ 'viv' => 'video/vnd.vivo',
839
+ 'vivo' => 'video/vnd.vivo',
840
+ 'vlc' => 'audio/x-mpegurl',
841
+ 'vob' => 'video/mpeg',
842
+ 'voc' => 'audio/x-voc',
843
+ 'vor' => 'application/vnd.stardivision.writer',
844
+ 'vrm' => 'model/vrml',
845
+ 'vrml' => 'model/vrml',
846
+ 'vsd' => 'application/vnd.visio',
847
+ 'vsdm' => 'application/vnd.ms-visio.drawing.macroEnabled.main+xml',
848
+ 'vsdx' => 'application/vnd.ms-visio.drawing.main+xml',
849
+ 'vss' => 'application/vnd.visio',
850
+ 'vssm' => 'application/vnd.ms-visio.stencil.macroEnabled.main+xml',
851
+ 'vssx' => 'application/vnd.ms-visio.stencil.main+xml',
852
+ 'vst' => 'application/vnd.visio',
853
+ 'vstm' => 'application/vnd.ms-visio.template.macroEnabled.main+xml',
854
+ 'vstx' => 'application/vnd.ms-visio.template.main+xml',
855
+ 'vsw' => 'application/vnd.visio',
856
+ 'vtt' => 'text/vtt',
857
+ 'wad' => 'application/x-wii-wad',
858
+ 'wav' => 'audio/x-wav',
859
+ 'wax' => 'audio/x-ms-asx',
860
+ 'wb1' => 'application/x-quattropro',
861
+ 'wb2' => 'application/x-quattropro',
862
+ 'wb3' => 'application/x-quattropro',
863
+ 'wbmp' => 'image/vnd.wap.wbmp',
864
+ 'wcm' => 'application/vnd.ms-works',
865
+ 'wdb' => 'application/vnd.ms-works',
866
+ 'webm' => 'video/webm',
867
+ 'webp' => 'image/webp',
868
+ 'wim' => 'application/x-ms-wim',
869
+ 'wk1' => 'application/vnd.lotus-1-2-3',
870
+ 'wk3' => 'application/vnd.lotus-1-2-3',
871
+ 'wk4' => 'application/vnd.lotus-1-2-3',
872
+ 'wkdownload' => 'application/x-partial-download',
873
+ 'wks' => 'application/vnd.lotus-1-2-3',
874
+ 'wma' => 'audio/x-ms-wma',
875
+ 'wmf' => 'image/wmf',
876
+ 'wml' => 'text/vnd.wap.wml',
877
+ 'wmls' => 'text/vnd.wap.wmlscript',
878
+ 'wmv' => 'video/x-ms-wmv',
879
+ 'wmx' => 'audio/x-ms-asx',
880
+ 'woff' => 'font/woff',
881
+ 'woff2' => 'font/woff',
882
+ 'wp' => 'application/vnd.wordperfect',
883
+ 'wp4' => 'application/vnd.wordperfect',
884
+ 'wp5' => 'application/vnd.wordperfect',
885
+ 'wp6' => 'application/vnd.wordperfect',
886
+ 'wpd' => 'application/vnd.wordperfect',
887
+ 'wpg' => 'application/x-wpg',
888
+ 'wpl' => 'application/vnd.ms-wpl',
889
+ 'wpp' => 'application/vnd.wordperfect',
890
+ 'wps' => 'application/vnd.ms-works',
891
+ 'wri' => 'application/x-mswrite',
892
+ 'wrl' => 'model/vrml',
893
+ 'ws' => 'application/x-wonderswan-rom',
894
+ 'wsc' => 'application/x-wonderswan-color-rom',
895
+ 'wsgi' => 'text/x-python',
896
+ 'wv' => 'audio/x-wavpack',
897
+ 'wvc' => 'audio/x-wavpack-correction',
898
+ 'wvp' => 'audio/x-wavpack',
899
+ 'wvx' => 'audio/x-ms-asx',
900
+ 'wwf' => 'application/x-wwf',
901
+ 'x3f' => 'image/x-sigma-x3f',
902
+ 'xac' => 'application/x-gnucash',
903
+ 'xar' => 'application/x-xar',
904
+ 'xbel' => 'application/x-xbel',
905
+ 'xbl' => 'application/xml',
906
+ 'xbm' => 'image/x-xbitmap',
907
+ 'xcf' => 'image/x-xcf',
908
+ 'xcf.bz2' => 'image/x-compressed-xcf',
909
+ 'xcf.gz' => 'image/x-compressed-xcf',
910
+ 'xdgapp' => 'application/vnd.flatpak',
911
+ 'xhe' => 'audio/usac',
912
+ 'xht' => 'application/xhtml+xml',
913
+ 'xhtml' => 'application/xhtml+xml',
914
+ 'xi' => 'audio/x-xi',
915
+ 'xla' => 'application/vnd.ms-excel',
916
+ 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
917
+ 'xlc' => 'application/vnd.ms-excel',
918
+ 'xld' => 'application/vnd.ms-excel',
919
+ 'xlf' => 'application/xliff+xml',
920
+ 'xliff' => 'application/xliff+xml',
921
+ 'xll' => 'application/vnd.ms-excel',
922
+ 'xlm' => 'application/vnd.ms-excel',
923
+ 'xlr' => 'application/vnd.ms-works',
924
+ 'xls' => 'application/vnd.ms-excel',
925
+ 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
926
+ 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
927
+ 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
928
+ 'xlt' => 'application/vnd.ms-excel',
929
+ 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
930
+ 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
931
+ 'xlw' => 'application/vnd.ms-excel',
932
+ 'xm' => 'audio/x-xm',
933
+ 'xmf' => 'audio/x-xmf',
934
+ 'xmi' => 'text/x-xmi',
935
+ 'xml' => 'application/xml',
936
+ 'xpi' => 'application/x-xpinstall',
937
+ 'xpm' => 'image/x-xpixmap',
938
+ 'xps' => 'application/oxps',
939
+ 'xsd' => 'application/xml',
940
+ 'xsl' => 'application/xslt+xml',
941
+ 'xslfo' => 'text/x-xslfo',
942
+ 'xslt' => 'application/xslt+xml',
943
+ 'xspf' => 'application/xspf+xml',
944
+ 'xul' => 'application/vnd.mozilla.xul+xml',
945
+ 'xwd' => 'image/x-xwindowdump',
946
+ 'xz' => 'application/x-xz',
947
+ 'yaml' => 'application/x-yaml',
948
+ 'yml' => 'application/x-yaml',
949
+ 'yt' => 'application/vnd.youtube.yt',
950
+ 'z' => 'application/x-compress',
951
+ 'z64' => 'application/x-n64-rom',
952
+ 'zabw' => 'application/x-abiword',
953
+ 'zip' => 'application/zip',
954
+ 'zoo' => 'application/x-zoo',
955
+ 'zsav' => 'application/x-spss-sav',
956
+ 'zz' => 'application/zlib',
957
+ }
958
+ # @private
959
+ # :nodoc:
960
+ TYPES = {
961
+ 'application/andrew-inset' => [%w(ez), %w(), 'ATK inset'],
962
+ 'application/annodex' => [%w(anx), %w(), 'Annodex exchange format'],
963
+ 'application/atom+xml' => [%w(atom), %w(application/xml), 'Atom syndication feed'],
964
+ 'application/dicom' => [%w(dcm), %w(), 'DICOM image'],
965
+ 'application/ecmascript' => [%w(es), %w(application/x-executable text/plain), 'ECMAScript program'],
966
+ 'application/epub+zip' => [%w(epub), %w(application/zip), 'electronic book document'],
967
+ 'application/geo+json' => [%w(geojson geo.json), %w(application/json), 'GeoJSON geospatial data'],
968
+ 'application/gml+xml' => [%w(gml), %w(application/xml), 'GML document'],
969
+ 'application/gnunet-directory' => [%w(gnd), %w(), 'GNUnet search file'],
970
+ 'application/gpx+xml' => [%w(gpx), %w(application/xml), 'GPX geographic data'],
971
+ 'application/gzip' => [%w(gz), %w(), 'Gzip archive'],
972
+ 'application/illustrator' => [%w(ai), %w(), 'Adobe Illustrator document'],
973
+ 'application/javascript' => [%w(js jsm mjs), %w(application/ecmascript), 'JavaScript program'],
974
+ 'application/jrd+json' => [%w(jrd), %w(application/json), 'JRD document'],
975
+ 'application/json' => [%w(json), %w(application/javascript), 'JSON document'],
976
+ 'application/json-patch+json' => [%w(json-patch), %w(application/json), 'JSON patch'],
977
+ 'application/ld+json' => [%w(jsonld), %w(application/json), 'JSON-LD document'],
978
+ 'application/mathematica' => [%w(nb), %w(text/plain), 'Mathematica Notebook'],
979
+ 'application/mathml+xml' => [%w(mml), %w(application/xml), 'MathML document'],
980
+ 'application/mbox' => [%w(mbox), %w(text/plain), 'mailbox file'],
981
+ 'application/metalink+xml' => [%w(metalink), %w(application/xml), 'Metalink file'],
982
+ 'application/metalink4+xml' => [%w(meta4), %w(application/xml), 'Metalink file'],
983
+ 'application/msword' => [%w(doc), %w(application/x-ole-storage), 'Word document'],
984
+ 'application/msword-template' => [%w(dot), %w(application/msword), 'Word template'],
985
+ 'application/mxf' => [%w(mxf), %w(), 'MXF video'],
986
+ 'application/oda' => [%w(oda), %w(), 'ODA document'],
987
+ 'application/ogg' => [%w(ogx), %w(), 'Ogg multimedia file'],
988
+ 'application/owl+xml' => [%w(owx), %w(application/xml), 'OWL XML file'],
989
+ 'application/oxps' => [%w(oxps xps), %w(application/zip), 'XPS document'],
990
+ 'application/pdf' => [%w(pdf), %w(), 'PDF document'],
991
+ 'application/pgp-encrypted' => [%w(pgp gpg asc), %w(text/plain), 'PGP/MIME-encrypted message header'],
992
+ 'application/pgp-keys' => [%w(skr pkr asc pgp gpg), %w(text/plain), 'PGP keys'],
993
+ 'application/pgp-signature' => [%w(asc sig pgp gpg), %w(text/plain), 'detached OpenPGP signature'],
994
+ 'application/pkcs10' => [%w(p10), %w(), 'PKCS#10 certification request'],
995
+ 'application/pkcs12' => [%w(p12 pfx), %w(), 'PKCS#12 certificate bundle'],
996
+ 'application/pkcs7-mime' => [%w(p7c p7m), %w(), 'PKCS#7 Message or Certificate'],
997
+ 'application/pkcs7-signature' => [%w(p7s), %w(text/plain), 'detached S/MIME signature'],
998
+ 'application/pkcs8' => [%w(p8), %w(), 'PKCS#8 private key'],
999
+ 'application/pkcs8-encrypted' => [%w(p8e), %w(), 'PKCS#8 private key (encrypted)'],
1000
+ 'application/pkix-cert' => [%w(cer), %w(), 'X.509 certificate'],
1001
+ 'application/pkix-crl' => [%w(crl), %w(), 'Certificate revocation list'],
1002
+ 'application/pkix-pkipath' => [%w(pkipath), %w(), 'PkiPath certification path'],
1003
+ 'application/postscript' => [%w(ps), %w(text/plain), 'PS document'],
1004
+ 'application/ram' => [%w(ram), %w(), 'RealMedia Metafile'],
1005
+ 'application/raml+yaml' => [%w(raml), %w(application/x-yaml), 'RAML document'],
1006
+ 'application/rdf+xml' => [%w(rdf rdfs owl), %w(application/xml), 'RDF file'],
1007
+ 'application/relax-ng-compact-syntax' => [%w(rnc), %w(text/plain), 'RELAX NG XML schema'],
1008
+ 'application/rss+xml' => [%w(rss), %w(application/xml), 'RSS summary'],
1009
+ 'application/rtf' => [%w(rtf), %w(text/plain), 'RTF document'],
1010
+ 'application/sdp' => [%w(sdp), %w(text/plain), 'SDP multicast stream file'],
1011
+ 'application/sieve' => [%w(siv), %w(application/xml), 'Sieve mail filter script'],
1012
+ 'application/smil+xml' => [%w(smil smi sml kino), %w(application/xml), 'SMIL document'],
1013
+ 'application/sql' => [%w(sql), %w(text/plain), 'SQL code'],
1014
+ 'application/trig' => [%w(trig), %w(text/plain), 'TriG RDF document'],
1015
+ 'application/vnd.adobe.flash.movie' => [%w(swf spl), %w(), 'Shockwave Flash file'],
1016
+ 'application/vnd.android.package-archive' => [%w(apk), %w(application/x-java-archive), 'Android package'],
1017
+ 'application/vnd.appimage' => [%w(appimage), %w(application/vnd.squashfs application/x-executable), 'AppImage application bundle'],
1018
+ 'application/vnd.apple.mpegurl' => [%w(m3u m3u8), %w(text/plain), 'HTTP Live Streaming playlist'],
1019
+ 'application/vnd.chess-pgn' => [%w(pgn), %w(text/plain), 'PGN chess game notation'],
1020
+ 'application/vnd.coffeescript' => [%w(coffee), %w(text/plain), 'CoffeeScript document'],
1021
+ 'application/vnd.comicbook+zip' => [%w(cbz), %w(application/zip), 'comic book archive'],
1022
+ 'application/vnd.comicbook-rar' => [%w(cbr), %w(application/vnd.rar), 'comic book archive'],
1023
+ 'application/vnd.corel-draw' => [%w(cdr), %w(), 'Corel Draw drawing'],
1024
+ 'application/vnd.debian.binary-package' => [%w(deb udeb), %w(), 'Debian package'],
1025
+ 'application/vnd.emusic-emusic_package' => [%w(emp), %w(), 'eMusic download package'],
1026
+ 'application/vnd.flatpak' => [%w(flatpak xdgapp), %w(), 'Flatpak application bundle'],
1027
+ 'application/vnd.flatpak.ref' => [%w(flatpakref), %w(text/plain), 'Flatpak repository reference'],
1028
+ 'application/vnd.flatpak.repo' => [%w(flatpakrepo), %w(text/plain), 'Flatpak repository description'],
1029
+ 'application/vnd.framemaker' => [%w(fm), %w(), 'Adobe FrameMaker document'],
1030
+ 'application/vnd.google-earth.kml+xml' => [%w(kml), %w(application/xml), 'KML geographic data'],
1031
+ 'application/vnd.google-earth.kmz' => [%w(kmz), %w(application/zip), 'KML geographic compressed data'],
1032
+ 'application/vnd.hp-hpgl' => [%w(hpgl), %w(), 'HPGL file'],
1033
+ 'application/vnd.hp-pcl' => [%w(pcl), %w(), 'PCL file'],
1034
+ 'application/vnd.iccprofile' => [%w(icc icm), %w(), 'ICC profile'],
1035
+ 'application/vnd.lotus-1-2-3' => [%w(123 wk1 wk3 wk4 wks), %w(), 'Lotus 1-2-3 spreadsheet'],
1036
+ 'application/vnd.lotus-wordpro' => [%w(lwp), %w(), 'Lotus Word Pro'],
1037
+ 'application/vnd.mozilla.xul+xml' => [%w(xul), %w(application/xml), 'XUL interface document'],
1038
+ 'application/vnd.ms-access' => [%w(mdb), %w(), 'JET database'],
1039
+ 'application/vnd.ms-asf' => [%w(asf), %w(), 'ASF video'],
1040
+ 'application/vnd.ms-cab-compressed' => [%w(cab), %w(), 'Microsoft Cabinet archive'],
1041
+ 'application/vnd.ms-excel' => [%w(xls xlc xll xlm xlw xla xlt xld), %w(), 'Excel spreadsheet'],
1042
+ 'application/vnd.ms-excel.addin.macroEnabled.12' => [%w(xlam), %w(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), 'Excel add-in'],
1043
+ 'application/vnd.ms-excel.sheet.binary.macroEnabled.12' => [%w(xlsb), %w(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), 'Excel 2007 binary spreadsheet'],
1044
+ 'application/vnd.ms-excel.sheet.macroEnabled.12' => [%w(xlsm), %w(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), 'Excel spreadsheet'],
1045
+ 'application/vnd.ms-excel.template.macroEnabled.12' => [%w(xltm), %w(application/vnd.openxmlformats-officedocument.spreadsheetml.template), 'Excel spreadsheet template'],
1046
+ 'application/vnd.ms-htmlhelp' => [%w(chm), %w(), 'CHM document'],
1047
+ 'application/vnd.ms-powerpoint' => [%w(ppz ppt pps pot), %w(), 'PowerPoint presentation'],
1048
+ 'application/vnd.ms-powerpoint.addin.macroEnabled.12' => [%w(ppam), %w(), 'PowerPoint add-in'],
1049
+ 'application/vnd.ms-powerpoint.presentation.macroEnabled.12' => [%w(pptm), %w(application/vnd.openxmlformats-officedocument.presentationml.presentation), 'PowerPoint presentation'],
1050
+ 'application/vnd.ms-powerpoint.slide.macroEnabled.12' => [%w(sldm), %w(application/vnd.openxmlformats-officedocument.presentationml.slide), 'PowerPoint slide'],
1051
+ 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12' => [%w(ppsm), %w(application/vnd.openxmlformats-officedocument.presentationml.slideshow), 'PowerPoint presentation'],
1052
+ 'application/vnd.ms-powerpoint.template.macroEnabled.12' => [%w(potm), %w(application/vnd.openxmlformats-officedocument.presentationml.template), 'PowerPoint presentation template'],
1053
+ 'application/vnd.ms-publisher' => [%w(pub), %w(application/x-ole-storage), 'Microsoft Publisher document'],
1054
+ 'application/vnd.ms-tnef' => [%w(tnef tnf), %w(), 'TNEF message'],
1055
+ 'application/vnd.ms-visio.drawing.macroEnabled.main+xml' => [%w(vsdm), %w(application/zip), 'Office Open XML Visio Drawing'],
1056
+ 'application/vnd.ms-visio.drawing.main+xml' => [%w(vsdx), %w(application/zip), 'Office Open XML Visio Drawing'],
1057
+ 'application/vnd.ms-visio.stencil.macroEnabled.main+xml' => [%w(vssm), %w(application/zip), 'Office Open XML Visio Stencil'],
1058
+ 'application/vnd.ms-visio.stencil.main+xml' => [%w(vssx), %w(application/zip), 'Office Open XML Visio Stencil'],
1059
+ 'application/vnd.ms-visio.template.macroEnabled.main+xml' => [%w(vstm), %w(application/zip), 'Office Open XML Visio Template'],
1060
+ 'application/vnd.ms-visio.template.main+xml' => [%w(vstx), %w(application/zip), 'Office Open XML Visio Template'],
1061
+ 'application/vnd.ms-word.document.macroEnabled.12' => [%w(docm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.document), 'Word document'],
1062
+ 'application/vnd.ms-word.template.macroEnabled.12' => [%w(dotm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.template), 'Word document template'],
1063
+ 'application/vnd.ms-works' => [%w(wcm wdb wks wps xlr), %w(application/x-ole-storage), 'Microsoft Works document'],
1064
+ 'application/vnd.ms-wpl' => [%w(wpl), %w(), 'WPL playlist'],
1065
+ 'application/vnd.nintendo.snes.rom' => [%w(sfc smc), %w(), 'Super NES ROM'],
1066
+ 'application/vnd.oasis.opendocument.chart' => [%w(odc), %w(application/zip), 'ODC chart'],
1067
+ 'application/vnd.oasis.opendocument.chart-template' => [%w(otc), %w(application/zip), 'ODC template'],
1068
+ 'application/vnd.oasis.opendocument.database' => [%w(odb), %w(application/zip), 'ODB database'],
1069
+ 'application/vnd.oasis.opendocument.formula' => [%w(odf), %w(application/zip), 'ODF formula'],
1070
+ 'application/vnd.oasis.opendocument.formula-template' => [%w(otf), %w(application/zip), 'ODF template'],
1071
+ 'application/vnd.oasis.opendocument.graphics' => [%w(odg), %w(application/zip), 'ODG drawing'],
1072
+ 'application/vnd.oasis.opendocument.graphics-flat-xml' => [%w(fodg), %w(application/xml), 'ODG drawing (Flat XML)'],
1073
+ 'application/vnd.oasis.opendocument.graphics-template' => [%w(otg), %w(application/zip), 'ODG template'],
1074
+ 'application/vnd.oasis.opendocument.image' => [%w(odi), %w(application/zip), 'ODI image'],
1075
+ 'application/vnd.oasis.opendocument.presentation' => [%w(odp), %w(application/zip), 'ODP presentation'],
1076
+ 'application/vnd.oasis.opendocument.presentation-flat-xml' => [%w(fodp), %w(application/xml), 'ODP presentation (Flat XML)'],
1077
+ 'application/vnd.oasis.opendocument.presentation-template' => [%w(otp), %w(application/zip), 'ODP template'],
1078
+ 'application/vnd.oasis.opendocument.spreadsheet' => [%w(ods), %w(application/zip), 'ODS spreadsheet'],
1079
+ 'application/vnd.oasis.opendocument.spreadsheet-flat-xml' => [%w(fods), %w(application/xml), 'ODS spreadsheet (Flat XML)'],
1080
+ 'application/vnd.oasis.opendocument.spreadsheet-template' => [%w(ots), %w(application/zip), 'ODS template'],
1081
+ 'application/vnd.oasis.opendocument.text' => [%w(odt), %w(application/zip), 'ODT document'],
1082
+ 'application/vnd.oasis.opendocument.text-flat-xml' => [%w(fodt), %w(application/xml), 'ODT document (Flat XML)'],
1083
+ 'application/vnd.oasis.opendocument.text-master' => [%w(odm), %w(application/zip), 'ODM document'],
1084
+ 'application/vnd.oasis.opendocument.text-template' => [%w(ott), %w(application/zip), 'ODT template'],
1085
+ 'application/vnd.oasis.opendocument.text-web' => [%w(oth), %w(application/zip), 'OTH template'],
1086
+ 'application/vnd.openofficeorg.extension' => [%w(oxt), %w(application/zip), 'OpenOffice.org extension'],
1087
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => [%w(pptx), %w(application/zip), 'PowerPoint 2007 presentation'],
1088
+ 'application/vnd.openxmlformats-officedocument.presentationml.slide' => [%w(sldx), %w(application/zip), 'PowerPoint 2007 slide'],
1089
+ 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => [%w(ppsx), %w(application/zip), 'PowerPoint 2007 show'],
1090
+ 'application/vnd.openxmlformats-officedocument.presentationml.template' => [%w(potx), %w(application/zip), 'PowerPoint 2007 presentation template'],
1091
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => [%w(xlsx), %w(application/zip), 'Excel 2007 spreadsheet'],
1092
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => [%w(xltx), %w(application/zip), 'Excel 2007 spreadsheet template'],
1093
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => [%w(docx), %w(application/zip), 'Word 2007 document'],
1094
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => [%w(dotx), %w(application/zip), 'Word 2007 document template'],
1095
+ 'application/vnd.palm' => [%w(prc pdb pqa oprc), %w(), 'Palm OS database'],
1096
+ 'application/vnd.rar' => [%w(rar), %w(), 'RAR archive'],
1097
+ 'application/vnd.rn-realmedia' => [%w(rm rmj rmm rms rmx rmvb), %w(), 'RealMedia document'],
1098
+ 'application/vnd.snap' => [%w(snap), %w(application/vnd.squashfs), 'Snap package'],
1099
+ 'application/vnd.sqlite3' => [%w(sqlite3), %w(), 'SQLite3 database'],
1100
+ 'application/vnd.squashfs' => [%w(sqsh), %w(), 'Squashfs filesystem'],
1101
+ 'application/vnd.stardivision.calc' => [%w(sdc), %w(), 'StarCalc spreadsheet'],
1102
+ 'application/vnd.stardivision.chart' => [%w(sds), %w(), 'StarChart chart'],
1103
+ 'application/vnd.stardivision.draw' => [%w(sda), %w(), 'StarDraw drawing'],
1104
+ 'application/vnd.stardivision.impress' => [%w(sdd sdp), %w(), 'StarImpress presentation'],
1105
+ 'application/vnd.stardivision.mail' => [%w(smd), %w(), 'StarMail email'],
1106
+ 'application/vnd.stardivision.math' => [%w(smf), %w(), 'StarMath formula'],
1107
+ 'application/vnd.stardivision.writer' => [%w(sdw vor sgl), %w(), 'StarWriter document'],
1108
+ 'application/vnd.sun.xml.calc' => [%w(sxc), %w(application/zip), 'OpenOffice Calc spreadsheet'],
1109
+ 'application/vnd.sun.xml.calc.template' => [%w(stc), %w(application/zip), 'OpenOffice Calc template'],
1110
+ 'application/vnd.sun.xml.draw' => [%w(sxd), %w(application/zip), 'OpenOffice Draw drawing'],
1111
+ 'application/vnd.sun.xml.draw.template' => [%w(std), %w(application/zip), 'OpenOffice Draw template'],
1112
+ 'application/vnd.sun.xml.impress' => [%w(sxi), %w(application/zip), 'OpenOffice Impress presentation'],
1113
+ 'application/vnd.sun.xml.impress.template' => [%w(sti), %w(application/zip), 'OpenOffice Impress template'],
1114
+ 'application/vnd.sun.xml.math' => [%w(sxm), %w(application/zip), 'OpenOffice Math formula'],
1115
+ 'application/vnd.sun.xml.writer' => [%w(sxw), %w(application/zip), 'OpenOffice Writer document'],
1116
+ 'application/vnd.sun.xml.writer.global' => [%w(sxg), %w(application/zip), 'OpenOffice Writer global document'],
1117
+ 'application/vnd.sun.xml.writer.template' => [%w(stw), %w(application/zip), 'OpenOffice Writer template'],
1118
+ 'application/vnd.symbian.install' => [%w(sis), %w(), 'SIS package'],
1119
+ 'application/vnd.tcpdump.pcap' => [%w(pcap cap dmp), %w(), 'Network Packet Capture'],
1120
+ 'application/vnd.visio' => [%w(vsd vst vsw vss), %w(application/x-ole-storage), 'Microsoft Visio document'],
1121
+ 'application/vnd.wordperfect' => [%w(wp wp4 wp5 wp6 wpd wpp), %w(), 'WordPerfect document'],
1122
+ 'application/vnd.youtube.yt' => [%w(yt), %w(application/zip), 'YouTube Media Archive'],
1123
+ 'application/winhlp' => [%w(hlp), %w(), 'WinHelp help file'],
1124
+ 'application/x-7z-compressed' => [%w(7z), %w(), '7-zip archive'],
1125
+ 'application/x-abiword' => [%w(abw abw.crashed abw.gz zabw), %w(application/xml), 'AbiWord document'],
1126
+ 'application/x-ace' => [%w(ace), %w(), 'ACE archive'],
1127
+ 'application/x-alz' => [%w(alz), %w(), 'Alzip archive'],
1128
+ 'application/x-amiga-disk-format' => [%w(adf), %w(), 'Amiga disk image'],
1129
+ 'application/x-amipro' => [%w(sam), %w(), 'Lotus AmiPro document'],
1130
+ 'application/x-aportisdoc' => [%w(pdb pdc), %w(application/vnd.palm), 'AportisDoc document'],
1131
+ 'application/x-apple-diskimage' => [%w(dmg), %w(), 'Apple disk image'],
1132
+ 'application/x-applix-spreadsheet' => [%w(as), %w(), 'Applix Spreadsheets spreadsheet'],
1133
+ 'application/x-applix-word' => [%w(aw), %w(), 'Applix Words document'],
1134
+ 'application/x-archive' => [%w(a ar), %w(), 'AR archive'],
1135
+ 'application/x-arj' => [%w(arj), %w(), 'ARJ archive'],
1136
+ 'application/x-asp' => [%w(asp), %w(text/plain), 'ASP page'],
1137
+ 'application/x-atari-2600-rom' => [%w(a26), %w(), 'Atari 2600'],
1138
+ 'application/x-atari-7800-rom' => [%w(a78), %w(), 'Atari 7800'],
1139
+ 'application/x-atari-lynx-rom' => [%w(lnx), %w(), 'Atari Lynx'],
1140
+ 'application/x-awk' => [%w(awk), %w(application/x-executable text/plain), 'AWK script'],
1141
+ 'application/x-bcpio' => [%w(bcpio), %w(), 'BCPIO document'],
1142
+ 'application/x-bittorrent' => [%w(torrent), %w(), 'BitTorrent seed file'],
1143
+ 'application/x-blender' => [%w(blender blend blend), %w(), 'Blender scene'],
1144
+ 'application/x-bsdiff' => [%w(bsdiff), %w(), 'binary differences between files'],
1145
+ 'application/x-bzdvi' => [%w(dvi.bz2), %w(application/x-bzip), 'TeX DVI document (bzip-compressed)'],
1146
+ 'application/x-bzip' => [%w(bz2 bz), %w(), 'Bzip archive'],
1147
+ 'application/x-bzip-compressed-tar' => [%w(tar.bz2 tar.bz tbz2 tbz tb2), %w(application/x-bzip), 'Tar archive (bzip-compressed)'],
1148
+ 'application/x-bzpdf' => [%w(pdf.bz2), %w(application/x-bzip), 'PDF document (bzip-compressed)'],
1149
+ 'application/x-bzpostscript' => [%w(ps.bz2), %w(application/x-bzip), 'PostScript document (bzip-compressed)'],
1150
+ 'application/x-cb7' => [%w(cb7), %w(application/x-7z-compressed), 'comic book archive'],
1151
+ 'application/x-cbt' => [%w(cbt), %w(application/x-tar), 'comic book archive'],
1152
+ 'application/x-ccmx' => [%w(ccmx), %w(text/plain), 'CCMX color correction file'],
1153
+ 'application/x-cd-image' => [%w(iso iso9660), %w(application/x-raw-disk-image), 'raw CD image'],
1154
+ 'application/x-cdrdao-toc' => [%w(toc), %w(text/plain), 'CD Table Of Contents'],
1155
+ 'application/x-cisco-vpn-settings' => [%w(pcf), %w(), 'Cisco VPN Settings'],
1156
+ 'application/x-compress' => [%w(z), %w(), 'UNIX-compressed file'],
1157
+ 'application/x-compressed-tar' => [%w(tar.gz tgz), %w(application/gzip), 'Tar archive (gzip-compressed)'],
1158
+ 'application/x-cpio' => [%w(cpio), %w(), 'CPIO archive'],
1159
+ 'application/x-cpio-compressed' => [%w(cpio.gz), %w(application/gzip), 'CPIO archive (gzip-compressed)'],
1160
+ 'application/x-csh' => [%w(csh), %w(application/x-shellscript text/plain), 'C shell script'],
1161
+ 'application/x-cue' => [%w(cue), %w(text/plain), 'CD image cuesheet'],
1162
+ 'application/x-dar' => [%w(dar), %w(), 'DAR archive'],
1163
+ 'application/x-dbf' => [%w(dbf), %w(), 'Xbase document'],
1164
+ 'application/x-dc-rom' => [%w(dc), %w(), 'Dreamcast GD-ROM'],
1165
+ 'application/x-designer' => [%w(ui), %w(application/xml), 'Qt Designer file'],
1166
+ 'application/x-desktop' => [%w(desktop kdelnk), %w(text/plain), 'desktop configuration file'],
1167
+ 'application/x-dia-diagram' => [%w(dia), %w(application/xml), 'Dia diagram'],
1168
+ 'application/x-dia-shape' => [%w(shape), %w(application/xml), 'Dia shape'],
1169
+ 'application/x-docbook+xml' => [%w(dbk docbook), %w(application/xml), 'DocBook document'],
1170
+ 'application/x-doom-wad' => [%w(wad), %w(), 'Doom WAD'],
1171
+ 'application/x-dvi' => [%w(dvi), %w(), 'TeX DVI document'],
1172
+ 'application/x-e-theme' => [%w(etheme), %w(), 'Enlightenment theme'],
1173
+ 'application/x-egon' => [%w(egon), %w(), 'Egon Animator animation'],
1174
+ 'application/x-fds-disk' => [%w(fds), %w(), 'Nintendo FDS disk image'],
1175
+ 'application/x-fictionbook+xml' => [%w(fb2), %w(application/xml), 'FictionBook document'],
1176
+ 'application/x-fluid' => [%w(fl), %w(text/plain), 'FLTK Fluid file'],
1177
+ 'application/x-font-afm' => [%w(afm), %w(), 'Adobe font metrics'],
1178
+ 'application/x-font-bdf' => [%w(bdf), %w(), 'BDF font'],
1179
+ 'application/x-font-linux-psf' => [%w(psf), %w(), 'Linux PSF console font'],
1180
+ 'application/x-font-pcf' => [%w(pcf pcf.z pcf.gz), %w(), 'PCF font'],
1181
+ 'application/x-font-speedo' => [%w(spd), %w(), 'Speedo font'],
1182
+ 'application/x-font-ttx' => [%w(ttx), %w(application/xml), 'TrueType XML font'],
1183
+ 'application/x-font-type1' => [%w(pfa pfb gsf), %w(application/postscript), 'PostScript type-1 font'],
1184
+ 'application/x-gameboy-color-rom' => [%w(gbc cgb), %w(), 'Game Boy Color ROM'],
1185
+ 'application/x-gameboy-rom' => [%w(gb sgb), %w(), 'Game Boy ROM'],
1186
+ 'application/x-gamecube-rom' => [%w(iso), %w(), 'GameCube disc image'],
1187
+ 'application/x-gamegear-rom' => [%w(gg), %w(), 'Game Gear ROM'],
1188
+ 'application/x-gba-rom' => [%w(gba agb), %w(), 'Game Boy Advance ROM'],
1189
+ 'application/x-gedcom' => [%w(ged gedcom), %w(), 'GEDCOM family history'],
1190
+ 'application/x-genesis-32x-rom' => [%w(32x mdx), %w(), 'Genesis 32X ROM'],
1191
+ 'application/x-genesis-rom' => [%w(gen smd), %w(), 'Genesis ROM'],
1192
+ 'application/x-gettext-translation' => [%w(gmo mo), %w(), 'translated messages (machine-readable)'],
1193
+ 'application/x-glade' => [%w(glade), %w(application/xml), 'Glade project'],
1194
+ 'application/x-gnucash' => [%w(gnucash gnc xac), %w(), 'GnuCash financial data'],
1195
+ 'application/x-gnumeric' => [%w(gnumeric), %w(), 'Gnumeric spreadsheet'],
1196
+ 'application/x-gnuplot' => [%w(gp gplt gnuplot), %w(text/plain), 'Gnuplot document'],
1197
+ 'application/x-go-sgf' => [%w(sgf), %w(text/plain), 'SGF record'],
1198
+ 'application/x-graphite' => [%w(gra), %w(), 'Graphite scientific graph'],
1199
+ 'application/x-gtk-builder' => [%w(ui), %w(application/xml), 'GTK+ Builder'],
1200
+ 'application/x-gz-font-linux-psf' => [%w(psf.gz), %w(application/gzip), 'Linux PSF console font (gzip-compressed)'],
1201
+ 'application/x-gzdvi' => [%w(dvi.gz), %w(application/gzip), 'TeX DVI document (gzip-compressed)'],
1202
+ 'application/x-gzpdf' => [%w(pdf.gz), %w(application/gzip), 'PDF document (gzip-compressed)'],
1203
+ 'application/x-gzpostscript' => [%w(ps.gz), %w(application/gzip), 'PostScript document (gzip-compressed)'],
1204
+ 'application/x-hdf' => [%w(hdf hdf4 h4 hdf5 h5), %w(), 'HDF document'],
1205
+ 'application/x-hfe-floppy-image' => [%w(hfe), %w(), 'HFE floppy disk image'],
1206
+ 'application/x-hwp' => [%w(hwp), %w(), 'Haansoft Hangul document'],
1207
+ 'application/x-hwt' => [%w(hwt), %w(), 'Haansoft Hangul document template'],
1208
+ 'application/x-ica' => [%w(ica), %w(text/plain), 'Citrix ICA settings file'],
1209
+ 'application/x-ipynb+json' => [%w(ipynb), %w(application/json), 'Jupyter Notebook'],
1210
+ 'application/x-iso9660-appimage' => [%w(appimage), %w(application/x-executable application/x-iso9660-image), 'AppImage application bundle'],
1211
+ 'application/x-it87' => [%w(it87), %w(text/plain), 'IT 8.7 color calibration file'],
1212
+ 'application/x-iwork-keynote-sffkey' => [%w(key), %w(application/zip), 'Apple Keynote 5 presentation'],
1213
+ 'application/x-java' => [%w(class), %w(), 'Java class'],
1214
+ 'application/x-java-archive' => [%w(jar), %w(application/zip), 'Java archive'],
1215
+ 'application/x-java-jce-keystore' => [%w(jceks), %w(), 'Java JCE keystore'],
1216
+ 'application/x-java-jnlp-file' => [%w(jnlp), %w(application/xml), 'JNLP file'],
1217
+ 'application/x-java-keystore' => [%w(jks ks), %w(), 'Java keystore'],
1218
+ 'application/x-java-pack200' => [%w(pack), %w(), 'Pack200 Java archive'],
1219
+ 'application/x-jbuilder-project' => [%w(jpr jpx), %w(), 'JBuilder project'],
1220
+ 'application/x-karbon' => [%w(karbon), %w(), 'Karbon14 drawing'],
1221
+ 'application/x-kchart' => [%w(chrt), %w(), 'KChart chart'],
1222
+ 'application/x-kexi-connectiondata' => [%w(kexic), %w(), 'Kexi settings for database server connection'],
1223
+ 'application/x-kexiproject-shortcut' => [%w(kexis), %w(), 'shortcut to Kexi project on database server'],
1224
+ 'application/x-kexiproject-sqlite2' => [%w(kexi), %w(application/x-sqlite2), 'Kexi database file-based project'],
1225
+ 'application/x-kexiproject-sqlite3' => [%w(kexi), %w(application/x-sqlite3), 'Kexi database file-based project'],
1226
+ 'application/x-kformula' => [%w(kfo), %w(), 'KFormula formula'],
1227
+ 'application/x-killustrator' => [%w(kil), %w(), 'KIllustrator drawing'],
1228
+ 'application/x-kivio' => [%w(flw), %w(), 'Kivio flowchart'],
1229
+ 'application/x-kontour' => [%w(kon), %w(), 'Kontour drawing'],
1230
+ 'application/x-kpovmodeler' => [%w(kpm), %w(), 'KPovModeler scene'],
1231
+ 'application/x-kpresenter' => [%w(kpr kpt), %w(), 'KPresenter presentation'],
1232
+ 'application/x-krita' => [%w(kra), %w(), 'Krita document'],
1233
+ 'application/x-kspread' => [%w(ksp), %w(), 'KSpread spreadsheet'],
1234
+ 'application/x-kugar' => [%w(kud), %w(), 'Kugar document'],
1235
+ 'application/x-kword' => [%w(kwd kwt), %w(), 'KWord document'],
1236
+ 'application/x-lha' => [%w(lha lzh), %w(), 'LHA archive'],
1237
+ 'application/x-lhz' => [%w(lhz), %w(), 'LHZ archive'],
1238
+ 'application/x-lrzip' => [%w(lrz), %w(), 'Lrzip archive'],
1239
+ 'application/x-lrzip-compressed-tar' => [%w(tar.lrz tlrz), %w(application/x-lrzip), 'Tar archive (lrzip-compressed)'],
1240
+ 'application/x-lyx' => [%w(lyx), %w(text/plain), 'LyX document'],
1241
+ 'application/x-lz4' => [%w(lz4), %w(), 'LZ4 archive'],
1242
+ 'application/x-lz4-compressed-tar' => [%w(tar.lz4), %w(application/x-lz4), 'Tar archive (LZ4-compressed)'],
1243
+ 'application/x-lzip' => [%w(lz), %w(), 'Lzip archive'],
1244
+ 'application/x-lzip-compressed-tar' => [%w(tar.lz), %w(application/x-lzip), 'Tar archive (lzip-compressed)'],
1245
+ 'application/x-lzma' => [%w(lzma), %w(), 'LZMA archive'],
1246
+ 'application/x-lzma-compressed-tar' => [%w(tar.lzma tlz), %w(application/x-lzma), 'Tar archive (LZMA-compressed)'],
1247
+ 'application/x-lzop' => [%w(lzo), %w(), 'LZO archive'],
1248
+ 'application/x-lzpdf' => [%w(pdf.lz), %w(application/x-lzip), 'PDF document (lzip-compressed)'],
1249
+ 'application/x-m4' => [%w(m4), %w(text/plain), 'M4 macro'],
1250
+ 'application/x-magicpoint' => [%w(mgp), %w(text/plain), 'MagicPoint presentation'],
1251
+ 'application/x-markaby' => [%w(mab), %w(application/x-ruby), 'Markaby script'],
1252
+ 'application/x-mif' => [%w(mif), %w(), 'Adobe FrameMaker MIF document'],
1253
+ 'application/x-mimearchive' => [%w(mhtml mht), %w(multipart/related), 'MHTML web archive'],
1254
+ 'application/x-mobipocket-ebook' => [%w(mobi prc), %w(application/vnd.palm), 'Mobipocket e-book'],
1255
+ 'application/x-ms-dos-executable' => [%w(exe), %w(), 'DOS/Windows executable'],
1256
+ 'application/x-ms-wim' => [%w(wim swm), %w(), 'WIM disk Image'],
1257
+ 'application/x-msi' => [%w(msi), %w(application/x-ole-storage), 'Windows Installer package'],
1258
+ 'application/x-mswinurl' => [%w(url), %w(), 'Internet shortcut'],
1259
+ 'application/x-mswrite' => [%w(wri), %w(), 'WRI document'],
1260
+ 'application/x-msx-rom' => [%w(msx), %w(), 'MSX ROM'],
1261
+ 'application/x-n64-rom' => [%w(n64 z64 v64), %w(), 'Nintendo64 ROM'],
1262
+ 'application/x-navi-animation' => [%w(ani), %w(), 'Windows animated cursor'],
1263
+ 'application/x-neo-geo-pocket-color-rom' => [%w(ngc), %w(), 'Neo-Geo Pocket Color ROM'],
1264
+ 'application/x-neo-geo-pocket-rom' => [%w(ngp), %w(), 'Neo-Geo Pocket ROM'],
1265
+ 'application/x-nes-rom' => [%w(nes nez unf unif), %w(), 'NES ROM'],
1266
+ 'application/x-netcdf' => [%w(cdf nc), %w(), 'Unidata NetCDF document'],
1267
+ 'application/x-netshow-channel' => [%w(nsc), %w(application/vnd.ms-asf), 'Windows Media Station file'],
1268
+ 'application/x-nintendo-ds-rom' => [%w(nds), %w(), 'Nintendo DS ROM'],
1269
+ 'application/x-nzb' => [%w(nzb), %w(application/xml), 'NewzBin usenet index'],
1270
+ 'application/x-object' => [%w(o), %w(), 'object code'],
1271
+ 'application/x-oleo' => [%w(oleo), %w(), 'GNU Oleo spreadsheet'],
1272
+ 'application/x-pagemaker' => [%w(p65 pm pm6 pmd), %w(application/x-ole-storage), 'Adobe PageMaker'],
1273
+ 'application/x-pak' => [%w(pak), %w(), 'PAK archive'],
1274
+ 'application/x-par2' => [%w(par2 par2), %w(), 'Parchive archive'],
1275
+ 'application/x-partial-download' => [%w(wkdownload crdownload part), %w(), 'Partially downloaded file'],
1276
+ 'application/x-pc-engine-rom' => [%w(pce), %w(), 'PC Engine ROM'],
1277
+ 'application/x-perl' => [%w(pl pl pm al perl pod t), %w(application/x-executable text/plain), 'Perl script'],
1278
+ 'application/x-php' => [%w(php php3 php4 php5 phps), %w(text/plain), 'PHP script'],
1279
+ 'application/x-pkcs7-certificates' => [%w(p7b spc), %w(), 'PKCS#7 certificate bundle'],
1280
+ 'application/x-planperfect' => [%w(pln), %w(), 'PlanPerfect spreadsheet'],
1281
+ 'application/x-pocket-word' => [%w(psw), %w(), 'Pocket Word document'],
1282
+ 'application/x-pw' => [%w(pw), %w(), 'Pathetic Writer document'],
1283
+ 'application/x-python-bytecode' => [%w(pyc pyo), %w(), 'Python bytecode'],
1284
+ 'application/x-qpress' => [%w(qp), %w(), 'Qpress archive'],
1285
+ 'application/x-qtiplot' => [%w(qti qti.gz), %w(text/plain), 'QtiPlot document'],
1286
+ 'application/x-quattropro' => [%w(wb1 wb2 wb3), %w(), 'Quattro Pro spreadsheet'],
1287
+ 'application/x-quicktime-media-link' => [%w(qtl), %w(video/quicktime), 'QuickTime metalink playlist'],
1288
+ 'application/x-qw' => [%w(qif), %w(), 'Quicken document'],
1289
+ 'application/x-raw-disk-image' => [%w(raw-disk-image img), %w(), 'Raw disk image'],
1290
+ 'application/x-raw-disk-image-xz-compressed' => [%w(raw-disk-image.xz img.xz), %w(application/x-xz), 'Raw disk image (XZ-compressed)'],
1291
+ 'application/x-raw-floppy-disk-image' => [%w(fd qd), %w(application/x-raw-disk-image), 'Floppy disk image'],
1292
+ 'application/x-rpm' => [%w(rpm), %w(), 'RPM package'],
1293
+ 'application/x-ruby' => [%w(rb), %w(application/x-executable text/plain), 'Ruby script'],
1294
+ 'application/x-sami' => [%w(smi sami), %w(text/plain), 'SAMI subtitles'],
1295
+ 'application/x-saturn-rom' => [%w(bin iso), %w(), 'Sega Saturn disc image'],
1296
+ 'application/x-sega-cd-rom' => [%w(bin iso), %w(), 'Sega CD disc image'],
1297
+ 'application/x-sg1000-rom' => [%w(sg), %w(), 'SG-1000 ROM'],
1298
+ 'application/x-shar' => [%w(shar), %w(), 'shell archive'],
1299
+ 'application/x-shared-library-la' => [%w(la), %w(text/plain), 'libtool shared library'],
1300
+ 'application/x-sharedlib' => [%w(so), %w(), 'shared library'],
1301
+ 'application/x-shellscript' => [%w(sh), %w(application/x-executable text/plain), 'shell script'],
1302
+ 'application/x-shorten' => [%w(shn), %w(), 'Shorten audio'],
1303
+ 'application/x-siag' => [%w(siag), %w(), 'Siag spreadsheet'],
1304
+ 'application/x-smaf' => [%w(mmf smaf), %w(), 'SMAF audio'],
1305
+ 'application/x-sms-rom' => [%w(sms), %w(), 'Master System ROM'],
1306
+ 'application/x-source-rpm' => [%w(src.rpm spm), %w(application/x-rpm), 'Source RPM package'],
1307
+ 'application/x-spss-por' => [%w(por), %w(), 'SPSS Portable Data File'],
1308
+ 'application/x-spss-sav' => [%w(sav zsav), %w(), 'SPSS Data File'],
1309
+ 'application/x-sqlite2' => [%w(sqlite2), %w(), 'SQLite2 database'],
1310
+ 'application/x-stuffit' => [%w(sit), %w(), 'StuffIt archive'],
1311
+ 'application/x-subrip' => [%w(srt), %w(text/plain), 'SubRip subtitles'],
1312
+ 'application/x-sv4cpio' => [%w(sv4cpio), %w(), 'SV4 CPIO archive'],
1313
+ 'application/x-sv4crc' => [%w(sv4crc), %w(), 'SV4 CPIO archive (with CRC)'],
1314
+ 'application/x-t602' => [%w(602), %w(), 'T602 document'],
1315
+ 'application/x-tar' => [%w(tar gtar gem), %w(), 'Tar archive'],
1316
+ 'application/x-tarz' => [%w(tar.z taz), %w(application/x-compress), 'Tar archive (compressed)'],
1317
+ 'application/x-tex-gf' => [%w(gf), %w(), 'generic font file'],
1318
+ 'application/x-tex-pk' => [%w(pk), %w(), 'packed font file'],
1319
+ 'application/x-tgif' => [%w(obj), %w(), 'TGIF document'],
1320
+ 'application/x-theme' => [%w(theme), %w(application/x-desktop), 'theme'],
1321
+ 'application/x-thomson-cartridge-memo7' => [%w(m7), %w(), "Thomson M\303\251mo7 cartridge"],
1322
+ 'application/x-thomson-cassette' => [%w(k7), %w(), 'Thomson cassette'],
1323
+ 'application/x-thomson-sap-image' => [%w(sap), %w(), 'SAP Thomson floppy disk image'],
1324
+ 'application/x-trash' => [%w(bak old sik), %w(), 'backup file'],
1325
+ 'application/x-troff-man' => [%w(man), %w(text/plain), 'Manpage manual document'],
1326
+ 'application/x-tzo' => [%w(tar.lzo tzo), %w(application/x-lzop), 'Tar archive (LZO-compressed)'],
1327
+ 'application/x-ufraw' => [%w(ufraw), %w(application/xml), 'UFRaw ID image'],
1328
+ 'application/x-ustar' => [%w(ustar), %w(), 'Ustar archive'],
1329
+ 'application/x-virtual-boy-rom' => [%w(vb), %w(), 'Virtual Boy ROM'],
1330
+ 'application/x-wais-source' => [%w(src), %w(text/plain), 'WAIS source code'],
1331
+ 'application/x-wii-rom' => [%w(iso), %w(), 'Wii disc image'],
1332
+ 'application/x-wii-wad' => [%w(wad), %w(), 'WiiWare bundle'],
1333
+ 'application/x-windows-themepack' => [%w(themepack), %w(application/vnd.ms-cab-compressed), 'Microsoft Windows theme pack'],
1334
+ 'application/x-wonderswan-color-rom' => [%w(wsc), %w(), 'Bandai WonderSwan Color ROM'],
1335
+ 'application/x-wonderswan-rom' => [%w(ws), %w(), 'Bandai WonderSwan ROM'],
1336
+ 'application/x-wpg' => [%w(wpg), %w(), 'WordPerfect/Drawperfect image'],
1337
+ 'application/x-wwf' => [%w(wwf), %w(application/pdf), 'WWF document'],
1338
+ 'application/x-x509-ca-cert' => [%w(der crt cert pem), %w(), 'DER/PEM/Netscape-encoded X.509 certificate'],
1339
+ 'application/x-xar' => [%w(xar pkg), %w(), 'XAR archive'],
1340
+ 'application/x-xbel' => [%w(xbel), %w(application/xml), 'XBEL bookmarks'],
1341
+ 'application/x-xpinstall' => [%w(xpi), %w(application/zip), 'XPInstall installer module'],
1342
+ 'application/x-xz' => [%w(xz), %w(), 'XZ archive'],
1343
+ 'application/x-xz-compressed-tar' => [%w(tar.xz txz), %w(application/x-xz), 'Tar archive (XZ-compressed)'],
1344
+ 'application/x-xzpdf' => [%w(pdf.xz), %w(application/x-xz), 'PDF document (XZ-compressed)'],
1345
+ 'application/x-yaml' => [%w(yaml yml), %w(text/plain), 'YAML document'],
1346
+ 'application/x-zip-compressed-fb2' => [%w(fb2.zip), %w(application/zip), 'Compressed FictionBook document'],
1347
+ 'application/x-zoo' => [%w(zoo), %w(), 'Zoo archive'],
1348
+ 'application/xhtml+xml' => [%w(xhtml xht), %w(application/xml), 'XHTML page'],
1349
+ 'application/xliff+xml' => [%w(xlf xliff), %w(application/xml), 'XLIFF translation file'],
1350
+ 'application/xml' => [%w(xml xbl xsd rng), %w(text/plain), 'XML document'],
1351
+ 'application/xml-dtd' => [%w(dtd), %w(text/plain), 'DTD file'],
1352
+ 'application/xml-external-parsed-entity' => [%w(ent), %w(application/xml), 'XML entities document'],
1353
+ 'application/xslt+xml' => [%w(xsl xslt), %w(application/xml), 'XSLT stylesheet'],
1354
+ 'application/xspf+xml' => [%w(xspf), %w(application/xml), 'XSPF playlist'],
1355
+ 'application/zip' => [%w(zip), %w(), 'Zip archive'],
1356
+ 'application/zlib' => [%w(zz), %w(), 'Zlib archive'],
1357
+ 'audio/AMR' => [%w(amr), %w(), 'AMR audio'],
1358
+ 'audio/AMR-WB' => [%w(awb), %w(), 'AMR-WB audio'],
1359
+ 'audio/aac' => [%w(aac adts ass), %w(), 'AAC audio'],
1360
+ 'audio/ac3' => [%w(ac3), %w(), 'Dolby Digital audio'],
1361
+ 'audio/annodex' => [%w(axa), %w(application/annodex), 'Annodex Audio'],
1362
+ 'audio/basic' => [%w(au snd), %w(), 'ULAW (Sun) audio'],
1363
+ 'audio/flac' => [%w(flac), %w(), 'FLAC audio'],
1364
+ 'audio/midi' => [%w(mid midi kar), %w(), 'MIDI audio'],
1365
+ 'audio/mp2' => [%w(mp2), %w(), 'MP2 audio'],
1366
+ 'audio/mp4' => [%w(m4a f4a), %w(), 'MPEG-4 audio'],
1367
+ 'audio/mpeg' => [%w(mp3 mpga), %w(), 'MP3 audio'],
1368
+ 'audio/ogg' => [%w(oga ogg opus), %w(application/ogg), 'Ogg Audio'],
1369
+ 'audio/prs.sid' => [%w(sid psid), %w(), 'Commodore 64 audio'],
1370
+ 'audio/usac' => [%w(loas xhe), %w(), 'USAC audio'],
1371
+ 'audio/vnd.dts' => [%w(dts), %w(), 'DTS audio'],
1372
+ 'audio/vnd.dts.hd' => [%w(dtshd), %w(audio/vnd.dts), 'DTSHD audio'],
1373
+ 'audio/vnd.rn-realaudio' => [%w(ra rax), %w(), 'RealAudio document'],
1374
+ 'audio/x-aifc' => [%w(aifc aiffc), %w(application/x-iff), 'AIFC audio'],
1375
+ 'audio/x-aiff' => [%w(aiff aif), %w(application/x-iff), 'AIFF/Amiga/Mac audio'],
1376
+ 'audio/x-amzxml' => [%w(amz), %w(), 'AmazonMP3 download file'],
1377
+ 'audio/x-ape' => [%w(ape), %w(), "Monkey's audio"],
1378
+ 'audio/x-flac+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg FLAC audio'],
1379
+ 'audio/x-gsm' => [%w(gsm), %w(), 'GSM 06.10 audio'],
1380
+ 'audio/x-iriver-pla' => [%w(pla), %w(), 'iRiver Playlist'],
1381
+ 'audio/x-it' => [%w(it), %w(), 'Impulse Tracker audio'],
1382
+ 'audio/x-m4b' => [%w(m4b f4b), %w(audio/mp4), 'MPEG-4 audio book'],
1383
+ 'audio/x-m4r' => [%w(m4r), %w(video/mp4), 'MPEG-4 Ringtone'],
1384
+ 'audio/x-matroska' => [%w(mka), %w(application/x-matroska), 'Matroska audio'],
1385
+ 'audio/x-minipsf' => [%w(minipsf), %w(audio/x-psf), 'MiniPSF audio'],
1386
+ 'audio/x-mo3' => [%w(mo3), %w(), 'compressed Tracker audio'],
1387
+ 'audio/x-mod' => [%w(mod ult uni m15 mtm 669 med), %w(), 'Amiga SoundTracker audio'],
1388
+ 'audio/x-mpegurl' => [%w(m3u m3u8 vlc), %w(text/plain), 'MP3 audio (streamed)'],
1389
+ 'audio/x-ms-asx' => [%w(asx wax wvx wmx), %w(), 'Microsoft ASX playlist'],
1390
+ 'audio/x-ms-wma' => [%w(wma), %w(application/vnd.ms-asf), 'Windows Media audio'],
1391
+ 'audio/x-musepack' => [%w(mpc mpp mp+), %w(), 'Musepack audio'],
1392
+ 'audio/x-opus+ogg' => [%w(opus), %w(audio/ogg), 'Opus audio'],
1393
+ 'audio/x-pn-audibleaudio' => [%w(aa aax), %w(), 'Audible.Com audio'],
1394
+ 'audio/x-psf' => [%w(psf), %w(), 'PSF audio'],
1395
+ 'audio/x-psflib' => [%w(psflib), %w(audio/x-psf), 'PSFlib audio library'],
1396
+ 'audio/x-s3m' => [%w(s3m), %w(), 'Scream Tracker 3 audio'],
1397
+ 'audio/x-scpls' => [%w(pls), %w(), 'MP3 ShoutCast playlist'],
1398
+ 'audio/x-speex' => [%w(spx), %w(), 'Speex audio'],
1399
+ 'audio/x-speex+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg Speex audio'],
1400
+ 'audio/x-stm' => [%w(stm), %w(), 'Scream Tracker audio'],
1401
+ 'audio/x-tta' => [%w(tta), %w(), 'TrueAudio audio'],
1402
+ 'audio/x-voc' => [%w(voc), %w(), 'VOC audio'],
1403
+ 'audio/x-vorbis+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg Vorbis audio'],
1404
+ 'audio/x-wav' => [%w(wav), %w(), 'WAV audio'],
1405
+ 'audio/x-wavpack' => [%w(wv wvp), %w(), 'WavPack audio'],
1406
+ 'audio/x-wavpack-correction' => [%w(wvc), %w(), 'WavPack audio correction file'],
1407
+ 'audio/x-xi' => [%w(xi), %w(), 'Scream Tracker instrument'],
1408
+ 'audio/x-xm' => [%w(xm), %w(), 'FastTracker II audio'],
1409
+ 'audio/x-xmf' => [%w(xmf), %w(), 'XMF audio'],
1410
+ 'font/collection' => [%w(ttc), %w(), 'Font collection'],
1411
+ 'font/otf' => [%w(otf), %w(font/ttf), 'OpenType font'],
1412
+ 'font/ttf' => [%w(ttf), %w(), 'TrueType font'],
1413
+ 'font/woff' => [%w(woff2), %w(), 'WOFF2 font'],
1414
+ 'image/bmp' => [%w(bmp dib), %w(), 'Windows BMP image'],
1415
+ 'image/cgm' => [%w(cgm), %w(), 'Computer Graphics Metafile'],
1416
+ 'image/emf' => [%w(emf), %w(), 'EMF image'],
1417
+ 'image/fax-g3' => [%w(g3), %w(), 'CCITT G3 fax'],
1418
+ 'image/fits' => [%w(fits), %w(), 'FITS document'],
1419
+ 'image/gif' => [%w(gif), %w(), 'GIF image'],
1420
+ 'image/heif' => [%w(heic heif), %w(), 'HEIF image'],
1421
+ 'image/ief' => [%w(ief), %w(), 'IEF image'],
1422
+ 'image/jp2' => [%w(jp2 jpg2), %w(), 'JPEG-2000 JP2 image'],
1423
+ 'image/jpeg' => [%w(jpeg jpg jpe), %w(), 'JPEG image'],
1424
+ 'image/jpm' => [%w(jpm jpgm), %w(), 'JPEG-2000 JPM image'],
1425
+ 'image/jpx' => [%w(jpf jpx), %w(), 'JPEG-2000 JPX image'],
1426
+ 'image/ktx' => [%w(ktx), %w(), 'Khronos texture image'],
1427
+ 'image/openraster' => [%w(ora), %w(application/zip), 'OpenRaster archiving image'],
1428
+ 'image/png' => [%w(png), %w(), 'PNG image'],
1429
+ 'image/rle' => [%w(rle), %w(), 'Run Length Encoded bitmap image'],
1430
+ 'image/svg+xml' => [%w(svg), %w(application/xml), 'SVG image'],
1431
+ 'image/svg+xml-compressed' => [%w(svgz), %w(application/gzip), 'compressed SVG image'],
1432
+ 'image/tiff' => [%w(tif tiff), %w(), 'TIFF image'],
1433
+ 'image/vnd.adobe.photoshop' => [%w(psd), %w(), 'Photoshop image'],
1434
+ 'image/vnd.djvu' => [%w(djvu djv), %w(), 'DjVu image'],
1435
+ 'image/vnd.djvu+multipage' => [%w(djvu djv), %w(image/vnd.djvu), 'DjVu document'],
1436
+ 'image/vnd.dwg' => [%w(dwg), %w(), 'AutoCAD image'],
1437
+ 'image/vnd.dxf' => [%w(dxf), %w(), 'DXF vector image'],
1438
+ 'image/vnd.microsoft.icon' => [%w(ico), %w(), 'Windows icon'],
1439
+ 'image/vnd.ms-modi' => [%w(mdi), %w(), 'Microsoft Document Imaging format'],
1440
+ 'image/vnd.rn-realpix' => [%w(rp), %w(), 'RealPix document'],
1441
+ 'image/vnd.wap.wbmp' => [%w(wbmp), %w(), 'WBMP image'],
1442
+ 'image/vnd.zbrush.pcx' => [%w(pcx), %w(), 'PCX image'],
1443
+ 'image/webp' => [%w(webp), %w(), 'WebP image'],
1444
+ 'image/wmf' => [%w(wmf), %w(), 'WMF image'],
1445
+ 'image/x-3ds' => [%w(3ds), %w(), '3D Studio image'],
1446
+ 'image/x-adobe-dng' => [%w(dng), %w(image/tiff image/x-dcraw), 'Adobe DNG negative'],
1447
+ 'image/x-applix-graphics' => [%w(ag), %w(), 'Applix Graphics image'],
1448
+ 'image/x-bzeps' => [%w(eps.bz2 epsi.bz2 epsf.bz2), %w(application/x-bzip), 'EPS image (bzip-compressed)'],
1449
+ 'image/x-canon-cr2' => [%w(cr2), %w(image/tiff image/x-dcraw), 'Canon CR2 raw image'],
1450
+ 'image/x-canon-crw' => [%w(crw), %w(image/x-dcraw), 'Canon CRW raw image'],
1451
+ 'image/x-cmu-raster' => [%w(ras), %w(), 'CMU raster image'],
1452
+ 'image/x-compressed-xcf' => [%w(xcf.gz xcf.bz2), %w(), 'compressed GIMP image'],
1453
+ 'image/x-dds' => [%w(dds), %w(), 'DirectDraw surface'],
1454
+ 'image/x-eps' => [%w(eps epsi epsf), %w(application/postscript), 'EPS image'],
1455
+ 'image/x-exr' => [%w(exr), %w(), 'EXR image'],
1456
+ 'image/x-fuji-raf' => [%w(raf), %w(image/x-dcraw), 'Fuji RAF raw image'],
1457
+ 'image/x-gimp-gbr' => [%w(gbr), %w(), 'GIMP brush'],
1458
+ 'image/x-gimp-gih' => [%w(gih), %w(), 'GIMP brush pipe'],
1459
+ 'image/x-gimp-pat' => [%w(pat), %w(), 'GIMP pattern'],
1460
+ 'image/x-gzeps' => [%w(eps.gz epsi.gz epsf.gz), %w(application/gzip), 'EPS image (gzip-compressed)'],
1461
+ 'image/x-icns' => [%w(icns), %w(), 'MacOS X icon'],
1462
+ 'image/x-ilbm' => [%w(iff ilbm lbm), %w(application/x-iff), 'ILBM image'],
1463
+ 'image/x-jng' => [%w(jng), %w(), 'JNG image'],
1464
+ 'image/x-jp2-codestream' => [%w(j2c j2k jpc), %w(), 'JPEG-2000 codestream'],
1465
+ 'image/x-kodak-dcr' => [%w(dcr), %w(image/tiff image/x-dcraw), 'Kodak DCR raw image'],
1466
+ 'image/x-kodak-k25' => [%w(k25), %w(image/tiff image/x-dcraw), 'Kodak K25 raw image'],
1467
+ 'image/x-kodak-kdc' => [%w(kdc), %w(image/tiff image/x-dcraw), 'Kodak KDC raw image'],
1468
+ 'image/x-lwo' => [%w(lwo lwob), %w(), 'LightWave object'],
1469
+ 'image/x-lws' => [%w(lws), %w(), 'LightWave scene'],
1470
+ 'image/x-macpaint' => [%w(pntg), %w(), 'MacPaint Bitmap image'],
1471
+ 'image/x-minolta-mrw' => [%w(mrw), %w(image/x-dcraw), 'Minolta MRW raw image'],
1472
+ 'image/x-msod' => [%w(msod), %w(), 'Office drawing'],
1473
+ 'image/x-nikon-nef' => [%w(nef), %w(image/tiff image/x-dcraw), 'Nikon NEF raw image'],
1474
+ 'image/x-olympus-orf' => [%w(orf), %w(image/x-dcraw), 'Olympus ORF raw image'],
1475
+ 'image/x-panasonic-rw' => [%w(raw), %w(image/x-dcraw), 'Panasonic raw image'],
1476
+ 'image/x-panasonic-rw2' => [%w(rw2), %w(image/x-dcraw), 'Panasonic raw2 image'],
1477
+ 'image/x-pentax-pef' => [%w(pef), %w(image/tiff image/x-dcraw), 'Pentax PEF raw image'],
1478
+ 'image/x-photo-cd' => [%w(pcd), %w(), 'PCD image'],
1479
+ 'image/x-pict' => [%w(pct pict pict1 pict2), %w(), 'Macintosh Quickdraw/PICT drawing'],
1480
+ 'image/x-portable-anymap' => [%w(pnm), %w(), 'PNM image'],
1481
+ 'image/x-portable-bitmap' => [%w(pbm), %w(image/x-portable-anymap), 'PBM image'],
1482
+ 'image/x-portable-graymap' => [%w(pgm), %w(image/x-portable-anymap), 'PGM image'],
1483
+ 'image/x-portable-pixmap' => [%w(ppm), %w(image/x-portable-anymap), 'PPM image'],
1484
+ 'image/x-quicktime' => [%w(qtif qif), %w(), 'QuickTime image'],
1485
+ 'image/x-rgb' => [%w(rgb), %w(), 'RGB image'],
1486
+ 'image/x-sgi' => [%w(sgi), %w(), 'SGI image'],
1487
+ 'image/x-sigma-x3f' => [%w(x3f), %w(image/x-dcraw), 'Sigma X3F raw image'],
1488
+ 'image/x-skencil' => [%w(sk sk1), %w(), 'Skencil document'],
1489
+ 'image/x-sony-arw' => [%w(arw), %w(image/tiff image/x-dcraw), 'Sony ARW raw image'],
1490
+ 'image/x-sony-sr2' => [%w(sr2), %w(image/tiff image/x-dcraw), 'Sony SR2 raw image'],
1491
+ 'image/x-sony-srf' => [%w(srf), %w(image/tiff image/x-dcraw), 'Sony SRF raw image'],
1492
+ 'image/x-sun-raster' => [%w(sun), %w(), 'Sun raster image'],
1493
+ 'image/x-tga' => [%w(tga icb tpic vda vst), %w(), 'TGA image'],
1494
+ 'image/x-win-bitmap' => [%w(cur), %w(), 'Windows cursor'],
1495
+ 'image/x-xbitmap' => [%w(xbm), %w(), 'XBM image'],
1496
+ 'image/x-xcf' => [%w(xcf), %w(), 'GIMP image'],
1497
+ 'image/x-xfig' => [%w(fig), %w(), 'XFig image'],
1498
+ 'image/x-xpixmap' => [%w(xpm), %w(), 'XPM image'],
1499
+ 'image/x-xwindowdump' => [%w(xwd), %w(), 'X window image'],
1500
+ 'message/rfc822' => [%w(eml), %w(text/plain), 'email message'],
1501
+ 'model/iges' => [%w(igs iges), %w(text/plain), 'IGES document'],
1502
+ 'model/stl' => [%w(stl), %w(), 'STL 3D model'],
1503
+ 'model/vrml' => [%w(vrm vrml wrl), %w(text/plain), 'VRML document'],
1504
+ 'text/cache-manifest' => [%w(manifest), %w(text/plain), 'Web application cache manifest'],
1505
+ 'text/calendar' => [%w(vcs ics), %w(text/plain), 'VCS/ICS calendar'],
1506
+ 'text/css' => [%w(css), %w(text/plain), 'CSS stylesheet'],
1507
+ 'text/csv' => [%w(csv), %w(text/plain), 'CSV document'],
1508
+ 'text/csv-schema' => [%w(csvs), %w(text/plain), 'CSV Schema document'],
1509
+ 'text/html' => [%w(html htm), %w(text/plain), 'HTML document'],
1510
+ 'text/markdown' => [%w(md mkd markdown), %w(text/plain), 'Markdown document'],
1511
+ 'text/plain' => [%w(txt asc), %w(), 'plain text document'],
1512
+ 'text/richtext' => [%w(rtx), %w(text/plain), 'rich text document'],
1513
+ 'text/rust' => [%w(rs), %w(text/plain), 'Rust source code'],
1514
+ 'text/sgml' => [%w(sgml sgm), %w(text/plain), 'SGML document'],
1515
+ 'text/spreadsheet' => [%w(sylk slk), %w(text/plain), 'spreadsheet interchange document'],
1516
+ 'text/tab-separated-values' => [%w(tsv), %w(text/plain), 'TSV document'],
1517
+ 'text/troff' => [%w(tr roff t), %w(text/plain), 'Troff document'],
1518
+ 'text/turtle' => [%w(ttl), %w(text/plain), 'Turtle document'],
1519
+ 'text/vcard' => [%w(vcard vcf vct gcrd), %w(text/plain), 'electronic business card'],
1520
+ 'text/vnd.graphviz' => [%w(gv dot), %w(), 'Graphviz DOT graph'],
1521
+ 'text/vnd.qt.linguist' => [%w(ts), %w(application/xml), 'message catalog'],
1522
+ 'text/vnd.rn-realtext' => [%w(rt), %w(), 'RealText document'],
1523
+ 'text/vnd.sun.j2me.app-descriptor' => [%w(jad), %w(), 'JAD document'],
1524
+ 'text/vnd.wap.wml' => [%w(wml), %w(application/xml), 'WML document'],
1525
+ 'text/vnd.wap.wmlscript' => [%w(wmls), %w(), 'WMLScript program'],
1526
+ 'text/vtt' => [%w(vtt), %w(text/plain), 'WebVTT subtitles'],
1527
+ 'text/x-adasrc' => [%w(adb ads), %w(text/plain), 'Ada source code'],
1528
+ 'text/x-bibtex' => [%w(bib), %w(text/plain), 'BibTeX document'],
1529
+ 'text/x-c++hdr' => [%w(hh hp hpp h++ hxx), %w(text/x-chdr), 'C++ header'],
1530
+ 'text/x-c++src' => [%w(cpp cxx cc c c++), %w(text/x-csrc), 'C++ source code'],
1531
+ 'text/x-chdr' => [%w(h), %w(text/x-csrc), 'C header'],
1532
+ 'text/x-cmake' => [%w(cmake), %w(text/plain), 'CMake source code'],
1533
+ 'text/x-cobol' => [%w(cbl cob), %w(text/plain), 'COBOL source file'],
1534
+ 'text/x-csharp' => [%w(cs), %w(text/x-csrc), 'C# source code'],
1535
+ 'text/x-csrc' => [%w(c), %w(text/plain), 'C source code'],
1536
+ 'text/x-dbus-service' => [%w(service), %w(text/plain), 'D-Bus service file'],
1537
+ 'text/x-dcl' => [%w(dcl), %w(text/plain), 'DCL script'],
1538
+ 'text/x-dsl' => [%w(dsl), %w(text/plain), 'DSSSL document'],
1539
+ 'text/x-dsrc' => [%w(d di), %w(text/x-csrc), 'D source code'],
1540
+ 'text/x-eiffel' => [%w(e eif), %w(text/plain), 'Eiffel source code'],
1541
+ 'text/x-emacs-lisp' => [%w(el), %w(text/plain), 'Emacs Lisp source code'],
1542
+ 'text/x-erlang' => [%w(erl), %w(text/plain), 'Erlang source code'],
1543
+ 'text/x-fortran' => [%w(f f90 f95 for), %w(text/plain), 'Fortran source code'],
1544
+ 'text/x-genie' => [%w(gs), %w(text/plain), 'Genie source code'],
1545
+ 'text/x-gettext-translation' => [%w(po), %w(text/plain), 'translation file'],
1546
+ 'text/x-gettext-translation-template' => [%w(pot), %w(text/plain), 'translation template'],
1547
+ 'text/x-gherkin' => [%w(feature), %w(text/plain), 'feature specification in Gherkin format'],
1548
+ 'text/x-go' => [%w(go), %w(text/plain), 'Go source code'],
1549
+ 'text/x-google-video-pointer' => [%w(gvp), %w(), 'Google Video Pointer'],
1550
+ 'text/x-haskell' => [%w(hs), %w(text/plain), 'Haskell source code'],
1551
+ 'text/x-iMelody' => [%w(imy ime), %w(), 'iMelody ringtone'],
1552
+ 'text/x-idl' => [%w(idl), %w(text/plain), 'IDL document'],
1553
+ 'text/x-iptables' => [%w(iptables), %w(text/plain), 'iptables configuration file'],
1554
+ 'text/x-java' => [%w(java), %w(text/x-csrc), 'Java source code'],
1555
+ 'text/x-ldif' => [%w(ldif), %w(text/plain), 'LDIF address book'],
1556
+ 'text/x-lilypond' => [%w(ly), %w(text/plain), 'Lilypond music sheet'],
1557
+ 'text/x-literate-haskell' => [%w(lhs), %w(text/plain), 'LHS source code'],
1558
+ 'text/x-log' => [%w(log), %w(text/plain), 'application log'],
1559
+ 'text/x-lua' => [%w(lua), %w(application/x-executable text/plain), 'Lua script'],
1560
+ 'text/x-makefile' => [%w(mk mak), %w(text/plain), 'Makefile'],
1561
+ 'text/x-matlab' => [%w(m), %w(text/plain), 'MATLAB script/function'],
1562
+ 'text/x-microdvd' => [%w(sub), %w(text/plain), 'MicroDVD subtitles'],
1563
+ 'text/x-moc' => [%w(moc), %w(text/plain), 'Qt MOC file'],
1564
+ 'text/x-modelica' => [%w(mo), %w(text/plain), 'Modelica model'],
1565
+ 'text/x-mof' => [%w(mof), %w(text/x-csrc), 'Managed Object Format'],
1566
+ 'text/x-mpsub' => [%w(sub), %w(text/plain), 'MPSub subtitles'],
1567
+ 'text/x-mrml' => [%w(mrml mrl), %w(), 'MRML playlist'],
1568
+ 'text/x-ms-regedit' => [%w(reg), %w(text/plain), 'Windows Registry extract'],
1569
+ 'text/x-mup' => [%w(mup not), %w(text/plain), 'Mup publication'],
1570
+ 'text/x-nfo' => [%w(nfo), %w(text/x-readme), 'NFO document'],
1571
+ 'text/x-objcsrc' => [%w(m), %w(text/x-csrc), 'Objective-C source code'],
1572
+ 'text/x-ocaml' => [%w(ml mli), %w(), 'OCaml source code'],
1573
+ 'text/x-ocl' => [%w(ocl), %w(text/plain), 'OCL file'],
1574
+ 'text/x-ooc' => [%w(ooc), %w(text/x-csrc), 'OOC source code'],
1575
+ 'text/x-opencl-src' => [%w(cl), %w(text/x-csrc), 'OpenCL source code'],
1576
+ 'text/x-opml+xml' => [%w(opml), %w(application/xml), 'OPML syndication feed'],
1577
+ 'text/x-pascal' => [%w(p pas), %w(text/plain), 'Pascal source code'],
1578
+ 'text/x-patch' => [%w(diff patch), %w(text/plain), 'differences between files'],
1579
+ 'text/x-python' => [%w(py pyx wsgi), %w(application/x-executable text/plain), 'Python script'],
1580
+ 'text/x-python3' => [%w(py py3 py3x), %w(text/x-python), 'Python 3 script'],
1581
+ 'text/x-qml' => [%w(qml qmltypes qmlproject), %w(), 'Qt Markup Language file'],
1582
+ 'text/x-reject' => [%w(rej), %w(text/plain), 'rejected patch'],
1583
+ 'text/x-rpm-spec' => [%w(spec), %w(text/plain), 'RPM spec file'],
1584
+ 'text/x-sass' => [%w(sass), %w(text/plain), 'Sass CSS pre-processor file'],
1585
+ 'text/x-scala' => [%w(scala), %w(text/plain), 'Scala source code'],
1586
+ 'text/x-scheme' => [%w(scm ss), %w(text/plain), 'Scheme source code'],
1587
+ 'text/x-scss' => [%w(scss), %w(text/plain), 'Sass CSS pre-processor file'],
1588
+ 'text/x-setext' => [%w(etx), %w(text/plain), 'Setext document'],
1589
+ 'text/x-ssa' => [%w(ssa ass), %w(text/plain), 'SSA subtitles'],
1590
+ 'text/x-subviewer' => [%w(sub), %w(text/plain), 'SubViewer subtitles'],
1591
+ 'text/x-svhdr' => [%w(svh), %w(text/x-verilog), 'SystemVerilog header'],
1592
+ 'text/x-svsrc' => [%w(sv), %w(text/x-verilog), 'SystemVerilog source code'],
1593
+ 'text/x-systemd-unit' => [%w(automount device mount path scope service slice socket swap target timer), %w(text/plain), 'systemd unit file'],
1594
+ 'text/x-tcl' => [%w(tcl tk), %w(text/plain), 'Tcl script'],
1595
+ 'text/x-tex' => [%w(tex ltx sty cls dtx ins latex), %w(text/plain), 'TeX document'],
1596
+ 'text/x-texinfo' => [%w(texi texinfo), %w(text/plain), 'TeXInfo document'],
1597
+ 'text/x-troff-me' => [%w(me), %w(text/plain), 'Troff ME input document'],
1598
+ 'text/x-troff-mm' => [%w(mm), %w(text/plain), 'Troff MM input document'],
1599
+ 'text/x-troff-ms' => [%w(ms), %w(text/plain), 'Troff MS input document'],
1600
+ 'text/x-twig' => [%w(twig), %w(text/plain), 'Twig template'],
1601
+ 'text/x-txt2tags' => [%w(t2t), %w(text/plain), 'txt2tags document'],
1602
+ 'text/x-uil' => [%w(uil), %w(text/plain), 'X-Motif UIL table'],
1603
+ 'text/x-uuencode' => [%w(uue), %w(text/plain), 'uuencoded file'],
1604
+ 'text/x-vala' => [%w(vala vapi), %w(text/x-csrc), 'Vala source code'],
1605
+ 'text/x-verilog' => [%w(v), %w(text/plain), 'Verilog source code'],
1606
+ 'text/x-vhdl' => [%w(vhd vhdl), %w(text/plain), 'VHDL source code'],
1607
+ 'text/x-xmi' => [%w(xmi), %w(application/xml), 'XMI file'],
1608
+ 'text/x-xslfo' => [%w(fo xslfo), %w(application/xml), 'XSL FO file'],
1609
+ 'text/x.gcode' => [%w(gcode), %w(text/plain), 'G-code file'],
1610
+ 'video/3gpp' => [%w(3gp 3gpp 3ga), %w(video/mp4), '3GPP multimedia file'],
1611
+ 'video/3gpp2' => [%w(3g2 3gp2 3gpp2), %w(video/mp4), '3GPP2 multimedia file'],
1612
+ 'video/annodex' => [%w(axv), %w(application/annodex), 'Annodex Video'],
1613
+ 'video/dv' => [%w(dv), %w(), 'DV video'],
1614
+ 'video/mj2' => [%w(mj2 mjp2), %w(), 'JPEG-2000 MJ2 video'],
1615
+ 'video/mp2t' => [%w(m2t m2ts ts mts cpi clpi mpl mpls bdm bdmv), %w(), 'MPEG-2 transport stream'],
1616
+ 'video/mp4' => [%w(mp4 m4v f4v lrv), %w(), 'MPEG-4 video'],
1617
+ 'video/mpeg' => [%w(mpeg mpg mp2 mpe vob), %w(), 'MPEG video'],
1618
+ 'video/ogg' => [%w(ogv ogg), %w(application/ogg), 'Ogg Video'],
1619
+ 'video/quicktime' => [%w(qt mov moov qtvr), %w(), 'QuickTime video'],
1620
+ 'video/vnd.mpegurl' => [%w(m1u m4u mxu), %w(text/plain), 'MPEG video (streamed)'],
1621
+ 'video/vnd.rn-realvideo' => [%w(rv rvx), %w(), 'RealVideo document'],
1622
+ 'video/vnd.vivo' => [%w(viv vivo), %w(), 'Vivo video'],
1623
+ 'video/webm' => [%w(webm), %w(), 'WebM video'],
1624
+ 'video/x-flic' => [%w(fli flc), %w(), 'FLIC animation'],
1625
+ 'video/x-flv' => [%w(flv), %w(), 'Flash video'],
1626
+ 'video/x-javafx' => [%w(fxm), %w(video/x-flv), 'JavaFX video'],
1627
+ 'video/x-matroska' => [%w(mkv), %w(application/x-matroska), 'Matroska video'],
1628
+ 'video/x-matroska-3d' => [%w(mk3d), %w(application/x-matroska), 'Matroska 3D video'],
1629
+ 'video/x-mjpeg' => [%w(mjpeg mjpg), %w(image/jpeg), 'MJPEG video stream'],
1630
+ 'video/x-mng' => [%w(mng), %w(), 'MNG animation'],
1631
+ 'video/x-ms-wmv' => [%w(wmv), %w(application/vnd.ms-asf), 'Windows Media video'],
1632
+ 'video/x-msvideo' => [%w(avi avf divx), %w(), 'AVI video'],
1633
+ 'video/x-nsv' => [%w(nsv), %w(), 'NullSoft video'],
1634
+ 'video/x-ogm+ogg' => [%w(ogm), %w(video/ogg), 'OGM video'],
1635
+ 'video/x-sgi-movie' => [%w(movie), %w(), 'SGI video'],
1636
+ 'video/x-theora+ogg' => [%w(ogg), %w(video/ogg), 'Ogg Theora video'],
1637
+ 'x-epoc/x-sisx-app' => [%w(sisx), %w(), 'SISX package'],
1638
+ }
1639
+ # @private
1640
+ # :nodoc:
1641
+ MAGIC = [
1642
+ ['image/jpeg', [[0, "\377\330\377"], [0, "\377\330"]]],
1643
+ ['image/png', [[0, "\211PNG"]]],
1644
+ ['image/gif', [[0, 'GIF8']]],
1645
+ ['image/tiff', [[0, "MM\000*"], [0, "II*\000"]]],
1646
+ ['image/bmp', [[0, 'BM', [[14, "\f"], [14, '@'], [14, '(']]]]],
1647
+ ['image/vnd.adobe.photoshop', []],
1648
+ ['image/webp', [[0, 'RIFF', [[8, 'WEBP']]]]],
1649
+ ['image/svg+xml', [[0..256, '<!DOCTYPE svg'], [0..256, '<svg']]],
1650
+ ['video/x-msvideo', [[0, 'RIFF', [[8, 'AVI ']]], [0, 'AVF0', [[8, 'AVI ']]]]],
1651
+ ['video/mp4', [[4, 'ftypisom'], [4, 'ftypmp42'], [4, 'ftypMSNV'], [4, 'ftypM4V '], [4, 'ftypf4v ']]],
1652
+ ['video/quicktime', [[12, 'mdat'], [4, 'mdat'], [4, 'moov'], [4, 'ftypqt']]],
1653
+ ['video/mpeg', [[0, "G?\377\020"], [0, "\000\000\001\263"], [0, "\000\000\001\272"]]],
1654
+ ['video/ogg', [[0, 'OggS']]],
1655
+ ['video/webm', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'webm']]]]]]],
1656
+ ['video/x-flv', [[0, 'FLV']]],
1657
+ ['audio/mpeg', [[0, "\377\373"], [0, 'ID3']]],
1658
+ ['audio/x-wav', [[8, 'WAVE'], [8, 'WAV ']]],
1659
+ ['audio/aac', [[0, 'ADIF']]],
1660
+ ['audio/flac', [[0, 'fLaC']]],
1661
+ ['audio/mp4', [[4, 'ftypM4A']]],
1662
+ ['audio/ogg', [[0, 'OggS']]],
1663
+ ['application/pdf', [[0..1024, '%PDF-']]],
1664
+ ['application/msword', [[0, "1\276\000\000"], [0, 'PO^Q`'], [0, "\3767\000#"], [0, "\333\245-\000\000\000"], [2112, 'MSWordDoc'], [2108, 'MSWordDoc'], [2112, 'Microsoft Word document data'], [546, 'bjbj'], [546, 'jbjb']]],
1665
+ ['application/vnd.ms-excel', [[2080, 'Microsoft Excel 5.0 Worksheet']]],
1666
+ ['application/vnd.stardivision.writer', [[2089, 'StarWriter']]],
1667
+ ['application/x-docbook+xml', [[0, '<?xml', [[0..100, '-//OASIS//DTD DocBook XML'], [0..100, '-//KDE//DTD DocBook XML']]]]],
1668
+ ['image/x-eps', [[0, '%!', [[15, 'EPS']]], [0, "\004%!", [[16, 'EPS']]], [0, "\305\320\323\306"]]],
1669
+ ['application/prs.plucker', [[60, 'DataPlkr']]],
1670
+ ['application/vnd.corel-draw', []],
1671
+ ['application/x-fictionbook+xml', [[0..256, '<FictionBook']]],
1672
+ ['application/x-mobipocket-ebook', [[60, 'BOOKMOBI']]],
1673
+ ['application/x-mozilla-bookmarks', [[0..64, '<!DOCTYPE NETSCAPE-Bookmark-file-1>']]],
1674
+ ['application/x-nzb', [[0..256, '<nzb']]],
1675
+ ['application/x-pak', [[0, 'PACK']]],
1676
+ ['application/x-php', [[0..64, '<?php']]],
1677
+ ['application/xliff+xml', [[0..256, '<xliff']]],
1678
+ ['audio/x-flac+ogg', [[0, 'OggS', [[28, 'fLaC']]], [0, 'OggS', [[28, "\177FLAC"]]]]],
1679
+ ['audio/x-opus+ogg', [[0, 'OggS', [[28, 'OpusHead']]]]],
1680
+ ['audio/x-speex+ogg', [[0, 'OggS', [[28, 'Speex ']]]]],
1681
+ ['audio/x-vorbis+ogg', [[0, 'OggS', [[28, "\001vorbis"]]]]],
1682
+ ['image/ktx', [[0, "\253KTX", [[4, " 11\273", [[8, "\r\n\032\n"]]]]]]],
1683
+ ['image/vnd.djvu', [[0, 'AT&TFORM', [[12, 'DJVU']]], [0, 'FORM', [[8, 'DJVU']]]]],
1684
+ ['image/vnd.djvu+multipage', [[0, 'AT&TFORM', [[12, 'DJVM']]], [0, 'FORM', [[8, 'DJVM']]]]],
1685
+ ['image/x-kodak-kdc', [[242, 'EASTMAN KODAK COMPANY']]],
1686
+ ['image/x-niff', [[0, 'IIN1']]],
1687
+ ['text/x-qml', [[2..16, '/bin/env qml'], [0..3000, 'import Qt', [[9..3009, '{']]], [0..3000, 'import Qml', [[9..3009, '{']]]]],
1688
+ ['video/x-ogm+ogg', [[0, 'OggS', [[29, 'video']]]]],
1689
+ ['video/x-theora+ogg', [[0, 'OggS', [[28, "\200theora"]]]]],
1690
+ ['application/atom+xml', [[0..256, '<feed ']]],
1691
+ ['application/epub+zip', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/epub+zip'], [43, 'application/epub+zip']]]]]]],
1692
+ ['application/rss+xml', [[0..256, '<rss '], [0..256, '<RSS ']]],
1693
+ ['application/vnd.apple.mpegurl', [[0, '#EXTM3U', [[0..128, '#EXT-X-TARGETDURATION'], [0..128, '#EXT-X-STREAM-INF']]]]],
1694
+ ['application/vnd.oasis.opendocument.chart', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart']]]]]]],
1695
+ ['application/vnd.oasis.opendocument.chart-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart-template']]]]]]],
1696
+ ['application/vnd.oasis.opendocument.database', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.base']]]]]]],
1697
+ ['application/vnd.oasis.opendocument.formula', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.formula']]]]]]],
1698
+ ['application/vnd.oasis.opendocument.formula-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.formula-template']]]]]]],
1699
+ ['application/vnd.oasis.opendocument.graphics', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.graphics']]]]]]],
1700
+ ['application/vnd.oasis.opendocument.graphics-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.graphics-template']]]]]]],
1701
+ ['application/vnd.oasis.opendocument.image', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.image']]]]]]],
1702
+ ['application/vnd.oasis.opendocument.presentation', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.presentation']]]]]]],
1703
+ ['application/vnd.oasis.opendocument.presentation-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.presentation-template']]]]]]],
1704
+ ['application/vnd.oasis.opendocument.spreadsheet', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.spreadsheet']]]]]]],
1705
+ ['application/vnd.oasis.opendocument.spreadsheet-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.spreadsheet-template']]]]]]],
1706
+ ['application/vnd.oasis.opendocument.text', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.text']]]]]]],
1707
+ ['application/vnd.oasis.opendocument.text-master', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.text-master']]]]]]],
1708
+ ['application/vnd.oasis.opendocument.text-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.text-template']]]]]]],
1709
+ ['application/vnd.oasis.opendocument.text-web', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.text-web']]]]]]],
1710
+ ['application/vnd.sun.xml.calc', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.calc']]]]]]],
1711
+ ['application/vnd.sun.xml.calc.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.calc']]]]]]],
1712
+ ['application/vnd.sun.xml.draw', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.draw']]]]]]],
1713
+ ['application/vnd.sun.xml.draw.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.draw']]]]]]],
1714
+ ['application/vnd.sun.xml.impress', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.impress']]]]]]],
1715
+ ['application/vnd.sun.xml.impress.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.impress']]]]]]],
1716
+ ['application/vnd.sun.xml.math', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.math']]]]]]],
1717
+ ['application/vnd.sun.xml.writer', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
1718
+ ['application/vnd.sun.xml.writer.global', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
1719
+ ['application/vnd.sun.xml.writer.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
1720
+ ['application/x-iwork-keynote-sffkey', [[0, "PK\003\004", [[30, 'index.apxl']]]]],
1721
+ ['application/x-zip-compressed-fb2', [[0, "PK\003\004", [[30..256, '.fb2']]]]],
1722
+ ['image/openraster', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'image/openraster']]]]]]],
1723
+ ['text/x-opml+xml', [[0..256, '<opml ']]],
1724
+ ['application/vnd.ms-cab-compressed', [[0, "MSCF\000\000\000\000"]]],
1725
+ ['application/vnd.ms-wpl', [[0..256, '<?wpl']]],
1726
+ ['application/vnd.rar', [[0, 'Rar!']]],
1727
+ ['application/x-7z-compressed', [[0, "7z\274\257'\034"]]],
1728
+ ['application/x-ace', [[7, '**ACE**']]],
1729
+ ['application/x-arc', []],
1730
+ ['application/x-cpio', [[0, "\307q"], [0, '070701'], [0, '070702'], [0, "q\307"]]],
1731
+ ['application/x-font-type1', [[0, 'LWFN'], [65, 'LWFN'], [0, '%!PS-AdobeFont-1.'], [6, '%!PS-AdobeFont-1.'], [0, '%!FontType1-1.'], [6, '%!FontType1-1.']]],
1732
+ ['application/x-java-pack200', [[0, "\312\376\320\r"]]],
1733
+ ['application/x-karbon', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-karbon\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-karbon']]]]]]],
1734
+ ['application/x-kchart', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kchart\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kchart']]]]]]],
1735
+ ['application/x-kformula', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kformula\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kformula']]]]]]],
1736
+ ['application/x-killustrator', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-killustrator\004\006"]]]]]]],
1737
+ ['application/x-kivio', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kivio\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kivio']]]]]]],
1738
+ ['application/x-kontour', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kontour\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kontour']]]]]]],
1739
+ ['application/x-kpresenter', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kpresenter\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kpresenter']]]]]]],
1740
+ ['application/x-krita', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-krita\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-krita']]]]]]],
1741
+ ['application/x-kspread', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kspread\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kspread']]]]]]],
1742
+ ['application/x-kword', [[0, "\037\213", [[10, 'KOffice', [[18, "application/x-kword\004\006"]]]]], [0, "PK\003\004", [[30, 'mimetype', [[38, 'application/x-kword']]]]]]],
1743
+ ['application/x-lha', [[2, '-lh -'], [2, '-lh0-'], [2, '-lh1-'], [2, '-lh2-'], [2, '-lh3-'], [2, '-lh4-'], [2, '-lh5-'], [2, '-lh40-'], [2, '-lhd-'], [2, '-lz4-'], [2, '-lz5-'], [2, '-lzs-']]],
1744
+ ['application/x-lrzip', [[0, 'LRZI']]],
1745
+ ['application/x-lz4', [[0, "\004\"M\030"], [0, "\002!L\030"]]],
1746
+ ['application/x-lzip', [[0, 'LZIP']]],
1747
+ ['application/x-lzop', [[0, "\211LZO\000\r\n\032\n"]]],
1748
+ ['application/x-par2', [[0, 'PAR2']]],
1749
+ ['application/x-qpress', [[0, 'qpress10']]],
1750
+ ['application/x-quicktime-media-link', [[0, '<?xml', [[0..64, '<?quicktime']]], [0, 'RTSPtext'], [0, 'rtsptext'], [0, 'SMILtext']]],
1751
+ ['application/x-sega-cd-rom', [[0, 'SEGADISCSYSTEM', [[256, 'SEGA']]], [16, 'SEGADISCSYSTEM', [[272, 'SEGA']]]]],
1752
+ ['application/x-stuffit', [[0, 'StuffIt '], [0, 'SIT!']]],
1753
+ ['application/x-tar', [[257, "ustar\000"], [257, "ustar \000"]]],
1754
+ ['application/x-xar', [[0, 'xar!']]],
1755
+ ['application/x-xz', [[0, "\3757zXZ\000"]]],
1756
+ ['application/x-zoo', [[20, "\334\247\304\375"]]],
1757
+ ['application/xhtml+xml', [[0..256, '//W3C//DTD XHTML '], [0..256, 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'], [0..256, "<html xmlns=\"http://www.w3.org/1999/xhtml"], [0..256, "<HTML xmlns=\"http://www.w3.org/1999/xhtml"]]],
1758
+ ['application/zip', [[0, "PK\003\004"]]],
1759
+ ['audio/vnd.dts.hd', [[0..18725, 'dX %']]],
1760
+ ['text/x-python3', [[0, '#!/bin/python3'], [0, '#! /bin/python3'], [0, "eval \"exec /bin/python3"], [0, '#!/usr/bin/python3'], [0, '#! /usr/bin/python3'], [0, "eval \"exec /usr/bin/python3"], [0, '#!/usr/local/bin/python3'], [0, '#! /usr/local/bin/python3'], [0, "eval \"exec /usr/local/bin/python3"], [2..16, '/bin/env python3']]],
1761
+ ['text/x-txt2tags', [[0, '%!postproc'], [0, '%!encoding']]],
1762
+ ['application/smil+xml', [[0..256, '<smil']]],
1763
+ ['audio/x-ms-asx', [[0, 'ASF '], [0..64, '<ASX'], [0..64, '<asx'], [0..64, '<Asx']]],
1764
+ ['application/annodex', [[0, 'OggS', [[28, "fishead\000", [[56..512, "CMML\000\000\000\000"]]]]]]],
1765
+ ['application/dicom', [[128, 'DICM']]],
1766
+ ['application/gnunet-directory', [[0, "\211GND\r\n\032\n"]]],
1767
+ ['application/gzip', [[0, "\037\213"]]],
1768
+ ['application/javascript', [[0, '#!/bin/gjs'], [0, '#! /bin/gjs'], [0, "eval \"exec /bin/gjs"], [0, '#!/usr/bin/gjs'], [0, '#! /usr/bin/gjs'], [0, "eval \"exec /usr/bin/gjs"], [0, '#!/usr/local/bin/gjs'], [0, '#! /usr/local/bin/gjs'], [0, "eval \"exec /usr/local/bin/gjs"], [2..16, '/bin/env gjs']]],
1769
+ ['application/mac-binhex40', [[11, 'must be converted with BinHex']]],
1770
+ ['application/mathematica', [[0, '(************** Content-type: application/mathematica'], [100..256, 'This notebook can be used on any computer system with Mathematica'], [10..256, 'This is a Mathematica Notebook file. It contains ASCII text']]],
1771
+ ['application/metalink+xml', [[0..256, "<metalink version=\"3.0\""]]],
1772
+ ['application/metalink4+xml', [[0..256, "<metalink xmlns=\"urn"]]],
1773
+ ['application/mxf', [[0..256, "\006\016+4\002\005\001\001\r\001\002\001\001\002"]]],
1774
+ ['application/ogg', [[0, 'OggS']]],
1775
+ ['application/owl+xml', [[0..256, '<Ontology']]],
1776
+ ['application/pgp-encrypted', [[0, '-----BEGIN PGP MESSAGE-----']]],
1777
+ ['application/pgp-keys', [[0, '-----BEGIN PGP PUBLIC KEY BLOCK-----'], [0, '-----BEGIN PGP PRIVATE KEY BLOCK-----'], [0, "\225\001"], [0, "\225\000"], [0, "\231\000"], [0, "\231\001"]]],
1778
+ ['application/pgp-signature', [[0, '-----BEGIN PGP SIGNATURE-----']]],
1779
+ ['application/postscript', [[0, "\004%!"], [0, '%!']]],
1780
+ ['application/raml+yaml', [[0, '#%RAML ']]],
1781
+ ['application/rtf', [[0, "{\\rtf"]]],
1782
+ ['application/sdp', [[0, 'v=', [[0..256, 's=']]]]],
1783
+ ['application/vnd.adobe.flash.movie', [[0, 'FWS'], [0, 'CWS']]],
1784
+ ['application/vnd.appimage', [[1, 'ELF', [[8, 'A', [[9, 'I', [[10, "\002"]]]]]]]]],
1785
+ ['application/vnd.chess-pgn', [[0, '[Event ']]],
1786
+ ['application/vnd.debian.binary-package', [[0, '!<arch>', [[8, 'debian']]]]],
1787
+ ['application/vnd.emusic-emusic_package', [[0, 'nF7YLao']]],
1788
+ ['application/vnd.flatpak', [[0, "xdg-app\000\001\000\211\345"], [0, "flatpak\000\001\000\211\345"]]],
1789
+ ['application/vnd.flatpak.ref', [[0..256, '[Flatpak Ref]']]],
1790
+ ['application/vnd.flatpak.repo', [[0..256, '[Flatpak Repo]']]],
1791
+ ['application/vnd.framemaker', [[0, '<MakerFile'], [0, '<MIFFile'], [0, '<MakerDictionary'], [0, '<MakerScreenFon'], [0, '<MML'], [0, '<Book'], [0, '<Maker']]],
1792
+ ['application/vnd.iccprofile', [[36, 'acsp']]],
1793
+ ['application/vnd.lotus-1-2-3', [[0, "\000\000\002\000\006\004\006\000\b\000\000\000\000\000"]]],
1794
+ ['application/vnd.lotus-wordpro', [[0, 'WordPro']]],
1795
+ ['application/vnd.ms-access', [[0, "\000\001\000\000Standard Jet DB"]]],
1796
+ ['application/vnd.ms-asf', [[0, "0&\262u"], [0, '[Reference]']]],
1797
+ ['application/vnd.ms-tnef', [[0, "x\237>\""]]],
1798
+ ['application/vnd.rn-realmedia', [[0, '.RMF']]],
1799
+ ['application/vnd.sqlite3', [[0, 'SQLite format 3']]],
1800
+ ['application/vnd.squashfs', [[0, 'sqsh'], [0, 'hsqs']]],
1801
+ ['application/vnd.symbian.install', [[8, "\031\004\000\020"]]],
1802
+ ['application/vnd.tcpdump.pcap', [[0, "\324\303\262\241"], [0, "\241\262\303\324"]]],
1803
+ ['application/vnd.wordperfect', [[1, 'WPC']]],
1804
+ ['application/winhlp', [[0, "?_\003\000"]]],
1805
+ ['application/x-abiword', [[0..256, '<abiword'], [0..256, '<!DOCTYPE abiword']]],
1806
+ ['application/x-alz', [[0, 'ALZ']]],
1807
+ ['application/x-amiga-disk-format', [[0, "DOS\000"]]],
1808
+ ['application/x-aportisdoc', [[60, 'TEXtREAd'], [60, 'TEXtTlDc']]],
1809
+ ['application/x-applix-spreadsheet', [[0, '*BEGIN SPREADSHEETS'], [0, '*BEGIN', [[7, 'SPREADSHEETS']]]]],
1810
+ ['application/x-applix-word', [[0, '*BEGIN', [[7, 'WORDS']]]]],
1811
+ ['application/x-arj', [[0, "`\352"]]],
1812
+ ['application/x-atari-7800-rom', [[1, 'ATARI7800']]],
1813
+ ['application/x-atari-lynx-rom', [[0, 'LYNX']]],
1814
+ ['application/x-awk', [[0, '#!/bin/gawk'], [0, '#! /bin/gawk'], [0, '#!/usr/bin/gawk'], [0, '#! /usr/bin/gawk'], [0, '#!/usr/local/bin/gawk'], [0, '#! /usr/local/bin/gawk'], [0, '#!/bin/awk'], [0, '#! /bin/awk'], [0, '#!/usr/bin/awk'], [0, '#! /usr/bin/awk']]],
1815
+ ['application/x-bittorrent', [[0, 'd8:announce']]],
1816
+ ['application/x-blender', [[0, 'BLENDER']]],
1817
+ ['application/x-bsdiff', [[0, 'BSDIFF40'], [0, 'BSDIFN40']]],
1818
+ ['application/x-bzip', [[0, 'BZh']]],
1819
+ ['application/x-ccmx', [[0, 'CCMX']]],
1820
+ ['application/x-cdrdao-toc', [[0, "CD_ROM\n"], [0, "CD_DA\n"], [0, "CD_ROM_XA\n"], [0, 'CD_TEXT '], [0, "CATALOG \"", [[22, "\""]]]]],
1821
+ ['application/x-cisco-vpn-settings', [[0, '[main]', [[0..256, 'AuthType=']]]]],
1822
+ ['application/x-compress', [[0, "\037\235"]]],
1823
+ ['application/x-core', [[0, "\177ELF", [[5, "\001", [[16, "\004\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\004"]]]]], [0, "Core\001"], [0, "Core\002"]]],
1824
+ ['application/x-csh', [[2..16, '/bin/tcsh'], [2..16, '/bin/csh'], [2..16, '/bin/env csh'], [2..16, '/bin/env tcsh']]],
1825
+ ['application/x-dar', [[0, "\000\000\000{"]]],
1826
+ ['application/x-designer', [[0..256, '<ui '], [0..256, '<UI ']]],
1827
+ ['application/x-desktop', [[0..32, '[Desktop Entry]'], [0, '[Desktop Action'], [0, '[KDE Desktop Entry]'], [0, '# Config File'], [0, '# KDE Config File']]],
1828
+ ['application/x-dia-diagram', [[5..100, '<dia:']]],
1829
+ ['application/x-dia-shape', [[5..100, '<shape']]],
1830
+ ['application/x-doom-wad', [[0, 'IWAD'], [0, 'PWAD']]],
1831
+ ['application/x-dvi', [[0, "\367\002"]]],
1832
+ ['application/x-fds-disk', [[1, '*NINTENDO-HVC*']]],
1833
+ ['application/x-fluid', [[0, '# data file for the Fltk']]],
1834
+ ['application/x-font-bdf', [[0, 'STARTFONT ']]],
1835
+ ['application/x-font-dos', [[0, "\377FON"], [7, "\000EGA"], [7, "\000VID"]]],
1836
+ ['application/x-font-framemaker', [[0, '<MakerScreenFont']]],
1837
+ ['application/x-font-libgrx', [[0, "\024\002Y\031"]]],
1838
+ ['application/x-font-linux-psf', [[0, "6\004"]]],
1839
+ ['application/x-font-pcf', [[0, "\001fcp"]]],
1840
+ ['application/x-font-speedo', [[0, "D1.0\r"]]],
1841
+ ['application/x-font-sunos-news', [[0, 'StartFont'], [0, "\023z)"], [8, "\023z+"]]],
1842
+ ['application/x-font-tex', [[0, "\367\203"], [0, "\367Y"], [0, "\367\312"]]],
1843
+ ['application/x-font-tex-tfm', [[2, "\000\021"], [2, "\000\022"]]],
1844
+ ['application/x-font-ttx', [[0..256, "<ttFont sfntVersion=\"\\000\\001\\000\\000\" ttLibVersion=\""]]],
1845
+ ['application/x-font-vfont', [[0, 'FONT']]],
1846
+ ['application/x-gameboy-color-rom', [[260, "\316\355ff\314\r\000\v\003s\000\203\000\f\000\r\000\b"]]],
1847
+ ['application/x-gameboy-rom', [[260, "\316\355ff\314\r\000\v\003s\000\203\000\f\000\r\000\b\021\037\210\211\000\016"]]],
1848
+ ['application/x-gamecube-rom', [[28, "\3023\237="]]],
1849
+ ['application/x-gdbm', [[0, "\023W\232\316"], [0, "\316\232W\023"], [0, 'GDBM']]],
1850
+ ['application/x-gedcom', [[0, '0 HEAD']]],
1851
+ ['application/x-genesis-32x-rom', [[256, 'SEGA 32X']]],
1852
+ ['application/x-genesis-rom', [[256, 'SEGA GENESIS'], [256, 'SEGA MEGA DRIVE'], [640, 'EAGN'], [640, 'EAMG']]],
1853
+ ['application/x-gettext-translation', [[0, "\336\022\004\225"], [0, "\225\004\022\336"]]],
1854
+ ['application/x-glade', [[0..256, '<glade-interface']]],
1855
+ ['application/x-gnumeric', [[0..64, 'gmr:Workbook'], [0..64, 'gnm:Workbook']]],
1856
+ ['application/x-go-sgf', [[0, '(;FF[3]'], [0, '(;FF[4]']]],
1857
+ ['application/x-gtk-builder', [[0..256, '<interface']]],
1858
+ ['application/x-gtktalog', [[4, 'gtktalog ']]],
1859
+ ['application/x-hdf', [[0, "\211HDF\r\n\032\n"], [0, "\016\003\023\001"]]],
1860
+ ['application/x-hfe-floppy-image', [[0, 'HXCPICFE']]],
1861
+ ['application/x-hwp', [[0, 'HWP Document File']]],
1862
+ ['application/x-ipod-firmware', [[0, 'S T O P']]],
1863
+ ['application/x-ipynb+json', [[0, '{', [[1..256, "\"cells\":"]]]]],
1864
+ ['application/x-iso9660-appimage', [[1, 'ELF', [[8, 'A', [[9, 'I', [[10, "\001"]]]]]]]]],
1865
+ ['application/x-it87', [[0, 'IT8.7']]],
1866
+ ['application/x-java', [[0, "\312\376\272\276"]]],
1867
+ ['application/x-java-jce-keystore', [[0, "\316\316\316\316"]]],
1868
+ ['application/x-java-jnlp-file', [[0..256, '<jnlp']]],
1869
+ ['application/x-java-keystore', [[0, "\376\355\376\355"]]],
1870
+ ['application/x-kspread-crypt', [[0, "\r\032'\002"]]],
1871
+ ['application/x-ksysv-package', [[4, 'KSysV', [[15, "\001"]]]]],
1872
+ ['application/x-kword-crypt', [[0, "\r\032'\001"]]],
1873
+ ['application/x-lyx', [[0, '#LyX']]],
1874
+ ['application/x-macbinary', [[102, 'mBIN']]],
1875
+ ['application/x-matroska', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'matroska']]]]]]],
1876
+ ['application/x-ms-dos-executable', [[0, 'MZ']]],
1877
+ ['application/x-ms-wim', [[0, "MSWIM\000\000\000"]]],
1878
+ ['application/x-mswinurl', [[1, 'InternetShortcut'], [1, 'DEFAULT', [[11, 'BASEURL=']]]]],
1879
+ ['application/x-n64-rom', [[0, "\2007\022@"], [0, "7\200@\022"], [0, "@\0227\200"]]],
1880
+ ['application/x-nautilus-link', [[0..32, '<nautilus_object nautilus_link']]],
1881
+ ['application/x-navi-animation', [[0, 'RIFF', [[8, 'ACON']]]]],
1882
+ ['application/x-neo-geo-pocket-color-rom', [[35, "\020", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]],
1883
+ ['application/x-neo-geo-pocket-rom', [[35, "\000", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]],
1884
+ ['application/x-netshow-channel', [[0, '[Address]']]],
1885
+ ['application/x-object', [[0, "\177ELF", [[5, "\001", [[16, "\001\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\001"]]]]]]],
1886
+ ['application/x-ole-storage', [[0, "\320\317\021\340\241\261\032\341"], [0, "\320\317\021\340"]]],
1887
+ ['application/x-oleo', [[31, 'Oleo']]],
1888
+ ['application/x-pef-executable', [[0, 'Joy!']]],
1889
+ ['application/x-perl', [[0, "eval \"exec /usr/local/bin/perl"], [2..16, '/bin/perl'], [2..16, '/bin/env perl'], [0..256, 'use strict'], [0..256, 'use warnings'], [0..256, 'use diagnostics'], [0..256, 'use Test::'], [0..256, 'BEGIN {']]],
1890
+ ['application/x-pocket-word', [[0, "{\\pwi"]]],
1891
+ ['application/x-python-bytecode', [[0, "\231N\r\n"]]],
1892
+ ['application/x-qtiplot', [[0, 'QtiPlot']]],
1893
+ ['application/x-rpm', [[0, "\355\253\356\333"]]],
1894
+ ['application/x-ruby', [[2..16, '/bin/env ruby'], [2..16, '/bin/ruby']]],
1895
+ ['application/x-sami', [[0..256, '<SAMI>']]],
1896
+ ['application/x-saturn-rom', [[0, 'SEGA SEGASATURN'], [16, 'SEGA SEGASATURN']]],
1897
+ ['application/x-sc', [[38, 'Spreadsheet']]],
1898
+ ['application/x-sega-pico-rom', [[256, 'SEGA PICO']]],
1899
+ ['application/x-sharedlib', [[0, "\177ELF", [[5, "\001", [[16, "\003\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\003"]]]]], [0, "\203\001"]]],
1900
+ ['application/x-shellscript', [[10, '# This is a shell archive'], [2..16, '/bin/bash'], [2..16, '/bin/nawk'], [2..16, '/bin/zsh'], [2..16, '/bin/sh'], [2..16, '/bin/ksh'], [2..16, '/bin/dash'], [2..16, '/bin/env sh'], [2..16, '/bin/env bash'], [2..16, '/bin/env zsh'], [2..16, '/bin/env ksh']]],
1901
+ ['application/x-shorten', [[0, 'ajkg']]],
1902
+ ['application/x-smaf', [[0, 'MMMD']]],
1903
+ ['application/x-spss-por', [[40, 'ASCII SPSS PORT FILE']]],
1904
+ ['application/x-spss-sav', [[0, '$FL2'], [0, '$FL3']]],
1905
+ ['application/x-sqlite2', [[0, '** This file contains an SQLite']]],
1906
+ ['application/x-subrip', [[0, '1', [[0..256, ' --> ']]]]],
1907
+ ['application/x-t602', [[0, '@CT 0'], [0, '@CT 1'], [0, '@CT 2']]],
1908
+ ['application/x-tgif', [[0, '%TGIF']]],
1909
+ ['application/x-thomson-sap-image', [[1, "SYSTEME D'ARCHIVAGE PUKALL S.A.P. (c) Alexandre PUKALL Avril 1998"]]],
1910
+ ['application/x-wii-rom', [[24, "]\034\236\243"], [0, 'WBFS'], [0, "WII\001DISC"]]],
1911
+ ['application/x-wii-wad', [[4, "Is\000\000"], [4, "ib\000\000"], [4, "Bk\000\000"]]],
1912
+ ['application/x-xbel', [[0..256, '<!DOCTYPE xbel']]],
1913
+ ['application/x-yaml', [[0, '%YAML']]],
1914
+ ['application/xslt+xml', [[0..256, '<xsl:stylesheet']]],
1915
+ ['application/xspf+xml', [[0..64, "<playlist version=\"1"], [0..64, "<playlist version='1"]]],
1916
+ ['audio/AMR', [[0, "#!AMR\n"], [0, "#!AMR_MC1.0\n"]]],
1917
+ ['audio/AMR-WB', [[0, "#!AMR-WB\n"], [0, "#!AMR-WB_MC1.0\n"]]],
1918
+ ['audio/ac3', [[0, "\vw"]]],
1919
+ ['audio/annodex', [[0, 'OggS', [[28, "fishead\000", [[56..512, "CMML\000\000\000\000"]]]]]]],
1920
+ ['audio/midi', [[0, 'MThd']]],
1921
+ ['audio/prs.sid', [[0, 'PSID']]],
1922
+ ['audio/vnd.dts', [[0, "\177\376\200\001"], [0, "\200\001\177\376"], [0, "\037\377\350\000"], [0, "\350\000\037\377"]]],
1923
+ ['audio/x-adpcm', [[0, '.snd', [[12, "\000\000\000\027"]]], [0, ".sd\000", [[12, "\001\000\000\000"], [12, "\002\000\000\000"], [12, "\003\000\000\000"], [12, "\004\000\000\000"], [12, "\005\000\000\000"], [12, "\006\000\000\000"], [12, "\a\000\000\000"], [12, "\027\000\000\000"]]]]],
1924
+ ['audio/x-aifc', [[8, 'AIFC']]],
1925
+ ['audio/x-aiff', [[8, 'AIFF'], [8, '8SVX']]],
1926
+ ['audio/x-ape', [[0, 'MAC ']]],
1927
+ ['audio/x-iriver-pla', [[4, 'iriver UMS PLA']]],
1928
+ ['audio/x-it', [[0, 'IMPM']]],
1929
+ ['audio/x-m4b', [[4, 'ftypM4B']]],
1930
+ ['audio/x-mo3', [[0, 'MO3']]],
1931
+ ['audio/x-mpegurl', [[0, '#EXTM3U']]],
1932
+ ['audio/x-musepack', [[0, 'MP+']]],
1933
+ ['audio/x-pn-audibleaudio', [[4, "W\220u6"], [8, 'aax ']]],
1934
+ ['audio/x-psf', [[0, 'PSF']]],
1935
+ ['audio/x-s3m', [[44, 'SCRM']]],
1936
+ ['audio/x-scpls', [[0, '[playlist]'], [0, '[Playlist]'], [0, '[PLAYLIST]']]],
1937
+ ['audio/x-speex', [[0, 'Speex']]],
1938
+ ['audio/x-stm', [[20, "!Scream!\032"], [20, "!SCREAM!\032"], [20, "BMOD2STM\032"]]],
1939
+ ['audio/x-tta', [[0, 'TTA1']]],
1940
+ ['audio/x-wavpack', [[0, 'wvpk']]],
1941
+ ['audio/x-wavpack-correction', [[0, 'wvpk']]],
1942
+ ['audio/x-xi', [[0, 'Extended Instrument:']]],
1943
+ ['audio/x-xm', [[0, 'Extended Module:']]],
1944
+ ['audio/x-xmf', [[0, 'XMF_'], [0, "XMF_2.00\000\000\000\002"]]],
1945
+ ['font/otf', [[0, 'OTTO']]],
1946
+ ['font/ttf', [[0, 'FFIL'], [65, 'FFIL'], [0, "\000\001\000\000\000"]]],
1947
+ ['font/woff', [[0, 'wOFF']]],
1948
+ ['font/woff', [[0, 'wOF2']]],
1949
+ ['image/dpx', [[0, 'SDPX']]],
1950
+ ['image/emf', [[0, "\001\000\000\000", [[40, ' EMF', [[44, "\000\000\001\000", [[58, "\000\000"]]]]]]]]],
1951
+ ['image/fits', [[0, 'SIMPLE =']]],
1952
+ ['image/jp2', []],
1953
+ ['image/jpm', []],
1954
+ ['image/jpx', []],
1955
+ ['image/vnd.dxf', [[0..64, "\nHEADER\n"], [0..64, "\r\nHEADER\r\n"]]],
1956
+ ['image/vnd.microsoft.icon', [[0, "\000\000\001\000", [[5, "\000"]]]]],
1957
+ ['image/vnd.ms-modi', [[0, "EP*\000"]]],
1958
+ ['image/vnd.zbrush.pcx', [[0, "\n", [[1, "\000"], [1, "\002"], [1, "\003"], [1, "\005"]]]]],
1959
+ ['image/wmf', [[0, "\327\315\306\232", [[22, "\001\000", [[24, "\t\000"]]]]], [0, "\001\000", [[2, "\t\000"]]]]],
1960
+ ['image/x-applix-graphics', [[0, '*BEGIN', [[7, 'GRAPHICS']]]]],
1961
+ ['image/x-canon-crw', [[0, "II\032\000\000\000HEAPCCDR"]]],
1962
+ ['image/x-dds', [[0, 'DDS']]],
1963
+ ['image/x-dib', [[0, "(\000\000\000"]]],
1964
+ ['image/x-exr', [[0, "v/1\001"]]],
1965
+ ['image/x-fpx', [[0, 'FPix']]],
1966
+ ['image/x-fuji-raf', [[0, 'FUJIFILMCCD-RAW ']]],
1967
+ ['image/x-gimp-gbr', [[20, 'GIMP']]],
1968
+ ['image/x-gimp-pat', [[20, 'GPAT']]],
1969
+ ['image/x-icns', [[0, 'icns']]],
1970
+ ['image/x-ilbm', [[8, 'ILBM'], [8, 'PBM ']]],
1971
+ ['image/x-jp2-codestream', [[0, "\377O\377Q"]]],
1972
+ ['image/x-minolta-mrw', [[0, "\000MRM"]]],
1973
+ ['image/x-olympus-orf', [[0, "IIRO\b\000\000\000"]]],
1974
+ ['image/x-panasonic-rw', [[0, "IIU\000\b\000\000\000"]]],
1975
+ ['image/x-panasonic-rw2', [[0, "IIU\000\030\000\000\000"]]],
1976
+ ['image/x-pict', [[10, "\000\021", [[12, "\002\377", [[14, "\f\000", [[16, "\377\376"]]]]]]]]],
1977
+ ['image/x-pict', [[522, "\000\021", [[524, "\002\377", [[526, "\f\000", [[528, "\377\376"]]]]]]]]],
1978
+ ['image/x-portable-bitmap', [[0, 'P1', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]], [0, 'P4', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]]]],
1979
+ ['image/x-portable-graymap', [[0, 'P2', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]], [0, 'P5', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]]]],
1980
+ ['image/x-portable-pixmap', [[0, 'P3', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]], [0, 'P6', [[2, "\n"], [2, ' '], [2, "\t"], [2, "\r"]]]]],
1981
+ ['image/x-quicktime', [[4, 'idat']]],
1982
+ ['image/x-sigma-x3f', [[0, 'FOVb']]],
1983
+ ['image/x-skencil', [[0, '##Sketch']]],
1984
+ ['image/x-sun-raster', [[0, "Y\246j\225"]]],
1985
+ ['image/x-tga', [[1, "\000\002", [[16, "\b"], [16, "\020"], [16, "\030"], [16, ' ']]]]],
1986
+ ['image/x-win-bitmap', [[0, "\000\000\002\000", [[5, "\000"]]]]],
1987
+ ['image/x-xcf', [[0, 'gimp xcf file'], [0, 'gimp xcf v']]],
1988
+ ['image/x-xcursor', [[0, 'Xcur']]],
1989
+ ['image/x-xfig', [[0, '#FIG']]],
1990
+ ['image/x-xpixmap', [[0, '/* XPM']]],
1991
+ ['message/news', [[0, 'Article'], [0, 'Path:'], [0, 'Xref:']]],
1992
+ ['message/rfc822', [[0, '#! rnews'], [0, 'Forward to'], [0, 'From:'], [0, 'N#! rnews'], [0, 'Pipe to'], [0, 'Received:'], [0, 'Relay-Version:'], [0, 'Return-Path:'], [0, 'Return-path:'], [0, 'Subject: ']]],
1993
+ ['model/iges', [[72, "S 1\n"], [72, "S0000001\n"]]],
1994
+ ['model/stl', [[0, 'solid'], [0, 'SOLID']]],
1995
+ ['model/vrml', [[0, '#VRML ']]],
1996
+ ['text/cache-manifest', [[0, 'CACHE MANIFEST', [[14, ' '], [14, "\t"], [14, "\n"], [14, "\r"]]]]],
1997
+ ['text/calendar', [[0, 'BEGIN:VCALENDAR'], [0, 'begin:vcalendar']]],
1998
+ ['text/html', [[0..256, '<!DOCTYPE HTML'], [0..256, '<!doctype html'], [0..256, '<HEAD'], [0..256, '<head'], [0..256, '<TITLE'], [0..256, '<title'], [0..256, '<HTML'], [0..256, '<html'], [0..256, '<SCRIPT'], [0..256, '<script'], [0, '<BODY'], [0, '<body'], [0, '<!--'], [0, '<h1'], [0, '<H1'], [0, '<!doctype HTML'], [0, '<!DOCTYPE html']]],
1999
+ ['text/plain', [[0, 'This is TeX,'], [0, 'This is METAFONT,']]],
2000
+ ['text/spreadsheet', [[0, 'ID;']]],
2001
+ ['text/troff', [[0, ".\\\""], [0, "'\\\""], [0, "'.\\\""], [0, "\\\""]]],
2002
+ ['text/vcard', [[0, 'BEGIN:VCARD'], [0, 'begin:vcard']]],
2003
+ ['text/vnd.graphviz', [[0, 'digraph '], [0, 'strict digraph '], [0, 'graph '], [0, 'strict graph ']]],
2004
+ ['text/vnd.qt.linguist', [[0..256, '<TS']]],
2005
+ ['text/vnd.sun.j2me.app-descriptor', [[0, 'MIDlet-']]],
2006
+ ['text/vtt', [[0, 'WEBVTT']]],
2007
+ ['text/x-bibtex', [[0, '% This file was created with JabRef']]],
2008
+ ['text/x-dbus-service', [[0..256, "\n[D-BUS Service]\n"], [0, "[D-BUS Service]\n"]]],
2009
+ ['text/x-emacs-lisp', [[0, "\n("], [0, ";ELC\023\000\000\000"]]],
2010
+ ['text/x-gettext-translation-template', [[0..256, "#, fuzzy\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version:"]]],
2011
+ ['text/x-google-video-pointer', [[0, '#.download.the.free.Google.Video.Player'], [0, '# download the free Google Video Player']]],
2012
+ ['text/x-iMelody', [[0, 'BEGIN:IMELODY']]],
2013
+ ['text/x-iptables', [[0..256, '/etc/sysconfig/iptables'], [0..256, '*filter', [[0..256, ':INPUT', [[0..256, ':FORWARD', [[0..256, ':OUTPUT']]]]]]], [0..256, '-A INPUT', [[0..256, '-A FORWARD', [[0..256, '-A OUTPUT']]]]], [0..256, '-P INPUT', [[0..256, '-P FORWARD', [[0..256, '-P OUTPUT']]]]]]],
2014
+ ['text/x-ldif', [[0, 'dn: cn='], [0, 'dn: mail=']]],
2015
+ ['text/x-lua', [[2..16, '/bin/lua'], [2..16, '/bin/luajit'], [2..16, '/bin/env lua'], [2..16, '/bin/env luajit']]],
2016
+ ['text/x-makefile', [[0, '#!/usr/bin/make'], [0, '#! /usr/bin/make']]],
2017
+ ['text/x-matlab', [[0, 'function']]],
2018
+ ['text/x-microdvd', [[0, '{1}'], [0, '{0}'], [0..6, '}{']]],
2019
+ ['text/x-modelica', [[0, 'function']]],
2020
+ ['text/x-modelica', [[0, 'class']]],
2021
+ ['text/x-modelica', [[0, 'model']]],
2022
+ ['text/x-modelica', [[0, 'record']]],
2023
+ ['text/x-mpsub', [[0..256, 'FORMAT=']]],
2024
+ ['text/x-mrml', [[0, '<mrml ']]],
2025
+ ['text/x-ms-regedit', [[0, 'REGEDIT'], [0, 'Windows Registry Editor Version 5.00'], [0, "\377\376W\000i\000n\000d\000o\000w\000s\000 \000R\000e\000g\000i\000s\000t\000r\000y\000 \000E\000d\000i\000t\000o\000r\000"]]],
2026
+ ['text/x-mup', [[0, '//!Mup']]],
2027
+ ['text/x-patch', [[0, "diff\t"], [0, 'diff '], [0, "***\t"], [0, '*** '], [0, '=== '], [0, '--- '], [0, "Only in\t"], [0, 'Only in '], [0, 'Common subdirectories: '], [0, 'Index:']]],
2028
+ ['text/x-python', [[0, '#!/bin/python'], [0, '#! /bin/python'], [0, "eval \"exec /bin/python"], [0, '#!/usr/bin/python'], [0, '#! /usr/bin/python'], [0, "eval \"exec /usr/bin/python"], [0, '#!/usr/local/bin/python'], [0, '#! /usr/local/bin/python'], [0, "eval \"exec /usr/local/bin/python"], [2..16, '/bin/env python']]],
2029
+ ['text/x-rpm-spec', [[0, 'Summary: '], [0, '%define ']]],
2030
+ ['text/x-ssa', [[0..256, '[Script Info]'], [0..256, 'Dialogue: ']]],
2031
+ ['text/x-subviewer', [[0, '[INFORMATION]']]],
2032
+ ['text/x-systemd-unit', [[0..256, "\n[Unit]\n"], [0..256, "\n[Install]\n"], [0..256, "\n[Automount]\n"], [0..256, "\n[Mount]\n"], [0..256, "\n[Path]\n"], [0..256, "\n[Scope]\n"], [0..256, "\n[Service]\n"], [0..256, "\n[Slice]\n"], [0..256, "\n[Socket]\n"], [0..256, "\n[Swap]\n"], [0..256, "\n[Timer]\n"], [0, "[Unit]\n"], [0, "[Install]\n"], [0, "[Automount]\n"], [0, "[Mount]\n"], [0, "[Path]\n"], [0, "[Scope]\n"], [0, "[Service]\n"], [0, "[Slice]\n"], [0, "[Socket]\n"], [0, "[Swap]\n"], [0, "[Timer]\n"]]],
2033
+ ['text/x-tex', [[1, 'documentclass']]],
2034
+ ['text/x-uuencode', [[0, 'begin ']]],
2035
+ ['text/xmcd', [[0, '# xmcd']]],
2036
+ ['video/3gpp', [[4, 'ftyp3ge'], [4, 'ftyp3gg'], [4, 'ftyp3gp'], [4, 'ftyp3gs']]],
2037
+ ['video/3gpp2', [[4, 'ftyp3g2']]],
2038
+ ['video/annodex', [[0, 'OggS', [[28, "fishead\000", [[56..512, "CMML\000\000\000\000"]]]]]]],
2039
+ ['video/dv', []],
2040
+ ['video/mj2', []],
2041
+ ['video/mp2t', [[0, 'G', [[188, 'G', [[376, 'G', [[564, 'G', [[752, 'G']]]]]]]]], [4, 'G', [[196, 'G', [[388, 'G', [[580, 'G', [[772, 'G']]]]]]]]]]],
2042
+ ['video/vnd.mpegurl', [[0, '#EXTM4U']]],
2043
+ ['video/x-flic', [[0, "\021\257"], [0, "\022\257"]]],
2044
+ ['video/x-mng', [[0, "\212MNG\r\n\032\n"]]],
2045
+ ['video/x-nsv', [[0, 'NSVf']]],
2046
+ ['video/x-sgi-movie', [[0, 'MOVI']]],
2047
+ ['x-epoc/x-sisx-app', [[0, "z\032 \020"]]],
2048
+ ['application/x-archive', [[0, '<ar>'], [0, '!<arch>']]],
2049
+ ['application/x-riff', [[0, 'RIFF']]],
2050
+ ['application/x-executable', [[0, "\177ELF", [[5, "\001", [[16, "\002\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\002"]]]]], [0, 'MZ'], [0, "\034R"], [0, "\020\001"], [0, "\021\001"], [0, "\203\001"]]],
2051
+ ['application/x-iff', [[0, 'FORM']]],
2052
+ ['application/x-perl', [[0..256, "\n=pod"], [0..256, "\n=head1 NAME"], [0..256, "\n=head1 DESCRIPTION"]]],
2053
+ ['application/xml', [[0, '<?xml'], [0, '<!--']]],
2054
+ ['audio/basic', [[0, '.snd']]],
2055
+ ['audio/x-mod', [[0, 'MTM'], [0, 'MMD0'], [0, 'MMD1'], [0, 'if', [[110, '@', [[111, "\200"]]]]], [0, 'JN', [[110, '@', [[111, "\200"]]]]], [0, 'MAS_UTrack_V00']]],
2056
+ ['video/x-javafx', [[0, 'FLV']]],
2057
+ ['application/x-mobipocket-ebook', [[60, 'TEXtREAd']]],
2058
+ ['text/x-csrc', [[0, '/*'], [0, '//'], [0, '#include']]],
2059
+ ['text/x-objcsrc', [[0, '#import']]],
2060
+ ['application/mbox', [[0, 'From ']]],
2061
+ ['image/x-tga', [[1, "\001\001"], [1, "\001\t"], [1, "\000\003"], [1, "\000\n"], [1, "\000\v"]]],
2062
+ ['text/x-matlab', [[0, '%']]],
2063
+ ['text/x-matlab', [[0, '##']]],
2064
+ ['text/x-modelica', [[0, '//']]],
2065
+ ['text/x-tex', [[0, '%']]],
2066
+ ]
2067
+ end