Commit f5a56d88 by Daniel Mendler

update mimemagic data to 2.1

parent 04ce6721
...@@ -7,7 +7,8 @@ class MimeMagic ...@@ -7,7 +7,8 @@ class MimeMagic
EXTENSIONS = { EXTENSIONS = {
'123' => 'application/vnd.lotus-1-2-3', '123' => 'application/vnd.lotus-1-2-3',
'32x' => 'application/x-genesis-32x-rom', '32x' => 'application/x-genesis-32x-rom',
'3ds' => 'image/x-3ds', '3ds' => 'application/x-nintendo-3ds-rom',
'3dsx' => 'application/x-nintendo-3ds-executable',
'3g2' => 'video/3gpp2', '3g2' => 'video/3gpp2',
'3ga' => 'video/3gpp', '3ga' => 'video/3gpp',
'3gp' => 'video/3gpp', '3gp' => 'video/3gpp',
...@@ -22,7 +23,7 @@ class MimeMagic ...@@ -22,7 +23,7 @@ class MimeMagic
'a78' => 'application/x-atari-7800-rom', 'a78' => 'application/x-atari-7800-rom',
'aa' => 'audio/x-pn-audibleaudio', 'aa' => 'audio/x-pn-audibleaudio',
'aac' => 'audio/aac', 'aac' => 'audio/aac',
'aax' => 'audio/x-pn-audibleaudio', 'aax' => 'audio/vnd.audible.aax',
'abw' => 'application/x-abiword', 'abw' => 'application/x-abiword',
'abw.crashed' => 'application/x-abiword', 'abw.crashed' => 'application/x-abiword',
'abw.gz' => 'application/x-abiword', 'abw.gz' => 'application/x-abiword',
...@@ -54,30 +55,35 @@ class MimeMagic ...@@ -54,30 +55,35 @@ class MimeMagic
'arw' => 'image/x-sony-arw', 'arw' => 'image/x-sony-arw',
'as' => 'application/x-applix-spreadsheet', 'as' => 'application/x-applix-spreadsheet',
'asc' => 'application/pgp-encrypted', 'asc' => 'application/pgp-encrypted',
'asd' => 'text/x-common-lisp',
'asf' => 'application/vnd.ms-asf', 'asf' => 'application/vnd.ms-asf',
'asp' => 'application/x-asp', 'asp' => 'application/x-asp',
'ass' => 'text/x-ssa', 'ass' => 'text/x-ssa',
'astc' => 'image/astc',
'asx' => 'audio/x-ms-asx', 'asx' => 'audio/x-ms-asx',
'atom' => 'application/atom+xml', 'atom' => 'application/atom+xml',
'au' => 'audio/basic', 'au' => 'audio/basic',
'automount' => 'text/x-systemd-unit', 'automount' => 'text/x-systemd-unit',
'avf' => 'video/x-msvideo', 'avf' => 'video/x-msvideo',
'avi' => 'video/x-msvideo', 'avi' => 'video/x-msvideo',
'avif' => 'image/avif',
'avifs' => 'image/avif',
'aw' => 'application/x-applix-word', 'aw' => 'application/x-applix-word',
'awb' => 'audio/AMR-WB', 'awb' => 'audio/AMR-WB',
'awk' => 'application/x-awk', 'awk' => 'application/x-awk',
'axa' => 'audio/annodex', 'axa' => 'audio/annodex',
'axv' => 'video/annodex', 'axv' => 'video/annodex',
'azw3' => 'application/vnd.amazon.mobi8-ebook',
'bak' => 'application/x-trash', 'bak' => 'application/x-trash',
'bcpio' => 'application/x-bcpio', 'bcpio' => 'application/x-bcpio',
'bdf' => 'application/x-font-bdf', 'bdf' => 'application/x-font-bdf',
'bdm' => 'video/mp2t', 'bdm' => 'video/mp2t',
'bdmv' => 'video/mp2t', 'bdmv' => 'video/mp2t',
'bib' => 'text/x-bibtex', 'bib' => 'text/x-bibtex',
'bin' => 'application/x-sega-cd-rom',
'blend' => 'application/x-blender', 'blend' => 'application/x-blender',
'blender' => 'application/x-blender', 'blender' => 'application/x-blender',
'bmp' => 'image/bmp', 'bmp' => 'image/bmp',
'bps' => 'application/x-bps-patch',
'bsdiff' => 'application/x-bsdiff', 'bsdiff' => 'application/x-bsdiff',
'bz' => 'application/x-bzip', 'bz' => 'application/x-bzip',
'bz2' => 'application/x-bzip', 'bz2' => 'application/x-bzip',
...@@ -91,13 +97,16 @@ class MimeMagic ...@@ -91,13 +97,16 @@ class MimeMagic
'cbt' => 'application/x-cbt', 'cbt' => 'application/x-cbt',
'cbz' => 'application/vnd.comicbook+zip', 'cbz' => 'application/vnd.comicbook+zip',
'cc' => 'text/x-c++src', 'cc' => 'text/x-c++src',
'cci' => 'application/x-nintendo-3ds-rom',
'ccmx' => 'application/x-ccmx', 'ccmx' => 'application/x-ccmx',
'cdf' => 'application/x-netcdf', 'cdf' => 'application/x-netcdf',
'cdi' => 'application/x-discjuggler-cd-image',
'cdr' => 'application/vnd.corel-draw', 'cdr' => 'application/vnd.corel-draw',
'cer' => 'application/pkix-cert', 'cer' => 'application/pkix-cert',
'cert' => 'application/x-x509-ca-cert', 'cert' => 'application/x-x509-ca-cert',
'cgb' => 'application/x-gameboy-color-rom', 'cgb' => 'application/x-gameboy-color-rom',
'cgm' => 'image/cgm', 'cgm' => 'image/cgm',
'chd' => 'application/x-mame-chd',
'chm' => 'application/vnd.ms-htmlhelp', 'chm' => 'application/vnd.ms-htmlhelp',
'chrt' => 'application/x-kchart', 'chrt' => 'application/x-kchart',
'cl' => 'text/x-opencl-src', 'cl' => 'text/x-opencl-src',
...@@ -118,17 +127,18 @@ class MimeMagic ...@@ -118,17 +127,18 @@ class MimeMagic
'crw' => 'image/x-canon-crw', 'crw' => 'image/x-canon-crw',
'cs' => 'text/x-csharp', 'cs' => 'text/x-csharp',
'csh' => 'application/x-csh', 'csh' => 'application/x-csh',
'cso' => 'application/x-compressed-iso',
'css' => 'text/css', 'css' => 'text/css',
'csv' => 'text/csv', 'csv' => 'text/csv',
'csvs' => 'text/csv-schema', 'csvs' => 'text/csv-schema',
'cue' => 'application/x-cue', 'cue' => 'application/x-cue',
'cur' => 'image/x-win-bitmap', 'cur' => 'image/x-win-bitmap',
'cwk' => 'application/x-appleworks-document',
'cxx' => 'text/x-c++src', 'cxx' => 'text/x-c++src',
'd' => 'text/x-dsrc', 'd' => 'text/x-dsrc',
'dar' => 'application/x-dar', 'dar' => 'application/x-dar',
'dbf' => 'application/x-dbf', 'dbf' => 'application/x-dbf',
'dbk' => 'application/x-docbook+xml', 'dbk' => 'application/x-docbook+xml',
'dc' => 'application/x-dc-rom',
'dcl' => 'text/x-dcl', 'dcl' => 'text/x-dcl',
'dcm' => 'application/dicom', 'dcm' => 'application/dicom',
'dcr' => 'image/x-kodak-dcr', 'dcr' => 'image/x-kodak-dcr',
...@@ -196,6 +206,7 @@ class MimeMagic ...@@ -196,6 +206,7 @@ class MimeMagic
'f4v' => 'video/mp4', 'f4v' => 'video/mp4',
'f90' => 'text/x-fortran', 'f90' => 'text/x-fortran',
'f95' => 'text/x-fortran', 'f95' => 'text/x-fortran',
'fasl' => 'text/x-common-lisp',
'fb2' => 'application/x-fictionbook+xml', 'fb2' => 'application/x-fictionbook+xml',
'fb2.zip' => 'application/x-zip-compressed-fb2', 'fb2.zip' => 'application/x-zip-compressed-fb2',
'fd' => 'application/x-raw-floppy-disk-image', 'fd' => 'application/x-raw-floppy-disk-image',
...@@ -220,13 +231,14 @@ class MimeMagic ...@@ -220,13 +231,14 @@ class MimeMagic
'fodt' => 'application/vnd.oasis.opendocument.text-flat-xml', 'fodt' => 'application/vnd.oasis.opendocument.text-flat-xml',
'for' => 'text/x-fortran', 'for' => 'text/x-fortran',
'fxm' => 'video/x-javafx', 'fxm' => 'video/x-javafx',
'g3' => 'image/fax-g3', 'g3' => 'image/g3fax',
'gb' => 'application/x-gameboy-rom', 'gb' => 'application/x-gameboy-rom',
'gba' => 'application/x-gba-rom', 'gba' => 'application/x-gba-rom',
'gbc' => 'application/x-gameboy-color-rom', 'gbc' => 'application/x-gameboy-color-rom',
'gbr' => 'image/x-gimp-gbr', 'gbr' => 'image/x-gimp-gbr',
'gcode' => 'text/x.gcode', 'gcode' => 'text/x.gcode',
'gcrd' => 'text/vcard', 'gcrd' => 'text/vcard',
'gdi' => 'application/x-gd-rom-cue',
'ged' => 'application/x-gedcom', 'ged' => 'application/x-gedcom',
'gedcom' => 'application/x-gedcom', 'gedcom' => 'application/x-gedcom',
'gem' => 'application/x-tar', 'gem' => 'application/x-tar',
...@@ -251,12 +263,17 @@ class MimeMagic ...@@ -251,12 +263,17 @@ class MimeMagic
'gplt' => 'application/x-gnuplot', 'gplt' => 'application/x-gnuplot',
'gpx' => 'application/gpx+xml', 'gpx' => 'application/gpx+xml',
'gra' => 'application/x-graphite', 'gra' => 'application/x-graphite',
'gradle' => 'text/x-gradle',
'groovy' => 'text/x-groovy',
'gs' => 'text/x-genie', 'gs' => 'text/x-genie',
'gsf' => 'application/x-font-type1', 'gsf' => 'application/x-font-type1',
'gsh' => 'text/x-groovy',
'gsm' => 'audio/x-gsm', 'gsm' => 'audio/x-gsm',
'gtar' => 'application/x-tar', 'gtar' => 'application/x-tar',
'gv' => 'text/vnd.graphviz', 'gv' => 'text/vnd.graphviz',
'gvp' => 'text/x-google-video-pointer', 'gvp' => 'text/x-google-video-pointer',
'gvy' => 'text/x-groovy',
'gy' => 'text/x-groovy',
'gz' => 'application/gzip', 'gz' => 'application/gzip',
'h' => 'text/x-chdr', 'h' => 'text/x-chdr',
'h++' => 'text/x-c++hdr', 'h++' => 'text/x-c++hdr',
...@@ -274,8 +291,8 @@ class MimeMagic ...@@ -274,8 +291,8 @@ class MimeMagic
'hpgl' => 'application/vnd.hp-hpgl', 'hpgl' => 'application/vnd.hp-hpgl',
'hpp' => 'text/x-c++hdr', 'hpp' => 'text/x-c++hdr',
'hs' => 'text/x-haskell', 'hs' => 'text/x-haskell',
'htm' => 'text/html', 'htm' => 'application/xhtml+xml',
'html' => 'text/html', 'html' => 'application/xhtml+xml',
'hwp' => 'application/x-hwp', 'hwp' => 'application/x-hwp',
'hwt' => 'application/x-hwt', 'hwt' => 'application/x-hwt',
'hxx' => 'text/x-c++hdr', 'hxx' => 'text/x-c++hdr',
...@@ -297,6 +314,7 @@ class MimeMagic ...@@ -297,6 +314,7 @@ class MimeMagic
'img.xz' => 'application/x-raw-disk-image-xz-compressed', 'img.xz' => 'application/x-raw-disk-image-xz-compressed',
'imy' => 'text/x-iMelody', 'imy' => 'text/x-iMelody',
'ins' => 'text/x-tex', 'ins' => 'text/x-tex',
'ips' => 'application/x-ips-patch',
'iptables' => 'text/x-iptables', 'iptables' => 'text/x-iptables',
'ipynb' => 'application/x-ipynb+json', 'ipynb' => 'application/x-ipynb+json',
'iso' => 'application/x-cd-image', 'iso' => 'application/x-cd-image',
...@@ -338,8 +356,9 @@ class MimeMagic ...@@ -338,8 +356,9 @@ class MimeMagic
'kexi' => 'application/x-kexiproject-sqlite2', 'kexi' => 'application/x-kexiproject-sqlite2',
'kexic' => 'application/x-kexi-connectiondata', 'kexic' => 'application/x-kexi-connectiondata',
'kexis' => 'application/x-kexiproject-shortcut', 'kexis' => 'application/x-kexiproject-shortcut',
'key' => 'application/x-iwork-keynote-sffkey', 'key' => 'application/pgp-keys',
'kfo' => 'application/x-kformula', 'kfo' => 'application/x-kformula',
'kfx' => 'application/vnd.amazon.mobi8-ebook',
'kil' => 'application/x-killustrator', 'kil' => 'application/x-killustrator',
'kino' => 'application/smil+xml', 'kino' => 'application/smil+xml',
'kml' => 'application/vnd.google-earth.kml+xml', 'kml' => 'application/vnd.google-earth.kml+xml',
...@@ -351,7 +370,10 @@ class MimeMagic ...@@ -351,7 +370,10 @@ class MimeMagic
'kra' => 'application/x-krita', 'kra' => 'application/x-krita',
'ks' => 'application/x-java-keystore', 'ks' => 'application/x-java-keystore',
'ksp' => 'application/x-kspread', 'ksp' => 'application/x-kspread',
'ksy' => 'text/x-kaitai-struct',
'kt' => 'text/x-kotlin',
'ktx' => 'image/ktx', 'ktx' => 'image/ktx',
'ktx2' => 'image/ktx2',
'kud' => 'application/x-kugar', 'kud' => 'application/x-kugar',
'kwd' => 'application/x-kword', 'kwd' => 'application/x-kword',
'kwt' => 'application/x-kword', 'kwt' => 'application/x-kword',
...@@ -362,6 +384,7 @@ class MimeMagic ...@@ -362,6 +384,7 @@ class MimeMagic
'lha' => 'application/x-lha', 'lha' => 'application/x-lha',
'lhs' => 'text/x-literate-haskell', 'lhs' => 'text/x-literate-haskell',
'lhz' => 'application/x-lhz', 'lhz' => 'application/x-lhz',
'lisp' => 'text/x-common-lisp',
'lnx' => 'application/x-atari-lynx-rom', 'lnx' => 'application/x-atari-lynx-rom',
'loas' => 'audio/usac', 'loas' => 'audio/usac',
'log' => 'text/x-log', 'log' => 'text/x-log',
...@@ -400,6 +423,7 @@ class MimeMagic ...@@ -400,6 +423,7 @@ class MimeMagic
'manifest' => 'text/cache-manifest', 'manifest' => 'text/cache-manifest',
'markdown' => 'text/markdown', 'markdown' => 'text/markdown',
'mbox' => 'application/mbox', 'mbox' => 'application/mbox',
'mc2' => 'text/vnd.senx.warpscript',
'md' => 'text/markdown', 'md' => 'text/markdown',
'mdb' => 'application/vnd.ms-access', 'mdb' => 'application/vnd.ms-access',
'mdi' => 'image/vnd.ms-modi', 'mdi' => 'image/vnd.ms-modi',
...@@ -428,7 +452,7 @@ class MimeMagic ...@@ -428,7 +452,7 @@ class MimeMagic
'ml' => 'text/x-ocaml', 'ml' => 'text/x-ocaml',
'mli' => 'text/x-ocaml', 'mli' => 'text/x-ocaml',
'mm' => 'text/x-troff-mm', 'mm' => 'text/x-troff-mm',
'mmf' => 'application/x-smaf', 'mmf' => 'application/vnd.smaf',
'mml' => 'application/mathml+xml', 'mml' => 'application/mathml+xml',
'mng' => 'video/x-mng', 'mng' => 'video/x-mng',
'mo' => 'application/x-gettext-translation', 'mo' => 'application/x-gettext-translation',
...@@ -615,7 +639,11 @@ class MimeMagic ...@@ -615,7 +639,11 @@ class MimeMagic
'py3x' => 'text/x-python3', 'py3x' => 'text/x-python3',
'pyc' => 'application/x-python-bytecode', 'pyc' => 'application/x-python-bytecode',
'pyo' => 'application/x-python-bytecode', 'pyo' => 'application/x-python-bytecode',
'pys' => 'application/x-pyspread-bz-spreadsheet',
'pysu' => 'application/x-pyspread-spreadsheet',
'pyx' => 'text/x-python', 'pyx' => 'text/x-python',
'qcow' => 'application/x-qemu-disk',
'qcow2' => 'application/x-qemu-disk',
'qd' => 'application/x-raw-floppy-disk-image', 'qd' => 'application/x-raw-floppy-disk-image',
'qif' => 'application/x-qw', 'qif' => 'application/x-qw',
'qml' => 'text/x-qml', 'qml' => 'text/x-qml',
...@@ -654,10 +682,12 @@ class MimeMagic ...@@ -654,10 +682,12 @@ class MimeMagic
'rnc' => 'application/relax-ng-compact-syntax', 'rnc' => 'application/relax-ng-compact-syntax',
'rng' => 'application/xml', 'rng' => 'application/xml',
'roff' => 'text/troff', 'roff' => 'text/troff',
'ros' => 'text/x-common-lisp',
'rp' => 'image/vnd.rn-realpix', 'rp' => 'image/vnd.rn-realpix',
'rpm' => 'application/x-rpm', 'rpm' => 'application/x-rpm',
'rs' => 'text/rust', 'rs' => 'text/rust',
'rss' => 'application/rss+xml', 'rss' => 'application/rss+xml',
'rst' => 'text/x-rst',
'rt' => 'text/vnd.rn-realtext', 'rt' => 'text/vnd.rn-realtext',
'rtf' => 'application/rtf', 'rtf' => 'application/rtf',
'rtx' => 'text/richtext', 'rtx' => 'text/richtext',
...@@ -665,6 +695,7 @@ class MimeMagic ...@@ -665,6 +695,7 @@ class MimeMagic
'rvx' => 'video/vnd.rn-realvideo', 'rvx' => 'video/vnd.rn-realvideo',
'rw2' => 'image/x-panasonic-rw2', 'rw2' => 'image/x-panasonic-rw2',
's3m' => 'audio/x-s3m', 's3m' => 'audio/x-s3m',
'sage' => 'text/x-sagemath',
'sam' => 'application/x-amipro', 'sam' => 'application/x-amipro',
'sami' => 'application/x-sami', 'sami' => 'application/x-sami',
'sap' => 'application/x-thomson-sap-image', 'sap' => 'application/x-thomson-sap-image',
...@@ -684,6 +715,7 @@ class MimeMagic ...@@ -684,6 +715,7 @@ class MimeMagic
'sfc' => 'application/vnd.nintendo.snes.rom', 'sfc' => 'application/vnd.nintendo.snes.rom',
'sg' => 'application/x-sg1000-rom', 'sg' => 'application/x-sg1000-rom',
'sgb' => 'application/x-gameboy-rom', 'sgb' => 'application/x-gameboy-rom',
'sgd' => 'application/x-genesis-rom',
'sgf' => 'application/x-go-sgf', 'sgf' => 'application/x-go-sgf',
'sgi' => 'image/x-sgi', 'sgi' => 'image/x-sgi',
'sgl' => 'application/vnd.stardivision.writer', 'sgl' => 'application/vnd.stardivision.writer',
...@@ -708,7 +740,7 @@ class MimeMagic ...@@ -708,7 +740,7 @@ class MimeMagic
'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
'slice' => 'text/x-systemd-unit', 'slice' => 'text/x-systemd-unit',
'slk' => 'text/spreadsheet', 'slk' => 'text/spreadsheet',
'smaf' => 'application/x-smaf', 'smaf' => 'application/vnd.smaf',
'smc' => 'application/vnd.nintendo.snes.rom', 'smc' => 'application/vnd.nintendo.snes.rom',
'smd' => 'application/vnd.stardivision.mail', 'smd' => 'application/vnd.stardivision.mail',
'smf' => 'application/vnd.stardivision.math', 'smf' => 'application/vnd.stardivision.math',
...@@ -725,7 +757,7 @@ class MimeMagic ...@@ -725,7 +757,7 @@ class MimeMagic
'spec' => 'text/x-rpm-spec', 'spec' => 'text/x-rpm-spec',
'spl' => 'application/vnd.adobe.flash.movie', 'spl' => 'application/vnd.adobe.flash.movie',
'spm' => 'application/x-source-rpm', 'spm' => 'application/x-source-rpm',
'spx' => 'audio/x-speex', 'spx' => 'application/x-apple-systemprofiler+xml',
'sql' => 'application/sql', 'sql' => 'application/sql',
'sqlite2' => 'application/x-sqlite2', 'sqlite2' => 'application/x-sqlite2',
'sqlite3' => 'application/vnd.sqlite3', 'sqlite3' => 'application/vnd.sqlite3',
...@@ -775,12 +807,13 @@ class MimeMagic ...@@ -775,12 +807,13 @@ class MimeMagic
'tar.lzo' => 'application/x-tzo', 'tar.lzo' => 'application/x-tzo',
'tar.xz' => 'application/x-xz-compressed-tar', 'tar.xz' => 'application/x-xz-compressed-tar',
'tar.z' => 'application/x-tarz', 'tar.z' => 'application/x-tarz',
'tar.zst' => 'application/x-zstd-compressed-tar',
'target' => 'text/x-systemd-unit', 'target' => 'text/x-systemd-unit',
'taz' => 'application/x-tarz', 'taz' => 'application/x-tarz',
'tb2' => 'application/x-bzip-compressed-tar', 'tb2' => 'application/x-bzip-compressed-tar',
'tbz' => 'application/x-bzip-compressed-tar', 'tbz' => 'application/x-bzip-compressed-tar',
'tbz2' => 'application/x-bzip-compressed-tar', 'tbz2' => 'application/x-bzip-compressed-tar',
'tcl' => 'text/x-tcl', 'tcl' => 'text/tcl',
'tex' => 'text/x-tex', 'tex' => 'text/x-tex',
'texi' => 'text/x-texinfo', 'texi' => 'text/x-texinfo',
'texinfo' => 'text/x-texinfo', 'texinfo' => 'text/x-texinfo',
...@@ -791,7 +824,7 @@ class MimeMagic ...@@ -791,7 +824,7 @@ class MimeMagic
'tif' => 'image/tiff', 'tif' => 'image/tiff',
'tiff' => 'image/tiff', 'tiff' => 'image/tiff',
'timer' => 'text/x-systemd-unit', 'timer' => 'text/x-systemd-unit',
'tk' => 'text/x-tcl', 'tk' => 'text/tcl',
'tlrz' => 'application/x-lrzip-compressed-tar', 'tlrz' => 'application/x-lrzip-compressed-tar',
'tlz' => 'application/x-lzma-compressed-tar', 'tlz' => 'application/x-lzma-compressed-tar',
'tnef' => 'application/vnd.ms-tnef', 'tnef' => 'application/vnd.ms-tnef',
...@@ -801,7 +834,7 @@ class MimeMagic ...@@ -801,7 +834,7 @@ class MimeMagic
'tpic' => 'image/x-tga', 'tpic' => 'image/x-tga',
'tr' => 'text/troff', 'tr' => 'text/troff',
'trig' => 'application/trig', 'trig' => 'application/trig',
'ts' => 'text/vnd.qt.linguist', 'ts' => 'text/vnd.trolltech.linguist',
'tsv' => 'text/tab-separated-values', 'tsv' => 'text/tab-separated-values',
'tta' => 'audio/x-tta', 'tta' => 'audio/x-tta',
'ttc' => 'font/collection', 'ttc' => 'font/collection',
...@@ -812,6 +845,7 @@ class MimeMagic ...@@ -812,6 +845,7 @@ class MimeMagic
'txt' => 'text/plain', 'txt' => 'text/plain',
'txz' => 'application/x-xz-compressed-tar', 'txz' => 'application/x-xz-compressed-tar',
'tzo' => 'application/x-tzo', 'tzo' => 'application/x-tzo',
'tzst' => 'application/x-zstd-compressed-tar',
'udeb' => 'application/vnd.debian.binary-package', 'udeb' => 'application/vnd.debian.binary-package',
'ufraw' => 'application/x-ufraw', 'ufraw' => 'application/x-ufraw',
'ui' => 'application/x-designer', 'ui' => 'application/x-designer',
...@@ -828,6 +862,7 @@ class MimeMagic ...@@ -828,6 +862,7 @@ class MimeMagic
'vala' => 'text/x-vala', 'vala' => 'text/x-vala',
'vapi' => 'text/x-vala', 'vapi' => 'text/x-vala',
'vb' => 'application/x-virtual-boy-rom', 'vb' => 'application/x-virtual-boy-rom',
'vbs' => 'text/vbscript',
'vcard' => 'text/vcard', 'vcard' => 'text/vcard',
'vcf' => 'text/vcard', 'vcf' => 'text/vcard',
'vcs' => 'text/calendar', 'vcs' => 'text/calendar',
...@@ -878,7 +913,7 @@ class MimeMagic ...@@ -878,7 +913,7 @@ class MimeMagic
'wmv' => 'video/x-ms-wmv', 'wmv' => 'video/x-ms-wmv',
'wmx' => 'audio/x-ms-asx', 'wmx' => 'audio/x-ms-asx',
'woff' => 'font/woff', 'woff' => 'font/woff',
'woff2' => 'font/woff', 'woff2' => 'font/woff2',
'wp' => 'application/vnd.wordperfect', 'wp' => 'application/vnd.wordperfect',
'wp4' => 'application/vnd.wordperfect', 'wp4' => 'application/vnd.wordperfect',
'wp5' => 'application/vnd.wordperfect', 'wp5' => 'application/vnd.wordperfect',
...@@ -935,7 +970,7 @@ class MimeMagic ...@@ -935,7 +970,7 @@ class MimeMagic
'xml' => 'application/xml', 'xml' => 'application/xml',
'xpi' => 'application/x-xpinstall', 'xpi' => 'application/x-xpinstall',
'xpm' => 'image/x-xpixmap', 'xpm' => 'image/x-xpixmap',
'xps' => 'application/oxps', 'xps' => 'application/vnd.ms-xpsdocument',
'xsd' => 'application/xml', 'xsd' => 'application/xml',
'xsl' => 'application/xslt+xml', 'xsl' => 'application/xslt+xml',
'xslfo' => 'text/x-xslfo', 'xslfo' => 'text/x-xslfo',
...@@ -953,6 +988,7 @@ class MimeMagic ...@@ -953,6 +988,7 @@ class MimeMagic
'zip' => 'application/zip', 'zip' => 'application/zip',
'zoo' => 'application/x-zoo', 'zoo' => 'application/x-zoo',
'zsav' => 'application/x-spss-sav', 'zsav' => 'application/x-spss-sav',
'zst' => 'application/zstd',
'zz' => 'application/zlib', 'zz' => 'application/zlib',
} }
# @private # @private
...@@ -975,7 +1011,7 @@ class MimeMagic ...@@ -975,7 +1011,7 @@ class MimeMagic
'application/json' => [%w(json), %w(application/javascript), 'JSON document'], 'application/json' => [%w(json), %w(application/javascript), 'JSON document'],
'application/json-patch+json' => [%w(json-patch), %w(application/json), 'JSON patch'], 'application/json-patch+json' => [%w(json-patch), %w(application/json), 'JSON patch'],
'application/ld+json' => [%w(jsonld), %w(application/json), 'JSON-LD document'], 'application/ld+json' => [%w(jsonld), %w(application/json), 'JSON-LD document'],
'application/mathematica' => [%w(nb), %w(text/plain), 'Mathematica Notebook'], 'application/mathematica' => [%w(nb), %w(text/plain), 'Mathematica Notebook file'],
'application/mathml+xml' => [%w(mml), %w(application/xml), 'MathML document'], 'application/mathml+xml' => [%w(mml), %w(application/xml), 'MathML document'],
'application/mbox' => [%w(mbox), %w(text/plain), 'mailbox file'], 'application/mbox' => [%w(mbox), %w(text/plain), 'mailbox file'],
'application/metalink+xml' => [%w(metalink), %w(application/xml), 'Metalink file'], 'application/metalink+xml' => [%w(metalink), %w(application/xml), 'Metalink file'],
...@@ -986,22 +1022,22 @@ class MimeMagic ...@@ -986,22 +1022,22 @@ class MimeMagic
'application/oda' => [%w(oda), %w(), 'ODA document'], 'application/oda' => [%w(oda), %w(), 'ODA document'],
'application/ogg' => [%w(ogx), %w(), 'Ogg multimedia file'], 'application/ogg' => [%w(ogx), %w(), 'Ogg multimedia file'],
'application/owl+xml' => [%w(owx), %w(application/xml), 'OWL XML file'], 'application/owl+xml' => [%w(owx), %w(application/xml), 'OWL XML file'],
'application/oxps' => [%w(oxps xps), %w(application/zip), 'XPS document'], 'application/oxps' => [%w(oxps), %w(application/zip), 'OpenXPS document'],
'application/pdf' => [%w(pdf), %w(), 'PDF document'], 'application/pdf' => [%w(pdf), %w(), 'PDF document'],
'application/pgp-encrypted' => [%w(pgp gpg asc), %w(text/plain), 'PGP/MIME-encrypted message header'], 'application/pgp-encrypted' => [%w(pgp gpg asc), %w(text/plain), 'PGP/MIME-encrypted message header'],
'application/pgp-keys' => [%w(skr pkr asc pgp gpg), %w(text/plain), 'PGP keys'], 'application/pgp-keys' => [%w(skr pkr asc pgp gpg key), %w(text/plain), 'PGP keys'],
'application/pgp-signature' => [%w(asc sig pgp gpg), %w(text/plain), 'detached OpenPGP signature'], 'application/pgp-signature' => [%w(asc sig pgp gpg), %w(text/plain), 'detached OpenPGP signature'],
'application/pkcs10' => [%w(p10), %w(), 'PKCS#10 certification request'], 'application/pkcs10' => [%w(p10), %w(), 'PKCS#10 certification request'],
'application/pkcs12' => [%w(p12 pfx), %w(), 'PKCS#12 certificate bundle'], 'application/pkcs12' => [%w(p12 pfx), %w(), 'PKCS#12 certificate bundle'],
'application/pkcs7-mime' => [%w(p7c p7m), %w(), 'PKCS#7 Message or Certificate'], 'application/pkcs7-mime' => [%w(p7c p7m), %w(), 'PKCS#7 file'],
'application/pkcs7-signature' => [%w(p7s), %w(text/plain), 'detached S/MIME signature'], 'application/pkcs7-signature' => [%w(p7s), %w(text/plain), 'detached S/MIME signature'],
'application/pkcs8' => [%w(p8), %w(), 'PKCS#8 private key'], 'application/pkcs8' => [%w(p8), %w(), 'PKCS#8 private key'],
'application/pkcs8-encrypted' => [%w(p8e), %w(), 'PKCS#8 private key (encrypted)'], 'application/pkcs8-encrypted' => [%w(p8e), %w(), 'PKCS#8 private key (encrypted)'],
'application/pkix-cert' => [%w(cer), %w(), 'X.509 certificate'], 'application/pkix-cert' => [%w(cer), %w(), 'X.509 certificate'],
'application/pkix-crl' => [%w(crl), %w(), 'Certificate revocation list'], 'application/pkix-crl' => [%w(crl), %w(), 'certificate revocation list'],
'application/pkix-pkipath' => [%w(pkipath), %w(), 'PkiPath certification path'], 'application/pkix-pkipath' => [%w(pkipath), %w(), 'PkiPath certification path'],
'application/postscript' => [%w(ps), %w(text/plain), 'PS document'], 'application/postscript' => [%w(ps), %w(text/plain), 'PostScript document'],
'application/ram' => [%w(ram), %w(), 'RealMedia Metafile'], 'application/ram' => [%w(ram), %w(), 'RealMedia playlist'],
'application/raml+yaml' => [%w(raml), %w(application/x-yaml), 'RAML document'], 'application/raml+yaml' => [%w(raml), %w(application/x-yaml), 'RAML document'],
'application/rdf+xml' => [%w(rdf rdfs owl), %w(application/xml), 'RDF file'], 'application/rdf+xml' => [%w(rdf rdfs owl), %w(application/xml), 'RDF file'],
'application/relax-ng-compact-syntax' => [%w(rnc), %w(text/plain), 'RELAX NG XML schema'], 'application/relax-ng-compact-syntax' => [%w(rnc), %w(text/plain), 'RELAX NG XML schema'],
...@@ -1013,9 +1049,11 @@ class MimeMagic ...@@ -1013,9 +1049,11 @@ class MimeMagic
'application/sql' => [%w(sql), %w(text/plain), 'SQL code'], 'application/sql' => [%w(sql), %w(text/plain), 'SQL code'],
'application/trig' => [%w(trig), %w(text/plain), 'TriG RDF document'], 'application/trig' => [%w(trig), %w(text/plain), 'TriG RDF document'],
'application/vnd.adobe.flash.movie' => [%w(swf spl), %w(), 'Shockwave Flash file'], 'application/vnd.adobe.flash.movie' => [%w(swf spl), %w(), 'Shockwave Flash file'],
'application/vnd.amazon.mobi8-ebook' => [%w(azw3 kfx), %w(application/x-mobipocket-ebook), 'Kindle book document'],
'application/vnd.android.package-archive' => [%w(apk), %w(application/x-java-archive), 'Android package'], 'application/vnd.android.package-archive' => [%w(apk), %w(application/x-java-archive), 'Android package'],
'application/vnd.appimage' => [%w(appimage), %w(application/vnd.squashfs application/x-executable), 'AppImage application bundle'], 'application/vnd.appimage' => [%w(appimage), %w(application/vnd.squashfs application/x-executable), 'AppImage application bundle'],
'application/vnd.apple.mpegurl' => [%w(m3u m3u8), %w(text/plain), 'HTTP Live Streaming playlist'], 'application/vnd.apple.keynote' => [%w(key), %w(application/zip), 'Apple Keynote 5 presentation'],
'application/vnd.apple.mpegurl' => [%w(m3u m3u8), %w(text/plain), 'Media playlist'],
'application/vnd.chess-pgn' => [%w(pgn), %w(text/plain), 'PGN chess game notation'], 'application/vnd.chess-pgn' => [%w(pgn), %w(text/plain), 'PGN chess game notation'],
'application/vnd.coffeescript' => [%w(coffee), %w(text/plain), 'CoffeeScript document'], 'application/vnd.coffeescript' => [%w(coffee), %w(text/plain), 'CoffeeScript document'],
'application/vnd.comicbook+zip' => [%w(cbz), %w(application/zip), 'comic book archive'], 'application/vnd.comicbook+zip' => [%w(cbz), %w(application/zip), 'comic book archive'],
...@@ -1033,7 +1071,7 @@ class MimeMagic ...@@ -1033,7 +1071,7 @@ class MimeMagic
'application/vnd.hp-pcl' => [%w(pcl), %w(), 'PCL file'], 'application/vnd.hp-pcl' => [%w(pcl), %w(), 'PCL file'],
'application/vnd.iccprofile' => [%w(icc icm), %w(), 'ICC profile'], 'application/vnd.iccprofile' => [%w(icc icm), %w(), 'ICC profile'],
'application/vnd.lotus-1-2-3' => [%w(123 wk1 wk3 wk4 wks), %w(), 'Lotus 1-2-3 spreadsheet'], 'application/vnd.lotus-1-2-3' => [%w(123 wk1 wk3 wk4 wks), %w(), 'Lotus 1-2-3 spreadsheet'],
'application/vnd.lotus-wordpro' => [%w(lwp), %w(), 'Lotus Word Pro'], 'application/vnd.lotus-wordpro' => [%w(lwp), %w(), 'Lotus Word Pro document'],
'application/vnd.mozilla.xul+xml' => [%w(xul), %w(application/xml), 'XUL interface document'], 'application/vnd.mozilla.xul+xml' => [%w(xul), %w(application/xml), 'XUL interface document'],
'application/vnd.ms-access' => [%w(mdb), %w(), 'JET database'], 'application/vnd.ms-access' => [%w(mdb), %w(), 'JET database'],
'application/vnd.ms-asf' => [%w(asf), %w(), 'ASF video'], 'application/vnd.ms-asf' => [%w(asf), %w(), 'ASF video'],
...@@ -1052,16 +1090,17 @@ class MimeMagic ...@@ -1052,16 +1090,17 @@ class MimeMagic
'application/vnd.ms-powerpoint.template.macroEnabled.12' => [%w(potm), %w(application/vnd.openxmlformats-officedocument.presentationml.template), 'PowerPoint presentation template'], 'application/vnd.ms-powerpoint.template.macroEnabled.12' => [%w(potm), %w(application/vnd.openxmlformats-officedocument.presentationml.template), 'PowerPoint presentation template'],
'application/vnd.ms-publisher' => [%w(pub), %w(application/x-ole-storage), 'Microsoft Publisher document'], 'application/vnd.ms-publisher' => [%w(pub), %w(application/x-ole-storage), 'Microsoft Publisher document'],
'application/vnd.ms-tnef' => [%w(tnef tnf), %w(), 'TNEF message'], 'application/vnd.ms-tnef' => [%w(tnef tnf), %w(), 'TNEF message'],
'application/vnd.ms-visio.drawing.macroEnabled.main+xml' => [%w(vsdm), %w(application/zip), 'Office Open XML Visio Drawing'], 'application/vnd.ms-visio.drawing.macroEnabled.main+xml' => [%w(vsdm), %w(application/zip), 'Office Open XML Visio drawing'],
'application/vnd.ms-visio.drawing.main+xml' => [%w(vsdx), %w(application/zip), 'Office Open XML Visio Drawing'], 'application/vnd.ms-visio.drawing.main+xml' => [%w(vsdx), %w(application/zip), 'Office Open XML Visio drawing'],
'application/vnd.ms-visio.stencil.macroEnabled.main+xml' => [%w(vssm), %w(application/zip), 'Office Open XML Visio Stencil'], 'application/vnd.ms-visio.stencil.macroEnabled.main+xml' => [%w(vssm), %w(application/zip), 'Office Open XML Visio stencil'],
'application/vnd.ms-visio.stencil.main+xml' => [%w(vssx), %w(application/zip), 'Office Open XML Visio Stencil'], 'application/vnd.ms-visio.stencil.main+xml' => [%w(vssx), %w(application/zip), 'Office Open XML Visio stencil'],
'application/vnd.ms-visio.template.macroEnabled.main+xml' => [%w(vstm), %w(application/zip), 'Office Open XML Visio Template'], 'application/vnd.ms-visio.template.macroEnabled.main+xml' => [%w(vstm), %w(application/zip), 'Office Open XML Visio template'],
'application/vnd.ms-visio.template.main+xml' => [%w(vstx), %w(application/zip), 'Office Open XML Visio Template'], 'application/vnd.ms-visio.template.main+xml' => [%w(vstx), %w(application/zip), 'Office Open XML Visio template'],
'application/vnd.ms-word.document.macroEnabled.12' => [%w(docm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.document), 'Word document'], 'application/vnd.ms-word.document.macroEnabled.12' => [%w(docm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.document), 'Word document'],
'application/vnd.ms-word.template.macroEnabled.12' => [%w(dotm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.template), 'Word document template'], 'application/vnd.ms-word.template.macroEnabled.12' => [%w(dotm), %w(application/vnd.openxmlformats-officedocument.wordprocessingml.template), 'Word document template'],
'application/vnd.ms-works' => [%w(wcm wdb wks wps xlr), %w(application/x-ole-storage), 'Microsoft Works document'], 'application/vnd.ms-works' => [%w(wcm wdb wks wps xlr), %w(application/x-ole-storage), 'Microsoft Works document'],
'application/vnd.ms-wpl' => [%w(wpl), %w(), 'WPL playlist'], 'application/vnd.ms-wpl' => [%w(wpl), %w(), 'WPL playlist'],
'application/vnd.ms-xpsdocument' => [%w(xps), %w(application/zip), 'XPS document'],
'application/vnd.nintendo.snes.rom' => [%w(sfc smc), %w(), 'Super NES ROM'], 'application/vnd.nintendo.snes.rom' => [%w(sfc smc), %w(), 'Super NES ROM'],
'application/vnd.oasis.opendocument.chart' => [%w(odc), %w(application/zip), 'ODC chart'], 'application/vnd.oasis.opendocument.chart' => [%w(odc), %w(application/zip), 'ODC chart'],
'application/vnd.oasis.opendocument.chart-template' => [%w(otc), %w(application/zip), 'ODC template'], 'application/vnd.oasis.opendocument.chart-template' => [%w(otc), %w(application/zip), 'ODC template'],
...@@ -1095,9 +1134,10 @@ class MimeMagic ...@@ -1095,9 +1134,10 @@ class MimeMagic
'application/vnd.palm' => [%w(prc pdb pqa oprc), %w(), 'Palm OS database'], 'application/vnd.palm' => [%w(prc pdb pqa oprc), %w(), 'Palm OS database'],
'application/vnd.rar' => [%w(rar), %w(), 'RAR archive'], 'application/vnd.rar' => [%w(rar), %w(), 'RAR archive'],
'application/vnd.rn-realmedia' => [%w(rm rmj rmm rms rmx rmvb), %w(), 'RealMedia document'], 'application/vnd.rn-realmedia' => [%w(rm rmj rmm rms rmx rmvb), %w(), 'RealMedia document'],
'application/vnd.smaf' => [%w(mmf smaf), %w(), 'SMAF audio'],
'application/vnd.snap' => [%w(snap), %w(application/vnd.squashfs), 'Snap package'], 'application/vnd.snap' => [%w(snap), %w(application/vnd.squashfs), 'Snap package'],
'application/vnd.sqlite3' => [%w(sqlite3), %w(), 'SQLite3 database'], 'application/vnd.sqlite3' => [%w(sqlite3), %w(), 'SQLite3 database'],
'application/vnd.squashfs' => [%w(sqsh), %w(), 'Squashfs filesystem'], 'application/vnd.squashfs' => [%w(sqsh), %w(), 'Squashfs filesystem image'],
'application/vnd.stardivision.calc' => [%w(sdc), %w(), 'StarCalc spreadsheet'], 'application/vnd.stardivision.calc' => [%w(sdc), %w(), 'StarCalc spreadsheet'],
'application/vnd.stardivision.chart' => [%w(sds), %w(), 'StarChart chart'], 'application/vnd.stardivision.chart' => [%w(sds), %w(), 'StarChart chart'],
'application/vnd.stardivision.draw' => [%w(sda), %w(), 'StarDraw drawing'], 'application/vnd.stardivision.draw' => [%w(sda), %w(), 'StarDraw drawing'],
...@@ -1116,10 +1156,10 @@ class MimeMagic ...@@ -1116,10 +1156,10 @@ class MimeMagic
'application/vnd.sun.xml.writer.global' => [%w(sxg), %w(application/zip), 'OpenOffice Writer global document'], 'application/vnd.sun.xml.writer.global' => [%w(sxg), %w(application/zip), 'OpenOffice Writer global document'],
'application/vnd.sun.xml.writer.template' => [%w(stw), %w(application/zip), 'OpenOffice Writer template'], 'application/vnd.sun.xml.writer.template' => [%w(stw), %w(application/zip), 'OpenOffice Writer template'],
'application/vnd.symbian.install' => [%w(sis), %w(), 'SIS package'], 'application/vnd.symbian.install' => [%w(sis), %w(), 'SIS package'],
'application/vnd.tcpdump.pcap' => [%w(pcap cap dmp), %w(), 'Network Packet Capture'], 'application/vnd.tcpdump.pcap' => [%w(pcap cap dmp), %w(), 'network packet capture'],
'application/vnd.visio' => [%w(vsd vst vsw vss), %w(application/x-ole-storage), 'Microsoft Visio document'], 'application/vnd.visio' => [%w(vsd vst vsw vss), %w(application/x-ole-storage), 'Microsoft Visio document'],
'application/vnd.wordperfect' => [%w(wp wp4 wp5 wp6 wpd wpp), %w(), 'WordPerfect document'], 'application/vnd.wordperfect' => [%w(wp wp4 wp5 wp6 wpd wpp), %w(), 'WordPerfect document'],
'application/vnd.youtube.yt' => [%w(yt), %w(application/zip), 'YouTube Media Archive'], 'application/vnd.youtube.yt' => [%w(yt), %w(application/zip), 'YouTube media archive'],
'application/winhlp' => [%w(hlp), %w(), 'WinHelp help file'], 'application/winhlp' => [%w(hlp), %w(), 'WinHelp help file'],
'application/x-7z-compressed' => [%w(7z), %w(), '7-zip archive'], 'application/x-7z-compressed' => [%w(7z), %w(), '7-zip archive'],
'application/x-abiword' => [%w(abw abw.crashed abw.gz zabw), %w(application/xml), 'AbiWord document'], 'application/x-abiword' => [%w(abw abw.crashed abw.gz zabw), %w(application/xml), 'AbiWord document'],
...@@ -1129,18 +1169,21 @@ class MimeMagic ...@@ -1129,18 +1169,21 @@ class MimeMagic
'application/x-amipro' => [%w(sam), %w(), 'Lotus AmiPro document'], 'application/x-amipro' => [%w(sam), %w(), 'Lotus AmiPro document'],
'application/x-aportisdoc' => [%w(pdb pdc), %w(application/vnd.palm), 'AportisDoc document'], 'application/x-aportisdoc' => [%w(pdb pdc), %w(application/vnd.palm), 'AportisDoc document'],
'application/x-apple-diskimage' => [%w(dmg), %w(), 'Apple disk image'], 'application/x-apple-diskimage' => [%w(dmg), %w(), 'Apple disk image'],
'application/x-apple-systemprofiler+xml' => [%w(spx), %w(application/xml), 'Apple System Profiler'],
'application/x-appleworks-document' => [%w(cwk), %w(), 'AppleWorks document'],
'application/x-applix-spreadsheet' => [%w(as), %w(), 'Applix Spreadsheets spreadsheet'], 'application/x-applix-spreadsheet' => [%w(as), %w(), 'Applix Spreadsheets spreadsheet'],
'application/x-applix-word' => [%w(aw), %w(), 'Applix Words document'], 'application/x-applix-word' => [%w(aw), %w(), 'Applix Words document'],
'application/x-archive' => [%w(a ar), %w(), 'AR archive'], 'application/x-archive' => [%w(a ar), %w(), 'AR archive'],
'application/x-arj' => [%w(arj), %w(), 'ARJ archive'], 'application/x-arj' => [%w(arj), %w(), 'ARJ archive'],
'application/x-asp' => [%w(asp), %w(text/plain), 'ASP page'], 'application/x-asp' => [%w(asp), %w(text/plain), 'ASP page'],
'application/x-atari-2600-rom' => [%w(a26), %w(), 'Atari 2600'], 'application/x-atari-2600-rom' => [%w(a26), %w(), 'Atari 2600 ROM'],
'application/x-atari-7800-rom' => [%w(a78), %w(), 'Atari 7800'], 'application/x-atari-7800-rom' => [%w(a78), %w(), 'Atari 7800 ROM'],
'application/x-atari-lynx-rom' => [%w(lnx), %w(), 'Atari Lynx'], 'application/x-atari-lynx-rom' => [%w(lnx), %w(), 'Atari Lynx ROM'],
'application/x-awk' => [%w(awk), %w(application/x-executable text/plain), 'AWK script'], 'application/x-awk' => [%w(awk), %w(application/x-executable text/plain), 'AWK script'],
'application/x-bcpio' => [%w(bcpio), %w(), 'BCPIO document'], 'application/x-bcpio' => [%w(bcpio), %w(), 'BCPIO document'],
'application/x-bittorrent' => [%w(torrent), %w(), 'BitTorrent seed file'], 'application/x-bittorrent' => [%w(torrent), %w(), 'BitTorrent seed file'],
'application/x-blender' => [%w(blender blend blend), %w(), 'Blender scene'], 'application/x-blender' => [%w(blender blend blend), %w(), 'Blender scene'],
'application/x-bps-patch' => [%w(bps), %w(), 'BPS patch'],
'application/x-bsdiff' => [%w(bsdiff), %w(), 'binary differences between files'], 'application/x-bsdiff' => [%w(bsdiff), %w(), 'binary differences between files'],
'application/x-bzdvi' => [%w(dvi.bz2), %w(application/x-bzip), 'TeX DVI document (bzip-compressed)'], 'application/x-bzdvi' => [%w(dvi.bz2), %w(application/x-bzip), 'TeX DVI document (bzip-compressed)'],
'application/x-bzip' => [%w(bz2 bz), %w(), 'Bzip archive'], 'application/x-bzip' => [%w(bz2 bz), %w(), 'Bzip archive'],
...@@ -1152,8 +1195,9 @@ class MimeMagic ...@@ -1152,8 +1195,9 @@ class MimeMagic
'application/x-ccmx' => [%w(ccmx), %w(text/plain), 'CCMX color correction file'], 'application/x-ccmx' => [%w(ccmx), %w(text/plain), 'CCMX color correction file'],
'application/x-cd-image' => [%w(iso iso9660), %w(application/x-raw-disk-image), 'raw CD image'], 'application/x-cd-image' => [%w(iso iso9660), %w(application/x-raw-disk-image), 'raw CD image'],
'application/x-cdrdao-toc' => [%w(toc), %w(text/plain), 'CD Table Of Contents'], 'application/x-cdrdao-toc' => [%w(toc), %w(text/plain), 'CD Table Of Contents'],
'application/x-cisco-vpn-settings' => [%w(pcf), %w(), 'Cisco VPN Settings'], 'application/x-cisco-vpn-settings' => [%w(pcf), %w(), 'Cisco VPN settings'],
'application/x-compress' => [%w(z), %w(), 'UNIX-compressed file'], 'application/x-compress' => [%w(z), %w(), 'UNIX-compressed file'],
'application/x-compressed-iso' => [%w(cso), %w(), 'Compressed CD image'],
'application/x-compressed-tar' => [%w(tar.gz tgz), %w(application/gzip), 'Tar archive (gzip-compressed)'], 'application/x-compressed-tar' => [%w(tar.gz tgz), %w(application/gzip), 'Tar archive (gzip-compressed)'],
'application/x-cpio' => [%w(cpio), %w(), 'CPIO archive'], 'application/x-cpio' => [%w(cpio), %w(), 'CPIO archive'],
'application/x-cpio-compressed' => [%w(cpio.gz), %w(application/gzip), 'CPIO archive (gzip-compressed)'], 'application/x-cpio-compressed' => [%w(cpio.gz), %w(application/gzip), 'CPIO archive (gzip-compressed)'],
...@@ -1161,13 +1205,14 @@ class MimeMagic ...@@ -1161,13 +1205,14 @@ class MimeMagic
'application/x-cue' => [%w(cue), %w(text/plain), 'CD image cuesheet'], 'application/x-cue' => [%w(cue), %w(text/plain), 'CD image cuesheet'],
'application/x-dar' => [%w(dar), %w(), 'DAR archive'], 'application/x-dar' => [%w(dar), %w(), 'DAR archive'],
'application/x-dbf' => [%w(dbf), %w(), 'Xbase document'], 'application/x-dbf' => [%w(dbf), %w(), 'Xbase document'],
'application/x-dc-rom' => [%w(dc), %w(), 'Dreamcast GD-ROM'], 'application/x-designer' => [%w(ui), %w(application/xml), 'Qt Designer interface document'],
'application/x-designer' => [%w(ui), %w(application/xml), 'Qt Designer file'],
'application/x-desktop' => [%w(desktop kdelnk), %w(text/plain), 'desktop configuration file'], 'application/x-desktop' => [%w(desktop kdelnk), %w(text/plain), 'desktop configuration file'],
'application/x-dia-diagram' => [%w(dia), %w(application/xml), 'Dia diagram'], 'application/x-dia-diagram' => [%w(dia), %w(application/xml), 'Dia diagram'],
'application/x-dia-shape' => [%w(shape), %w(application/xml), 'Dia shape'], 'application/x-dia-shape' => [%w(shape), %w(application/xml), 'Dia shape'],
'application/x-discjuggler-cd-image' => [%w(cdi), %w(), 'Padus DiscJuggler CD image'],
'application/x-docbook+xml' => [%w(dbk docbook), %w(application/xml), 'DocBook document'], 'application/x-docbook+xml' => [%w(dbk docbook), %w(application/xml), 'DocBook document'],
'application/x-doom-wad' => [%w(wad), %w(), 'Doom WAD'], 'application/x-doom-wad' => [%w(wad), %w(), 'Doom WAD file'],
'application/x-dreamcast-rom' => [%w(iso), %w(), 'Dreamcast disc image'],
'application/x-dvi' => [%w(dvi), %w(), 'TeX DVI document'], 'application/x-dvi' => [%w(dvi), %w(), 'TeX DVI document'],
'application/x-e-theme' => [%w(etheme), %w(), 'Enlightenment theme'], 'application/x-e-theme' => [%w(etheme), %w(), 'Enlightenment theme'],
'application/x-egon' => [%w(egon), %w(), 'Egon Animator animation'], 'application/x-egon' => [%w(egon), %w(), 'Egon Animator animation'],
...@@ -1186,9 +1231,10 @@ class MimeMagic ...@@ -1186,9 +1231,10 @@ class MimeMagic
'application/x-gamecube-rom' => [%w(iso), %w(), 'GameCube disc image'], 'application/x-gamecube-rom' => [%w(iso), %w(), 'GameCube disc image'],
'application/x-gamegear-rom' => [%w(gg), %w(), 'Game Gear ROM'], 'application/x-gamegear-rom' => [%w(gg), %w(), 'Game Gear ROM'],
'application/x-gba-rom' => [%w(gba agb), %w(), 'Game Boy Advance ROM'], 'application/x-gba-rom' => [%w(gba agb), %w(), 'Game Boy Advance ROM'],
'application/x-gd-rom-cue' => [%w(gdi), %w(text/plain), 'GD-ROM image cuesheet'],
'application/x-gedcom' => [%w(ged gedcom), %w(), 'GEDCOM family history'], 'application/x-gedcom' => [%w(ged gedcom), %w(), 'GEDCOM family history'],
'application/x-genesis-32x-rom' => [%w(32x mdx), %w(), 'Genesis 32X ROM'], 'application/x-genesis-32x-rom' => [%w(32x mdx), %w(), 'Genesis 32X ROM'],
'application/x-genesis-rom' => [%w(gen smd), %w(), 'Genesis ROM'], 'application/x-genesis-rom' => [%w(gen smd sgd), %w(), 'Genesis ROM'],
'application/x-gettext-translation' => [%w(gmo mo), %w(), 'translated messages (machine-readable)'], 'application/x-gettext-translation' => [%w(gmo mo), %w(), 'translated messages (machine-readable)'],
'application/x-glade' => [%w(glade), %w(application/xml), 'Glade project'], 'application/x-glade' => [%w(glade), %w(application/xml), 'Glade project'],
'application/x-gnucash' => [%w(gnucash gnc xac), %w(), 'GnuCash financial data'], 'application/x-gnucash' => [%w(gnucash gnc xac), %w(), 'GnuCash financial data'],
...@@ -1196,7 +1242,7 @@ class MimeMagic ...@@ -1196,7 +1242,7 @@ class MimeMagic
'application/x-gnuplot' => [%w(gp gplt gnuplot), %w(text/plain), 'Gnuplot document'], 'application/x-gnuplot' => [%w(gp gplt gnuplot), %w(text/plain), 'Gnuplot document'],
'application/x-go-sgf' => [%w(sgf), %w(text/plain), 'SGF record'], 'application/x-go-sgf' => [%w(sgf), %w(text/plain), 'SGF record'],
'application/x-graphite' => [%w(gra), %w(), 'Graphite scientific graph'], 'application/x-graphite' => [%w(gra), %w(), 'Graphite scientific graph'],
'application/x-gtk-builder' => [%w(ui), %w(application/xml), 'GTK+ Builder'], 'application/x-gtk-builder' => [%w(ui), %w(application/xml), 'GTK+ Builder interface document'],
'application/x-gz-font-linux-psf' => [%w(psf.gz), %w(application/gzip), 'Linux PSF console font (gzip-compressed)'], 'application/x-gz-font-linux-psf' => [%w(psf.gz), %w(application/gzip), 'Linux PSF console font (gzip-compressed)'],
'application/x-gzdvi' => [%w(dvi.gz), %w(application/gzip), 'TeX DVI document (gzip-compressed)'], 'application/x-gzdvi' => [%w(dvi.gz), %w(application/gzip), 'TeX DVI document (gzip-compressed)'],
'application/x-gzpdf' => [%w(pdf.gz), %w(application/gzip), 'PDF document (gzip-compressed)'], 'application/x-gzpdf' => [%w(pdf.gz), %w(application/gzip), 'PDF document (gzip-compressed)'],
...@@ -1206,10 +1252,10 @@ class MimeMagic ...@@ -1206,10 +1252,10 @@ class MimeMagic
'application/x-hwp' => [%w(hwp), %w(), 'Haansoft Hangul document'], 'application/x-hwp' => [%w(hwp), %w(), 'Haansoft Hangul document'],
'application/x-hwt' => [%w(hwt), %w(), 'Haansoft Hangul document template'], 'application/x-hwt' => [%w(hwt), %w(), 'Haansoft Hangul document template'],
'application/x-ica' => [%w(ica), %w(text/plain), 'Citrix ICA settings file'], 'application/x-ica' => [%w(ica), %w(text/plain), 'Citrix ICA settings file'],
'application/x-ipynb+json' => [%w(ipynb), %w(application/json), 'Jupyter Notebook'], 'application/x-ips-patch' => [%w(ips), %w(), 'IPS patch'],
'application/x-iso9660-appimage' => [%w(appimage), %w(application/x-executable application/x-iso9660-image), 'AppImage application bundle'], 'application/x-ipynb+json' => [%w(ipynb), %w(application/json), 'Jupyter notebook document'],
'application/x-iso9660-appimage' => [%w(appimage), %w(application/x-cd-image application/x-executable), 'AppImage application bundle'],
'application/x-it87' => [%w(it87), %w(text/plain), 'IT 8.7 color calibration file'], 'application/x-it87' => [%w(it87), %w(text/plain), 'IT 8.7 color calibration file'],
'application/x-iwork-keynote-sffkey' => [%w(key), %w(application/zip), 'Apple Keynote 5 presentation'],
'application/x-java' => [%w(class), %w(), 'Java class'], 'application/x-java' => [%w(class), %w(), 'Java class'],
'application/x-java-archive' => [%w(jar), %w(application/zip), 'Java archive'], 'application/x-java-archive' => [%w(jar), %w(application/zip), 'Java archive'],
'application/x-java-jce-keystore' => [%w(jceks), %w(), 'Java JCE keystore'], 'application/x-java-jce-keystore' => [%w(jceks), %w(), 'Java JCE keystore'],
...@@ -1219,10 +1265,10 @@ class MimeMagic ...@@ -1219,10 +1265,10 @@ class MimeMagic
'application/x-jbuilder-project' => [%w(jpr jpx), %w(), 'JBuilder project'], 'application/x-jbuilder-project' => [%w(jpr jpx), %w(), 'JBuilder project'],
'application/x-karbon' => [%w(karbon), %w(), 'Karbon14 drawing'], 'application/x-karbon' => [%w(karbon), %w(), 'Karbon14 drawing'],
'application/x-kchart' => [%w(chrt), %w(), 'KChart chart'], 'application/x-kchart' => [%w(chrt), %w(), 'KChart chart'],
'application/x-kexi-connectiondata' => [%w(kexic), %w(), 'Kexi settings for database server connection'], 'application/x-kexi-connectiondata' => [%w(kexic), %w(), 'Kexi settings'],
'application/x-kexiproject-shortcut' => [%w(kexis), %w(), 'shortcut to Kexi project on database server'], 'application/x-kexiproject-shortcut' => [%w(kexis), %w(), 'Kexi shortcut'],
'application/x-kexiproject-sqlite2' => [%w(kexi), %w(application/x-sqlite2), 'Kexi database file-based project'], 'application/x-kexiproject-sqlite2' => [%w(kexi), %w(application/x-sqlite2), 'Kexi database file'],
'application/x-kexiproject-sqlite3' => [%w(kexi), %w(application/x-sqlite3), 'Kexi database file-based project'], 'application/x-kexiproject-sqlite3' => [%w(kexi), %w(application/vnd.sqlite3), 'Kexi database file'],
'application/x-kformula' => [%w(kfo), %w(), 'KFormula formula'], 'application/x-kformula' => [%w(kfo), %w(), 'KFormula formula'],
'application/x-killustrator' => [%w(kil), %w(), 'KIllustrator drawing'], 'application/x-killustrator' => [%w(kil), %w(), 'KIllustrator drawing'],
'application/x-kivio' => [%w(flw), %w(), 'Kivio flowchart'], 'application/x-kivio' => [%w(flw), %w(), 'Kivio flowchart'],
...@@ -1248,12 +1294,13 @@ class MimeMagic ...@@ -1248,12 +1294,13 @@ class MimeMagic
'application/x-lzpdf' => [%w(pdf.lz), %w(application/x-lzip), 'PDF document (lzip-compressed)'], 'application/x-lzpdf' => [%w(pdf.lz), %w(application/x-lzip), 'PDF document (lzip-compressed)'],
'application/x-m4' => [%w(m4), %w(text/plain), 'M4 macro'], 'application/x-m4' => [%w(m4), %w(text/plain), 'M4 macro'],
'application/x-magicpoint' => [%w(mgp), %w(text/plain), 'MagicPoint presentation'], 'application/x-magicpoint' => [%w(mgp), %w(text/plain), 'MagicPoint presentation'],
'application/x-mame-chd' => [%w(chd), %w(), 'MAME compressed hard disk image'],
'application/x-markaby' => [%w(mab), %w(application/x-ruby), 'Markaby script'], 'application/x-markaby' => [%w(mab), %w(application/x-ruby), 'Markaby script'],
'application/x-mif' => [%w(mif), %w(), 'Adobe FrameMaker MIF document'], 'application/x-mif' => [%w(mif), %w(), 'Adobe FrameMaker MIF document'],
'application/x-mimearchive' => [%w(mhtml mht), %w(multipart/related), 'MHTML web archive'], 'application/x-mimearchive' => [%w(mhtml mht), %w(multipart/related), 'MHTML web archive'],
'application/x-mobipocket-ebook' => [%w(mobi prc), %w(application/vnd.palm), 'Mobipocket e-book'], 'application/x-mobipocket-ebook' => [%w(mobi prc), %w(application/vnd.palm), 'Mobipocket e-book'],
'application/x-ms-dos-executable' => [%w(exe), %w(), 'DOS/Windows executable'], 'application/x-ms-dos-executable' => [%w(exe), %w(), 'DOS/Windows executable'],
'application/x-ms-wim' => [%w(wim swm), %w(), 'WIM disk Image'], 'application/x-ms-wim' => [%w(wim swm), %w(), 'WIM disk image'],
'application/x-msi' => [%w(msi), %w(application/x-ole-storage), 'Windows Installer package'], 'application/x-msi' => [%w(msi), %w(application/x-ole-storage), 'Windows Installer package'],
'application/x-mswinurl' => [%w(url), %w(), 'Internet shortcut'], 'application/x-mswinurl' => [%w(url), %w(), 'Internet shortcut'],
'application/x-mswrite' => [%w(wri), %w(), 'WRI document'], 'application/x-mswrite' => [%w(wri), %w(), 'WRI document'],
...@@ -1265,11 +1312,13 @@ class MimeMagic ...@@ -1265,11 +1312,13 @@ class MimeMagic
'application/x-nes-rom' => [%w(nes nez unf unif), %w(), 'NES ROM'], 'application/x-nes-rom' => [%w(nes nez unf unif), %w(), 'NES ROM'],
'application/x-netcdf' => [%w(cdf nc), %w(), 'Unidata NetCDF document'], 'application/x-netcdf' => [%w(cdf nc), %w(), 'Unidata NetCDF document'],
'application/x-netshow-channel' => [%w(nsc), %w(application/vnd.ms-asf), 'Windows Media Station file'], 'application/x-netshow-channel' => [%w(nsc), %w(application/vnd.ms-asf), 'Windows Media Station file'],
'application/x-nintendo-3ds-executable' => [%w(3dsx), %w(), 'Nintendo 3DS Executable'],
'application/x-nintendo-3ds-rom' => [%w(3ds cci), %w(), 'Nintendo 3DS ROM'],
'application/x-nintendo-ds-rom' => [%w(nds), %w(), 'Nintendo DS ROM'], 'application/x-nintendo-ds-rom' => [%w(nds), %w(), 'Nintendo DS ROM'],
'application/x-nzb' => [%w(nzb), %w(application/xml), 'NewzBin usenet index'], 'application/x-nzb' => [%w(nzb), %w(application/xml), 'NewzBin usenet index'],
'application/x-object' => [%w(o), %w(), 'object code'], 'application/x-object' => [%w(o), %w(), 'object code'],
'application/x-oleo' => [%w(oleo), %w(), 'GNU Oleo spreadsheet'], 'application/x-oleo' => [%w(oleo), %w(), 'GNU Oleo spreadsheet'],
'application/x-pagemaker' => [%w(p65 pm pm6 pmd), %w(application/x-ole-storage), 'Adobe PageMaker'], 'application/x-pagemaker' => [%w(p65 pm pm6 pmd), %w(application/x-ole-storage), 'Adobe PageMaker document'],
'application/x-pak' => [%w(pak), %w(), 'PAK archive'], 'application/x-pak' => [%w(pak), %w(), 'PAK archive'],
'application/x-par2' => [%w(par2 par2), %w(), 'Parchive archive'], 'application/x-par2' => [%w(par2 par2), %w(), 'Parchive archive'],
'application/x-partial-download' => [%w(wkdownload crdownload part), %w(), 'Partially downloaded file'], 'application/x-partial-download' => [%w(wkdownload crdownload part), %w(), 'Partially downloaded file'],
...@@ -1280,11 +1329,14 @@ class MimeMagic ...@@ -1280,11 +1329,14 @@ class MimeMagic
'application/x-planperfect' => [%w(pln), %w(), 'PlanPerfect spreadsheet'], 'application/x-planperfect' => [%w(pln), %w(), 'PlanPerfect spreadsheet'],
'application/x-pocket-word' => [%w(psw), %w(), 'Pocket Word document'], 'application/x-pocket-word' => [%w(psw), %w(), 'Pocket Word document'],
'application/x-pw' => [%w(pw), %w(), 'Pathetic Writer document'], 'application/x-pw' => [%w(pw), %w(), 'Pathetic Writer document'],
'application/x-pyspread-bz-spreadsheet' => [%w(pys), %w(application/x-bzip), 'Pyspread spreadsheet (bzip-compressed)'],
'application/x-pyspread-spreadsheet' => [%w(pysu), %w(), 'Pyspread spreadsheet'],
'application/x-python-bytecode' => [%w(pyc pyo), %w(), 'Python bytecode'], 'application/x-python-bytecode' => [%w(pyc pyo), %w(), 'Python bytecode'],
'application/x-qemu-disk' => [%w(qcow2 qcow), %w(), 'QEMU QCOW disk image'],
'application/x-qpress' => [%w(qp), %w(), 'Qpress archive'], 'application/x-qpress' => [%w(qp), %w(), 'Qpress archive'],
'application/x-qtiplot' => [%w(qti qti.gz), %w(text/plain), 'QtiPlot document'], 'application/x-qtiplot' => [%w(qti qti.gz), %w(text/plain), 'QtiPlot document'],
'application/x-quattropro' => [%w(wb1 wb2 wb3), %w(), 'Quattro Pro spreadsheet'], 'application/x-quattropro' => [%w(wb1 wb2 wb3), %w(), 'Quattro Pro spreadsheet'],
'application/x-quicktime-media-link' => [%w(qtl), %w(video/quicktime), 'QuickTime metalink playlist'], 'application/x-quicktime-media-link' => [%w(qtl), %w(video/quicktime), 'QuickTime playlist'],
'application/x-qw' => [%w(qif), %w(), 'Quicken document'], 'application/x-qw' => [%w(qif), %w(), 'Quicken document'],
'application/x-raw-disk-image' => [%w(raw-disk-image img), %w(), 'Raw disk image'], 'application/x-raw-disk-image' => [%w(raw-disk-image img), %w(), 'Raw disk image'],
'application/x-raw-disk-image-xz-compressed' => [%w(raw-disk-image.xz img.xz), %w(application/x-xz), 'Raw disk image (XZ-compressed)'], 'application/x-raw-disk-image-xz-compressed' => [%w(raw-disk-image.xz img.xz), %w(application/x-xz), 'Raw disk image (XZ-compressed)'],
...@@ -1292,8 +1344,9 @@ class MimeMagic ...@@ -1292,8 +1344,9 @@ class MimeMagic
'application/x-rpm' => [%w(rpm), %w(), 'RPM package'], 'application/x-rpm' => [%w(rpm), %w(), 'RPM package'],
'application/x-ruby' => [%w(rb), %w(application/x-executable text/plain), 'Ruby script'], 'application/x-ruby' => [%w(rb), %w(application/x-executable text/plain), 'Ruby script'],
'application/x-sami' => [%w(smi sami), %w(text/plain), 'SAMI subtitles'], 'application/x-sami' => [%w(smi sami), %w(text/plain), 'SAMI subtitles'],
'application/x-saturn-rom' => [%w(bin iso), %w(), 'Sega Saturn disc image'], 'application/x-saturn-rom' => [%w(iso), %w(), 'Sega Saturn disc image'],
'application/x-sega-cd-rom' => [%w(bin iso), %w(), 'Sega CD disc image'], 'application/x-sega-cd-rom' => [%w(iso), %w(), 'Sega CD disc image'],
'application/x-sega-pico-rom' => [%w(iso), %w(), 'Sega Pico ROM'],
'application/x-sg1000-rom' => [%w(sg), %w(), 'SG-1000 ROM'], 'application/x-sg1000-rom' => [%w(sg), %w(), 'SG-1000 ROM'],
'application/x-shar' => [%w(shar), %w(), 'shell archive'], 'application/x-shar' => [%w(shar), %w(), 'shell archive'],
'application/x-shared-library-la' => [%w(la), %w(text/plain), 'libtool shared library'], 'application/x-shared-library-la' => [%w(la), %w(text/plain), 'libtool shared library'],
...@@ -1301,11 +1354,10 @@ class MimeMagic ...@@ -1301,11 +1354,10 @@ class MimeMagic
'application/x-shellscript' => [%w(sh), %w(application/x-executable text/plain), 'shell script'], 'application/x-shellscript' => [%w(sh), %w(application/x-executable text/plain), 'shell script'],
'application/x-shorten' => [%w(shn), %w(), 'Shorten audio'], 'application/x-shorten' => [%w(shn), %w(), 'Shorten audio'],
'application/x-siag' => [%w(siag), %w(), 'Siag spreadsheet'], 'application/x-siag' => [%w(siag), %w(), 'Siag spreadsheet'],
'application/x-smaf' => [%w(mmf smaf), %w(), 'SMAF audio'],
'application/x-sms-rom' => [%w(sms), %w(), 'Master System ROM'], 'application/x-sms-rom' => [%w(sms), %w(), 'Master System ROM'],
'application/x-source-rpm' => [%w(src.rpm spm), %w(application/x-rpm), 'Source RPM package'], 'application/x-source-rpm' => [%w(src.rpm spm), %w(application/x-rpm), 'Source RPM package'],
'application/x-spss-por' => [%w(por), %w(), 'SPSS Portable Data File'], 'application/x-spss-por' => [%w(por), %w(), 'SPSS portable data file'],
'application/x-spss-sav' => [%w(sav zsav), %w(), 'SPSS Data File'], 'application/x-spss-sav' => [%w(sav zsav), %w(), 'SPSS data file'],
'application/x-sqlite2' => [%w(sqlite2), %w(), 'SQLite2 database'], 'application/x-sqlite2' => [%w(sqlite2), %w(), 'SQLite2 database'],
'application/x-stuffit' => [%w(sit), %w(), 'StuffIt archive'], 'application/x-stuffit' => [%w(sit), %w(), 'StuffIt archive'],
'application/x-subrip' => [%w(srt), %w(text/plain), 'SubRip subtitles'], 'application/x-subrip' => [%w(srt), %w(text/plain), 'SubRip subtitles'],
...@@ -1345,7 +1397,8 @@ class MimeMagic ...@@ -1345,7 +1397,8 @@ class MimeMagic
'application/x-yaml' => [%w(yaml yml), %w(text/plain), 'YAML document'], 'application/x-yaml' => [%w(yaml yml), %w(text/plain), 'YAML document'],
'application/x-zip-compressed-fb2' => [%w(fb2.zip), %w(application/zip), 'Compressed FictionBook document'], 'application/x-zip-compressed-fb2' => [%w(fb2.zip), %w(application/zip), 'Compressed FictionBook document'],
'application/x-zoo' => [%w(zoo), %w(), 'Zoo archive'], 'application/x-zoo' => [%w(zoo), %w(), 'Zoo archive'],
'application/xhtml+xml' => [%w(xhtml xht), %w(application/xml), 'XHTML page'], 'application/x-zstd-compressed-tar' => [%w(tar.zst tzst), %w(application/zstd), 'Tar archive (Zstandard-compressed)'],
'application/xhtml+xml' => [%w(xhtml xht html htm), %w(application/xml), 'XHTML page'],
'application/xliff+xml' => [%w(xlf xliff), %w(application/xml), 'XLIFF translation file'], 'application/xliff+xml' => [%w(xlf xliff), %w(application/xml), 'XLIFF translation file'],
'application/xml' => [%w(xml xbl xsd rng), %w(text/plain), 'XML document'], 'application/xml' => [%w(xml xbl xsd rng), %w(text/plain), 'XML document'],
'application/xml-dtd' => [%w(dtd), %w(text/plain), 'DTD file'], 'application/xml-dtd' => [%w(dtd), %w(text/plain), 'DTD file'],
...@@ -1354,20 +1407,22 @@ class MimeMagic ...@@ -1354,20 +1407,22 @@ class MimeMagic
'application/xspf+xml' => [%w(xspf), %w(application/xml), 'XSPF playlist'], 'application/xspf+xml' => [%w(xspf), %w(application/xml), 'XSPF playlist'],
'application/zip' => [%w(zip), %w(), 'Zip archive'], 'application/zip' => [%w(zip), %w(), 'Zip archive'],
'application/zlib' => [%w(zz), %w(), 'Zlib archive'], 'application/zlib' => [%w(zz), %w(), 'Zlib archive'],
'application/zstd' => [%w(zst), %w(), 'Zstandard archive'],
'audio/AMR' => [%w(amr), %w(), 'AMR audio'], 'audio/AMR' => [%w(amr), %w(), 'AMR audio'],
'audio/AMR-WB' => [%w(awb), %w(), 'AMR-WB audio'], 'audio/AMR-WB' => [%w(awb), %w(), 'AMR-WB audio'],
'audio/aac' => [%w(aac adts ass), %w(), 'AAC audio'], 'audio/aac' => [%w(aac adts ass), %w(), 'AAC audio'],
'audio/ac3' => [%w(ac3), %w(), 'Dolby Digital audio'], 'audio/ac3' => [%w(ac3), %w(), 'Dolby Digital audio'],
'audio/annodex' => [%w(axa), %w(application/annodex), 'Annodex Audio'], 'audio/annodex' => [%w(axa), %w(application/annodex), 'Annodex audio'],
'audio/basic' => [%w(au snd), %w(), 'ULAW (Sun) audio'], 'audio/basic' => [%w(au snd), %w(), 'ULAW (Sun) audio'],
'audio/flac' => [%w(flac), %w(), 'FLAC audio'], 'audio/flac' => [%w(flac), %w(), 'FLAC audio'],
'audio/midi' => [%w(mid midi kar), %w(), 'MIDI audio'], 'audio/midi' => [%w(mid midi kar), %w(), 'MIDI audio'],
'audio/mp2' => [%w(mp2), %w(), 'MP2 audio'], 'audio/mp2' => [%w(mp2), %w(), 'MP2 audio'],
'audio/mp4' => [%w(m4a f4a), %w(), 'MPEG-4 audio'], 'audio/mp4' => [%w(m4a f4a), %w(), 'MPEG-4 audio'],
'audio/mpeg' => [%w(mp3 mpga), %w(), 'MP3 audio'], 'audio/mpeg' => [%w(mp3 mpga), %w(), 'MP3 audio'],
'audio/ogg' => [%w(oga ogg opus), %w(application/ogg), 'Ogg Audio'], 'audio/ogg' => [%w(oga ogg opus), %w(application/ogg), 'Ogg audio'],
'audio/prs.sid' => [%w(sid psid), %w(), 'Commodore 64 audio'], 'audio/prs.sid' => [%w(sid psid), %w(), 'Commodore 64 audio'],
'audio/usac' => [%w(loas xhe), %w(), 'USAC audio'], 'audio/usac' => [%w(loas xhe), %w(), 'USAC audio'],
'audio/vnd.audible.aax' => [%w(aax), %w(), 'Audible Enhanced audio'],
'audio/vnd.dts' => [%w(dts), %w(), 'DTS audio'], 'audio/vnd.dts' => [%w(dts), %w(), 'DTS audio'],
'audio/vnd.dts.hd' => [%w(dtshd), %w(audio/vnd.dts), 'DTSHD audio'], 'audio/vnd.dts.hd' => [%w(dtshd), %w(audio/vnd.dts), 'DTSHD audio'],
'audio/vnd.rn-realaudio' => [%w(ra rax), %w(), 'RealAudio document'], 'audio/vnd.rn-realaudio' => [%w(ra rax), %w(), 'RealAudio document'],
...@@ -1377,26 +1432,26 @@ class MimeMagic ...@@ -1377,26 +1432,26 @@ class MimeMagic
'audio/x-ape' => [%w(ape), %w(), "Monkey's audio"], 'audio/x-ape' => [%w(ape), %w(), "Monkey's audio"],
'audio/x-flac+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg FLAC audio'], 'audio/x-flac+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg FLAC audio'],
'audio/x-gsm' => [%w(gsm), %w(), 'GSM 06.10 audio'], 'audio/x-gsm' => [%w(gsm), %w(), 'GSM 06.10 audio'],
'audio/x-iriver-pla' => [%w(pla), %w(), 'iRiver Playlist'], 'audio/x-iriver-pla' => [%w(pla), %w(), 'iRiver playlist'],
'audio/x-it' => [%w(it), %w(), 'Impulse Tracker audio'], 'audio/x-it' => [%w(it), %w(), 'Impulse Tracker audio'],
'audio/x-m4b' => [%w(m4b f4b), %w(audio/mp4), 'MPEG-4 audio book'], 'audio/x-m4b' => [%w(m4b f4b), %w(audio/mp4), 'MPEG-4 audio book'],
'audio/x-m4r' => [%w(m4r), %w(video/mp4), 'MPEG-4 Ringtone'], 'audio/x-m4r' => [%w(m4r), %w(video/mp4), 'MPEG-4 ringtone'],
'audio/x-matroska' => [%w(mka), %w(application/x-matroska), 'Matroska audio'], 'audio/x-matroska' => [%w(mka), %w(application/x-matroska), 'Matroska audio'],
'audio/x-minipsf' => [%w(minipsf), %w(audio/x-psf), 'MiniPSF audio'], 'audio/x-minipsf' => [%w(minipsf), %w(audio/x-psf), 'MiniPSF audio'],
'audio/x-mo3' => [%w(mo3), %w(), 'compressed Tracker audio'], 'audio/x-mo3' => [%w(mo3), %w(), 'compressed Tracker audio'],
'audio/x-mod' => [%w(mod ult uni m15 mtm 669 med), %w(), 'Amiga SoundTracker audio'], 'audio/x-mod' => [%w(mod ult uni m15 mtm 669 med), %w(), 'Amiga SoundTracker audio'],
'audio/x-mpegurl' => [%w(m3u m3u8 vlc), %w(text/plain), 'MP3 audio (streamed)'], 'audio/x-mpegurl' => [%w(m3u m3u8 vlc), %w(text/plain), 'Media playlist'],
'audio/x-ms-asx' => [%w(asx wax wvx wmx), %w(), 'Microsoft ASX playlist'], 'audio/x-ms-asx' => [%w(asx wax wvx wmx), %w(), 'Microsoft ASX playlist'],
'audio/x-ms-wma' => [%w(wma), %w(application/vnd.ms-asf), 'Windows Media audio'], 'audio/x-ms-wma' => [%w(wma), %w(application/vnd.ms-asf), 'Windows Media audio'],
'audio/x-musepack' => [%w(mpc mpp mp+), %w(), 'Musepack audio'], 'audio/x-musepack' => [%w(mpc mpp mp+), %w(), 'Musepack audio'],
'audio/x-opus+ogg' => [%w(opus), %w(audio/ogg), 'Opus audio'], 'audio/x-opus+ogg' => [%w(opus), %w(audio/ogg), 'Opus audio'],
'audio/x-pn-audibleaudio' => [%w(aa aax), %w(), 'Audible.Com audio'], 'audio/x-pn-audibleaudio' => [%w(aa), %w(), 'Audible.Com audio'],
'audio/x-psf' => [%w(psf), %w(), 'PSF audio'], 'audio/x-psf' => [%w(psf), %w(), 'PSF audio'],
'audio/x-psflib' => [%w(psflib), %w(audio/x-psf), 'PSFlib audio library'], 'audio/x-psflib' => [%w(psflib), %w(audio/x-psf), 'PSFlib audio library'],
'audio/x-s3m' => [%w(s3m), %w(), 'Scream Tracker 3 audio'], 'audio/x-s3m' => [%w(s3m), %w(), 'Scream Tracker 3 audio'],
'audio/x-scpls' => [%w(pls), %w(), 'MP3 ShoutCast playlist'], 'audio/x-scpls' => [%w(pls), %w(), 'MP3 ShoutCast playlist'],
'audio/x-speex' => [%w(spx), %w(), 'Speex audio'], 'audio/x-speex' => [%w(spx), %w(), 'Speex audio'],
'audio/x-speex+ogg' => [%w(oga ogg), %w(audio/ogg), 'Ogg Speex audio'], 'audio/x-speex+ogg' => [%w(oga ogg spx), %w(audio/ogg), 'Ogg Speex audio'],
'audio/x-stm' => [%w(stm), %w(), 'Scream Tracker audio'], 'audio/x-stm' => [%w(stm), %w(), 'Scream Tracker audio'],
'audio/x-tta' => [%w(tta), %w(), 'TrueAudio audio'], 'audio/x-tta' => [%w(tta), %w(), 'TrueAudio audio'],
'audio/x-voc' => [%w(voc), %w(), 'VOC audio'], 'audio/x-voc' => [%w(voc), %w(), 'VOC audio'],
...@@ -1410,23 +1465,27 @@ class MimeMagic ...@@ -1410,23 +1465,27 @@ class MimeMagic
'font/collection' => [%w(ttc), %w(), 'Font collection'], 'font/collection' => [%w(ttc), %w(), 'Font collection'],
'font/otf' => [%w(otf), %w(font/ttf), 'OpenType font'], 'font/otf' => [%w(otf), %w(font/ttf), 'OpenType font'],
'font/ttf' => [%w(ttf), %w(), 'TrueType font'], 'font/ttf' => [%w(ttf), %w(), 'TrueType font'],
'font/woff' => [%w(woff2), %w(), 'WOFF2 font'], 'font/woff' => [%w(woff), %w(), 'WOFF font'],
'font/woff2' => [%w(woff2), %w(), 'WOFF2 font'],
'image/astc' => [%w(astc), %w(), 'ASTC texture'],
'image/avif' => [%w(avif avifs), %w(), 'AV1 Image File Format (AVIF)'],
'image/bmp' => [%w(bmp dib), %w(), 'Windows BMP image'], 'image/bmp' => [%w(bmp dib), %w(), 'Windows BMP image'],
'image/cgm' => [%w(cgm), %w(), 'Computer Graphics Metafile'], 'image/cgm' => [%w(cgm), %w(), 'CGM image'],
'image/emf' => [%w(emf), %w(), 'EMF image'], 'image/emf' => [%w(emf), %w(), 'EMF image'],
'image/fax-g3' => [%w(g3), %w(), 'CCITT G3 fax'],
'image/fits' => [%w(fits), %w(), 'FITS document'], 'image/fits' => [%w(fits), %w(), 'FITS document'],
'image/g3fax' => [%w(g3), %w(), 'CCITT G3 fax image'],
'image/gif' => [%w(gif), %w(), 'GIF image'], 'image/gif' => [%w(gif), %w(), 'GIF image'],
'image/heif' => [%w(heic heif), %w(), 'HEIF image'], 'image/heif' => [%w(heic heif), %w(), 'HEIF image'],
'image/ief' => [%w(ief), %w(), 'IEF image'], 'image/ief' => [%w(ief), %w(), 'IEF image'],
'image/jp2' => [%w(jp2 jpg2), %w(), 'JPEG-2000 JP2 image'], 'image/jp2' => [%w(jp2 jpg2), %w(), 'JPEG-2000 JP2 image'],
'image/jpeg' => [%w(jpeg jpg jpe), %w(), 'JPEG image'], 'image/jpeg' => [%w(jpg jpeg jpe), %w(), 'JPEG image'],
'image/jpm' => [%w(jpm jpgm), %w(), 'JPEG-2000 JPM image'], 'image/jpm' => [%w(jpm jpgm), %w(), 'JPEG-2000 JPM image'],
'image/jpx' => [%w(jpf jpx), %w(), 'JPEG-2000 JPX image'], 'image/jpx' => [%w(jpf jpx), %w(), 'JPEG-2000 JPX image'],
'image/ktx' => [%w(ktx), %w(), 'Khronos texture image'], 'image/ktx' => [%w(ktx), %w(), 'Khronos texture image'],
'image/openraster' => [%w(ora), %w(application/zip), 'OpenRaster archiving image'], 'image/ktx2' => [%w(ktx2), %w(), 'Khronos texture image'],
'image/openraster' => [%w(ora), %w(application/zip), 'OpenRaster image'],
'image/png' => [%w(png), %w(), 'PNG image'], 'image/png' => [%w(png), %w(), 'PNG image'],
'image/rle' => [%w(rle), %w(), 'Run Length Encoded bitmap image'], 'image/rle' => [%w(rle), %w(), 'RLE bitmap image'],
'image/svg+xml' => [%w(svg), %w(application/xml), 'SVG image'], 'image/svg+xml' => [%w(svg), %w(application/xml), 'SVG image'],
'image/svg+xml-compressed' => [%w(svgz), %w(application/gzip), 'compressed SVG image'], 'image/svg+xml-compressed' => [%w(svgz), %w(application/gzip), 'compressed SVG image'],
'image/tiff' => [%w(tif tiff), %w(), 'TIFF image'], 'image/tiff' => [%w(tif tiff), %w(), 'TIFF image'],
...@@ -1436,7 +1495,7 @@ class MimeMagic ...@@ -1436,7 +1495,7 @@ class MimeMagic
'image/vnd.dwg' => [%w(dwg), %w(), 'AutoCAD image'], 'image/vnd.dwg' => [%w(dwg), %w(), 'AutoCAD image'],
'image/vnd.dxf' => [%w(dxf), %w(), 'DXF vector image'], 'image/vnd.dxf' => [%w(dxf), %w(), 'DXF vector image'],
'image/vnd.microsoft.icon' => [%w(ico), %w(), 'Windows icon'], 'image/vnd.microsoft.icon' => [%w(ico), %w(), 'Windows icon'],
'image/vnd.ms-modi' => [%w(mdi), %w(), 'Microsoft Document Imaging format'], 'image/vnd.ms-modi' => [%w(mdi), %w(), 'MDI image'],
'image/vnd.rn-realpix' => [%w(rp), %w(), 'RealPix document'], 'image/vnd.rn-realpix' => [%w(rp), %w(), 'RealPix document'],
'image/vnd.wap.wbmp' => [%w(wbmp), %w(), 'WBMP image'], 'image/vnd.wap.wbmp' => [%w(wbmp), %w(), 'WBMP image'],
'image/vnd.zbrush.pcx' => [%w(pcx), %w(), 'PCX image'], 'image/vnd.zbrush.pcx' => [%w(pcx), %w(), 'PCX image'],
...@@ -1473,7 +1532,7 @@ class MimeMagic ...@@ -1473,7 +1532,7 @@ class MimeMagic
'image/x-nikon-nef' => [%w(nef), %w(image/tiff image/x-dcraw), 'Nikon NEF raw image'], 'image/x-nikon-nef' => [%w(nef), %w(image/tiff image/x-dcraw), 'Nikon NEF raw image'],
'image/x-olympus-orf' => [%w(orf), %w(image/x-dcraw), 'Olympus ORF raw image'], 'image/x-olympus-orf' => [%w(orf), %w(image/x-dcraw), 'Olympus ORF raw image'],
'image/x-panasonic-rw' => [%w(raw), %w(image/x-dcraw), 'Panasonic raw image'], 'image/x-panasonic-rw' => [%w(raw), %w(image/x-dcraw), 'Panasonic raw image'],
'image/x-panasonic-rw2' => [%w(rw2), %w(image/x-dcraw), 'Panasonic raw2 image'], 'image/x-panasonic-rw2' => [%w(rw2), %w(image/x-dcraw), 'Panasonic raw image'],
'image/x-pentax-pef' => [%w(pef), %w(image/tiff image/x-dcraw), 'Pentax PEF raw image'], 'image/x-pentax-pef' => [%w(pef), %w(image/tiff image/x-dcraw), 'Pentax PEF raw image'],
'image/x-photo-cd' => [%w(pcd), %w(), 'PCD image'], 'image/x-photo-cd' => [%w(pcd), %w(), 'PCD image'],
'image/x-pict' => [%w(pct pict pict1 pict2), %w(), 'Macintosh Quickdraw/PICT drawing'], 'image/x-pict' => [%w(pct pict pict1 pict2), %w(), 'Macintosh Quickdraw/PICT drawing'],
...@@ -1501,7 +1560,7 @@ class MimeMagic ...@@ -1501,7 +1560,7 @@ class MimeMagic
'model/iges' => [%w(igs iges), %w(text/plain), 'IGES document'], 'model/iges' => [%w(igs iges), %w(text/plain), 'IGES document'],
'model/stl' => [%w(stl), %w(), 'STL 3D model'], 'model/stl' => [%w(stl), %w(), 'STL 3D model'],
'model/vrml' => [%w(vrm vrml wrl), %w(text/plain), 'VRML document'], 'model/vrml' => [%w(vrm vrml wrl), %w(text/plain), 'VRML document'],
'text/cache-manifest' => [%w(manifest), %w(text/plain), 'Web application cache manifest'], 'text/cache-manifest' => [%w(manifest), %w(text/plain), 'Web application cache file'],
'text/calendar' => [%w(vcs ics), %w(text/plain), 'VCS/ICS calendar'], 'text/calendar' => [%w(vcs ics), %w(text/plain), 'VCS/ICS calendar'],
'text/css' => [%w(css), %w(text/plain), 'CSS stylesheet'], 'text/css' => [%w(css), %w(text/plain), 'CSS stylesheet'],
'text/csv' => [%w(csv), %w(text/plain), 'CSV document'], 'text/csv' => [%w(csv), %w(text/plain), 'CSV document'],
...@@ -1514,13 +1573,16 @@ class MimeMagic ...@@ -1514,13 +1573,16 @@ class MimeMagic
'text/sgml' => [%w(sgml sgm), %w(text/plain), 'SGML document'], 'text/sgml' => [%w(sgml sgm), %w(text/plain), 'SGML document'],
'text/spreadsheet' => [%w(sylk slk), %w(text/plain), 'spreadsheet interchange document'], 'text/spreadsheet' => [%w(sylk slk), %w(text/plain), 'spreadsheet interchange document'],
'text/tab-separated-values' => [%w(tsv), %w(text/plain), 'TSV document'], 'text/tab-separated-values' => [%w(tsv), %w(text/plain), 'TSV document'],
'text/tcl' => [%w(tcl tk), %w(text/plain), 'Tcl script'],
'text/troff' => [%w(tr roff t), %w(text/plain), 'Troff document'], 'text/troff' => [%w(tr roff t), %w(text/plain), 'Troff document'],
'text/turtle' => [%w(ttl), %w(text/plain), 'Turtle document'], 'text/turtle' => [%w(ttl), %w(text/plain), 'Turtle document'],
'text/vbscript' => [%w(vbs), %w(text/plain), 'VBScript program'],
'text/vcard' => [%w(vcard vcf vct gcrd), %w(text/plain), 'electronic business card'], 'text/vcard' => [%w(vcard vcf vct gcrd), %w(text/plain), 'electronic business card'],
'text/vnd.graphviz' => [%w(gv dot), %w(), 'Graphviz DOT graph'], 'text/vnd.graphviz' => [%w(gv dot), %w(), 'Graphviz DOT graph'],
'text/vnd.qt.linguist' => [%w(ts), %w(application/xml), 'message catalog'],
'text/vnd.rn-realtext' => [%w(rt), %w(), 'RealText document'], 'text/vnd.rn-realtext' => [%w(rt), %w(), 'RealText document'],
'text/vnd.senx.warpscript' => [%w(mc2), %w(text/plain), 'WarpScript source code'],
'text/vnd.sun.j2me.app-descriptor' => [%w(jad), %w(), 'JAD document'], 'text/vnd.sun.j2me.app-descriptor' => [%w(jad), %w(), 'JAD document'],
'text/vnd.trolltech.linguist' => [%w(ts), %w(application/xml), 'message catalog'],
'text/vnd.wap.wml' => [%w(wml), %w(application/xml), 'WML document'], 'text/vnd.wap.wml' => [%w(wml), %w(application/xml), 'WML document'],
'text/vnd.wap.wmlscript' => [%w(wmls), %w(), 'WMLScript program'], 'text/vnd.wap.wmlscript' => [%w(wmls), %w(), 'WMLScript program'],
'text/vtt' => [%w(vtt), %w(text/plain), 'WebVTT subtitles'], 'text/vtt' => [%w(vtt), %w(text/plain), 'WebVTT subtitles'],
...@@ -1530,7 +1592,8 @@ class MimeMagic ...@@ -1530,7 +1592,8 @@ class MimeMagic
'text/x-c++src' => [%w(cpp cxx cc c c++), %w(text/x-csrc), 'C++ source code'], 'text/x-c++src' => [%w(cpp cxx cc c c++), %w(text/x-csrc), 'C++ source code'],
'text/x-chdr' => [%w(h), %w(text/x-csrc), 'C header'], 'text/x-chdr' => [%w(h), %w(text/x-csrc), 'C header'],
'text/x-cmake' => [%w(cmake), %w(text/plain), 'CMake source code'], 'text/x-cmake' => [%w(cmake), %w(text/plain), 'CMake source code'],
'text/x-cobol' => [%w(cbl cob), %w(text/plain), 'COBOL source file'], 'text/x-cobol' => [%w(cbl cob), %w(text/plain), 'COBOL source code'],
'text/x-common-lisp' => [%w(asd fasl lisp ros), %w(text/plain), 'Common Lisp source code'],
'text/x-csharp' => [%w(cs), %w(text/x-csrc), 'C# source code'], 'text/x-csharp' => [%w(cs), %w(text/x-csrc), 'C# source code'],
'text/x-csrc' => [%w(c), %w(text/plain), 'C source code'], 'text/x-csrc' => [%w(c), %w(text/plain), 'C source code'],
'text/x-dbus-service' => [%w(service), %w(text/plain), 'D-Bus service file'], 'text/x-dbus-service' => [%w(service), %w(text/plain), 'D-Bus service file'],
...@@ -1544,29 +1607,33 @@ class MimeMagic ...@@ -1544,29 +1607,33 @@ class MimeMagic
'text/x-genie' => [%w(gs), %w(text/plain), 'Genie source code'], 'text/x-genie' => [%w(gs), %w(text/plain), 'Genie source code'],
'text/x-gettext-translation' => [%w(po), %w(text/plain), 'translation file'], 'text/x-gettext-translation' => [%w(po), %w(text/plain), 'translation file'],
'text/x-gettext-translation-template' => [%w(pot), %w(text/plain), 'translation template'], 'text/x-gettext-translation-template' => [%w(pot), %w(text/plain), 'translation template'],
'text/x-gherkin' => [%w(feature), %w(text/plain), 'feature specification in Gherkin format'], 'text/x-gherkin' => [%w(feature), %w(text/plain), 'Gherkin document'],
'text/x-go' => [%w(go), %w(text/plain), 'Go source code'], 'text/x-go' => [%w(go), %w(text/plain), 'Go source code'],
'text/x-google-video-pointer' => [%w(gvp), %w(), 'Google Video Pointer'], 'text/x-google-video-pointer' => [%w(gvp), %w(), 'Google Video Pointer shortcut'],
'text/x-gradle' => [%w(gradle), %w(text/x-groovy), 'Gradle scripts'],
'text/x-groovy' => [%w(groovy gvy gy gsh), %w(text/x-csrc), 'Groovy source code'],
'text/x-haskell' => [%w(hs), %w(text/plain), 'Haskell source code'], 'text/x-haskell' => [%w(hs), %w(text/plain), 'Haskell source code'],
'text/x-iMelody' => [%w(imy ime), %w(), 'iMelody ringtone'], 'text/x-iMelody' => [%w(imy ime), %w(), 'iMelody ringtone'],
'text/x-idl' => [%w(idl), %w(text/plain), 'IDL document'], 'text/x-idl' => [%w(idl), %w(text/plain), 'IDL document'],
'text/x-iptables' => [%w(iptables), %w(text/plain), 'iptables configuration file'], 'text/x-iptables' => [%w(iptables), %w(text/plain), 'iptables configuration file'],
'text/x-java' => [%w(java), %w(text/x-csrc), 'Java source code'], 'text/x-java' => [%w(java), %w(text/x-csrc), 'Java source code'],
'text/x-kaitai-struct' => [%w(ksy), %w(application/x-yaml), 'Kaitai Struct definition file'],
'text/x-kotlin' => [%w(kt), %w(text/plain), 'Kotlin source code'],
'text/x-ldif' => [%w(ldif), %w(text/plain), 'LDIF address book'], 'text/x-ldif' => [%w(ldif), %w(text/plain), 'LDIF address book'],
'text/x-lilypond' => [%w(ly), %w(text/plain), 'Lilypond music sheet'], 'text/x-lilypond' => [%w(ly), %w(text/plain), 'Lilypond music sheet'],
'text/x-literate-haskell' => [%w(lhs), %w(text/plain), 'LHS source code'], 'text/x-literate-haskell' => [%w(lhs), %w(text/plain), 'LHS source code'],
'text/x-log' => [%w(log), %w(text/plain), 'application log'], 'text/x-log' => [%w(log), %w(text/plain), 'application log'],
'text/x-lua' => [%w(lua), %w(application/x-executable text/plain), 'Lua script'], 'text/x-lua' => [%w(lua), %w(application/x-executable text/plain), 'Lua script'],
'text/x-makefile' => [%w(mk mak), %w(text/plain), 'Makefile'], 'text/x-makefile' => [%w(mk mak), %w(text/plain), 'Makefile build file'],
'text/x-matlab' => [%w(m), %w(text/plain), 'MATLAB script/function'], 'text/x-matlab' => [%w(m), %w(text/plain), 'MATLAB file'],
'text/x-microdvd' => [%w(sub), %w(text/plain), 'MicroDVD subtitles'], 'text/x-microdvd' => [%w(sub), %w(text/plain), 'MicroDVD subtitles'],
'text/x-moc' => [%w(moc), %w(text/plain), 'Qt MOC file'], 'text/x-moc' => [%w(moc), %w(text/plain), 'Qt MOC file'],
'text/x-modelica' => [%w(mo), %w(text/plain), 'Modelica model'], 'text/x-modelica' => [%w(mo), %w(text/plain), 'Modelica model'],
'text/x-mof' => [%w(mof), %w(text/x-csrc), 'Managed Object Format'], 'text/x-mof' => [%w(mof), %w(text/x-csrc), 'MOF file'],
'text/x-mpsub' => [%w(sub), %w(text/plain), 'MPSub subtitles'], 'text/x-mpsub' => [%w(sub), %w(text/plain), 'MPSub subtitles'],
'text/x-mrml' => [%w(mrml mrl), %w(), 'MRML playlist'], 'text/x-mrml' => [%w(mrml mrl), %w(), 'MRML playlist'],
'text/x-ms-regedit' => [%w(reg), %w(text/plain), 'Windows Registry extract'], 'text/x-ms-regedit' => [%w(reg), %w(text/plain), 'Windows Registry extract'],
'text/x-mup' => [%w(mup not), %w(text/plain), 'Mup publication'], 'text/x-mup' => [%w(mup not), %w(text/plain), 'Mup musical composition document'],
'text/x-nfo' => [%w(nfo), %w(text/x-readme), 'NFO document'], 'text/x-nfo' => [%w(nfo), %w(text/x-readme), 'NFO document'],
'text/x-objcsrc' => [%w(m), %w(text/x-csrc), 'Objective-C source code'], 'text/x-objcsrc' => [%w(m), %w(text/x-csrc), 'Objective-C source code'],
'text/x-ocaml' => [%w(ml mli), %w(), 'OCaml source code'], 'text/x-ocaml' => [%w(ml mli), %w(), 'OCaml source code'],
...@@ -1581,17 +1648,18 @@ class MimeMagic ...@@ -1581,17 +1648,18 @@ class MimeMagic
'text/x-qml' => [%w(qml qmltypes qmlproject), %w(), 'Qt Markup Language file'], 'text/x-qml' => [%w(qml qmltypes qmlproject), %w(), 'Qt Markup Language file'],
'text/x-reject' => [%w(rej), %w(text/plain), 'rejected patch'], 'text/x-reject' => [%w(rej), %w(text/plain), 'rejected patch'],
'text/x-rpm-spec' => [%w(spec), %w(text/plain), 'RPM spec file'], 'text/x-rpm-spec' => [%w(spec), %w(text/plain), 'RPM spec file'],
'text/x-rst' => [%w(rst), %w(text/plain), 'reStructuredText document'],
'text/x-sagemath' => [%w(sage), %w(text/x-python), 'SageMath script'],
'text/x-sass' => [%w(sass), %w(text/plain), 'Sass CSS pre-processor file'], 'text/x-sass' => [%w(sass), %w(text/plain), 'Sass CSS pre-processor file'],
'text/x-scala' => [%w(scala), %w(text/plain), 'Scala source code'], 'text/x-scala' => [%w(scala), %w(text/plain), 'Scala source code'],
'text/x-scheme' => [%w(scm ss), %w(text/plain), 'Scheme source code'], 'text/x-scheme' => [%w(scm ss), %w(text/plain), 'Scheme source code'],
'text/x-scss' => [%w(scss), %w(text/plain), 'Sass CSS pre-processor file'], 'text/x-scss' => [%w(scss), %w(text/plain), 'SCSS pre-processor file'],
'text/x-setext' => [%w(etx), %w(text/plain), 'Setext document'], 'text/x-setext' => [%w(etx), %w(text/plain), 'Setext document'],
'text/x-ssa' => [%w(ssa ass), %w(text/plain), 'SSA subtitles'], 'text/x-ssa' => [%w(ssa ass), %w(text/plain), 'SSA subtitles'],
'text/x-subviewer' => [%w(sub), %w(text/plain), 'SubViewer subtitles'], 'text/x-subviewer' => [%w(sub), %w(text/plain), 'SubViewer subtitles'],
'text/x-svhdr' => [%w(svh), %w(text/x-verilog), 'SystemVerilog header'], 'text/x-svhdr' => [%w(svh), %w(text/x-verilog), 'SystemVerilog header'],
'text/x-svsrc' => [%w(sv), %w(text/x-verilog), 'SystemVerilog source code'], 'text/x-svsrc' => [%w(sv), %w(text/x-verilog), 'SystemVerilog source code'],
'text/x-systemd-unit' => [%w(automount device mount path scope service slice socket swap target timer), %w(text/plain), 'systemd unit file'], 'text/x-systemd-unit' => [%w(automount device mount path scope service slice socket swap target timer), %w(text/plain), 'systemd unit file'],
'text/x-tcl' => [%w(tcl tk), %w(text/plain), 'Tcl script'],
'text/x-tex' => [%w(tex ltx sty cls dtx ins latex), %w(text/plain), 'TeX document'], 'text/x-tex' => [%w(tex ltx sty cls dtx ins latex), %w(text/plain), 'TeX document'],
'text/x-texinfo' => [%w(texi texinfo), %w(text/plain), 'TeXInfo document'], 'text/x-texinfo' => [%w(texi texinfo), %w(text/plain), 'TeXInfo document'],
'text/x-troff-me' => [%w(me), %w(text/plain), 'Troff ME input document'], 'text/x-troff-me' => [%w(me), %w(text/plain), 'Troff ME input document'],
...@@ -1608,16 +1676,16 @@ class MimeMagic ...@@ -1608,16 +1676,16 @@ class MimeMagic
'text/x-xslfo' => [%w(fo xslfo), %w(application/xml), 'XSL FO file'], 'text/x-xslfo' => [%w(fo xslfo), %w(application/xml), 'XSL FO file'],
'text/x.gcode' => [%w(gcode), %w(text/plain), 'G-code file'], 'text/x.gcode' => [%w(gcode), %w(text/plain), 'G-code file'],
'video/3gpp' => [%w(3gp 3gpp 3ga), %w(video/mp4), '3GPP multimedia file'], 'video/3gpp' => [%w(3gp 3gpp 3ga), %w(video/mp4), '3GPP multimedia file'],
'video/3gpp2' => [%w(3g2 3gp2 3gpp2), %w(video/mp4), '3GPP2 multimedia file'], 'video/3gpp2' => [%w(3g2 3gp2 3gpp2), %w(), '3GPP2 multimedia file'],
'video/annodex' => [%w(axv), %w(application/annodex), 'Annodex Video'], 'video/annodex' => [%w(axv), %w(application/annodex), 'Annodex video'],
'video/dv' => [%w(dv), %w(), 'DV video'], 'video/dv' => [%w(dv), %w(), 'DV video'],
'video/mj2' => [%w(mj2 mjp2), %w(), 'JPEG-2000 MJ2 video'], 'video/mj2' => [%w(mj2 mjp2), %w(), 'JPEG-2000 MJ2 video'],
'video/mp2t' => [%w(m2t m2ts ts mts cpi clpi mpl mpls bdm bdmv), %w(), 'MPEG-2 transport stream'], 'video/mp2t' => [%w(m2t m2ts ts mts cpi clpi mpl mpls bdm bdmv), %w(), 'MPEG-2 transport stream'],
'video/mp4' => [%w(mp4 m4v f4v lrv), %w(), 'MPEG-4 video'], 'video/mp4' => [%w(mp4 m4v f4v lrv), %w(), 'MPEG-4 video'],
'video/mpeg' => [%w(mpeg mpg mp2 mpe vob), %w(), 'MPEG video'], 'video/mpeg' => [%w(mpeg mpg mp2 mpe vob), %w(), 'MPEG video'],
'video/ogg' => [%w(ogv ogg), %w(application/ogg), 'Ogg Video'], 'video/ogg' => [%w(ogv ogg), %w(application/ogg), 'Ogg video'],
'video/quicktime' => [%w(qt mov moov qtvr), %w(), 'QuickTime video'], 'video/quicktime' => [%w(qt mov moov qtvr), %w(), 'QuickTime video'],
'video/vnd.mpegurl' => [%w(m1u m4u mxu), %w(text/plain), 'MPEG video (streamed)'], 'video/vnd.mpegurl' => [%w(m1u m4u mxu), %w(text/plain), 'Video playlist'],
'video/vnd.rn-realvideo' => [%w(rv rvx), %w(), 'RealVideo document'], 'video/vnd.rn-realvideo' => [%w(rv rvx), %w(), 'RealVideo document'],
'video/vnd.vivo' => [%w(viv vivo), %w(), 'Vivo video'], 'video/vnd.vivo' => [%w(viv vivo), %w(), 'Vivo video'],
'video/webm' => [%w(webm), %w(), 'WebM video'], 'video/webm' => [%w(webm), %w(), 'WebM video'],
...@@ -1646,15 +1714,15 @@ class MimeMagic ...@@ -1646,15 +1714,15 @@ class MimeMagic
['image/bmp', [[0, 'BM', [[14, "\f"], [14, '@'], [14, '(']]]]], ['image/bmp', [[0, 'BM', [[14, "\f"], [14, '@'], [14, '(']]]]],
['image/vnd.adobe.photoshop', []], ['image/vnd.adobe.photoshop', []],
['image/webp', [[0, 'RIFF', [[8, 'WEBP']]]]], ['image/webp', [[0, 'RIFF', [[8, 'WEBP']]]]],
['image/svg+xml', [[0..256, '<!DOCTYPE svg'], [0..256, '<svg']]], ['image/svg+xml', [[0..256, '<!DOCTYPE svg']]],
['video/x-msvideo', [[0, 'RIFF', [[8, 'AVI ']]], [0, 'AVF0', [[8, 'AVI ']]]]], ['video/x-msvideo', [[0, 'RIFF', [[8, 'AVI ']]], [0, 'AVF0', [[8, 'AVI ']]]]],
['video/mp4', [[4, 'ftypisom'], [4, 'ftypmp42'], [4, 'ftypMSNV'], [4, 'ftypM4V '], [4, 'ftypf4v ']]], ['video/mp4', [[4, 'ftypisom'], [4, 'ftypmp41'], [4, 'ftypmp42'], [4, 'ftypMSNV'], [4, 'ftypM4V '], [4, 'ftypf4v ']]],
['video/quicktime', [[12, 'mdat'], [4, 'mdat'], [4, 'moov'], [4, 'ftypqt']]], ['video/quicktime', [[12, 'mdat'], [4, 'mdat'], [4, 'moov'], [4, 'ftypqt']]],
['video/mpeg', [[0, "G?\377\020"], [0, "\000\000\001\263"], [0, "\000\000\001\272"]]], ['video/mpeg', [[0, "G?\377\020"], [0, "\000\000\001\263"], [0, "\000\000\001\272"]]],
['video/ogg', [[0, 'OggS']]], ['video/ogg', [[0, 'OggS']]],
['video/webm', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'webm']]]]]]], ['video/webm', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'webm']]]]]]],
['video/x-flv', [[0, 'FLV']]], ['video/x-flv', [[0, 'FLV']]],
['audio/mpeg', [[0, "\377\373"], [0, 'ID3']]], ['audio/mpeg', [[0, "\377\372"], [0, "\377\373"], [0, "\377\363"], [0, "\377\362"], [0, "\377\343"], [0, "\377\342"], [0, 'ID3']]],
['audio/x-wav', [[8, 'WAVE'], [8, 'WAV ']]], ['audio/x-wav', [[8, 'WAVE'], [8, 'WAV ']]],
['audio/aac', [[0, 'ADIF']]], ['audio/aac', [[0, 'ADIF']]],
['audio/flac', [[0, 'fLaC']]], ['audio/flac', [[0, 'fLaC']]],
...@@ -1679,7 +1747,10 @@ class MimeMagic ...@@ -1679,7 +1747,10 @@ class MimeMagic
['audio/x-opus+ogg', [[0, 'OggS', [[28, 'OpusHead']]]]], ['audio/x-opus+ogg', [[0, 'OggS', [[28, 'OpusHead']]]]],
['audio/x-speex+ogg', [[0, 'OggS', [[28, 'Speex ']]]]], ['audio/x-speex+ogg', [[0, 'OggS', [[28, 'Speex ']]]]],
['audio/x-vorbis+ogg', [[0, 'OggS', [[28, "\001vorbis"]]]]], ['audio/x-vorbis+ogg', [[0, 'OggS', [[28, "\001vorbis"]]]]],
['image/astc', [[0, "\023\253\241\\"]]],
['image/ktx', [[0, "\253KTX", [[4, " 11\273", [[8, "\r\n\032\n"]]]]]]], ['image/ktx', [[0, "\253KTX", [[4, " 11\273", [[8, "\r\n\032\n"]]]]]]],
['image/ktx2', [[0, "\253KTX", [[4, " 20\273", [[8, "\r\n\032\n"]]]]]]],
['image/svg+xml', [[0, '<!-- Created with Inkscape'], [0, '<svg']]],
['image/vnd.djvu', [[0, 'AT&TFORM', [[12, 'DJVU']]], [0, 'FORM', [[8, 'DJVU']]]]], ['image/vnd.djvu', [[0, 'AT&TFORM', [[12, 'DJVU']]], [0, 'FORM', [[8, 'DJVU']]]]],
['image/vnd.djvu+multipage', [[0, 'AT&TFORM', [[12, 'DJVM']]], [0, 'FORM', [[8, 'DJVM']]]]], ['image/vnd.djvu+multipage', [[0, 'AT&TFORM', [[12, 'DJVM']]], [0, 'FORM', [[8, 'DJVM']]]]],
['image/x-kodak-kdc', [[242, 'EASTMAN KODAK COMPANY']]], ['image/x-kodak-kdc', [[242, 'EASTMAN KODAK COMPANY']]],
...@@ -1690,6 +1761,7 @@ class MimeMagic ...@@ -1690,6 +1761,7 @@ class MimeMagic
['application/atom+xml', [[0..256, '<feed ']]], ['application/atom+xml', [[0..256, '<feed ']]],
['application/epub+zip', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/epub+zip'], [43, 'application/epub+zip']]]]]]], ['application/epub+zip', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/epub+zip'], [43, 'application/epub+zip']]]]]]],
['application/rss+xml', [[0..256, '<rss '], [0..256, '<RSS ']]], ['application/rss+xml', [[0..256, '<rss '], [0..256, '<RSS ']]],
['application/vnd.apple.keynote', [[0, "PK\003\004", [[30, 'index.apxl']]]]],
['application/vnd.apple.mpegurl', [[0, '#EXTM3U', [[0..128, '#EXT-X-TARGETDURATION'], [0..128, '#EXT-X-STREAM-INF']]]]], ['application/vnd.apple.mpegurl', [[0, '#EXTM3U', [[0..128, '#EXT-X-TARGETDURATION'], [0..128, '#EXT-X-STREAM-INF']]]]],
['application/vnd.oasis.opendocument.chart', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart']]]]]]], ['application/vnd.oasis.opendocument.chart', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart']]]]]]],
['application/vnd.oasis.opendocument.chart-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart-template']]]]]]], ['application/vnd.oasis.opendocument.chart-template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.oasis.opendocument.chart-template']]]]]]],
...@@ -1717,7 +1789,6 @@ class MimeMagic ...@@ -1717,7 +1789,6 @@ class MimeMagic
['application/vnd.sun.xml.writer', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]], ['application/vnd.sun.xml.writer', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
['application/vnd.sun.xml.writer.global', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]], ['application/vnd.sun.xml.writer.global', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
['application/vnd.sun.xml.writer.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]], ['application/vnd.sun.xml.writer.template', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'application/vnd.sun.xml.writer']]]]]]],
['application/x-iwork-keynote-sffkey', [[0, "PK\003\004", [[30, 'index.apxl']]]]],
['application/x-zip-compressed-fb2', [[0, "PK\003\004", [[30..256, '.fb2']]]]], ['application/x-zip-compressed-fb2', [[0, "PK\003\004", [[30..256, '.fb2']]]]],
['image/openraster', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'image/openraster']]]]]]], ['image/openraster', [[0, "PK\003\004", [[30, 'mimetype', [[38, 'image/openraster']]]]]]],
['text/x-opml+xml', [[0..256, '<opml ']]], ['text/x-opml+xml', [[0..256, '<opml ']]],
...@@ -1756,6 +1827,7 @@ class MimeMagic ...@@ -1756,6 +1827,7 @@ class MimeMagic
['application/x-zoo', [[20, "\334\247\304\375"]]], ['application/x-zoo', [[20, "\334\247\304\375"]]],
['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"]]], ['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"]]],
['application/zip', [[0, "PK\003\004"]]], ['application/zip', [[0, "PK\003\004"]]],
['application/zstd', [[0, "(\265/\375"]]],
['audio/vnd.dts.hd', [[0..18725, 'dX %']]], ['audio/vnd.dts.hd', [[0..18725, 'dX %']]],
['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']]], ['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']]],
['text/x-txt2tags', [[0, '%!postproc'], [0, '%!encoding']]], ['text/x-txt2tags', [[0, '%!postproc'], [0, '%!encoding']]],
...@@ -1796,6 +1868,7 @@ class MimeMagic ...@@ -1796,6 +1868,7 @@ class MimeMagic
['application/vnd.ms-asf', [[0, "0&\262u"], [0, '[Reference]']]], ['application/vnd.ms-asf', [[0, "0&\262u"], [0, '[Reference]']]],
['application/vnd.ms-tnef', [[0, "x\237>\""]]], ['application/vnd.ms-tnef', [[0, "x\237>\""]]],
['application/vnd.rn-realmedia', [[0, '.RMF']]], ['application/vnd.rn-realmedia', [[0, '.RMF']]],
['application/vnd.smaf', [[0, 'MMMD']]],
['application/vnd.sqlite3', [[0, 'SQLite format 3']]], ['application/vnd.sqlite3', [[0, 'SQLite format 3']]],
['application/vnd.squashfs', [[0, 'sqsh'], [0, 'hsqs']]], ['application/vnd.squashfs', [[0, 'sqsh'], [0, 'hsqs']]],
['application/vnd.symbian.install', [[8, "\031\004\000\020"]]], ['application/vnd.symbian.install', [[8, "\031\004\000\020"]]],
...@@ -1806,6 +1879,7 @@ class MimeMagic ...@@ -1806,6 +1879,7 @@ class MimeMagic
['application/x-alz', [[0, 'ALZ']]], ['application/x-alz', [[0, 'ALZ']]],
['application/x-amiga-disk-format', [[0, "DOS\000"]]], ['application/x-amiga-disk-format', [[0, "DOS\000"]]],
['application/x-aportisdoc', [[60, 'TEXtREAd'], [60, 'TEXtTlDc']]], ['application/x-aportisdoc', [[60, 'TEXtREAd'], [60, 'TEXtTlDc']]],
['application/x-apple-systemprofiler+xml', [[0..256, "<plist version=\"1.0\""]]],
['application/x-applix-spreadsheet', [[0, '*BEGIN SPREADSHEETS'], [0, '*BEGIN', [[7, 'SPREADSHEETS']]]]], ['application/x-applix-spreadsheet', [[0, '*BEGIN SPREADSHEETS'], [0, '*BEGIN', [[7, 'SPREADSHEETS']]]]],
['application/x-applix-word', [[0, '*BEGIN', [[7, 'WORDS']]]]], ['application/x-applix-word', [[0, '*BEGIN', [[7, 'WORDS']]]]],
['application/x-arj', [[0, "`\352"]]], ['application/x-arj', [[0, "`\352"]]],
...@@ -1814,12 +1888,14 @@ class MimeMagic ...@@ -1814,12 +1888,14 @@ class MimeMagic
['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']]], ['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']]],
['application/x-bittorrent', [[0, 'd8:announce']]], ['application/x-bittorrent', [[0, 'd8:announce']]],
['application/x-blender', [[0, 'BLENDER']]], ['application/x-blender', [[0, 'BLENDER']]],
['application/x-bps-patch', [[0, 'BPS1']]],
['application/x-bsdiff', [[0, 'BSDIFF40'], [0, 'BSDIFN40']]], ['application/x-bsdiff', [[0, 'BSDIFF40'], [0, 'BSDIFN40']]],
['application/x-bzip', [[0, 'BZh']]], ['application/x-bzip', [[0, 'BZh']]],
['application/x-ccmx', [[0, 'CCMX']]], ['application/x-ccmx', [[0, 'CCMX']]],
['application/x-cdrdao-toc', [[0, "CD_ROM\n"], [0, "CD_DA\n"], [0, "CD_ROM_XA\n"], [0, 'CD_TEXT '], [0, "CATALOG \"", [[22, "\""]]]]], ['application/x-cdrdao-toc', [[0, "CD_ROM\n"], [0, "CD_DA\n"], [0, "CD_ROM_XA\n"], [0, 'CD_TEXT '], [0, "CATALOG \"", [[22, "\""]]]]],
['application/x-cisco-vpn-settings', [[0, '[main]', [[0..256, 'AuthType=']]]]], ['application/x-cisco-vpn-settings', [[0, '[main]', [[0..256, 'AuthType=']]]]],
['application/x-compress', [[0, "\037\235"]]], ['application/x-compress', [[0, "\037\235"]]],
['application/x-compressed-iso', [[0, 'CISO']]],
['application/x-core', [[0, "\177ELF", [[5, "\001", [[16, "\004\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\004"]]]]], [0, "Core\001"], [0, "Core\002"]]], ['application/x-core', [[0, "\177ELF", [[5, "\001", [[16, "\004\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\004"]]]]], [0, "Core\001"], [0, "Core\002"]]],
['application/x-csh', [[2..16, '/bin/tcsh'], [2..16, '/bin/csh'], [2..16, '/bin/env csh'], [2..16, '/bin/env tcsh']]], ['application/x-csh', [[2..16, '/bin/tcsh'], [2..16, '/bin/csh'], [2..16, '/bin/env csh'], [2..16, '/bin/env tcsh']]],
['application/x-dar', [[0, "\000\000\000{"]]], ['application/x-dar', [[0, "\000\000\000{"]]],
...@@ -1828,6 +1904,7 @@ class MimeMagic ...@@ -1828,6 +1904,7 @@ class MimeMagic
['application/x-dia-diagram', [[5..100, '<dia:']]], ['application/x-dia-diagram', [[5..100, '<dia:']]],
['application/x-dia-shape', [[5..100, '<shape']]], ['application/x-dia-shape', [[5..100, '<shape']]],
['application/x-doom-wad', [[0, 'IWAD'], [0, 'PWAD']]], ['application/x-doom-wad', [[0, 'IWAD'], [0, 'PWAD']]],
['application/x-dreamcast-rom', [[16, 'SEGA SEGAKATANA']]],
['application/x-dvi', [[0, "\367\002"]]], ['application/x-dvi', [[0, "\367\002"]]],
['application/x-fds-disk', [[1, '*NINTENDO-HVC*']]], ['application/x-fds-disk', [[1, '*NINTENDO-HVC*']]],
['application/x-fluid', [[0, '# data file for the Fltk']]], ['application/x-fluid', [[0, '# data file for the Fltk']]],
...@@ -1849,7 +1926,7 @@ class MimeMagic ...@@ -1849,7 +1926,7 @@ class MimeMagic
['application/x-gdbm', [[0, "\023W\232\316"], [0, "\316\232W\023"], [0, 'GDBM']]], ['application/x-gdbm', [[0, "\023W\232\316"], [0, "\316\232W\023"], [0, 'GDBM']]],
['application/x-gedcom', [[0, '0 HEAD']]], ['application/x-gedcom', [[0, '0 HEAD']]],
['application/x-genesis-32x-rom', [[256, 'SEGA 32X']]], ['application/x-genesis-32x-rom', [[256, 'SEGA 32X']]],
['application/x-genesis-rom', [[256, 'SEGA GENESIS'], [256, 'SEGA MEGA DRIVE'], [640, 'EAGN'], [640, 'EAMG']]], ['application/x-genesis-rom', [[256, 'SEGA GENESIS'], [256, 'SEGA MEGA DRIVE'], [256, 'SEGA_MEGA_DRIVE'], [640, 'EAGN'], [640, 'EAMG']]],
['application/x-gettext-translation', [[0, "\336\022\004\225"], [0, "\225\004\022\336"]]], ['application/x-gettext-translation', [[0, "\336\022\004\225"], [0, "\225\004\022\336"]]],
['application/x-glade', [[0..256, '<glade-interface']]], ['application/x-glade', [[0..256, '<glade-interface']]],
['application/x-gnumeric', [[0..64, 'gmr:Workbook'], [0..64, 'gnm:Workbook']]], ['application/x-gnumeric', [[0..64, 'gmr:Workbook'], [0..64, 'gnm:Workbook']]],
...@@ -1860,6 +1937,7 @@ class MimeMagic ...@@ -1860,6 +1937,7 @@ class MimeMagic
['application/x-hfe-floppy-image', [[0, 'HXCPICFE']]], ['application/x-hfe-floppy-image', [[0, 'HXCPICFE']]],
['application/x-hwp', [[0, 'HWP Document File']]], ['application/x-hwp', [[0, 'HWP Document File']]],
['application/x-ipod-firmware', [[0, 'S T O P']]], ['application/x-ipod-firmware', [[0, 'S T O P']]],
['application/x-ips-patch', [[0, 'PATCH']]],
['application/x-ipynb+json', [[0, '{', [[1..256, "\"cells\":"]]]]], ['application/x-ipynb+json', [[0, '{', [[1..256, "\"cells\":"]]]]],
['application/x-iso9660-appimage', [[1, 'ELF', [[8, 'A', [[9, 'I', [[10, "\001"]]]]]]]]], ['application/x-iso9660-appimage', [[1, 'ELF', [[8, 'A', [[9, 'I', [[10, "\001"]]]]]]]]],
['application/x-it87', [[0, 'IT8.7']]], ['application/x-it87', [[0, 'IT8.7']]],
...@@ -1872,6 +1950,7 @@ class MimeMagic ...@@ -1872,6 +1950,7 @@ class MimeMagic
['application/x-kword-crypt', [[0, "\r\032'\001"]]], ['application/x-kword-crypt', [[0, "\r\032'\001"]]],
['application/x-lyx', [[0, '#LyX']]], ['application/x-lyx', [[0, '#LyX']]],
['application/x-macbinary', [[102, 'mBIN']]], ['application/x-macbinary', [[102, 'mBIN']]],
['application/x-mame-chd', [[0, 'MComprHD']]],
['application/x-matroska', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'matroska']]]]]]], ['application/x-matroska', [[0, "\032E\337\243", [[5..65, "B\202", [[8..75, 'matroska']]]]]]],
['application/x-ms-dos-executable', [[0, 'MZ']]], ['application/x-ms-dos-executable', [[0, 'MZ']]],
['application/x-ms-wim', [[0, "MSWIM\000\000\000"]]], ['application/x-ms-wim', [[0, "MSWIM\000\000\000"]]],
...@@ -1882,13 +1961,16 @@ class MimeMagic ...@@ -1882,13 +1961,16 @@ class MimeMagic
['application/x-neo-geo-pocket-color-rom', [[35, "\020", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]], ['application/x-neo-geo-pocket-color-rom', [[35, "\020", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]],
['application/x-neo-geo-pocket-rom', [[35, "\000", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]], ['application/x-neo-geo-pocket-rom', [[35, "\000", [[0, 'COPYRIGHT BY SNK CORPORATION'], [0, ' LICENSED BY SNK CORPORATION']]]]],
['application/x-netshow-channel', [[0, '[Address]']]], ['application/x-netshow-channel', [[0, '[Address]']]],
['application/x-nintendo-3ds-rom', [[256, 'NCSD']]],
['application/x-object', [[0, "\177ELF", [[5, "\001", [[16, "\001\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\001"]]]]]]], ['application/x-object', [[0, "\177ELF", [[5, "\001", [[16, "\001\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\001"]]]]]]],
['application/x-ole-storage', [[0, "\320\317\021\340\241\261\032\341"], [0, "\320\317\021\340"]]], ['application/x-ole-storage', [[0, "\320\317\021\340\241\261\032\341"], [0, "\320\317\021\340"]]],
['application/x-oleo', [[31, 'Oleo']]], ['application/x-oleo', [[31, 'Oleo']]],
['application/x-pef-executable', [[0, 'Joy!']]], ['application/x-pef-executable', [[0, 'Joy!']]],
['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 {']]], ['application/x-perl', [[0, "eval \"exec /usr/local/bin/perl"], [2..16, '/bin/perl'], [2..16, '/bin/env perl'], [0..256, 'use Test::'], [0..256, 'BEGIN {']]],
['application/x-pocket-word', [[0, "{\\pwi"]]], ['application/x-pocket-word', [[0, "{\\pwi"]]],
['application/x-pyspread-spreadsheet', [[0, '[Pyspread save file version]']]],
['application/x-python-bytecode', [[0, "\231N\r\n"]]], ['application/x-python-bytecode', [[0, "\231N\r\n"]]],
['application/x-qemu-disk', [[0, 'QFI', [[3, "\373"]]]]],
['application/x-qtiplot', [[0, 'QtiPlot']]], ['application/x-qtiplot', [[0, 'QtiPlot']]],
['application/x-rpm', [[0, "\355\253\356\333"]]], ['application/x-rpm', [[0, "\355\253\356\333"]]],
['application/x-ruby', [[2..16, '/bin/env ruby'], [2..16, '/bin/ruby']]], ['application/x-ruby', [[2..16, '/bin/env ruby'], [2..16, '/bin/ruby']]],
...@@ -1896,10 +1978,9 @@ class MimeMagic ...@@ -1896,10 +1978,9 @@ class MimeMagic
['application/x-saturn-rom', [[0, 'SEGA SEGASATURN'], [16, 'SEGA SEGASATURN']]], ['application/x-saturn-rom', [[0, 'SEGA SEGASATURN'], [16, 'SEGA SEGASATURN']]],
['application/x-sc', [[38, 'Spreadsheet']]], ['application/x-sc', [[38, 'Spreadsheet']]],
['application/x-sega-pico-rom', [[256, 'SEGA PICO']]], ['application/x-sega-pico-rom', [[256, 'SEGA PICO']]],
['application/x-sharedlib', [[0, "\177ELF", [[5, "\001", [[16, "\003\000"]]]]], [0, "\177ELF", [[5, "\002", [[16, "\000\003"]]]]], [0, "\203\001"]]], ['application/x-sharedlib', [[0, "\203\001"]]],
['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']]], ['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']]],
['application/x-shorten', [[0, 'ajkg']]], ['application/x-shorten', [[0, 'ajkg']]],
['application/x-smaf', [[0, 'MMMD']]],
['application/x-spss-por', [[40, 'ASCII SPSS PORT FILE']]], ['application/x-spss-por', [[40, 'ASCII SPSS PORT FILE']]],
['application/x-spss-sav', [[0, '$FL2'], [0, '$FL3']]], ['application/x-spss-sav', [[0, '$FL2'], [0, '$FL3']]],
['application/x-sqlite2', [[0, '** This file contains an SQLite']]], ['application/x-sqlite2', [[0, '** This file contains an SQLite']]],
...@@ -1919,6 +2000,7 @@ class MimeMagic ...@@ -1919,6 +2000,7 @@ class MimeMagic
['audio/annodex', [[0, 'OggS', [[28, "fishead\000", [[56..512, "CMML\000\000\000\000"]]]]]]], ['audio/annodex', [[0, 'OggS', [[28, "fishead\000", [[56..512, "CMML\000\000\000\000"]]]]]]],
['audio/midi', [[0, 'MThd']]], ['audio/midi', [[0, 'MThd']]],
['audio/prs.sid', [[0, 'PSID']]], ['audio/prs.sid', [[0, 'PSID']]],
['audio/vnd.audible.aax', [[4, 'ftypaax ']]],
['audio/vnd.dts', [[0, "\177\376\200\001"], [0, "\200\001\177\376"], [0, "\037\377\350\000"], [0, "\350\000\037\377"]]], ['audio/vnd.dts', [[0, "\177\376\200\001"], [0, "\200\001\177\376"], [0, "\037\377\350\000"], [0, "\350\000\037\377"]]],
['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"]]]]], ['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"]]]]],
['audio/x-aifc', [[8, 'AIFC']]], ['audio/x-aifc', [[8, 'AIFC']]],
...@@ -1929,8 +2011,8 @@ class MimeMagic ...@@ -1929,8 +2011,8 @@ class MimeMagic
['audio/x-m4b', [[4, 'ftypM4B']]], ['audio/x-m4b', [[4, 'ftypM4B']]],
['audio/x-mo3', [[0, 'MO3']]], ['audio/x-mo3', [[0, 'MO3']]],
['audio/x-mpegurl', [[0, '#EXTM3U']]], ['audio/x-mpegurl', [[0, '#EXTM3U']]],
['audio/x-musepack', [[0, 'MP+']]], ['audio/x-musepack', [[0, 'MP+'], [0, 'MPCK']]],
['audio/x-pn-audibleaudio', [[4, "W\220u6"], [8, 'aax ']]], ['audio/x-pn-audibleaudio', [[4, "W\220u6"]]],
['audio/x-psf', [[0, 'PSF']]], ['audio/x-psf', [[0, 'PSF']]],
['audio/x-s3m', [[44, 'SCRM']]], ['audio/x-s3m', [[44, 'SCRM']]],
['audio/x-scpls', [[0, '[playlist]'], [0, '[Playlist]'], [0, '[PLAYLIST]']]], ['audio/x-scpls', [[0, '[playlist]'], [0, '[Playlist]'], [0, '[PLAYLIST]']]],
...@@ -1945,7 +2027,8 @@ class MimeMagic ...@@ -1945,7 +2027,8 @@ class MimeMagic
['font/otf', [[0, 'OTTO']]], ['font/otf', [[0, 'OTTO']]],
['font/ttf', [[0, 'FFIL'], [65, 'FFIL'], [0, "\000\001\000\000\000"]]], ['font/ttf', [[0, 'FFIL'], [65, 'FFIL'], [0, "\000\001\000\000\000"]]],
['font/woff', [[0, 'wOFF']]], ['font/woff', [[0, 'wOFF']]],
['font/woff', [[0, 'wOF2']]], ['font/woff2', [[0, 'wOF2']]],
['image/avif', [[4, 'ftypavif'], [4, 'ftypavis'], [4, 'ftypmif1', [[16, 'avif'], [20, 'avif'], [24, 'avif']]]]],
['image/dpx', [[0, 'SDPX']]], ['image/dpx', [[0, 'SDPX']]],
['image/emf', [[0, "\001\000\000\000", [[40, ' EMF', [[44, "\000\000\001\000", [[58, "\000\000"]]]]]]]]], ['image/emf', [[0, "\001\000\000\000", [[40, ' EMF', [[44, "\000\000\001\000", [[58, "\000\000"]]]]]]]]],
['image/fits', [[0, 'SIMPLE =']]], ['image/fits', [[0, 'SIMPLE =']]],
...@@ -1995,14 +2078,14 @@ class MimeMagic ...@@ -1995,14 +2078,14 @@ class MimeMagic
['model/vrml', [[0, '#VRML ']]], ['model/vrml', [[0, '#VRML ']]],
['text/cache-manifest', [[0, 'CACHE MANIFEST', [[14, ' '], [14, "\t"], [14, "\n"], [14, "\r"]]]]], ['text/cache-manifest', [[0, 'CACHE MANIFEST', [[14, ' '], [14, "\t"], [14, "\n"], [14, "\r"]]]]],
['text/calendar', [[0, 'BEGIN:VCALENDAR'], [0, 'begin:vcalendar']]], ['text/calendar', [[0, 'BEGIN:VCALENDAR'], [0, 'begin:vcalendar']]],
['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']]], ['text/html', [[0..256, '<!DOCTYPE HTML'], [0..256, '<!doctype html'], [0..256, '<!DOCTYPE html'], [0..256, '<HEAD'], [0..256, '<head'], [0..256, '<HTML'], [0..256, '<html'], [0..256, '<SCRIPT'], [0..256, '<script'], [0, '<BODY'], [0, '<body'], [0, '<h1'], [0, '<H1'], [0, '<!doctype HTML']]],
['text/plain', [[0, 'This is TeX,'], [0, 'This is METAFONT,']]], ['text/plain', [[0, 'This is TeX,'], [0, 'This is METAFONT,']]],
['text/spreadsheet', [[0, 'ID;']]], ['text/spreadsheet', [[0, 'ID;']]],
['text/troff', [[0, ".\\\""], [0, "'\\\""], [0, "'.\\\""], [0, "\\\""]]], ['text/troff', [[0, ".\\\""], [0, "'\\\""], [0, "'.\\\""], [0, "\\\""]]],
['text/vcard', [[0, 'BEGIN:VCARD'], [0, 'begin:vcard']]], ['text/vcard', [[0, 'BEGIN:VCARD'], [0, 'begin:vcard']]],
['text/vnd.graphviz', [[0, 'digraph '], [0, 'strict digraph '], [0, 'graph '], [0, 'strict graph ']]], ['text/vnd.graphviz', [[0, 'digraph '], [0, 'strict digraph '], [0, 'graph '], [0, 'strict graph ']]],
['text/vnd.qt.linguist', [[0..256, '<TS']]],
['text/vnd.sun.j2me.app-descriptor', [[0, 'MIDlet-']]], ['text/vnd.sun.j2me.app-descriptor', [[0, 'MIDlet-']]],
['text/vnd.trolltech.linguist', [[0..256, '<TS '], [0..256, '<TS>']]],
['text/vtt', [[0, 'WEBVTT']]], ['text/vtt', [[0, 'WEBVTT']]],
['text/x-bibtex', [[0, '% This file was created with JabRef']]], ['text/x-bibtex', [[0, '% This file was created with JabRef']]],
['text/x-dbus-service', [[0..256, "\n[D-BUS Service]\n"], [0, "[D-BUS Service]\n"]]], ['text/x-dbus-service', [[0..256, "\n[D-BUS Service]\n"], [0, "[D-BUS Service]\n"]]],
...@@ -2047,14 +2130,18 @@ class MimeMagic ...@@ -2047,14 +2130,18 @@ class MimeMagic
['x-epoc/x-sisx-app', [[0, "z\032 \020"]]], ['x-epoc/x-sisx-app', [[0, "z\032 \020"]]],
['application/x-archive', [[0, '<ar>'], [0, '!<arch>']]], ['application/x-archive', [[0, '<ar>'], [0, '!<arch>']]],
['application/x-riff', [[0, 'RIFF']]], ['application/x-riff', [[0, 'RIFF']]],
['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"]]], ['image/svg+xml', [[1..256, '<svg']]],
['application/x-executable', [[0, "\177ELF", [[5, "\001"]]], [0, "\177ELF", [[5, "\002"]]], [0, 'MZ'], [0, "\034R"], [0, "\020\001"], [0, "\021\001"], [0, "\203\001"]]],
['application/x-iff', [[0, 'FORM']]], ['application/x-iff', [[0, 'FORM']]],
['application/x-perl', [[0..256, "\n=pod"], [0..256, "\n=head1 NAME"], [0..256, "\n=head1 DESCRIPTION"]]], ['application/x-nintendo-3ds-executable', [[0, '3DSX']]],
['application/xml', [[0, '<?xml'], [0, '<!--']]], ['application/x-perl', [[0..256, 'use strict'], [0..256, 'use warnings'], [0..256, 'use diagnostics'], [0..256, "\n=pod"], [0..256, "\n=head1 NAME"], [0..256, "\n=head1 DESCRIPTION"]]],
['application/xml', [[0, '<?xml']]],
['audio/basic', [[0, '.snd']]], ['audio/basic', [[0, '.snd']]],
['audio/x-mod', [[0, 'MTM'], [0, 'MMD0'], [0, 'MMD1'], [0, 'if', [[110, '@', [[111, "\200"]]]]], [0, 'JN', [[110, '@', [[111, "\200"]]]]], [0, 'MAS_UTrack_V00']]], ['audio/x-mod', [[0, 'MTM'], [0, 'MMD0'], [0, 'MMD1'], [0, 'MAS_UTrack_V00']]],
['text/html', [[0, '<!--'], [0..256, '<TITLE'], [0..256, '<title']]],
['video/x-javafx', [[0, 'FLV']]], ['video/x-javafx', [[0, 'FLV']]],
['application/x-mobipocket-ebook', [[60, 'TEXtREAd']]], ['application/x-mobipocket-ebook', [[60, 'TEXtREAd']]],
['image/x-3ds', [[0, 'MM']]],
['text/x-csrc', [[0, '/*'], [0, '//'], [0, '#include']]], ['text/x-csrc', [[0, '/*'], [0, '//'], [0, '#include']]],
['text/x-objcsrc', [[0, '#import']]], ['text/x-objcsrc', [[0, '#import']]],
['application/mbox', [[0, 'From ']]], ['application/mbox', [[0, 'From ']]],
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment