diff --git a/libtransmission/mime-types.h b/libtransmission/mime-types.h index 1c77ff284..92941213c 100644 --- a/libtransmission/mime-types.h +++ b/libtransmission/mime-types.h @@ -17,1296 +17,1244 @@ struct mime_type_suffix std::string_view mime_type; }; -inline auto constexpr MimeTypeSuffixes = std::array{ - { { "123", "application/vnd.lotus-1-2-3" }, - { "1km", "application/vnd.1000minds.decision-model+xml" }, - { "210", "model/step" }, - { "3dml", "text/vnd.in3d.3dml" }, - { "3ds", "image/x-3ds" }, - { "3g2", "video/3gpp2" }, - { "3gp", "video/3gpp" }, - { "3gpp", "audio/3gpp" }, - { "3gpp", "video/3gpp" }, - { "3mf", "model/3mf" }, - { "7z", "application/x-7z-compressed" }, - { "aab", "application/x-authorware-bin" }, - { "aac", "audio/aac" }, - { "aac", "audio/x-aac" }, - { "aam", "application/x-authorware-map" }, - { "aas", "application/x-authorware-seg" }, - { "abw", "application/x-abiword" }, - { "ac", "application/pkix-attr-cert" }, - { "ac", "application/vnd.nokia.n-gage.ac+xml" }, - { "acc", "application/vnd.americandynamics.acc" }, - { "ace", "application/x-ace-compressed" }, - { "acu", "application/vnd.acucobol" }, - { "acutc", "application/vnd.acucorp" }, - { "adp", "audio/adpcm" }, - { "adts", "audio/aac" }, - { "aep", "application/vnd.audiograph" }, - { "afm", "application/x-font-type1" }, - { "afp", "application/vnd.ibm.modcap" }, - { "age", "application/vnd.age" }, - { "ahead", "application/vnd.ahead.space" }, - { "ai", "application/postscript" }, - { "aif", "audio/x-aiff" }, - { "aifc", "audio/x-aiff" }, - { "aiff", "audio/x-aiff" }, - { "air", "application/vnd.adobe.air-application-installer-package+zip" }, - { "ait", "application/vnd.dvb.ait" }, - { "ami", "application/vnd.amiga.ami" }, - { "aml", "application/automationml-aml+xml" }, - { "amlx", "application/automationml-amlx+zip" }, - { "amr", "audio/amr" }, - { "apk", "application/vnd.android.package-archive" }, - { "apng", "image/apng" }, - { "appcache", "text/cache-manifest" }, - { "appinstaller", "application/appinstaller" }, - { "application", "application/x-ms-application" }, - { "appx", "application/appx" }, - { "appxbundle", "application/appxbundle" }, - { "apr", "application/vnd.lotus-approach" }, - { "arc", "application/x-freearc" }, - { "arj", "application/x-arj" }, - { "asc", "application/pgp-keys" }, - { "asc", "application/pgp-signature" }, - { "asf", "video/x-ms-asf" }, - { "asm", "text/x-asm" }, - { "aso", "application/vnd.accpac.simply.aso" }, - { "asx", "video/x-ms-asf" }, - { "atc", "application/vnd.acucorp" }, - { "atom", "application/atom+xml" }, - { "atomcat", "application/atomcat+xml" }, - { "atomdeleted", "application/atomdeleted+xml" }, - { "atomsvc", "application/atomsvc+xml" }, - { "atx", "application/vnd.antix.game-component" }, - { "au", "audio/basic" }, - { "avci", "image/avci" }, - { "avcs", "image/avcs" }, - { "avi", "video/x-msvideo" }, - { "avif", "image/avif" }, - { "aw", "application/applixware" }, - { "azf", "application/vnd.airzip.filesecure.azf" }, - { "azs", "application/vnd.airzip.filesecure.azs" }, - { "azv", "image/vnd.airzip.accelerator.azv" }, - { "azw", "application/vnd.amazon.ebook" }, - { "b16", "image/vnd.pco.b16" }, - { "bary", "model/vnd.bary" }, - { "bat", "application/x-msdownload" }, - { "bcpio", "application/x-bcpio" }, - { "bdf", "application/x-font-bdf" }, - { "bdm", "application/vnd.syncml.dm+wbxml" }, - { "bdo", "application/vnd.nato.bindingdataobject+xml" }, - { "bdoc", "application/bdoc" }, - { "bdoc", "application/x-bdoc" }, - { "bed", "application/vnd.realvnc.bed" }, - { "bh2", "application/vnd.fujitsu.oasysprs" }, - { "bin", "application/octet-stream" }, - { "blb", "application/x-blorb" }, - { "blend", "application/x-blender" }, - { "blorb", "application/x-blorb" }, - { "bmi", "application/vnd.bmi" }, - { "bmml", "application/vnd.balsamiq.bmml+xml" }, - { "bmp", "image/bmp" }, - { "bmp", "image/x-ms-bmp" }, - { "book", "application/vnd.framemaker" }, - { "box", "application/vnd.previewsystems.box" }, - { "boz", "application/x-bzip2" }, - { "bpk", "application/octet-stream" }, - { "brush", "application/vnd.procreate.brush" }, - { "brushset", "application/vnd.procrate.brushset" }, - { "bsp", "model/vnd.valve.source.compiled-map" }, - { "btf", "image/prs.btif" }, - { "btif", "image/prs.btif" }, - { "buffer", "application/octet-stream" }, - { "bz", "application/x-bzip" }, - { "bz2", "application/x-bzip2" }, - { "c", "text/x-c" }, - { "c11amc", "application/vnd.cluetrust.cartomobile-config" }, - { "c11amz", "application/vnd.cluetrust.cartomobile-config-pkg" }, - { "c4d", "application/vnd.clonk.c4group" }, - { "c4f", "application/vnd.clonk.c4group" }, - { "c4g", "application/vnd.clonk.c4group" }, - { "c4p", "application/vnd.clonk.c4group" }, - { "c4u", "application/vnd.clonk.c4group" }, - { "cab", "application/vnd.ms-cab-compressed" }, - { "caf", "audio/x-caf" }, - { "cap", "application/vnd.tcpdump.pcap" }, - { "car", "application/vnd.curl.car" }, - { "cat", "application/vnd.ms-pki.seccat" }, - { "cb7", "application/x-cbr" }, - { "cba", "application/x-cbr" }, - { "cbr", "application/x-cbr" }, - { "cbt", "application/x-cbr" }, - { "cbz", "application/x-cbr" }, - { "cc", "text/x-c" }, - { "cco", "application/x-cocoa" }, - { "cct", "application/x-director" }, - { "ccxml", "application/ccxml+xml" }, - { "cdbcmsg", "application/vnd.contact.cmsg" }, - { "cdf", "application/x-netcdf" }, - { "cdfx", "application/cdfx+xml" }, - { "cdkey", "application/vnd.mediastation.cdkey" }, - { "cdmia", "application/cdmi-capability" }, - { "cdmic", "application/cdmi-container" }, - { "cdmid", "application/cdmi-domain" }, - { "cdmio", "application/cdmi-object" }, - { "cdmiq", "application/cdmi-queue" }, - { "cdx", "chemical/x-cdx" }, - { "cdxml", "application/vnd.chemdraw+xml" }, - { "cdy", "application/vnd.cinderella" }, - { "cer", "application/pkix-cert" }, - { "cfs", "application/x-cfs-compressed" }, - { "cgm", "image/cgm" }, - { "chat", "application/x-chat" }, - { "chm", "application/vnd.ms-htmlhelp" }, - { "chrt", "application/vnd.kde.kchart" }, - { "cif", "chemical/x-cif" }, - { "cii", "application/vnd.anser-web-certificate-issue-initiation" }, - { "cil", "application/vnd.ms-artgalry" }, - { "cjs", "application/node" }, - { "cla", "application/vnd.claymore" }, - { "class", "application/java-vm" }, - { "cld", "model/vnd.cld" }, - { "clkk", "application/vnd.crick.clicker.keyboard" }, - { "clkp", "application/vnd.crick.clicker.palette" }, - { "clkt", "application/vnd.crick.clicker.template" }, - { "clkw", "application/vnd.crick.clicker.wordbank" }, - { "clkx", "application/vnd.crick.clicker" }, - { "clp", "application/x-msclip" }, - { "cmc", "application/vnd.cosmocaller" }, - { "cmdf", "chemical/x-cmdf" }, - { "cml", "chemical/x-cml" }, - { "cmp", "application/vnd.yellowriver-custom-menu" }, - { "cmx", "image/x-cmx" }, - { "cod", "application/vnd.rim.cod" }, - { "coffee", "text/coffeescript" }, - { "com", "application/x-msdownload" }, - { "conf", "text/plain" }, - { "cpio", "application/x-cpio" }, - { "cpl", "application/cpl+xml" }, - { "cpp", "text/x-c" }, - { "cpt", "application/mac-compactpro" }, - { "crd", "application/x-mscardfile" }, - { "crl", "application/pkix-crl" }, - { "crt", "application/x-x509-ca-cert" }, - { "crx", "application/x-chrome-extension" }, - { "cryptonote", "application/vnd.rig.cryptonote" }, - { "csh", "application/x-csh" }, - { "csl", "application/vnd.citationstyles.style+xml" }, - { "csml", "chemical/x-csml" }, - { "csp", "application/vnd.commonspace" }, - { "css", "text/css" }, - { "cst", "application/x-director" }, - { "csv", "text/csv" }, - { "cu", "application/cu-seeme" }, - { "curl", "text/vnd.curl" }, - { "cwl", "application/cwl" }, - { "cww", "application/prs.cww" }, - { "cxt", "application/x-director" }, - { "cxx", "text/x-c" }, - { "dae", "model/vnd.collada+xml" }, - { "daf", "application/vnd.mobius.daf" }, - { "dart", "application/vnd.dart" }, - { "dataless", "application/vnd.fdsn.seed" }, - { "davmount", "application/davmount+xml" }, - { "dbf", "application/vnd.dbf" }, - { "dbk", "application/docbook+xml" }, - { "dcm", "application/dicom" }, - { "dcmp", "application/vnd.dcmp+xml" }, - { "dcr", "application/x-director" }, - { "dcurl", "text/vnd.curl.dcurl" }, - { "dd2", "application/vnd.oma.dd2+xml" }, - { "ddd", "application/vnd.fujixerox.ddd" }, - { "ddf", "application/vnd.syncml.dmddf+xml" }, - { "dds", "image/vnd.ms-dds" }, - { "deb", "application/octet-stream" }, - { "deb", "application/x-debian-package" }, - { "def", "text/plain" }, - { "deploy", "application/octet-stream" }, - { "der", "application/x-x509-ca-cert" }, - { "dfac", "application/vnd.dreamfactory" }, - { "dgc", "application/x-dgc-compressed" }, - { "dib", "image/bmp" }, - { "dic", "text/x-c" }, - { "dir", "application/x-director" }, - { "dis", "application/vnd.mobius.dis" }, - { "disposition-notification", "message/disposition-notification" }, - { "dist", "application/octet-stream" }, - { "distz", "application/octet-stream" }, - { "djv", "image/vnd.djvu" }, - { "djvu", "image/vnd.djvu" }, - { "dll", "application/octet-stream" }, - { "dll", "application/x-msdownload" }, - { "dmg", "application/octet-stream" }, - { "dmg", "application/x-apple-diskimage" }, - { "dmp", "application/vnd.tcpdump.pcap" }, - { "dms", "application/octet-stream" }, - { "dna", "application/vnd.dna" }, - { "dng", "image/x-adobe-dng" }, - { "doc", "application/msword" }, - { "docm", "application/vnd.ms-word.document.macroenabled.12" }, - { "docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }, - { "dot", "application/msword" }, - { "dotm", "application/vnd.ms-word.template.macroenabled.12" }, - { "dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" }, - { "dp", "application/vnd.osgi.dp" }, - { "dpg", "application/vnd.dpgraph" }, - { "dpx", "image/dpx" }, - { "dra", "audio/vnd.dra" }, - { "drle", "image/dicom-rle" }, - { "drm", "application/vnd.procreate.dream" }, - { "dsc", "text/prs.lines.tag" }, - { "dssc", "application/dssc+der" }, - { "dtb", "application/x-dtbook+xml" }, - { "dtd", "application/xml-dtd" }, - { "dts", "audio/vnd.dts" }, - { "dtshd", "audio/vnd.dts.hd" }, - { "dump", "application/octet-stream" }, - { "dvb", "video/vnd.dvb.file" }, - { "dvi", "application/x-dvi" }, - { "dwd", "application/atsc-dwd+xml" }, - { "dwf", "model/vnd.dwf" }, - { "dwg", "image/vnd.dwg" }, - { "dxf", "image/vnd.dxf" }, - { "dxp", "application/vnd.spotfire.dxp" }, - { "dxr", "application/x-director" }, - { "ear", "application/java-archive" }, - { "ecelp4800", "audio/vnd.nuera.ecelp4800" }, - { "ecelp7470", "audio/vnd.nuera.ecelp7470" }, - { "ecelp9600", "audio/vnd.nuera.ecelp9600" }, - { "ecma", "application/ecmascript" }, - { "edm", "application/vnd.novadigm.edm" }, - { "edx", "application/vnd.novadigm.edx" }, - { "efif", "application/vnd.picsel" }, - { "ei6", "application/vnd.pg.osasli" }, - { "elc", "application/octet-stream" }, - { "emf", "application/x-msmetafile" }, - { "emf", "image/emf" }, - { "eml", "message/rfc822" }, - { "emma", "application/emma+xml" }, - { "emotionml", "application/emotionml+xml" }, - { "emz", "application/x-msmetafile" }, - { "eol", "audio/vnd.digital-winds" }, - { "eot", "application/vnd.ms-fontobject" }, - { "eps", "application/postscript" }, - { "epub", "application/epub+zip" }, - { "es3", "application/vnd.eszigno3+xml" }, - { "esa", "application/vnd.osgi.subsystem" }, - { "esf", "application/vnd.epson.esf" }, - { "et3", "application/vnd.eszigno3+xml" }, - { "etx", "text/x-setext" }, - { "eva", "application/x-eva" }, - { "evy", "application/x-envoy" }, - { "exe", "application/octet-stream" }, - { "exe", "application/x-msdos-program" }, - { "exe", "application/x-msdownload" }, - { "exi", "application/exi" }, - { "exp", "application/express" }, - { "exr", "image/aces" }, - { "ext", "application/vnd.novadigm.ext" }, - { "ez", "application/andrew-inset" }, - { "ez2", "application/vnd.ezpix-album" }, - { "ez3", "application/vnd.ezpix-package" }, - { "f", "text/x-fortran" }, - { "f4v", "video/x-f4v" }, - { "f77", "text/x-fortran" }, - { "f90", "text/x-fortran" }, - { "fbs", "image/vnd.fastbidsheet" }, - { "fbx", "application/vnd.autodesk.fbx" }, - { "fcdt", "application/vnd.adobe.formscentral.fcdt" }, - { "fcs", "application/vnd.isac.fcs" }, - { "fdf", "application/fdf" }, - { "fdf", "application/vnd.fdf" }, - { "fdt", "application/fdt+xml" }, - { "fe_launch", "application/vnd.denovo.fcselayout-link" }, - { "fg5", "application/vnd.fujitsu.oasysgp" }, - { "fgd", "application/x-director" }, - { "fh", "image/x-freehand" }, - { "fh4", "image/x-freehand" }, - { "fh5", "image/x-freehand" }, - { "fh7", "image/x-freehand" }, - { "fhc", "image/x-freehand" }, - { "fig", "application/x-xfig" }, - { "fits", "image/fits" }, - { "flac", "audio/x-flac" }, - { "fli", "video/x-fli" }, - { "flo", "application/vnd.micrografx.flo" }, - { "flv", "video/x-flv" }, - { "flw", "application/vnd.kde.kivio" }, - { "flx", "text/vnd.fmi.flexstor" }, - { "fly", "text/vnd.fly" }, - { "fm", "application/vnd.framemaker" }, - { "fnc", "application/vnd.frogans.fnc" }, - { "fo", "application/vnd.software602.filler.form+xml" }, - { "for", "text/x-fortran" }, - { "fpx", "image/vnd.fpx" }, - { "frame", "application/vnd.framemaker" }, - { "fsc", "application/vnd.fsc.weblaunch" }, - { "fst", "image/vnd.fst" }, - { "ftc", "application/vnd.fluxtime.clip" }, - { "fti", "application/vnd.anser-web-funds-transfer-initiation" }, - { "fvt", "video/vnd.fvt" }, - { "fxp", "application/vnd.adobe.fxp" }, - { "fxpl", "application/vnd.adobe.fxp" }, - { "fzs", "application/vnd.fuzzysheet" }, - { "g2w", "application/vnd.geoplan" }, - { "g3", "image/g3fax" }, - { "g3w", "application/vnd.geospace" }, - { "gac", "application/vnd.groove-account" }, - { "gam", "application/x-tads" }, - { "gbr", "application/rpki-ghostbusters" }, - { "gca", "application/x-gca-compressed" }, - { "gdl", "model/vnd.gdl" }, - { "gdoc", "application/vnd.google-apps.document" }, - { "gdraw", "application/vnd.google-apps.drawing" }, - { "ged", "text/vnd.familysearch.gedcom" }, - { "geo", "application/vnd.dynageo" }, - { "geojson", "application/geo+json" }, - { "gex", "application/vnd.geometry-explorer" }, - { "gform", "application/vnd.google-apps.form" }, - { "ggb", "application/vnd.geogebra.file" }, - { "ggs", "application/vnd.geogebra.slides" }, - { "ggt", "application/vnd.geogebra.tool" }, - { "ghf", "application/vnd.groove-help" }, - { "gif", "image/gif" }, - { "gim", "application/vnd.groove-identity-message" }, - { "gjam", "application/vnd.google-apps.jam" }, - { "glb", "model/gltf-binary" }, - { "gltf", "model/gltf+json" }, - { "gmap", "application/vnd.google-apps.map" }, - { "gml", "application/gml+xml" }, - { "gmx", "application/vnd.gmx" }, - { "gnumeric", "application/x-gnumeric" }, - { "gph", "application/vnd.flographit" }, - { "gpx", "application/gpx+xml" }, - { "gqf", "application/vnd.grafeq" }, - { "gqs", "application/vnd.grafeq" }, - { "gram", "application/srgs" }, - { "gramps", "application/x-gramps-xml" }, - { "gre", "application/vnd.geometry-explorer" }, - { "grv", "application/vnd.groove-injector" }, - { "grxml", "application/srgs+xml" }, - { "gscript", "application/vnd.google-apps.script" }, - { "gsf", "application/x-font-ghostscript" }, - { "gsheet", "application/vnd.google-apps.spreadsheet" }, - { "gsite", "application/vnd.google-apps.site" }, - { "gslides", "application/vnd.google-apps.presentation" }, - { "gtar", "application/x-gtar" }, - { "gtm", "application/vnd.groove-tool-message" }, - { "gtw", "model/vnd.gtw" }, - { "gv", "text/vnd.graphviz" }, - { "gxf", "application/gxf" }, - { "gxt", "application/vnd.geonext" }, - { "gz", "application/gzip" }, - { "h", "text/x-c" }, - { "h261", "video/h261" }, - { "h263", "video/h263" }, - { "h264", "video/h264" }, - { "hal", "application/vnd.hal+xml" }, - { "hbci", "application/vnd.hbci" }, - { "hbs", "text/x-handlebars-template" }, - { "hdd", "application/x-virtualbox-hdd" }, - { "hdf", "application/x-hdf" }, - { "heic", "image/heic" }, - { "heics", "image/heic-sequence" }, - { "heif", "image/heif" }, - { "heifs", "image/heif-sequence" }, - { "hej2", "image/hej2k" }, - { "held", "application/atsc-held+xml" }, - { "hh", "text/x-c" }, - { "hjson", "application/hjson" }, - { "hlp", "application/winhlp" }, - { "hpgl", "application/vnd.hp-hpgl" }, - { "hpid", "application/vnd.hp-hpid" }, - { "hps", "application/vnd.hp-hps" }, - { "hqx", "application/mac-binhex40" }, - { "htc", "text/x-component" }, - { "htke", "application/vnd.kenameaapp" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "hvd", "application/vnd.yamaha.hv-dic" }, - { "hvp", "application/vnd.yamaha.hv-voice" }, - { "hvs", "application/vnd.yamaha.hv-script" }, - { "i2g", "application/vnd.intergeo" }, - { "icc", "application/vnd.iccprofile" }, - { "ice", "x-conference/x-cooltalk" }, - { "icm", "application/vnd.iccprofile" }, - { "ico", "image/vnd.microsoft.icon" }, - { "ico", "image/x-icon" }, - { "ics", "text/calendar" }, - { "ief", "image/ief" }, - { "ifb", "text/calendar" }, - { "ifm", "application/vnd.shana.informed.formdata" }, - { "iges", "model/iges" }, - { "igl", "application/vnd.igloader" }, - { "igm", "application/vnd.insors.igm" }, - { "igs", "model/iges" }, - { "igx", "application/vnd.micrografx.igx" }, - { "iif", "application/vnd.shana.informed.interchange" }, - { "img", "application/octet-stream" }, - { "imp", "application/vnd.accpac.simply.imp" }, - { "ims", "application/vnd.ms-ims" }, - { "in", "text/plain" }, - { "ini", "text/plain" }, - { "ink", "application/inkml+xml" }, - { "inkml", "application/inkml+xml" }, - { "install", "application/x-install-instructions" }, - { "iota", "application/vnd.astraea-software.iota" }, - { "ipfix", "application/ipfix" }, - { "ipk", "application/vnd.shana.informed.package" }, - { "ipynb", "application/x-ipynb+json" }, - { "irm", "application/vnd.ibm.rights-management" }, - { "irp", "application/vnd.irepository.package+xml" }, - { "iso", "application/octet-stream" }, - { "iso", "application/x-iso9660-image" }, - { "itp", "application/vnd.shana.informed.formtemplate" }, - { "its", "application/its+xml" }, - { "ivp", "application/vnd.immervision-ivp" }, - { "ivu", "application/vnd.immervision-ivu" }, - { "jad", "text/vnd.sun.j2me.app-descriptor" }, - { "jade", "text/jade" }, - { "jaii", "image/jaii" }, - { "jais", "image/jais" }, - { "jam", "application/vnd.jam" }, - { "jar", "application/java-archive" }, - { "jardiff", "application/x-java-archive-diff" }, - { "java", "text/x-java-source" }, - { "jfif", "image/pjpeg" }, - { "jhc", "image/jphc" }, - { "jisp", "application/vnd.jisp" }, - { "jls", "image/jls" }, - { "jlt", "application/vnd.hp-jlyt" }, - { "jng", "image/x-jng" }, - { "jnlp", "application/x-java-jnlp-file" }, - { "joda", "application/vnd.joost.joda-archive" }, - { "jp2", "image/jp2" }, - { "jpe", "image/jpeg" }, - { "jpeg", "image/jpeg" }, - { "jpf", "image/jpx" }, - { "jpg", "image/jpeg" }, - { "jpg2", "image/jp2" }, - { "jpgm", "image/jpm" }, - { "jpgm", "video/jpm" }, - { "jpgv", "video/jpeg" }, - { "jph", "image/jph" }, - { "jpm", "image/jpm" }, - { "jpm", "video/jpm" }, - { "jpx", "image/jpx" }, - { "js", "application/javascript" }, - { "js", "text/javascript" }, - { "json", "application/json" }, - { "json5", "application/json5" }, - { "jsonld", "application/ld+json" }, - { "jsonml", "application/jsonml+json" }, - { "jsx", "text/jsx" }, - { "jt", "model/jt" }, - { "jxl", "image/jxl" }, - { "jxr", "image/jxr" }, - { "jxra", "image/jxra" }, - { "jxrs", "image/jxrs" }, - { "jxs", "image/jxs" }, - { "jxsc", "image/jxsc" }, - { "jxsi", "image/jxsi" }, - { "jxss", "image/jxss" }, - { "kar", "audio/midi" }, - { "karbon", "application/vnd.kde.karbon" }, - { "kdbx", "application/x-keepass2" }, - { "key", "application/vnd.apple.keynote" }, - { "key", "application/x-iwork-keynote-sffkey" }, - { "kfo", "application/vnd.kde.kformula" }, - { "kia", "application/vnd.kidspiration" }, - { "kml", "application/vnd.google-earth.kml+xml" }, - { "kmz", "application/vnd.google-earth.kmz" }, - { "kne", "application/vnd.kinar" }, - { "knp", "application/vnd.kinar" }, - { "kon", "application/vnd.kde.kontour" }, - { "kpr", "application/vnd.kde.kpresenter" }, - { "kpt", "application/vnd.kde.kpresenter" }, - { "kpxx", "application/vnd.ds-keypoint" }, - { "ksp", "application/vnd.kde.kspread" }, - { "ktr", "application/vnd.kahootz" }, - { "ktx", "image/ktx" }, - { "ktx2", "image/ktx2" }, - { "ktz", "application/vnd.kahootz" }, - { "kwd", "application/vnd.kde.kword" }, - { "kwt", "application/vnd.kde.kword" }, - { "lasxml", "application/vnd.las.las+xml" }, - { "latex", "application/x-latex" }, - { "lbd", "application/vnd.llamagraphics.life-balance.desktop" }, - { "lbe", "application/vnd.llamagraphics.life-balance.exchange+xml" }, - { "les", "application/vnd.hhe.lesson-player" }, - { "less", "text/less" }, - { "lgr", "application/lgr+xml" }, - { "lha", "application/x-lzh-compressed" }, - { "link66", "application/vnd.route66.link66+xml" }, - { "list", "text/plain" }, - { "list3820", "application/vnd.ibm.modcap" }, - { "listafp", "application/vnd.ibm.modcap" }, - { "litcoffee", "text/coffeescript" }, - { "lnk", "application/x-ms-shortcut" }, - { "log", "text/plain" }, - { "lostxml", "application/lost+xml" }, - { "lottie", "application/zip+dotlottie" }, - { "lrf", "application/octet-stream" }, - { "lrm", "application/vnd.ms-lrm" }, - { "ltf", "application/vnd.frogans.ltf" }, - { "lua", "text/x-lua" }, - { "luac", "application/x-lua-bytecode" }, - { "lvp", "audio/vnd.lucent.voice" }, - { "lwp", "application/vnd.lotus-wordpro" }, - { "lzh", "application/x-lzh-compressed" }, - { "m13", "application/x-msmediaview" }, - { "m14", "application/x-msmediaview" }, - { "m1v", "video/mpeg" }, - { "m21", "application/mp21" }, - { "m2a", "audio/mpeg" }, - { "m2t", "video/mp2t" }, - { "m2ts", "video/mp2t" }, - { "m2v", "video/mpeg" }, - { "m3a", "audio/mpeg" }, - { "m3u", "audio/x-mpegurl" }, - { "m3u8", "application/vnd.apple.mpegurl" }, - { "m4a", "audio/mp4" }, - { "m4a", "audio/x-m4a" }, - { "m4b", "audio/mp4" }, - { "m4p", "application/mp4" }, - { "m4s", "video/iso.segment" }, - { "m4u", "video/vnd.mpegurl" }, - { "m4v", "video/x-m4v" }, - { "ma", "application/mathematica" }, - { "mads", "application/mads+xml" }, - { "maei", "application/mmt-aei+xml" }, - { "mag", "application/vnd.ecowin.chart" }, - { "maker", "application/vnd.framemaker" }, - { "man", "text/troff" }, - { "manifest", "text/cache-manifest" }, - { "map", "application/json" }, - { "mar", "application/octet-stream" }, - { "markdown", "text/markdown" }, - { "mathml", "application/mathml+xml" }, - { "mb", "application/mathematica" }, - { "mbk", "application/vnd.mobius.mbk" }, - { "mbox", "application/mbox" }, - { "mc1", "application/vnd.medcalcdata" }, - { "mcd", "application/vnd.mcd" }, - { "mcurl", "text/vnd.curl.mcurl" }, - { "md", "text/markdown" }, - { "mdb", "application/x-msaccess" }, - { "mdi", "image/vnd.ms-modi" }, - { "mdx", "text/mdx" }, - { "me", "text/troff" }, - { "mesh", "model/mesh" }, - { "meta4", "application/metalink4+xml" }, - { "metalink", "application/metalink+xml" }, - { "mets", "application/mets+xml" }, - { "mfm", "application/vnd.mfmp" }, - { "mft", "application/rpki-manifest" }, - { "mgp", "application/vnd.osgeo.mapguide.package" }, - { "mgz", "application/vnd.proteus.magazine" }, - { "mht", "message/rfc822" }, - { "mhtml", "message/rfc822" }, - { "mid", "audio/midi" }, - { "midi", "audio/midi" }, - { "mie", "application/x-mie" }, - { "mif", "application/vnd.mif" }, - { "mime", "message/rfc822" }, - { "mj2", "video/mj2" }, - { "mjp2", "video/mj2" }, - { "mjs", "text/javascript" }, - { "mk3d", "video/x-matroska" }, - { "mka", "audio/x-matroska" }, - { "mkd", "text/x-markdown" }, - { "mks", "video/x-matroska" }, - { "mkv", "video/x-matroska" }, - { "mlp", "application/vnd.dolby.mlp" }, - { "mmd", "application/vnd.chipnuts.karaoke-mmd" }, - { "mmf", "application/vnd.smaf" }, - { "mml", "text/mathml" }, - { "mmr", "image/vnd.fujixerox.edmics-mmr" }, - { "mng", "video/x-mng" }, - { "mny", "application/x-msmoney" }, - { "mobi", "application/x-mobipocket-ebook" }, - { "mods", "application/mods+xml" }, - { "mov", "video/quicktime" }, - { "movie", "video/x-sgi-movie" }, - { "mp2", "audio/mpeg" }, - { "mp21", "application/mp21" }, - { "mp2a", "audio/mpeg" }, - { "mp3", "audio/mp3" }, - { "mp3", "audio/mpeg" }, - { "mp4", "application/mp4" }, - { "mp4", "video/mp4" }, - { "mp4a", "audio/mp4" }, - { "mp4s", "application/mp4" }, - { "mp4v", "video/mp4" }, - { "mpc", "application/vnd.mophun.certificate" }, - { "mpd", "application/dash+xml" }, - { "mpe", "video/mpeg" }, - { "mpeg", "video/mpeg" }, - { "mpf", "application/media-policy-dataset+xml" }, - { "mpg", "video/mpeg" }, - { "mpg4", "application/mp4" }, - { "mpg4", "video/mp4" }, - { "mpga", "audio/mpeg" }, - { "mpkg", "application/vnd.apple.installer+xml" }, - { "mpm", "application/vnd.blueice.multipass" }, - { "mpn", "application/vnd.mophun.application" }, - { "mpp", "application/dash-patch+xml" }, - { "mpp", "application/vnd.ms-project" }, - { "mpt", "application/vnd.ms-project" }, - { "mpy", "application/vnd.ibm.minipay" }, - { "mqy", "application/vnd.mobius.mqy" }, - { "mrc", "application/marc" }, - { "mrcx", "application/marcxml+xml" }, - { "ms", "text/troff" }, - { "mscml", "application/mediaservercontrol+xml" }, - { "mseed", "application/vnd.fdsn.mseed" }, - { "mseq", "application/vnd.mseq" }, - { "msf", "application/vnd.epson.msf" }, - { "msg", "application/vnd.ms-outlook" }, - { "msh", "model/mesh" }, - { "msi", "application/octet-stream" }, - { "msi", "application/x-msdownload" }, - { "msix", "application/msix" }, - { "msixbundle", "application/msixbundle" }, - { "msl", "application/vnd.mobius.msl" }, - { "msm", "application/octet-stream" }, - { "msp", "application/octet-stream" }, - { "msty", "application/vnd.muvee.style" }, - { "mtl", "model/mtl" }, - { "mts", "model/vnd.mts" }, - { "mts", "video/mp2t" }, - { "mus", "application/vnd.musician" }, - { "musd", "application/mmt-usd+xml" }, - { "musicxml", "application/vnd.recordare.musicxml+xml" }, - { "mvb", "application/x-msmediaview" }, - { "mvt", "application/vnd.mapbox-vector-tile" }, - { "mwf", "application/vnd.mfer" }, - { "mxf", "application/mxf" }, - { "mxl", "application/vnd.recordare.musicxml" }, - { "mxmf", "audio/mobile-xmf" }, - { "mxml", "application/xv+xml" }, - { "mxs", "application/vnd.triscape.mxs" }, - { "mxu", "video/vnd.mpegurl" }, - { "n-gage", "application/vnd.nokia.n-gage.symbian.install" }, - { "n3", "text/n3" }, - { "nb", "application/mathematica" }, - { "nbp", "application/vnd.wolfram.player" }, - { "nc", "application/x-netcdf" }, - { "ncx", "application/x-dtbncx+xml" }, - { "nfo", "text/x-nfo" }, - { "ngdat", "application/vnd.nokia.n-gage.data" }, - { "nitf", "application/vnd.nitf" }, - { "nlu", "application/vnd.neurolanguage.nlu" }, - { "nml", "application/vnd.enliven" }, - { "nnd", "application/vnd.noblenet-directory" }, - { "nns", "application/vnd.noblenet-sealer" }, - { "nnw", "application/vnd.noblenet-web" }, - { "npx", "image/vnd.net-fpx" }, - { "nq", "application/n-quads" }, - { "nsc", "application/x-conference" }, - { "nsf", "application/vnd.lotus-notes" }, - { "nt", "application/n-triples" }, - { "ntf", "application/vnd.nitf" }, - { "numbers", "application/vnd.apple.numbers" }, - { "numbers", "application/x-iwork-numbers-sffnumbers" }, - { "nzb", "application/x-nzb" }, - { "oa2", "application/vnd.fujitsu.oasys2" }, - { "oa3", "application/vnd.fujitsu.oasys3" }, - { "oas", "application/vnd.fujitsu.oasys" }, - { "obd", "application/x-msbinder" }, - { "obgx", "application/vnd.openblox.game+xml" }, - { "obj", "application/x-tgif" }, - { "obj", "model/obj" }, - { "oda", "application/oda" }, - { "odb", "application/vnd.oasis.opendocument.database" }, - { "odc", "application/vnd.oasis.opendocument.chart" }, - { "odf", "application/vnd.oasis.opendocument.formula" }, - { "odft", "application/vnd.oasis.opendocument.formula-template" }, - { "odg", "application/vnd.oasis.opendocument.graphics" }, - { "odi", "application/vnd.oasis.opendocument.image" }, - { "odm", "application/vnd.oasis.opendocument.text-master" }, - { "odp", "application/vnd.oasis.opendocument.presentation" }, - { "ods", "application/vnd.oasis.opendocument.spreadsheet" }, - { "odt", "application/vnd.oasis.opendocument.text" }, - { "oga", "audio/ogg" }, - { "ogex", "model/vnd.opengex" }, - { "ogg", "audio/ogg" }, - { "ogv", "video/ogg" }, - { "ogx", "application/ogg" }, - { "omdoc", "application/omdoc+xml" }, - { "one", "application/onenote" }, - { "onea", "application/onenote" }, - { "onepkg", "application/onenote" }, - { "onetmp", "application/onenote" }, - { "onetoc", "application/onenote" }, - { "onetoc2", "application/onenote" }, - { "opf", "application/oebps-package+xml" }, - { "opml", "text/x-opml" }, - { "oprc", "application/vnd.palm" }, - { "opus", "audio/ogg" }, - { "org", "application/vnd.lotus-organizer" }, - { "org", "text/x-org" }, - { "osf", "application/vnd.yamaha.openscoreformat" }, - { "osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml" }, - { "osm", "application/vnd.openstreetmap.data+xml" }, - { "otc", "application/vnd.oasis.opendocument.chart-template" }, - { "otf", "font/otf" }, - { "otg", "application/vnd.oasis.opendocument.graphics-template" }, - { "oth", "application/vnd.oasis.opendocument.text-web" }, - { "oti", "application/vnd.oasis.opendocument.image-template" }, - { "otp", "application/vnd.oasis.opendocument.presentation-template" }, - { "ots", "application/vnd.oasis.opendocument.spreadsheet-template" }, - { "ott", "application/vnd.oasis.opendocument.text-template" }, - { "ova", "application/x-virtualbox-ova" }, - { "ovf", "application/x-virtualbox-ovf" }, - { "owl", "application/rdf+xml" }, - { "oxps", "application/oxps" }, - { "oxt", "application/vnd.openofficeorg.extension" }, - { "p", "text/x-pascal" }, - { "p10", "application/pkcs10" }, - { "p12", "application/x-pkcs12" }, - { "p21", "model/step" }, - { "p7b", "application/x-pkcs7-certificates" }, - { "p7c", "application/pkcs7-mime" }, - { "p7m", "application/pkcs7-mime" }, - { "p7r", "application/x-pkcs7-certreqresp" }, - { "p7s", "application/pkcs7-signature" }, - { "p8", "application/pkcs8" }, - { "pac", "application/x-ns-proxy-autoconfig" }, - { "pages", "application/vnd.apple.pages" }, - { "pages", "application/x-iwork-pages-sffpages" }, - { "pas", "text/x-pascal" }, - { "paw", "application/vnd.pawaafile" }, - { "pbd", "application/vnd.powerbuilder6" }, - { "pbm", "image/x-portable-bitmap" }, - { "pcap", "application/vnd.tcpdump.pcap" }, - { "pcf", "application/x-font-pcf" }, - { "pcl", "application/vnd.hp-pcl" }, - { "pclxl", "application/vnd.hp-pclxl" }, - { "pct", "image/x-pict" }, - { "pcurl", "application/vnd.curl.pcurl" }, - { "pcx", "image/vnd.zbrush.pcx" }, - { "pcx", "image/x-pcx" }, - { "pdb", "application/vnd.palm" }, - { "pdb", "application/x-pilot" }, - { "pde", "text/x-processing" }, - { "pdf", "application/pdf" }, - { "pem", "application/x-x509-ca-cert" }, - { "pfa", "application/x-font-type1" }, - { "pfb", "application/x-font-type1" }, - { "pfm", "application/x-font-type1" }, - { "pfr", "application/font-tdpfr" }, - { "pfx", "application/x-pkcs12" }, - { "pgm", "image/x-portable-graymap" }, - { "pgn", "application/x-chess-pgn" }, - { "pgp", "application/pgp-encrypted" }, - { "php", "application/x-httpd-php" }, - { "pic", "image/x-pict" }, - { "pkg", "application/octet-stream" }, - { "pki", "application/pkixcmp" }, - { "pkipath", "application/pkix-pkipath" }, - { "pkpass", "application/vnd.apple.pkpass" }, - { "pl", "application/x-perl" }, - { "plb", "application/vnd.3gpp.pic-bw-large" }, - { "plc", "application/vnd.mobius.plc" }, - { "plf", "application/vnd.pocketlearn" }, - { "pls", "application/pls+xml" }, - { "pm", "application/x-perl" }, - { "pml", "application/vnd.ctc-posml" }, - { "png", "image/png" }, - { "pnm", "image/x-portable-anymap" }, - { "portpkg", "application/vnd.macports.portpkg" }, - { "pot", "application/vnd.ms-powerpoint" }, - { "potm", "application/vnd.ms-powerpoint.template.macroenabled.12" }, - { "potx", "application/vnd.openxmlformats-officedocument.presentationml.template" }, - { "ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12" }, - { "ppd", "application/vnd.cups-ppd" }, - { "ppm", "image/x-portable-pixmap" }, - { "pps", "application/vnd.ms-powerpoint" }, - { "ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12" }, - { "ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" }, - { "ppt", "application/vnd.ms-powerpoint" }, - { "pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12" }, - { "pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" }, - { "pqa", "application/vnd.palm" }, - { "prc", "application/x-mobipocket-ebook" }, - { "prc", "application/x-pilot" }, - { "prc", "model/prc" }, - { "pre", "application/vnd.lotus-freelance" }, - { "prf", "application/pics-rules" }, - { "provx", "application/provenance+xml" }, - { "ps", "application/postscript" }, - { "psb", "application/vnd.3gpp.pic-bw-small" }, - { "psd", "image/vnd.adobe.photoshop" }, - { "psf", "application/x-font-linux-psf" }, - { "pskcxml", "application/pskc+xml" }, - { "pti", "image/prs.pti" }, - { "ptid", "application/vnd.pvi.ptid1" }, - { "pub", "application/x-mspublisher" }, - { "pvb", "application/vnd.3gpp.pic-bw-var" }, - { "pwn", "application/vnd.3m.post-it-notes" }, - { "pya", "audio/vnd.ms-playready.media.pya" }, - { "pyo", "model/vnd.pytha.pyox" }, - { "pyox", "model/vnd.pytha.pyox" }, - { "pyv", "video/vnd.ms-playready.media.pyv" }, - { "qam", "application/vnd.epson.quickanime" }, - { "qbo", "application/vnd.intu.qbo" }, - { "qfx", "application/vnd.intu.qfx" }, - { "qps", "application/vnd.publishare-delta-tree" }, - { "qt", "video/quicktime" }, - { "qwd", "application/vnd.quark.quarkxpress" }, - { "qwt", "application/vnd.quark.quarkxpress" }, - { "qxb", "application/vnd.quark.quarkxpress" }, - { "qxd", "application/vnd.quark.quarkxpress" }, - { "qxl", "application/vnd.quark.quarkxpress" }, - { "qxt", "application/vnd.quark.quarkxpress" }, - { "ra", "audio/x-pn-realaudio" }, - { "ra", "audio/x-realaudio" }, - { "ram", "audio/x-pn-realaudio" }, - { "raml", "application/raml+yaml" }, - { "rapd", "application/route-apd+xml" }, - { "rar", "application/vnd.rar" }, - { "rar", "application/x-compressed" }, - { "rar", "application/x-rar-compressed" }, - { "ras", "image/x-cmu-raster" }, - { "rcprofile", "application/vnd.ipunplugged.rcprofile" }, - { "rdf", "application/rdf+xml" }, - { "rdz", "application/vnd.data-vision.rdz" }, - { "relo", "application/p2p-overlay+xml" }, - { "rep", "application/vnd.businessobjects" }, - { "res", "application/x-dtbresource+xml" }, - { "rgb", "image/x-rgb" }, - { "rif", "application/reginfo+xml" }, - { "rip", "audio/vnd.rip" }, - { "ris", "application/x-research-info-systems" }, - { "rl", "application/resource-lists+xml" }, - { "rlc", "image/vnd.fujixerox.edmics-rlc" }, - { "rld", "application/resource-lists-diff+xml" }, - { "rm", "application/vnd.rn-realmedia" }, - { "rmi", "audio/midi" }, - { "rmp", "audio/x-pn-realaudio-plugin" }, - { "rms", "application/vnd.jcp.javame.midlet-rms" }, - { "rmvb", "application/vnd.rn-realmedia-vbr" }, - { "rnc", "application/relax-ng-compact-syntax" }, - { "rng", "application/xml" }, - { "roa", "application/rpki-roa" }, - { "roff", "text/troff" }, - { "rp9", "application/vnd.cloanto.rp9" }, - { "rpm", "application/x-redhat-package-manager" }, - { "rpss", "application/vnd.nokia.radio-presets" }, - { "rpst", "application/vnd.nokia.radio-preset" }, - { "rq", "application/sparql-query" }, - { "rs", "application/rls-services+xml" }, - { "rsat", "application/atsc-rsat+xml" }, - { "rsd", "application/rsd+xml" }, - { "rsheet", "application/urc-ressheet+xml" }, - { "rss", "application/rss+xml" }, - { "rtf", "application/rtf" }, - { "rtf", "text/rtf" }, - { "rtx", "text/richtext" }, - { "run", "application/x-makeself" }, - { "rusd", "application/route-usd+xml" }, - { "s", "text/x-asm" }, - { "s3m", "audio/s3m" }, - { "saf", "application/vnd.yamaha.smaf-audio" }, - { "sass", "text/x-sass" }, - { "sbml", "application/sbml+xml" }, - { "sc", "application/vnd.ibm.secure-container" }, - { "scd", "application/x-msschedule" }, - { "scm", "application/vnd.lotus-screencam" }, - { "scq", "application/scvp-cv-request" }, - { "scs", "application/scvp-cv-response" }, - { "scss", "text/x-scss" }, - { "scurl", "text/vnd.curl.scurl" }, - { "sda", "application/vnd.stardivision.draw" }, - { "sdc", "application/vnd.stardivision.calc" }, - { "sdd", "application/vnd.stardivision.impress" }, - { "sdkd", "application/vnd.solent.sdkm+xml" }, - { "sdkm", "application/vnd.solent.sdkm+xml" }, - { "sdp", "application/sdp" }, - { "sdw", "application/vnd.stardivision.writer" }, - { "sea", "application/x-sea" }, - { "see", "application/vnd.seemail" }, - { "seed", "application/vnd.fdsn.seed" }, - { "sema", "application/vnd.sema" }, - { "semd", "application/vnd.semd" }, - { "semf", "application/vnd.semf" }, - { "senmlx", "application/senml+xml" }, - { "sensmlx", "application/sensml+xml" }, - { "ser", "application/java-serialized-object" }, - { "setpay", "application/set-payment-initiation" }, - { "setreg", "application/set-registration-initiation" }, - { "sfd-hdstx", "application/vnd.hydrostatix.sof-data" }, - { "sfs", "application/vnd.spotfire.sfs" }, - { "sfv", "text/x-sfv" }, - { "sgi", "image/sgi" }, - { "sgl", "application/vnd.stardivision.writer-global" }, - { "sgm", "text/sgml" }, - { "sgml", "text/sgml" }, - { "sh", "application/x-sh" }, - { "shar", "application/x-shar" }, - { "shex", "text/shex" }, - { "shf", "application/shf+xml" }, - { "shtml", "text/html" }, - { "sid", "image/x-mrsid-image" }, - { "sieve", "application/sieve" }, - { "sig", "application/pgp-signature" }, - { "sil", "audio/silk" }, - { "silo", "model/mesh" }, - { "sis", "application/vnd.symbian.install" }, - { "sisx", "application/vnd.symbian.install" }, - { "sit", "application/x-stuffit" }, - { "sitx", "application/x-stuffitx" }, - { "siv", "application/sieve" }, - { "skd", "application/vnd.koan" }, - { "skm", "application/vnd.koan" }, - { "skp", "application/vnd.koan" }, - { "skt", "application/vnd.koan" }, - { "sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12" }, - { "sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" }, - { "slim", "text/slim" }, - { "slm", "text/slim" }, - { "sls", "application/route-s-tsid+xml" }, - { "slt", "application/vnd.epson.salt" }, - { "sm", "application/vnd.stepmania.stepchart" }, - { "smf", "application/vnd.stardivision.math" }, - { "smi", "application/smil+xml" }, - { "smil", "application/smil+xml" }, - { "smv", "video/x-smv" }, - { "smzip", "application/vnd.stepmania.package" }, - { "snd", "audio/basic" }, - { "snf", "application/x-font-snf" }, - { "so", "application/octet-stream" }, - { "spc", "application/x-pkcs7-certificates" }, - { "spdx", "text/spdx" }, - { "spf", "application/vnd.yamaha.smaf-phrase" }, - { "spl", "application/x-futuresplash" }, - { "spot", "text/vnd.in3d.spot" }, - { "spp", "application/scvp-vp-response" }, - { "spq", "application/scvp-vp-request" }, - { "spx", "audio/ogg" }, - { "sql", "application/sql" }, - { "sql", "application/x-sql" }, - { "src", "application/x-wais-source" }, - { "srt", "application/x-subrip" }, - { "sru", "application/sru+xml" }, - { "srx", "application/sparql-results+xml" }, - { "ssdl", "application/ssdl+xml" }, - { "sse", "application/vnd.kodak-descriptor" }, - { "ssf", "application/vnd.epson.ssf" }, - { "ssml", "application/ssml+xml" }, - { "st", "application/vnd.sailingtracker.track" }, - { "stc", "application/vnd.sun.xml.calc.template" }, - { "std", "application/vnd.sun.xml.draw.template" }, - { "step", "model/step" }, - { "stf", "application/vnd.wt.stf" }, - { "sti", "application/vnd.sun.xml.impress.template" }, - { "stk", "application/hyperstudio" }, - { "stl", "application/vnd.ms-pki.stl" }, - { "stl", "model/stl" }, - { "stp", "model/step" }, - { "stpnc", "model/step" }, - { "stpx", "model/step+xml" }, - { "stpxz", "model/step-xml+zip" }, - { "stpz", "model/step+zip" }, - { "str", "application/vnd.pg.format" }, - { "stw", "application/vnd.sun.xml.writer.template" }, - { "styl", "text/stylus" }, - { "stylus", "text/stylus" }, - { "sub", "image/vnd.dvb.subtitle" }, - { "sub", "text/vnd.dvb.subtitle" }, - { "sus", "application/vnd.sus-calendar" }, - { "susp", "application/vnd.sus-calendar" }, - { "sv4cpio", "application/x-sv4cpio" }, - { "sv4crc", "application/x-sv4crc" }, - { "svc", "application/vnd.dvb.service" }, - { "svd", "application/vnd.svd" }, - { "svg", "image/svg+xml" }, - { "svgz", "image/svg+xml" }, - { "swa", "application/x-director" }, - { "swf", "application/x-shockwave-flash" }, - { "swi", "application/vnd.aristanetworks.swi" }, - { "swidtag", "application/swid+xml" }, - { "sxc", "application/vnd.sun.xml.calc" }, - { "sxd", "application/vnd.sun.xml.draw" }, - { "sxg", "application/vnd.sun.xml.writer.global" }, - { "sxi", "application/vnd.sun.xml.impress" }, - { "sxm", "application/vnd.sun.xml.math" }, - { "sxw", "application/vnd.sun.xml.writer" }, - { "t", "text/troff" }, - { "t3", "application/x-t3vm-image" }, - { "t38", "image/t38" }, - { "taglet", "application/vnd.mynfc" }, - { "tao", "application/vnd.tao.intent-module-archive" }, - { "tap", "image/vnd.tencent.tap" }, - { "tar", "application/x-tar" }, - { "tcap", "application/vnd.3gpp2.tcap" }, - { "tcl", "application/x-tcl" }, - { "td", "application/urc-targetdesc+xml" }, - { "teacher", "application/vnd.smart.teacher" }, - { "tei", "application/tei+xml" }, - { "teicorpus", "application/tei+xml" }, - { "tex", "application/x-tex" }, - { "texi", "application/x-texinfo" }, - { "texinfo", "application/x-texinfo" }, - { "text", "text/plain" }, - { "tfi", "application/thraud+xml" }, - { "tfm", "application/x-tex-tfm" }, - { "tfx", "image/tiff-fx" }, - { "tga", "image/x-tga" }, - { "thmx", "application/vnd.ms-officetheme" }, - { "tif", "image/tiff" }, - { "tiff", "image/tiff" }, - { "tk", "application/x-tcl" }, - { "tmo", "application/vnd.tmobile-livetv" }, - { "toml", "application/toml" }, - { "torrent", "application/x-bittorrent" }, - { "tpl", "application/vnd.groove-tool-template" }, - { "tpt", "application/vnd.trid.tpt" }, - { "tr", "text/troff" }, - { "tra", "application/vnd.trueapp" }, - { "trig", "application/trig" }, - { "trm", "application/x-msterminal" }, - { "ts", "video/mp2t" }, - { "tsd", "application/timestamped-data" }, - { "tsv", "text/tab-separated-values" }, - { "ttc", "font/collection" }, - { "ttf", "font/ttf" }, - { "ttl", "text/turtle" }, - { "ttml", "application/ttml+xml" }, - { "twd", "application/vnd.simtech-mindmapper" }, - { "twds", "application/vnd.simtech-mindmapper" }, - { "txd", "application/vnd.genomatix.tuxedo" }, - { "txf", "application/vnd.mobius.txf" }, - { "txt", "text/plain" }, - { "u32", "application/x-authorware-bin" }, - { "u3d", "model/u3d" }, - { "u8dsn", "message/global-delivery-status" }, - { "u8hdr", "message/global-headers" }, - { "u8mdn", "message/global-disposition-notification" }, - { "u8msg", "message/global" }, - { "ubj", "application/ubjson" }, - { "udeb", "application/x-debian-package" }, - { "ufd", "application/vnd.ufdl" }, - { "ufdl", "application/vnd.ufdl" }, - { "ulx", "application/x-glulx" }, - { "umj", "application/vnd.umajin" }, - { "unityweb", "application/vnd.unity" }, - { "uo", "application/vnd.uoml+xml" }, - { "uoml", "application/vnd.uoml+xml" }, - { "uri", "text/uri-list" }, - { "uris", "text/uri-list" }, - { "urls", "text/uri-list" }, - { "usda", "model/vnd.usda" }, - { "usdz", "model/vnd.usdz+zip" }, - { "ustar", "application/x-ustar" }, - { "utz", "application/vnd.uiq.theme" }, - { "uu", "text/x-uuencode" }, - { "uva", "audio/vnd.dece.audio" }, - { "uvd", "application/vnd.dece.data" }, - { "uvf", "application/vnd.dece.data" }, - { "uvg", "image/vnd.dece.graphic" }, - { "uvh", "video/vnd.dece.hd" }, - { "uvi", "image/vnd.dece.graphic" }, - { "uvm", "video/vnd.dece.mobile" }, - { "uvp", "video/vnd.dece.pd" }, - { "uvs", "video/vnd.dece.sd" }, - { "uvt", "application/vnd.dece.ttml+xml" }, - { "uvu", "video/vnd.uvvu.mp4" }, - { "uvv", "video/vnd.dece.video" }, - { "uvva", "audio/vnd.dece.audio" }, - { "uvvd", "application/vnd.dece.data" }, - { "uvvf", "application/vnd.dece.data" }, - { "uvvg", "image/vnd.dece.graphic" }, - { "uvvh", "video/vnd.dece.hd" }, - { "uvvi", "image/vnd.dece.graphic" }, - { "uvvm", "video/vnd.dece.mobile" }, - { "uvvp", "video/vnd.dece.pd" }, - { "uvvs", "video/vnd.dece.sd" }, - { "uvvt", "application/vnd.dece.ttml+xml" }, - { "uvvu", "video/vnd.uvvu.mp4" }, - { "uvvv", "video/vnd.dece.video" }, - { "uvvx", "application/vnd.dece.unspecified" }, - { "uvvz", "application/vnd.dece.zip" }, - { "uvx", "application/vnd.dece.unspecified" }, - { "uvz", "application/vnd.dece.zip" }, - { "vbox", "application/x-virtualbox-vbox" }, - { "vbox-extpack", "application/x-virtualbox-vbox-extpack" }, - { "vcard", "text/vcard" }, - { "vcd", "application/x-cdlink" }, - { "vcf", "text/x-vcard" }, - { "vcg", "application/vnd.groove-vcard" }, - { "vcs", "text/x-vcalendar" }, - { "vcx", "application/vnd.vcx" }, - { "vdi", "application/x-virtualbox-vdi" }, - { "vds", "model/vnd.sap.vds" }, - { "vdx", "application/vnd.ms-visio.viewer" }, - { "vhd", "application/x-virtualbox-vhd" }, - { "vis", "application/vnd.visionary" }, - { "viv", "video/vnd.vivo" }, - { "vmdk", "application/x-virtualbox-vmdk" }, - { "vob", "video/x-ms-vob" }, - { "vor", "application/vnd.stardivision.writer" }, - { "vox", "application/x-authorware-bin" }, - { "vrml", "model/vrml" }, - { "vsd", "application/vnd.visio" }, - { "vsdx", "application/vnd.visio" }, - { "vsf", "application/vnd.vsf" }, - { "vss", "application/vnd.visio" }, - { "vst", "application/vnd.visio" }, - { "vsw", "application/vnd.visio" }, - { "vtf", "image/vnd.valve.source.texture" }, - { "vtt", "text/vtt" }, - { "vtu", "model/vnd.vtu" }, - { "vtx", "application/vnd.visio" }, - { "vxml", "application/voicexml+xml" }, - { "w3d", "application/x-director" }, - { "wad", "application/x-doom" }, - { "wadl", "application/vnd.sun.wadl+xml" }, - { "war", "application/java-archive" }, - { "wasm", "application/wasm" }, - { "wav", "audio/wav" }, - { "wav", "audio/wave" }, - { "wav", "audio/x-wav" }, - { "wax", "audio/x-ms-wax" }, - { "wbmp", "image/vnd.wap.wbmp" }, - { "wbs", "application/vnd.criticaltools.wbs+xml" }, - { "wbxml", "application/vnd.wap.wbxml" }, - { "wcm", "application/vnd.ms-works" }, - { "wdb", "application/vnd.ms-works" }, - { "wdp", "image/vnd.ms-photo" }, - { "weba", "audio/webm" }, - { "webapp", "application/x-web-app-manifest+json" }, - { "webm", "video/webm" }, - { "webmanifest", "application/manifest+json" }, - { "webp", "image/webp" }, - { "wg", "application/vnd.pmi.widget" }, - { "wgsl", "text/wgsl" }, - { "wgt", "application/widget" }, - { "wif", "application/watcherinfo+xml" }, - { "wks", "application/vnd.ms-works" }, - { "wm", "video/x-ms-wm" }, - { "wma", "audio/x-ms-wma" }, - { "wmd", "application/x-ms-wmd" }, - { "wmf", "application/x-msmetafile" }, - { "wmf", "image/wmf" }, - { "wml", "text/vnd.wap.wml" }, - { "wmlc", "application/vnd.wap.wmlc" }, - { "wmls", "text/vnd.wap.wmlscript" }, - { "wmlsc", "application/vnd.wap.wmlscriptc" }, - { "wmv", "video/x-ms-wmv" }, - { "wmx", "video/x-ms-wmx" }, - { "wmz", "application/x-ms-wmz" }, - { "wmz", "application/x-msmetafile" }, - { "woff", "font/woff" }, - { "woff2", "font/woff2" }, - { "wpd", "application/vnd.wordperfect" }, - { "wpl", "application/vnd.ms-wpl" }, - { "wps", "application/vnd.ms-works" }, - { "wqd", "application/vnd.wqd" }, - { "wri", "application/x-mswrite" }, - { "wrl", "model/vrml" }, - { "wsc", "message/vnd.wfa.wsc" }, - { "wsdl", "application/wsdl+xml" }, - { "wspolicy", "application/wspolicy+xml" }, - { "wtb", "application/vnd.webturbo" }, - { "wvx", "video/x-ms-wvx" }, - { "x32", "application/x-authorware-bin" }, - { "x3d", "model/x3d+xml" }, - { "x3db", "model/x3d+binary" }, - { "x3db", "model/x3d+fastinfoset" }, - { "x3dbz", "model/x3d+binary" }, - { "x3dv", "model/x3d+vrml" }, - { "x3dv", "model/x3d-vrml" }, - { "x3dvz", "model/x3d+vrml" }, - { "x3dz", "model/x3d+xml" }, - { "x_b", "model/vnd.parasolid.transmit.binary" }, - { "x_t", "model/vnd.parasolid.transmit.text" }, - { "xaml", "application/xaml+xml" }, - { "xap", "application/x-silverlight-app" }, - { "xar", "application/vnd.xara" }, - { "xav", "application/xcap-att+xml" }, - { "xbap", "application/x-ms-xbap" }, - { "xbd", "application/vnd.fujixerox.docuworks.binder" }, - { "xbm", "image/x-xbitmap" }, - { "xca", "application/xcap-caps+xml" }, - { "xcs", "application/calendar+xml" }, - { "xdcf", "application/vnd.gov.sk.xmldatacontainer+xml" }, - { "xdf", "application/xcap-diff+xml" }, - { "xdm", "application/vnd.syncml.dm+xml" }, - { "xdp", "application/vnd.adobe.xdp+xml" }, - { "xdssc", "application/dssc+xml" }, - { "xdw", "application/vnd.fujixerox.docuworks" }, - { "xel", "application/xcap-el+xml" }, - { "xenc", "application/xenc+xml" }, - { "xer", "application/patch-ops-error+xml" }, - { "xfdf", "application/vnd.adobe.xfdf" }, - { "xfdf", "application/xfdf" }, - { "xfdl", "application/vnd.xfdl" }, - { "xht", "application/xhtml+xml" }, - { "xhtm", "application/vnd.pwg-xhtml-print+xml" }, - { "xhtml", "application/xhtml+xml" }, - { "xhvml", "application/xv+xml" }, - { "xif", "image/vnd.xiff" }, - { "xla", "application/vnd.ms-excel" }, - { "xlam", "application/vnd.ms-excel.addin.macroenabled.12" }, - { "xlc", "application/vnd.ms-excel" }, - { "xlf", "application/x-xliff+xml" }, - { "xlf", "application/xliff+xml" }, - { "xlm", "application/vnd.ms-excel" }, - { "xls", "application/vnd.ms-excel" }, - { "xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12" }, - { "xlsm", "application/vnd.ms-excel.sheet.macroenabled.12" }, - { "xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, - { "xlt", "application/vnd.ms-excel" }, - { "xltm", "application/vnd.ms-excel.template.macroenabled.12" }, - { "xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" }, - { "xlw", "application/vnd.ms-excel" }, - { "xm", "audio/xm" }, - { "xml", "application/xml" }, - { "xml", "text/xml" }, - { "xns", "application/xcap-ns+xml" }, - { "xo", "application/vnd.olpc-sugar" }, - { "xop", "application/xop+xml" }, - { "xpi", "application/x-xpinstall" }, - { "xpl", "application/xproc+xml" }, - { "xpm", "image/x-xpixmap" }, - { "xpr", "application/vnd.is-xpr" }, - { "xps", "application/vnd.ms-xpsdocument" }, - { "xpw", "application/vnd.intercon.formnet" }, - { "xpx", "application/vnd.intercon.formnet" }, - { "xsd", "application/xml" }, - { "xsf", "application/prs.xsf+xml" }, - { "xsl", "application/xml" }, - { "xsl", "application/xslt+xml" }, - { "xslt", "application/xslt+xml" }, - { "xsm", "application/vnd.syncml+xml" }, - { "xspf", "application/xspf+xml" }, - { "xul", "application/vnd.mozilla.xul+xml" }, - { "xvm", "application/xv+xml" }, - { "xvml", "application/xv+xml" }, - { "xwd", "image/x-xwindowdump" }, - { "xyz", "chemical/x-xyz" }, - { "xz", "application/x-xz" }, - { "yaml", "text/yaml" }, - { "yang", "application/yang" }, - { "yin", "application/yin+xml" }, - { "yml", "text/yaml" }, - { "ymp", "text/x-suse-ymp" }, - { "z1", "application/x-zmachine" }, - { "z2", "application/x-zmachine" }, - { "z3", "application/x-zmachine" }, - { "z4", "application/x-zmachine" }, - { "z5", "application/x-zmachine" }, - { "z6", "application/x-zmachine" }, - { "z7", "application/x-zmachine" }, - { "z8", "application/x-zmachine" }, - { "zaz", "application/vnd.zzazz.deck+xml" }, - { "zip", "application/x-zip-compressed" }, - { "zip", "application/zip" }, - { "zir", "application/vnd.zul" }, - { "zirz", "application/vnd.zul" }, - { "zmm", "application/vnd.handheld-entertainment+xml" } } +inline auto constexpr MimeTypeSuffixes = std::array{ + { { R"(123)", R"(application/vnd.lotus-1-2-3)" }, + { R"(1km)", R"(application/vnd.1000minds.decision-model+xml)" }, + { R"(210)", R"(model/step)" }, + { R"(3dml)", R"(text/vnd.in3d.3dml)" }, + { R"(3ds)", R"(image/x-3ds)" }, + { R"(3g2)", R"(video/3gpp2)" }, + { R"(3gp)", R"(video/3gpp)" }, + { R"(3gpp)", R"(audio/3gpp)" }, + { R"(3mf)", R"(model/3mf)" }, + { R"(7z)", R"(application/x-7z-compressed)" }, + { R"(aab)", R"(application/x-authorware-bin)" }, + { R"(aac)", R"(audio/aac)" }, + { R"(aam)", R"(application/x-authorware-map)" }, + { R"(aas)", R"(application/x-authorware-seg)" }, + { R"(abw)", R"(application/x-abiword)" }, + { R"(ac)", R"(application/pkix-attr-cert)" }, + { R"(acc)", R"(application/vnd.americandynamics.acc)" }, + { R"(ace)", R"(application/x-ace-compressed)" }, + { R"(acu)", R"(application/vnd.acucobol)" }, + { R"(acutc)", R"(application/vnd.acucorp)" }, + { R"(adp)", R"(audio/adpcm)" }, + { R"(adts)", R"(audio/aac)" }, + { R"(aep)", R"(application/vnd.audiograph)" }, + { R"(afm)", R"(application/x-font-type1)" }, + { R"(afp)", R"(application/vnd.ibm.modcap)" }, + { R"(age)", R"(application/vnd.age)" }, + { R"(ahead)", R"(application/vnd.ahead.space)" }, + { R"(ai)", R"(application/postscript)" }, + { R"(aif)", R"(audio/x-aiff)" }, + { R"(aifc)", R"(audio/x-aiff)" }, + { R"(aiff)", R"(audio/x-aiff)" }, + { R"(air)", R"(application/vnd.adobe.air-application-installer-package+zip)" }, + { R"(ait)", R"(application/vnd.dvb.ait)" }, + { R"(ami)", R"(application/vnd.amiga.ami)" }, + { R"(aml)", R"(application/automationml-aml+xml)" }, + { R"(amlx)", R"(application/automationml-amlx+zip)" }, + { R"(amr)", R"(audio/amr)" }, + { R"(apk)", R"(application/vnd.android.package-archive)" }, + { R"(apng)", R"(image/apng)" }, + { R"(appcache)", R"(text/cache-manifest)" }, + { R"(appinstaller)", R"(application/appinstaller)" }, + { R"(application)", R"(application/x-ms-application)" }, + { R"(appx)", R"(application/appx)" }, + { R"(appxbundle)", R"(application/appxbundle)" }, + { R"(apr)", R"(application/vnd.lotus-approach)" }, + { R"(arc)", R"(application/x-freearc)" }, + { R"(arj)", R"(application/x-arj)" }, + { R"(asc)", R"(application/pgp-keys)" }, + { R"(asf)", R"(video/x-ms-asf)" }, + { R"(asm)", R"(text/x-asm)" }, + { R"(aso)", R"(application/vnd.accpac.simply.aso)" }, + { R"(asx)", R"(video/x-ms-asf)" }, + { R"(atc)", R"(application/vnd.acucorp)" }, + { R"(atom)", R"(application/atom+xml)" }, + { R"(atomcat)", R"(application/atomcat+xml)" }, + { R"(atomdeleted)", R"(application/atomdeleted+xml)" }, + { R"(atomsvc)", R"(application/atomsvc+xml)" }, + { R"(atx)", R"(application/vnd.antix.game-component)" }, + { R"(au)", R"(audio/basic)" }, + { R"(avci)", R"(image/avci)" }, + { R"(avcs)", R"(image/avcs)" }, + { R"(avi)", R"(video/x-msvideo)" }, + { R"(avif)", R"(image/avif)" }, + { R"(aw)", R"(application/applixware)" }, + { R"(azf)", R"(application/vnd.airzip.filesecure.azf)" }, + { R"(azs)", R"(application/vnd.airzip.filesecure.azs)" }, + { R"(azv)", R"(image/vnd.airzip.accelerator.azv)" }, + { R"(azw)", R"(application/vnd.amazon.ebook)" }, + { R"(b16)", R"(image/vnd.pco.b16)" }, + { R"(bary)", R"(model/vnd.bary)" }, + { R"(bat)", R"(application/x-msdownload)" }, + { R"(bcpio)", R"(application/x-bcpio)" }, + { R"(bdf)", R"(application/x-font-bdf)" }, + { R"(bdm)", R"(application/vnd.syncml.dm+wbxml)" }, + { R"(bdo)", R"(application/vnd.nato.bindingdataobject+xml)" }, + { R"(bdoc)", R"(application/bdoc)" }, + { R"(bed)", R"(application/vnd.realvnc.bed)" }, + { R"(bh2)", R"(application/vnd.fujitsu.oasysprs)" }, + { R"(bin)", R"(application/octet-stream)" }, + { R"(blb)", R"(application/x-blorb)" }, + { R"(blend)", R"(application/x-blender)" }, + { R"(blorb)", R"(application/x-blorb)" }, + { R"(bmi)", R"(application/vnd.bmi)" }, + { R"(bmml)", R"(application/vnd.balsamiq.bmml+xml)" }, + { R"(bmp)", R"(image/bmp)" }, + { R"(book)", R"(application/vnd.framemaker)" }, + { R"(box)", R"(application/vnd.previewsystems.box)" }, + { R"(boz)", R"(application/x-bzip2)" }, + { R"(bpk)", R"(application/octet-stream)" }, + { R"(brush)", R"(application/vnd.procreate.brush)" }, + { R"(brushset)", R"(application/vnd.procrate.brushset)" }, + { R"(bsp)", R"(model/vnd.valve.source.compiled-map)" }, + { R"(btf)", R"(image/prs.btif)" }, + { R"(btif)", R"(image/prs.btif)" }, + { R"(buffer)", R"(application/octet-stream)" }, + { R"(bz)", R"(application/x-bzip)" }, + { R"(bz2)", R"(application/x-bzip2)" }, + { R"(c)", R"(text/x-c)" }, + { R"(c11amc)", R"(application/vnd.cluetrust.cartomobile-config)" }, + { R"(c11amz)", R"(application/vnd.cluetrust.cartomobile-config-pkg)" }, + { R"(c4d)", R"(application/vnd.clonk.c4group)" }, + { R"(c4f)", R"(application/vnd.clonk.c4group)" }, + { R"(c4g)", R"(application/vnd.clonk.c4group)" }, + { R"(c4p)", R"(application/vnd.clonk.c4group)" }, + { R"(c4u)", R"(application/vnd.clonk.c4group)" }, + { R"(cab)", R"(application/vnd.ms-cab-compressed)" }, + { R"(caf)", R"(audio/x-caf)" }, + { R"(cap)", R"(application/vnd.tcpdump.pcap)" }, + { R"(car)", R"(application/vnd.curl.car)" }, + { R"(cat)", R"(application/vnd.ms-pki.seccat)" }, + { R"(cb7)", R"(application/x-cbr)" }, + { R"(cba)", R"(application/x-cbr)" }, + { R"(cbr)", R"(application/x-cbr)" }, + { R"(cbt)", R"(application/x-cbr)" }, + { R"(cbz)", R"(application/x-cbr)" }, + { R"(cc)", R"(text/x-c)" }, + { R"(cco)", R"(application/x-cocoa)" }, + { R"(cct)", R"(application/x-director)" }, + { R"(ccxml)", R"(application/ccxml+xml)" }, + { R"(cdbcmsg)", R"(application/vnd.contact.cmsg)" }, + { R"(cdf)", R"(application/x-netcdf)" }, + { R"(cdfx)", R"(application/cdfx+xml)" }, + { R"(cdkey)", R"(application/vnd.mediastation.cdkey)" }, + { R"(cdmia)", R"(application/cdmi-capability)" }, + { R"(cdmic)", R"(application/cdmi-container)" }, + { R"(cdmid)", R"(application/cdmi-domain)" }, + { R"(cdmio)", R"(application/cdmi-object)" }, + { R"(cdmiq)", R"(application/cdmi-queue)" }, + { R"(cdx)", R"(chemical/x-cdx)" }, + { R"(cdxml)", R"(application/vnd.chemdraw+xml)" }, + { R"(cdy)", R"(application/vnd.cinderella)" }, + { R"(cer)", R"(application/pkix-cert)" }, + { R"(cfs)", R"(application/x-cfs-compressed)" }, + { R"(cgm)", R"(image/cgm)" }, + { R"(chat)", R"(application/x-chat)" }, + { R"(chm)", R"(application/vnd.ms-htmlhelp)" }, + { R"(chrt)", R"(application/vnd.kde.kchart)" }, + { R"(cif)", R"(chemical/x-cif)" }, + { R"(cii)", R"(application/vnd.anser-web-certificate-issue-initiation)" }, + { R"(cil)", R"(application/vnd.ms-artgalry)" }, + { R"(cjs)", R"(application/node)" }, + { R"(cla)", R"(application/vnd.claymore)" }, + { R"(class)", R"(application/java-vm)" }, + { R"(cld)", R"(model/vnd.cld)" }, + { R"(clkk)", R"(application/vnd.crick.clicker.keyboard)" }, + { R"(clkp)", R"(application/vnd.crick.clicker.palette)" }, + { R"(clkt)", R"(application/vnd.crick.clicker.template)" }, + { R"(clkw)", R"(application/vnd.crick.clicker.wordbank)" }, + { R"(clkx)", R"(application/vnd.crick.clicker)" }, + { R"(clp)", R"(application/x-msclip)" }, + { R"(cmc)", R"(application/vnd.cosmocaller)" }, + { R"(cmdf)", R"(chemical/x-cmdf)" }, + { R"(cml)", R"(chemical/x-cml)" }, + { R"(cmp)", R"(application/vnd.yellowriver-custom-menu)" }, + { R"(cmx)", R"(image/x-cmx)" }, + { R"(cod)", R"(application/vnd.rim.cod)" }, + { R"(coffee)", R"(text/coffeescript)" }, + { R"(com)", R"(application/x-msdownload)" }, + { R"(conf)", R"(text/plain)" }, + { R"(cpio)", R"(application/x-cpio)" }, + { R"(cpl)", R"(application/cpl+xml)" }, + { R"(cpp)", R"(text/x-c)" }, + { R"(cpt)", R"(application/mac-compactpro)" }, + { R"(crd)", R"(application/x-mscardfile)" }, + { R"(crl)", R"(application/pkix-crl)" }, + { R"(crt)", R"(application/x-x509-ca-cert)" }, + { R"(crx)", R"(application/x-chrome-extension)" }, + { R"(cryptonote)", R"(application/vnd.rig.cryptonote)" }, + { R"(csh)", R"(application/x-csh)" }, + { R"(csl)", R"(application/vnd.citationstyles.style+xml)" }, + { R"(csml)", R"(chemical/x-csml)" }, + { R"(csp)", R"(application/vnd.commonspace)" }, + { R"(css)", R"(text/css)" }, + { R"(cst)", R"(application/x-director)" }, + { R"(csv)", R"(text/csv)" }, + { R"(cu)", R"(application/cu-seeme)" }, + { R"(curl)", R"(text/vnd.curl)" }, + { R"(cwl)", R"(application/cwl)" }, + { R"(cww)", R"(application/prs.cww)" }, + { R"(cxt)", R"(application/x-director)" }, + { R"(cxx)", R"(text/x-c)" }, + { R"(dae)", R"(model/vnd.collada+xml)" }, + { R"(daf)", R"(application/vnd.mobius.daf)" }, + { R"(dart)", R"(application/vnd.dart)" }, + { R"(dataless)", R"(application/vnd.fdsn.seed)" }, + { R"(davmount)", R"(application/davmount+xml)" }, + { R"(dbf)", R"(application/vnd.dbf)" }, + { R"(dbk)", R"(application/docbook+xml)" }, + { R"(dcm)", R"(application/dicom)" }, + { R"(dcmp)", R"(application/vnd.dcmp+xml)" }, + { R"(dcr)", R"(application/x-director)" }, + { R"(dcurl)", R"(text/vnd.curl.dcurl)" }, + { R"(dd2)", R"(application/vnd.oma.dd2+xml)" }, + { R"(ddd)", R"(application/vnd.fujixerox.ddd)" }, + { R"(ddf)", R"(application/vnd.syncml.dmddf+xml)" }, + { R"(dds)", R"(image/vnd.ms-dds)" }, + { R"(deb)", R"(application/x-debian-package)" }, + { R"(def)", R"(text/plain)" }, + { R"(deploy)", R"(application/octet-stream)" }, + { R"(der)", R"(application/x-x509-ca-cert)" }, + { R"(dfac)", R"(application/vnd.dreamfactory)" }, + { R"(dgc)", R"(application/x-dgc-compressed)" }, + { R"(dib)", R"(image/bmp)" }, + { R"(dic)", R"(text/x-c)" }, + { R"(dir)", R"(application/x-director)" }, + { R"(dis)", R"(application/vnd.mobius.dis)" }, + { R"(disposition-notification)", R"(message/disposition-notification)" }, + { R"(dist)", R"(application/octet-stream)" }, + { R"(distz)", R"(application/octet-stream)" }, + { R"(djv)", R"(image/vnd.djvu)" }, + { R"(djvu)", R"(image/vnd.djvu)" }, + { R"(dll)", R"(application/x-msdownload)" }, + { R"(dmg)", R"(application/x-apple-diskimage)" }, + { R"(dmp)", R"(application/vnd.tcpdump.pcap)" }, + { R"(dms)", R"(application/octet-stream)" }, + { R"(dna)", R"(application/vnd.dna)" }, + { R"(dng)", R"(image/x-adobe-dng)" }, + { R"(doc)", R"(application/msword)" }, + { R"(docm)", R"(application/vnd.ms-word.document.macroenabled.12)" }, + { R"(docx)", R"(application/vnd.openxmlformats-officedocument.wordprocessingml.document)" }, + { R"(dot)", R"(application/msword)" }, + { R"(dotm)", R"(application/vnd.ms-word.template.macroenabled.12)" }, + { R"(dotx)", R"(application/vnd.openxmlformats-officedocument.wordprocessingml.template)" }, + { R"(dp)", R"(application/vnd.osgi.dp)" }, + { R"(dpg)", R"(application/vnd.dpgraph)" }, + { R"(dpx)", R"(image/dpx)" }, + { R"(dra)", R"(audio/vnd.dra)" }, + { R"(drle)", R"(image/dicom-rle)" }, + { R"(drm)", R"(application/vnd.procreate.dream)" }, + { R"(dsc)", R"(text/prs.lines.tag)" }, + { R"(dssc)", R"(application/dssc+der)" }, + { R"(dtb)", R"(application/x-dtbook+xml)" }, + { R"(dtd)", R"(application/xml-dtd)" }, + { R"(dts)", R"(audio/vnd.dts)" }, + { R"(dtshd)", R"(audio/vnd.dts.hd)" }, + { R"(dump)", R"(application/octet-stream)" }, + { R"(dvb)", R"(video/vnd.dvb.file)" }, + { R"(dvi)", R"(application/x-dvi)" }, + { R"(dwd)", R"(application/atsc-dwd+xml)" }, + { R"(dwf)", R"(model/vnd.dwf)" }, + { R"(dwg)", R"(image/vnd.dwg)" }, + { R"(dxf)", R"(image/vnd.dxf)" }, + { R"(dxp)", R"(application/vnd.spotfire.dxp)" }, + { R"(dxr)", R"(application/x-director)" }, + { R"(ear)", R"(application/java-archive)" }, + { R"(ecelp4800)", R"(audio/vnd.nuera.ecelp4800)" }, + { R"(ecelp7470)", R"(audio/vnd.nuera.ecelp7470)" }, + { R"(ecelp9600)", R"(audio/vnd.nuera.ecelp9600)" }, + { R"(ecma)", R"(application/ecmascript)" }, + { R"(edm)", R"(application/vnd.novadigm.edm)" }, + { R"(edx)", R"(application/vnd.novadigm.edx)" }, + { R"(efif)", R"(application/vnd.picsel)" }, + { R"(ei6)", R"(application/vnd.pg.osasli)" }, + { R"(elc)", R"(application/octet-stream)" }, + { R"(emf)", R"(image/emf)" }, + { R"(eml)", R"(message/rfc822)" }, + { R"(emma)", R"(application/emma+xml)" }, + { R"(emotionml)", R"(application/emotionml+xml)" }, + { R"(emz)", R"(application/x-msmetafile)" }, + { R"(eol)", R"(audio/vnd.digital-winds)" }, + { R"(eot)", R"(application/vnd.ms-fontobject)" }, + { R"(eps)", R"(application/postscript)" }, + { R"(epub)", R"(application/epub+zip)" }, + { R"(es3)", R"(application/vnd.eszigno3+xml)" }, + { R"(esa)", R"(application/vnd.osgi.subsystem)" }, + { R"(esf)", R"(application/vnd.epson.esf)" }, + { R"(et3)", R"(application/vnd.eszigno3+xml)" }, + { R"(etx)", R"(text/x-setext)" }, + { R"(eva)", R"(application/x-eva)" }, + { R"(evy)", R"(application/x-envoy)" }, + { R"(exe)", R"(application/x-msdownload)" }, + { R"(exi)", R"(application/exi)" }, + { R"(exp)", R"(application/express)" }, + { R"(exr)", R"(image/aces)" }, + { R"(ext)", R"(application/vnd.novadigm.ext)" }, + { R"(ez)", R"(application/andrew-inset)" }, + { R"(ez2)", R"(application/vnd.ezpix-album)" }, + { R"(ez3)", R"(application/vnd.ezpix-package)" }, + { R"(f)", R"(text/x-fortran)" }, + { R"(f4v)", R"(video/x-f4v)" }, + { R"(f77)", R"(text/x-fortran)" }, + { R"(f90)", R"(text/x-fortran)" }, + { R"(fbs)", R"(image/vnd.fastbidsheet)" }, + { R"(fbx)", R"(application/vnd.autodesk.fbx)" }, + { R"(fcdt)", R"(application/vnd.adobe.formscentral.fcdt)" }, + { R"(fcs)", R"(application/vnd.isac.fcs)" }, + { R"(fdf)", R"(application/fdf)" }, + { R"(fdt)", R"(application/fdt+xml)" }, + { R"(fe_launch)", R"(application/vnd.denovo.fcselayout-link)" }, + { R"(fg5)", R"(application/vnd.fujitsu.oasysgp)" }, + { R"(fgd)", R"(application/x-director)" }, + { R"(fh)", R"(image/x-freehand)" }, + { R"(fh4)", R"(image/x-freehand)" }, + { R"(fh5)", R"(image/x-freehand)" }, + { R"(fh7)", R"(image/x-freehand)" }, + { R"(fhc)", R"(image/x-freehand)" }, + { R"(fig)", R"(application/x-xfig)" }, + { R"(fits)", R"(image/fits)" }, + { R"(flac)", R"(audio/x-flac)" }, + { R"(fli)", R"(video/x-fli)" }, + { R"(flo)", R"(application/vnd.micrografx.flo)" }, + { R"(flv)", R"(video/x-flv)" }, + { R"(flw)", R"(application/vnd.kde.kivio)" }, + { R"(flx)", R"(text/vnd.fmi.flexstor)" }, + { R"(fly)", R"(text/vnd.fly)" }, + { R"(fm)", R"(application/vnd.framemaker)" }, + { R"(fnc)", R"(application/vnd.frogans.fnc)" }, + { R"(fo)", R"(application/vnd.software602.filler.form+xml)" }, + { R"(for)", R"(text/x-fortran)" }, + { R"(fpx)", R"(image/vnd.fpx)" }, + { R"(frame)", R"(application/vnd.framemaker)" }, + { R"(fsc)", R"(application/vnd.fsc.weblaunch)" }, + { R"(fst)", R"(image/vnd.fst)" }, + { R"(ftc)", R"(application/vnd.fluxtime.clip)" }, + { R"(fti)", R"(application/vnd.anser-web-funds-transfer-initiation)" }, + { R"(fvt)", R"(video/vnd.fvt)" }, + { R"(fxp)", R"(application/vnd.adobe.fxp)" }, + { R"(fxpl)", R"(application/vnd.adobe.fxp)" }, + { R"(fzs)", R"(application/vnd.fuzzysheet)" }, + { R"(g2w)", R"(application/vnd.geoplan)" }, + { R"(g3)", R"(image/g3fax)" }, + { R"(g3w)", R"(application/vnd.geospace)" }, + { R"(gac)", R"(application/vnd.groove-account)" }, + { R"(gam)", R"(application/x-tads)" }, + { R"(gbr)", R"(application/rpki-ghostbusters)" }, + { R"(gca)", R"(application/x-gca-compressed)" }, + { R"(gdl)", R"(model/vnd.gdl)" }, + { R"(gdoc)", R"(application/vnd.google-apps.document)" }, + { R"(gdraw)", R"(application/vnd.google-apps.drawing)" }, + { R"(ged)", R"(text/vnd.familysearch.gedcom)" }, + { R"(geo)", R"(application/vnd.dynageo)" }, + { R"(geojson)", R"(application/geo+json)" }, + { R"(gex)", R"(application/vnd.geometry-explorer)" }, + { R"(gform)", R"(application/vnd.google-apps.form)" }, + { R"(ggb)", R"(application/vnd.geogebra.file)" }, + { R"(ggs)", R"(application/vnd.geogebra.slides)" }, + { R"(ggt)", R"(application/vnd.geogebra.tool)" }, + { R"(ghf)", R"(application/vnd.groove-help)" }, + { R"(gif)", R"(image/gif)" }, + { R"(gim)", R"(application/vnd.groove-identity-message)" }, + { R"(gjam)", R"(application/vnd.google-apps.jam)" }, + { R"(glb)", R"(model/gltf-binary)" }, + { R"(gltf)", R"(model/gltf+json)" }, + { R"(gmap)", R"(application/vnd.google-apps.map)" }, + { R"(gml)", R"(application/gml+xml)" }, + { R"(gmx)", R"(application/vnd.gmx)" }, + { R"(gnumeric)", R"(application/x-gnumeric)" }, + { R"(gph)", R"(application/vnd.flographit)" }, + { R"(gpx)", R"(application/gpx+xml)" }, + { R"(gqf)", R"(application/vnd.grafeq)" }, + { R"(gqs)", R"(application/vnd.grafeq)" }, + { R"(gram)", R"(application/srgs)" }, + { R"(gramps)", R"(application/x-gramps-xml)" }, + { R"(gre)", R"(application/vnd.geometry-explorer)" }, + { R"(grv)", R"(application/vnd.groove-injector)" }, + { R"(grxml)", R"(application/srgs+xml)" }, + { R"(gscript)", R"(application/vnd.google-apps.script)" }, + { R"(gsf)", R"(application/x-font-ghostscript)" }, + { R"(gsheet)", R"(application/vnd.google-apps.spreadsheet)" }, + { R"(gsite)", R"(application/vnd.google-apps.site)" }, + { R"(gslides)", R"(application/vnd.google-apps.presentation)" }, + { R"(gtar)", R"(application/x-gtar)" }, + { R"(gtm)", R"(application/vnd.groove-tool-message)" }, + { R"(gtw)", R"(model/vnd.gtw)" }, + { R"(gv)", R"(text/vnd.graphviz)" }, + { R"(gxf)", R"(application/gxf)" }, + { R"(gxt)", R"(application/vnd.geonext)" }, + { R"(gz)", R"(application/gzip)" }, + { R"(h)", R"(text/x-c)" }, + { R"(h261)", R"(video/h261)" }, + { R"(h263)", R"(video/h263)" }, + { R"(h264)", R"(video/h264)" }, + { R"(hal)", R"(application/vnd.hal+xml)" }, + { R"(hbci)", R"(application/vnd.hbci)" }, + { R"(hbs)", R"(text/x-handlebars-template)" }, + { R"(hdd)", R"(application/x-virtualbox-hdd)" }, + { R"(hdf)", R"(application/x-hdf)" }, + { R"(heic)", R"(image/heic)" }, + { R"(heics)", R"(image/heic-sequence)" }, + { R"(heif)", R"(image/heif)" }, + { R"(heifs)", R"(image/heif-sequence)" }, + { R"(hej2)", R"(image/hej2k)" }, + { R"(held)", R"(application/atsc-held+xml)" }, + { R"(hh)", R"(text/x-c)" }, + { R"(hjson)", R"(application/hjson)" }, + { R"(hlp)", R"(application/winhlp)" }, + { R"(hpgl)", R"(application/vnd.hp-hpgl)" }, + { R"(hpid)", R"(application/vnd.hp-hpid)" }, + { R"(hps)", R"(application/vnd.hp-hps)" }, + { R"(hqx)", R"(application/mac-binhex40)" }, + { R"(htc)", R"(text/x-component)" }, + { R"(htke)", R"(application/vnd.kenameaapp)" }, + { R"(htm)", R"(text/html)" }, + { R"(html)", R"(text/html)" }, + { R"(hvd)", R"(application/vnd.yamaha.hv-dic)" }, + { R"(hvp)", R"(application/vnd.yamaha.hv-voice)" }, + { R"(hvs)", R"(application/vnd.yamaha.hv-script)" }, + { R"(i2g)", R"(application/vnd.intergeo)" }, + { R"(icc)", R"(application/vnd.iccprofile)" }, + { R"(ice)", R"(x-conference/x-cooltalk)" }, + { R"(icm)", R"(application/vnd.iccprofile)" }, + { R"(ico)", R"(image/vnd.microsoft.icon)" }, + { R"(ics)", R"(text/calendar)" }, + { R"(ief)", R"(image/ief)" }, + { R"(ifb)", R"(text/calendar)" }, + { R"(ifm)", R"(application/vnd.shana.informed.formdata)" }, + { R"(iges)", R"(model/iges)" }, + { R"(igl)", R"(application/vnd.igloader)" }, + { R"(igm)", R"(application/vnd.insors.igm)" }, + { R"(igs)", R"(model/iges)" }, + { R"(igx)", R"(application/vnd.micrografx.igx)" }, + { R"(iif)", R"(application/vnd.shana.informed.interchange)" }, + { R"(img)", R"(application/octet-stream)" }, + { R"(imp)", R"(application/vnd.accpac.simply.imp)" }, + { R"(ims)", R"(application/vnd.ms-ims)" }, + { R"(in)", R"(text/plain)" }, + { R"(ini)", R"(text/plain)" }, + { R"(ink)", R"(application/inkml+xml)" }, + { R"(inkml)", R"(application/inkml+xml)" }, + { R"(install)", R"(application/x-install-instructions)" }, + { R"(iota)", R"(application/vnd.astraea-software.iota)" }, + { R"(ipfix)", R"(application/ipfix)" }, + { R"(ipk)", R"(application/vnd.shana.informed.package)" }, + { R"(ipynb)", R"(application/x-ipynb+json)" }, + { R"(irm)", R"(application/vnd.ibm.rights-management)" }, + { R"(irp)", R"(application/vnd.irepository.package+xml)" }, + { R"(iso)", R"(application/x-iso9660-image)" }, + { R"(itp)", R"(application/vnd.shana.informed.formtemplate)" }, + { R"(its)", R"(application/its+xml)" }, + { R"(ivp)", R"(application/vnd.immervision-ivp)" }, + { R"(ivu)", R"(application/vnd.immervision-ivu)" }, + { R"(jad)", R"(text/vnd.sun.j2me.app-descriptor)" }, + { R"(jade)", R"(text/jade)" }, + { R"(jaii)", R"(image/jaii)" }, + { R"(jais)", R"(image/jais)" }, + { R"(jam)", R"(application/vnd.jam)" }, + { R"(jar)", R"(application/java-archive)" }, + { R"(jardiff)", R"(application/x-java-archive-diff)" }, + { R"(java)", R"(text/x-java-source)" }, + { R"(jfif)", R"(image/pjpeg)" }, + { R"(jhc)", R"(image/jphc)" }, + { R"(jisp)", R"(application/vnd.jisp)" }, + { R"(jls)", R"(image/jls)" }, + { R"(jlt)", R"(application/vnd.hp-jlyt)" }, + { R"(jng)", R"(image/x-jng)" }, + { R"(jnlp)", R"(application/x-java-jnlp-file)" }, + { R"(joda)", R"(application/vnd.joost.joda-archive)" }, + { R"(jp2)", R"(image/jp2)" }, + { R"(jpe)", R"(image/jpeg)" }, + { R"(jpeg)", R"(image/jpeg)" }, + { R"(jpf)", R"(image/jpx)" }, + { R"(jpg)", R"(image/jpeg)" }, + { R"(jpg2)", R"(image/jp2)" }, + { R"(jpgm)", R"(image/jpm)" }, + { R"(jpgv)", R"(video/jpeg)" }, + { R"(jph)", R"(image/jph)" }, + { R"(jpm)", R"(image/jpm)" }, + { R"(jpx)", R"(image/jpx)" }, + { R"(js)", R"(text/javascript)" }, + { R"(json)", R"(application/json)" }, + { R"(json5)", R"(application/json5)" }, + { R"(jsonld)", R"(application/ld+json)" }, + { R"(jsonml)", R"(application/jsonml+json)" }, + { R"(jsx)", R"(text/jsx)" }, + { R"(jt)", R"(model/jt)" }, + { R"(jxl)", R"(image/jxl)" }, + { R"(jxr)", R"(image/jxr)" }, + { R"(jxra)", R"(image/jxra)" }, + { R"(jxrs)", R"(image/jxrs)" }, + { R"(jxs)", R"(image/jxs)" }, + { R"(jxsc)", R"(image/jxsc)" }, + { R"(jxsi)", R"(image/jxsi)" }, + { R"(jxss)", R"(image/jxss)" }, + { R"(kar)", R"(audio/midi)" }, + { R"(karbon)", R"(application/vnd.kde.karbon)" }, + { R"(kdbx)", R"(application/x-keepass2)" }, + { R"(key)", R"(application/vnd.apple.keynote)" }, + { R"(kfo)", R"(application/vnd.kde.kformula)" }, + { R"(kia)", R"(application/vnd.kidspiration)" }, + { R"(kml)", R"(application/vnd.google-earth.kml+xml)" }, + { R"(kmz)", R"(application/vnd.google-earth.kmz)" }, + { R"(kne)", R"(application/vnd.kinar)" }, + { R"(knp)", R"(application/vnd.kinar)" }, + { R"(kon)", R"(application/vnd.kde.kontour)" }, + { R"(kpr)", R"(application/vnd.kde.kpresenter)" }, + { R"(kpt)", R"(application/vnd.kde.kpresenter)" }, + { R"(kpxx)", R"(application/vnd.ds-keypoint)" }, + { R"(ksp)", R"(application/vnd.kde.kspread)" }, + { R"(ktr)", R"(application/vnd.kahootz)" }, + { R"(ktx)", R"(image/ktx)" }, + { R"(ktx2)", R"(image/ktx2)" }, + { R"(ktz)", R"(application/vnd.kahootz)" }, + { R"(kwd)", R"(application/vnd.kde.kword)" }, + { R"(kwt)", R"(application/vnd.kde.kword)" }, + { R"(lasxml)", R"(application/vnd.las.las+xml)" }, + { R"(latex)", R"(application/x-latex)" }, + { R"(lbd)", R"(application/vnd.llamagraphics.life-balance.desktop)" }, + { R"(lbe)", R"(application/vnd.llamagraphics.life-balance.exchange+xml)" }, + { R"(les)", R"(application/vnd.hhe.lesson-player)" }, + { R"(less)", R"(text/less)" }, + { R"(lgr)", R"(application/lgr+xml)" }, + { R"(lha)", R"(application/x-lzh-compressed)" }, + { R"(link66)", R"(application/vnd.route66.link66+xml)" }, + { R"(list)", R"(text/plain)" }, + { R"(list3820)", R"(application/vnd.ibm.modcap)" }, + { R"(listafp)", R"(application/vnd.ibm.modcap)" }, + { R"(litcoffee)", R"(text/coffeescript)" }, + { R"(lnk)", R"(application/x-ms-shortcut)" }, + { R"(log)", R"(text/plain)" }, + { R"(lostxml)", R"(application/lost+xml)" }, + { R"(lottie)", R"(application/zip+dotlottie)" }, + { R"(lrf)", R"(application/octet-stream)" }, + { R"(lrm)", R"(application/vnd.ms-lrm)" }, + { R"(ltf)", R"(application/vnd.frogans.ltf)" }, + { R"(lua)", R"(text/x-lua)" }, + { R"(luac)", R"(application/x-lua-bytecode)" }, + { R"(lvp)", R"(audio/vnd.lucent.voice)" }, + { R"(lwp)", R"(application/vnd.lotus-wordpro)" }, + { R"(lzh)", R"(application/x-lzh-compressed)" }, + { R"(m13)", R"(application/x-msmediaview)" }, + { R"(m14)", R"(application/x-msmediaview)" }, + { R"(m1v)", R"(video/mpeg)" }, + { R"(m21)", R"(application/mp21)" }, + { R"(m2a)", R"(audio/mpeg)" }, + { R"(m2t)", R"(video/mp2t)" }, + { R"(m2ts)", R"(video/mp2t)" }, + { R"(m2v)", R"(video/mpeg)" }, + { R"(m3a)", R"(audio/mpeg)" }, + { R"(m3u)", R"(audio/x-mpegurl)" }, + { R"(m3u8)", R"(application/vnd.apple.mpegurl)" }, + { R"(m4a)", R"(audio/mp4)" }, + { R"(m4b)", R"(audio/mp4)" }, + { R"(m4p)", R"(application/mp4)" }, + { R"(m4s)", R"(video/iso.segment)" }, + { R"(m4u)", R"(video/vnd.mpegurl)" }, + { R"(m4v)", R"(video/x-m4v)" }, + { R"(ma)", R"(application/mathematica)" }, + { R"(mads)", R"(application/mads+xml)" }, + { R"(maei)", R"(application/mmt-aei+xml)" }, + { R"(mag)", R"(application/vnd.ecowin.chart)" }, + { R"(maker)", R"(application/vnd.framemaker)" }, + { R"(man)", R"(text/troff)" }, + { R"(manifest)", R"(text/cache-manifest)" }, + { R"(map)", R"(application/json)" }, + { R"(mar)", R"(application/octet-stream)" }, + { R"(markdown)", R"(text/markdown)" }, + { R"(mathml)", R"(application/mathml+xml)" }, + { R"(mb)", R"(application/mathematica)" }, + { R"(mbk)", R"(application/vnd.mobius.mbk)" }, + { R"(mbox)", R"(application/mbox)" }, + { R"(mc1)", R"(application/vnd.medcalcdata)" }, + { R"(mcd)", R"(application/vnd.mcd)" }, + { R"(mcurl)", R"(text/vnd.curl.mcurl)" }, + { R"(md)", R"(text/markdown)" }, + { R"(mdb)", R"(application/x-msaccess)" }, + { R"(mdi)", R"(image/vnd.ms-modi)" }, + { R"(mdx)", R"(text/mdx)" }, + { R"(me)", R"(text/troff)" }, + { R"(mesh)", R"(model/mesh)" }, + { R"(meta4)", R"(application/metalink4+xml)" }, + { R"(metalink)", R"(application/metalink+xml)" }, + { R"(mets)", R"(application/mets+xml)" }, + { R"(mfm)", R"(application/vnd.mfmp)" }, + { R"(mft)", R"(application/rpki-manifest)" }, + { R"(mgp)", R"(application/vnd.osgeo.mapguide.package)" }, + { R"(mgz)", R"(application/vnd.proteus.magazine)" }, + { R"(mht)", R"(message/rfc822)" }, + { R"(mhtml)", R"(message/rfc822)" }, + { R"(mid)", R"(audio/midi)" }, + { R"(midi)", R"(audio/midi)" }, + { R"(mie)", R"(application/x-mie)" }, + { R"(mif)", R"(application/vnd.mif)" }, + { R"(mime)", R"(message/rfc822)" }, + { R"(mj2)", R"(video/mj2)" }, + { R"(mjp2)", R"(video/mj2)" }, + { R"(mjs)", R"(text/javascript)" }, + { R"(mk3d)", R"(video/x-matroska)" }, + { R"(mka)", R"(audio/x-matroska)" }, + { R"(mkd)", R"(text/x-markdown)" }, + { R"(mks)", R"(video/x-matroska)" }, + { R"(mkv)", R"(video/x-matroska)" }, + { R"(mlp)", R"(application/vnd.dolby.mlp)" }, + { R"(mmd)", R"(application/vnd.chipnuts.karaoke-mmd)" }, + { R"(mmf)", R"(application/vnd.smaf)" }, + { R"(mml)", R"(text/mathml)" }, + { R"(mmr)", R"(image/vnd.fujixerox.edmics-mmr)" }, + { R"(mng)", R"(video/x-mng)" }, + { R"(mny)", R"(application/x-msmoney)" }, + { R"(mobi)", R"(application/x-mobipocket-ebook)" }, + { R"(mods)", R"(application/mods+xml)" }, + { R"(mov)", R"(video/quicktime)" }, + { R"(movie)", R"(video/x-sgi-movie)" }, + { R"(mp2)", R"(audio/mpeg)" }, + { R"(mp21)", R"(application/mp21)" }, + { R"(mp2a)", R"(audio/mpeg)" }, + { R"(mp3)", R"(audio/mpeg)" }, + { R"(mp4)", R"(application/mp4)" }, + { R"(mp4a)", R"(audio/mp4)" }, + { R"(mp4s)", R"(application/mp4)" }, + { R"(mp4v)", R"(video/mp4)" }, + { R"(mpc)", R"(application/vnd.mophun.certificate)" }, + { R"(mpd)", R"(application/dash+xml)" }, + { R"(mpe)", R"(video/mpeg)" }, + { R"(mpeg)", R"(video/mpeg)" }, + { R"(mpf)", R"(application/media-policy-dataset+xml)" }, + { R"(mpg)", R"(video/mpeg)" }, + { R"(mpg4)", R"(application/mp4)" }, + { R"(mpga)", R"(audio/mpeg)" }, + { R"(mpkg)", R"(application/vnd.apple.installer+xml)" }, + { R"(mpm)", R"(application/vnd.blueice.multipass)" }, + { R"(mpn)", R"(application/vnd.mophun.application)" }, + { R"(mpp)", R"(application/dash-patch+xml)" }, + { R"(mpt)", R"(application/vnd.ms-project)" }, + { R"(mpy)", R"(application/vnd.ibm.minipay)" }, + { R"(mqy)", R"(application/vnd.mobius.mqy)" }, + { R"(mrc)", R"(application/marc)" }, + { R"(mrcx)", R"(application/marcxml+xml)" }, + { R"(ms)", R"(text/troff)" }, + { R"(mscml)", R"(application/mediaservercontrol+xml)" }, + { R"(mseed)", R"(application/vnd.fdsn.mseed)" }, + { R"(mseq)", R"(application/vnd.mseq)" }, + { R"(msf)", R"(application/vnd.epson.msf)" }, + { R"(msg)", R"(application/vnd.ms-outlook)" }, + { R"(msh)", R"(model/mesh)" }, + { R"(msi)", R"(application/x-msdownload)" }, + { R"(msix)", R"(application/msix)" }, + { R"(msixbundle)", R"(application/msixbundle)" }, + { R"(msl)", R"(application/vnd.mobius.msl)" }, + { R"(msm)", R"(application/octet-stream)" }, + { R"(msp)", R"(application/octet-stream)" }, + { R"(msty)", R"(application/vnd.muvee.style)" }, + { R"(mtl)", R"(model/mtl)" }, + { R"(mts)", R"(model/vnd.mts)" }, + { R"(mus)", R"(application/vnd.musician)" }, + { R"(musd)", R"(application/mmt-usd+xml)" }, + { R"(musicxml)", R"(application/vnd.recordare.musicxml+xml)" }, + { R"(mvb)", R"(application/x-msmediaview)" }, + { R"(mvt)", R"(application/vnd.mapbox-vector-tile)" }, + { R"(mwf)", R"(application/vnd.mfer)" }, + { R"(mxf)", R"(application/mxf)" }, + { R"(mxl)", R"(application/vnd.recordare.musicxml)" }, + { R"(mxmf)", R"(audio/mobile-xmf)" }, + { R"(mxml)", R"(application/xv+xml)" }, + { R"(mxs)", R"(application/vnd.triscape.mxs)" }, + { R"(mxu)", R"(video/vnd.mpegurl)" }, + { R"(n-gage)", R"(application/vnd.nokia.n-gage.symbian.install)" }, + { R"(n3)", R"(text/n3)" }, + { R"(nb)", R"(application/mathematica)" }, + { R"(nbp)", R"(application/vnd.wolfram.player)" }, + { R"(nc)", R"(application/x-netcdf)" }, + { R"(ncx)", R"(application/x-dtbncx+xml)" }, + { R"(nfo)", R"(text/x-nfo)" }, + { R"(ngdat)", R"(application/vnd.nokia.n-gage.data)" }, + { R"(nitf)", R"(application/vnd.nitf)" }, + { R"(nlu)", R"(application/vnd.neurolanguage.nlu)" }, + { R"(nml)", R"(application/vnd.enliven)" }, + { R"(nnd)", R"(application/vnd.noblenet-directory)" }, + { R"(nns)", R"(application/vnd.noblenet-sealer)" }, + { R"(nnw)", R"(application/vnd.noblenet-web)" }, + { R"(npx)", R"(image/vnd.net-fpx)" }, + { R"(nq)", R"(application/n-quads)" }, + { R"(nsc)", R"(application/x-conference)" }, + { R"(nsf)", R"(application/vnd.lotus-notes)" }, + { R"(nt)", R"(application/n-triples)" }, + { R"(ntf)", R"(application/vnd.nitf)" }, + { R"(numbers)", R"(application/vnd.apple.numbers)" }, + { R"(nzb)", R"(application/x-nzb)" }, + { R"(oa2)", R"(application/vnd.fujitsu.oasys2)" }, + { R"(oa3)", R"(application/vnd.fujitsu.oasys3)" }, + { R"(oas)", R"(application/vnd.fujitsu.oasys)" }, + { R"(obd)", R"(application/x-msbinder)" }, + { R"(obgx)", R"(application/vnd.openblox.game+xml)" }, + { R"(obj)", R"(model/obj)" }, + { R"(oda)", R"(application/oda)" }, + { R"(odb)", R"(application/vnd.oasis.opendocument.database)" }, + { R"(odc)", R"(application/vnd.oasis.opendocument.chart)" }, + { R"(odf)", R"(application/vnd.oasis.opendocument.formula)" }, + { R"(odft)", R"(application/vnd.oasis.opendocument.formula-template)" }, + { R"(odg)", R"(application/vnd.oasis.opendocument.graphics)" }, + { R"(odi)", R"(application/vnd.oasis.opendocument.image)" }, + { R"(odm)", R"(application/vnd.oasis.opendocument.text-master)" }, + { R"(odp)", R"(application/vnd.oasis.opendocument.presentation)" }, + { R"(ods)", R"(application/vnd.oasis.opendocument.spreadsheet)" }, + { R"(odt)", R"(application/vnd.oasis.opendocument.text)" }, + { R"(oga)", R"(audio/ogg)" }, + { R"(ogex)", R"(model/vnd.opengex)" }, + { R"(ogg)", R"(audio/ogg)" }, + { R"(ogv)", R"(video/ogg)" }, + { R"(ogx)", R"(application/ogg)" }, + { R"(omdoc)", R"(application/omdoc+xml)" }, + { R"(one)", R"(application/onenote)" }, + { R"(onea)", R"(application/onenote)" }, + { R"(onepkg)", R"(application/onenote)" }, + { R"(onetmp)", R"(application/onenote)" }, + { R"(onetoc)", R"(application/onenote)" }, + { R"(onetoc2)", R"(application/onenote)" }, + { R"(opf)", R"(application/oebps-package+xml)" }, + { R"(opml)", R"(text/x-opml)" }, + { R"(oprc)", R"(application/vnd.palm)" }, + { R"(opus)", R"(audio/ogg)" }, + { R"(org)", R"(application/vnd.lotus-organizer)" }, + { R"(osf)", R"(application/vnd.yamaha.openscoreformat)" }, + { R"(osfpvg)", R"(application/vnd.yamaha.openscoreformat.osfpvg+xml)" }, + { R"(osm)", R"(application/vnd.openstreetmap.data+xml)" }, + { R"(otc)", R"(application/vnd.oasis.opendocument.chart-template)" }, + { R"(otf)", R"(font/otf)" }, + { R"(otg)", R"(application/vnd.oasis.opendocument.graphics-template)" }, + { R"(oth)", R"(application/vnd.oasis.opendocument.text-web)" }, + { R"(oti)", R"(application/vnd.oasis.opendocument.image-template)" }, + { R"(otp)", R"(application/vnd.oasis.opendocument.presentation-template)" }, + { R"(ots)", R"(application/vnd.oasis.opendocument.spreadsheet-template)" }, + { R"(ott)", R"(application/vnd.oasis.opendocument.text-template)" }, + { R"(ova)", R"(application/x-virtualbox-ova)" }, + { R"(ovf)", R"(application/x-virtualbox-ovf)" }, + { R"(owl)", R"(application/rdf+xml)" }, + { R"(oxps)", R"(application/oxps)" }, + { R"(oxt)", R"(application/vnd.openofficeorg.extension)" }, + { R"(p)", R"(text/x-pascal)" }, + { R"(p10)", R"(application/pkcs10)" }, + { R"(p12)", R"(application/x-pkcs12)" }, + { R"(p21)", R"(model/step)" }, + { R"(p7b)", R"(application/x-pkcs7-certificates)" }, + { R"(p7c)", R"(application/pkcs7-mime)" }, + { R"(p7m)", R"(application/pkcs7-mime)" }, + { R"(p7r)", R"(application/x-pkcs7-certreqresp)" }, + { R"(p7s)", R"(application/pkcs7-signature)" }, + { R"(p8)", R"(application/pkcs8)" }, + { R"(pac)", R"(application/x-ns-proxy-autoconfig)" }, + { R"(pages)", R"(application/vnd.apple.pages)" }, + { R"(pas)", R"(text/x-pascal)" }, + { R"(paw)", R"(application/vnd.pawaafile)" }, + { R"(pbd)", R"(application/vnd.powerbuilder6)" }, + { R"(pbm)", R"(image/x-portable-bitmap)" }, + { R"(pcap)", R"(application/vnd.tcpdump.pcap)" }, + { R"(pcf)", R"(application/x-font-pcf)" }, + { R"(pcl)", R"(application/vnd.hp-pcl)" }, + { R"(pclxl)", R"(application/vnd.hp-pclxl)" }, + { R"(pct)", R"(image/x-pict)" }, + { R"(pcurl)", R"(application/vnd.curl.pcurl)" }, + { R"(pcx)", R"(image/vnd.zbrush.pcx)" }, + { R"(pdb)", R"(application/vnd.palm)" }, + { R"(pde)", R"(text/x-processing)" }, + { R"(pdf)", R"(application/pdf)" }, + { R"(pem)", R"(application/x-x509-ca-cert)" }, + { R"(pfa)", R"(application/x-font-type1)" }, + { R"(pfb)", R"(application/x-font-type1)" }, + { R"(pfm)", R"(application/x-font-type1)" }, + { R"(pfr)", R"(application/font-tdpfr)" }, + { R"(pfx)", R"(application/x-pkcs12)" }, + { R"(pgm)", R"(image/x-portable-graymap)" }, + { R"(pgn)", R"(application/x-chess-pgn)" }, + { R"(pgp)", R"(application/pgp-encrypted)" }, + { R"(php)", R"(application/x-httpd-php)" }, + { R"(pic)", R"(image/x-pict)" }, + { R"(pkg)", R"(application/octet-stream)" }, + { R"(pki)", R"(application/pkixcmp)" }, + { R"(pkipath)", R"(application/pkix-pkipath)" }, + { R"(pkpass)", R"(application/vnd.apple.pkpass)" }, + { R"(pl)", R"(application/x-perl)" }, + { R"(plb)", R"(application/vnd.3gpp.pic-bw-large)" }, + { R"(plc)", R"(application/vnd.mobius.plc)" }, + { R"(plf)", R"(application/vnd.pocketlearn)" }, + { R"(pls)", R"(application/pls+xml)" }, + { R"(pm)", R"(application/x-perl)" }, + { R"(pml)", R"(application/vnd.ctc-posml)" }, + { R"(png)", R"(image/png)" }, + { R"(pnm)", R"(image/x-portable-anymap)" }, + { R"(portpkg)", R"(application/vnd.macports.portpkg)" }, + { R"(pot)", R"(application/vnd.ms-powerpoint)" }, + { R"(potm)", R"(application/vnd.ms-powerpoint.template.macroenabled.12)" }, + { R"(potx)", R"(application/vnd.openxmlformats-officedocument.presentationml.template)" }, + { R"(ppam)", R"(application/vnd.ms-powerpoint.addin.macroenabled.12)" }, + { R"(ppd)", R"(application/vnd.cups-ppd)" }, + { R"(ppm)", R"(image/x-portable-pixmap)" }, + { R"(pps)", R"(application/vnd.ms-powerpoint)" }, + { R"(ppsm)", R"(application/vnd.ms-powerpoint.slideshow.macroenabled.12)" }, + { R"(ppsx)", R"(application/vnd.openxmlformats-officedocument.presentationml.slideshow)" }, + { R"(ppt)", R"(application/vnd.ms-powerpoint)" }, + { R"(pptm)", R"(application/vnd.ms-powerpoint.presentation.macroenabled.12)" }, + { R"(pptx)", R"(application/vnd.openxmlformats-officedocument.presentationml.presentation)" }, + { R"(pqa)", R"(application/vnd.palm)" }, + { R"(prc)", R"(model/prc)" }, + { R"(pre)", R"(application/vnd.lotus-freelance)" }, + { R"(prf)", R"(application/pics-rules)" }, + { R"(provx)", R"(application/provenance+xml)" }, + { R"(ps)", R"(application/postscript)" }, + { R"(psb)", R"(application/vnd.3gpp.pic-bw-small)" }, + { R"(psd)", R"(image/vnd.adobe.photoshop)" }, + { R"(psf)", R"(application/x-font-linux-psf)" }, + { R"(pskcxml)", R"(application/pskc+xml)" }, + { R"(pti)", R"(image/prs.pti)" }, + { R"(ptid)", R"(application/vnd.pvi.ptid1)" }, + { R"(pub)", R"(application/x-mspublisher)" }, + { R"(pvb)", R"(application/vnd.3gpp.pic-bw-var)" }, + { R"(pwn)", R"(application/vnd.3m.post-it-notes)" }, + { R"(pya)", R"(audio/vnd.ms-playready.media.pya)" }, + { R"(pyo)", R"(model/vnd.pytha.pyox)" }, + { R"(pyox)", R"(model/vnd.pytha.pyox)" }, + { R"(pyv)", R"(video/vnd.ms-playready.media.pyv)" }, + { R"(qam)", R"(application/vnd.epson.quickanime)" }, + { R"(qbo)", R"(application/vnd.intu.qbo)" }, + { R"(qfx)", R"(application/vnd.intu.qfx)" }, + { R"(qps)", R"(application/vnd.publishare-delta-tree)" }, + { R"(qt)", R"(video/quicktime)" }, + { R"(qwd)", R"(application/vnd.quark.quarkxpress)" }, + { R"(qwt)", R"(application/vnd.quark.quarkxpress)" }, + { R"(qxb)", R"(application/vnd.quark.quarkxpress)" }, + { R"(qxd)", R"(application/vnd.quark.quarkxpress)" }, + { R"(qxl)", R"(application/vnd.quark.quarkxpress)" }, + { R"(qxt)", R"(application/vnd.quark.quarkxpress)" }, + { R"(ra)", R"(audio/x-pn-realaudio)" }, + { R"(ram)", R"(audio/x-pn-realaudio)" }, + { R"(raml)", R"(application/raml+yaml)" }, + { R"(rapd)", R"(application/route-apd+xml)" }, + { R"(rar)", R"(application/vnd.rar)" }, + { R"(ras)", R"(image/x-cmu-raster)" }, + { R"(rcprofile)", R"(application/vnd.ipunplugged.rcprofile)" }, + { R"(rdf)", R"(application/rdf+xml)" }, + { R"(rdz)", R"(application/vnd.data-vision.rdz)" }, + { R"(relo)", R"(application/p2p-overlay+xml)" }, + { R"(rep)", R"(application/vnd.businessobjects)" }, + { R"(res)", R"(application/x-dtbresource+xml)" }, + { R"(rgb)", R"(image/x-rgb)" }, + { R"(rif)", R"(application/reginfo+xml)" }, + { R"(rip)", R"(audio/vnd.rip)" }, + { R"(ris)", R"(application/x-research-info-systems)" }, + { R"(rl)", R"(application/resource-lists+xml)" }, + { R"(rlc)", R"(image/vnd.fujixerox.edmics-rlc)" }, + { R"(rld)", R"(application/resource-lists-diff+xml)" }, + { R"(rm)", R"(application/vnd.rn-realmedia)" }, + { R"(rmi)", R"(audio/midi)" }, + { R"(rmp)", R"(audio/x-pn-realaudio-plugin)" }, + { R"(rms)", R"(application/vnd.jcp.javame.midlet-rms)" }, + { R"(rmvb)", R"(application/vnd.rn-realmedia-vbr)" }, + { R"(rnc)", R"(application/relax-ng-compact-syntax)" }, + { R"(rng)", R"(application/xml)" }, + { R"(roa)", R"(application/rpki-roa)" }, + { R"(roff)", R"(text/troff)" }, + { R"(rp9)", R"(application/vnd.cloanto.rp9)" }, + { R"(rpm)", R"(application/x-redhat-package-manager)" }, + { R"(rpss)", R"(application/vnd.nokia.radio-presets)" }, + { R"(rpst)", R"(application/vnd.nokia.radio-preset)" }, + { R"(rq)", R"(application/sparql-query)" }, + { R"(rs)", R"(application/rls-services+xml)" }, + { R"(rsat)", R"(application/atsc-rsat+xml)" }, + { R"(rsd)", R"(application/rsd+xml)" }, + { R"(rsheet)", R"(application/urc-ressheet+xml)" }, + { R"(rss)", R"(application/rss+xml)" }, + { R"(rtf)", R"(application/rtf)" }, + { R"(rtx)", R"(text/richtext)" }, + { R"(run)", R"(application/x-makeself)" }, + { R"(rusd)", R"(application/route-usd+xml)" }, + { R"(s)", R"(text/x-asm)" }, + { R"(s3m)", R"(audio/s3m)" }, + { R"(saf)", R"(application/vnd.yamaha.smaf-audio)" }, + { R"(sass)", R"(text/x-sass)" }, + { R"(sbml)", R"(application/sbml+xml)" }, + { R"(sc)", R"(application/vnd.ibm.secure-container)" }, + { R"(scd)", R"(application/x-msschedule)" }, + { R"(scm)", R"(application/vnd.lotus-screencam)" }, + { R"(scq)", R"(application/scvp-cv-request)" }, + { R"(scs)", R"(application/scvp-cv-response)" }, + { R"(scss)", R"(text/x-scss)" }, + { R"(scurl)", R"(text/vnd.curl.scurl)" }, + { R"(sda)", R"(application/vnd.stardivision.draw)" }, + { R"(sdc)", R"(application/vnd.stardivision.calc)" }, + { R"(sdd)", R"(application/vnd.stardivision.impress)" }, + { R"(sdkd)", R"(application/vnd.solent.sdkm+xml)" }, + { R"(sdkm)", R"(application/vnd.solent.sdkm+xml)" }, + { R"(sdp)", R"(application/sdp)" }, + { R"(sdw)", R"(application/vnd.stardivision.writer)" }, + { R"(sea)", R"(application/x-sea)" }, + { R"(see)", R"(application/vnd.seemail)" }, + { R"(seed)", R"(application/vnd.fdsn.seed)" }, + { R"(sema)", R"(application/vnd.sema)" }, + { R"(semd)", R"(application/vnd.semd)" }, + { R"(semf)", R"(application/vnd.semf)" }, + { R"(senmlx)", R"(application/senml+xml)" }, + { R"(sensmlx)", R"(application/sensml+xml)" }, + { R"(ser)", R"(application/java-serialized-object)" }, + { R"(setpay)", R"(application/set-payment-initiation)" }, + { R"(setreg)", R"(application/set-registration-initiation)" }, + { R"(sfd-hdstx)", R"(application/vnd.hydrostatix.sof-data)" }, + { R"(sfs)", R"(application/vnd.spotfire.sfs)" }, + { R"(sfv)", R"(text/x-sfv)" }, + { R"(sgi)", R"(image/sgi)" }, + { R"(sgl)", R"(application/vnd.stardivision.writer-global)" }, + { R"(sgm)", R"(text/sgml)" }, + { R"(sgml)", R"(text/sgml)" }, + { R"(sh)", R"(application/x-sh)" }, + { R"(shar)", R"(application/x-shar)" }, + { R"(shex)", R"(text/shex)" }, + { R"(shf)", R"(application/shf+xml)" }, + { R"(shtml)", R"(text/html)" }, + { R"(sid)", R"(image/x-mrsid-image)" }, + { R"(sieve)", R"(application/sieve)" }, + { R"(sig)", R"(application/pgp-signature)" }, + { R"(sil)", R"(audio/silk)" }, + { R"(silo)", R"(model/mesh)" }, + { R"(sis)", R"(application/vnd.symbian.install)" }, + { R"(sisx)", R"(application/vnd.symbian.install)" }, + { R"(sit)", R"(application/x-stuffit)" }, + { R"(sitx)", R"(application/x-stuffitx)" }, + { R"(siv)", R"(application/sieve)" }, + { R"(skd)", R"(application/vnd.koan)" }, + { R"(skm)", R"(application/vnd.koan)" }, + { R"(skp)", R"(application/vnd.koan)" }, + { R"(skt)", R"(application/vnd.koan)" }, + { R"(sldm)", R"(application/vnd.ms-powerpoint.slide.macroenabled.12)" }, + { R"(sldx)", R"(application/vnd.openxmlformats-officedocument.presentationml.slide)" }, + { R"(slim)", R"(text/slim)" }, + { R"(slm)", R"(text/slim)" }, + { R"(sls)", R"(application/route-s-tsid+xml)" }, + { R"(slt)", R"(application/vnd.epson.salt)" }, + { R"(sm)", R"(application/vnd.stepmania.stepchart)" }, + { R"(smf)", R"(application/vnd.stardivision.math)" }, + { R"(smi)", R"(application/smil+xml)" }, + { R"(smil)", R"(application/smil+xml)" }, + { R"(smv)", R"(video/x-smv)" }, + { R"(smzip)", R"(application/vnd.stepmania.package)" }, + { R"(snd)", R"(audio/basic)" }, + { R"(snf)", R"(application/x-font-snf)" }, + { R"(so)", R"(application/octet-stream)" }, + { R"(spc)", R"(application/x-pkcs7-certificates)" }, + { R"(spdx)", R"(text/spdx)" }, + { R"(spf)", R"(application/vnd.yamaha.smaf-phrase)" }, + { R"(spl)", R"(application/x-futuresplash)" }, + { R"(spot)", R"(text/vnd.in3d.spot)" }, + { R"(spp)", R"(application/scvp-vp-response)" }, + { R"(spq)", R"(application/scvp-vp-request)" }, + { R"(spx)", R"(audio/ogg)" }, + { R"(sql)", R"(application/sql)" }, + { R"(src)", R"(application/x-wais-source)" }, + { R"(srt)", R"(application/x-subrip)" }, + { R"(sru)", R"(application/sru+xml)" }, + { R"(srx)", R"(application/sparql-results+xml)" }, + { R"(ssdl)", R"(application/ssdl+xml)" }, + { R"(sse)", R"(application/vnd.kodak-descriptor)" }, + { R"(ssf)", R"(application/vnd.epson.ssf)" }, + { R"(ssml)", R"(application/ssml+xml)" }, + { R"(st)", R"(application/vnd.sailingtracker.track)" }, + { R"(stc)", R"(application/vnd.sun.xml.calc.template)" }, + { R"(std)", R"(application/vnd.sun.xml.draw.template)" }, + { R"(step)", R"(model/step)" }, + { R"(stf)", R"(application/vnd.wt.stf)" }, + { R"(sti)", R"(application/vnd.sun.xml.impress.template)" }, + { R"(stk)", R"(application/hyperstudio)" }, + { R"(stl)", R"(model/stl)" }, + { R"(stp)", R"(model/step)" }, + { R"(stpnc)", R"(model/step)" }, + { R"(stpx)", R"(model/step+xml)" }, + { R"(stpxz)", R"(model/step-xml+zip)" }, + { R"(stpz)", R"(model/step+zip)" }, + { R"(str)", R"(application/vnd.pg.format)" }, + { R"(stw)", R"(application/vnd.sun.xml.writer.template)" }, + { R"(styl)", R"(text/stylus)" }, + { R"(stylus)", R"(text/stylus)" }, + { R"(sub)", R"(image/vnd.dvb.subtitle)" }, + { R"(sus)", R"(application/vnd.sus-calendar)" }, + { R"(susp)", R"(application/vnd.sus-calendar)" }, + { R"(sv4cpio)", R"(application/x-sv4cpio)" }, + { R"(sv4crc)", R"(application/x-sv4crc)" }, + { R"(svc)", R"(application/vnd.dvb.service)" }, + { R"(svd)", R"(application/vnd.svd)" }, + { R"(svg)", R"(image/svg+xml)" }, + { R"(svgz)", R"(image/svg+xml)" }, + { R"(swa)", R"(application/x-director)" }, + { R"(swf)", R"(application/x-shockwave-flash)" }, + { R"(swi)", R"(application/vnd.aristanetworks.swi)" }, + { R"(swidtag)", R"(application/swid+xml)" }, + { R"(sxc)", R"(application/vnd.sun.xml.calc)" }, + { R"(sxd)", R"(application/vnd.sun.xml.draw)" }, + { R"(sxg)", R"(application/vnd.sun.xml.writer.global)" }, + { R"(sxi)", R"(application/vnd.sun.xml.impress)" }, + { R"(sxm)", R"(application/vnd.sun.xml.math)" }, + { R"(sxw)", R"(application/vnd.sun.xml.writer)" }, + { R"(t)", R"(text/troff)" }, + { R"(t3)", R"(application/x-t3vm-image)" }, + { R"(t38)", R"(image/t38)" }, + { R"(taglet)", R"(application/vnd.mynfc)" }, + { R"(tao)", R"(application/vnd.tao.intent-module-archive)" }, + { R"(tap)", R"(image/vnd.tencent.tap)" }, + { R"(tar)", R"(application/x-tar)" }, + { R"(tcap)", R"(application/vnd.3gpp2.tcap)" }, + { R"(tcl)", R"(application/x-tcl)" }, + { R"(td)", R"(application/urc-targetdesc+xml)" }, + { R"(teacher)", R"(application/vnd.smart.teacher)" }, + { R"(tei)", R"(application/tei+xml)" }, + { R"(teicorpus)", R"(application/tei+xml)" }, + { R"(tex)", R"(application/x-tex)" }, + { R"(texi)", R"(application/x-texinfo)" }, + { R"(texinfo)", R"(application/x-texinfo)" }, + { R"(text)", R"(text/plain)" }, + { R"(tfi)", R"(application/thraud+xml)" }, + { R"(tfm)", R"(application/x-tex-tfm)" }, + { R"(tfx)", R"(image/tiff-fx)" }, + { R"(tga)", R"(image/x-tga)" }, + { R"(thmx)", R"(application/vnd.ms-officetheme)" }, + { R"(tif)", R"(image/tiff)" }, + { R"(tiff)", R"(image/tiff)" }, + { R"(tk)", R"(application/x-tcl)" }, + { R"(tmo)", R"(application/vnd.tmobile-livetv)" }, + { R"(toml)", R"(application/toml)" }, + { R"(torrent)", R"(application/x-bittorrent)" }, + { R"(tpl)", R"(application/vnd.groove-tool-template)" }, + { R"(tpt)", R"(application/vnd.trid.tpt)" }, + { R"(tr)", R"(text/troff)" }, + { R"(tra)", R"(application/vnd.trueapp)" }, + { R"(trig)", R"(application/trig)" }, + { R"(trm)", R"(application/x-msterminal)" }, + { R"(ts)", R"(video/mp2t)" }, + { R"(tsd)", R"(application/timestamped-data)" }, + { R"(tsv)", R"(text/tab-separated-values)" }, + { R"(ttc)", R"(font/collection)" }, + { R"(ttf)", R"(font/ttf)" }, + { R"(ttl)", R"(text/turtle)" }, + { R"(ttml)", R"(application/ttml+xml)" }, + { R"(twd)", R"(application/vnd.simtech-mindmapper)" }, + { R"(twds)", R"(application/vnd.simtech-mindmapper)" }, + { R"(txd)", R"(application/vnd.genomatix.tuxedo)" }, + { R"(txf)", R"(application/vnd.mobius.txf)" }, + { R"(txt)", R"(text/plain)" }, + { R"(u32)", R"(application/x-authorware-bin)" }, + { R"(u3d)", R"(model/u3d)" }, + { R"(u8dsn)", R"(message/global-delivery-status)" }, + { R"(u8hdr)", R"(message/global-headers)" }, + { R"(u8mdn)", R"(message/global-disposition-notification)" }, + { R"(u8msg)", R"(message/global)" }, + { R"(ubj)", R"(application/ubjson)" }, + { R"(udeb)", R"(application/x-debian-package)" }, + { R"(ufd)", R"(application/vnd.ufdl)" }, + { R"(ufdl)", R"(application/vnd.ufdl)" }, + { R"(ulx)", R"(application/x-glulx)" }, + { R"(umj)", R"(application/vnd.umajin)" }, + { R"(unityweb)", R"(application/vnd.unity)" }, + { R"(uo)", R"(application/vnd.uoml+xml)" }, + { R"(uoml)", R"(application/vnd.uoml+xml)" }, + { R"(uri)", R"(text/uri-list)" }, + { R"(uris)", R"(text/uri-list)" }, + { R"(urls)", R"(text/uri-list)" }, + { R"(usda)", R"(model/vnd.usda)" }, + { R"(usdz)", R"(model/vnd.usdz+zip)" }, + { R"(ustar)", R"(application/x-ustar)" }, + { R"(utz)", R"(application/vnd.uiq.theme)" }, + { R"(uu)", R"(text/x-uuencode)" }, + { R"(uva)", R"(audio/vnd.dece.audio)" }, + { R"(uvd)", R"(application/vnd.dece.data)" }, + { R"(uvf)", R"(application/vnd.dece.data)" }, + { R"(uvg)", R"(image/vnd.dece.graphic)" }, + { R"(uvh)", R"(video/vnd.dece.hd)" }, + { R"(uvi)", R"(image/vnd.dece.graphic)" }, + { R"(uvm)", R"(video/vnd.dece.mobile)" }, + { R"(uvp)", R"(video/vnd.dece.pd)" }, + { R"(uvs)", R"(video/vnd.dece.sd)" }, + { R"(uvt)", R"(application/vnd.dece.ttml+xml)" }, + { R"(uvu)", R"(video/vnd.uvvu.mp4)" }, + { R"(uvv)", R"(video/vnd.dece.video)" }, + { R"(uvva)", R"(audio/vnd.dece.audio)" }, + { R"(uvvd)", R"(application/vnd.dece.data)" }, + { R"(uvvf)", R"(application/vnd.dece.data)" }, + { R"(uvvg)", R"(image/vnd.dece.graphic)" }, + { R"(uvvh)", R"(video/vnd.dece.hd)" }, + { R"(uvvi)", R"(image/vnd.dece.graphic)" }, + { R"(uvvm)", R"(video/vnd.dece.mobile)" }, + { R"(uvvp)", R"(video/vnd.dece.pd)" }, + { R"(uvvs)", R"(video/vnd.dece.sd)" }, + { R"(uvvt)", R"(application/vnd.dece.ttml+xml)" }, + { R"(uvvu)", R"(video/vnd.uvvu.mp4)" }, + { R"(uvvv)", R"(video/vnd.dece.video)" }, + { R"(uvvx)", R"(application/vnd.dece.unspecified)" }, + { R"(uvvz)", R"(application/vnd.dece.zip)" }, + { R"(uvx)", R"(application/vnd.dece.unspecified)" }, + { R"(uvz)", R"(application/vnd.dece.zip)" }, + { R"(vbox)", R"(application/x-virtualbox-vbox)" }, + { R"(vbox-extpack)", R"(application/x-virtualbox-vbox-extpack)" }, + { R"(vcard)", R"(text/vcard)" }, + { R"(vcd)", R"(application/x-cdlink)" }, + { R"(vcf)", R"(text/x-vcard)" }, + { R"(vcg)", R"(application/vnd.groove-vcard)" }, + { R"(vcs)", R"(text/x-vcalendar)" }, + { R"(vcx)", R"(application/vnd.vcx)" }, + { R"(vdi)", R"(application/x-virtualbox-vdi)" }, + { R"(vds)", R"(model/vnd.sap.vds)" }, + { R"(vdx)", R"(application/vnd.ms-visio.viewer)" }, + { R"(vhd)", R"(application/x-virtualbox-vhd)" }, + { R"(vis)", R"(application/vnd.visionary)" }, + { R"(viv)", R"(video/vnd.vivo)" }, + { R"(vmdk)", R"(application/x-virtualbox-vmdk)" }, + { R"(vob)", R"(video/x-ms-vob)" }, + { R"(vor)", R"(application/vnd.stardivision.writer)" }, + { R"(vox)", R"(application/x-authorware-bin)" }, + { R"(vrml)", R"(model/vrml)" }, + { R"(vsd)", R"(application/vnd.visio)" }, + { R"(vsdx)", R"(application/vnd.visio)" }, + { R"(vsf)", R"(application/vnd.vsf)" }, + { R"(vss)", R"(application/vnd.visio)" }, + { R"(vst)", R"(application/vnd.visio)" }, + { R"(vsw)", R"(application/vnd.visio)" }, + { R"(vtf)", R"(image/vnd.valve.source.texture)" }, + { R"(vtt)", R"(text/vtt)" }, + { R"(vtu)", R"(model/vnd.vtu)" }, + { R"(vtx)", R"(application/vnd.visio)" }, + { R"(vxml)", R"(application/voicexml+xml)" }, + { R"(w3d)", R"(application/x-director)" }, + { R"(wad)", R"(application/x-doom)" }, + { R"(wadl)", R"(application/vnd.sun.wadl+xml)" }, + { R"(war)", R"(application/java-archive)" }, + { R"(wasm)", R"(application/wasm)" }, + { R"(wav)", R"(audio/x-wav)" }, + { R"(wax)", R"(audio/x-ms-wax)" }, + { R"(wbmp)", R"(image/vnd.wap.wbmp)" }, + { R"(wbs)", R"(application/vnd.criticaltools.wbs+xml)" }, + { R"(wbxml)", R"(application/vnd.wap.wbxml)" }, + { R"(wcm)", R"(application/vnd.ms-works)" }, + { R"(wdb)", R"(application/vnd.ms-works)" }, + { R"(wdp)", R"(image/vnd.ms-photo)" }, + { R"(weba)", R"(audio/webm)" }, + { R"(webapp)", R"(application/x-web-app-manifest+json)" }, + { R"(webm)", R"(video/webm)" }, + { R"(webmanifest)", R"(application/manifest+json)" }, + { R"(webp)", R"(image/webp)" }, + { R"(wg)", R"(application/vnd.pmi.widget)" }, + { R"(wgsl)", R"(text/wgsl)" }, + { R"(wgt)", R"(application/widget)" }, + { R"(wif)", R"(application/watcherinfo+xml)" }, + { R"(wks)", R"(application/vnd.ms-works)" }, + { R"(wm)", R"(video/x-ms-wm)" }, + { R"(wma)", R"(audio/x-ms-wma)" }, + { R"(wmd)", R"(application/x-ms-wmd)" }, + { R"(wmf)", R"(image/wmf)" }, + { R"(wml)", R"(text/vnd.wap.wml)" }, + { R"(wmlc)", R"(application/vnd.wap.wmlc)" }, + { R"(wmls)", R"(text/vnd.wap.wmlscript)" }, + { R"(wmlsc)", R"(application/vnd.wap.wmlscriptc)" }, + { R"(wmv)", R"(video/x-ms-wmv)" }, + { R"(wmx)", R"(video/x-ms-wmx)" }, + { R"(wmz)", R"(application/x-ms-wmz)" }, + { R"(woff)", R"(font/woff)" }, + { R"(woff2)", R"(font/woff2)" }, + { R"(wpd)", R"(application/vnd.wordperfect)" }, + { R"(wpl)", R"(application/vnd.ms-wpl)" }, + { R"(wps)", R"(application/vnd.ms-works)" }, + { R"(wqd)", R"(application/vnd.wqd)" }, + { R"(wri)", R"(application/x-mswrite)" }, + { R"(wrl)", R"(model/vrml)" }, + { R"(wsc)", R"(message/vnd.wfa.wsc)" }, + { R"(wsdl)", R"(application/wsdl+xml)" }, + { R"(wspolicy)", R"(application/wspolicy+xml)" }, + { R"(wtb)", R"(application/vnd.webturbo)" }, + { R"(wvx)", R"(video/x-ms-wvx)" }, + { R"(x_b)", R"(model/vnd.parasolid.transmit.binary)" }, + { R"(x_t)", R"(model/vnd.parasolid.transmit.text)" }, + { R"(x32)", R"(application/x-authorware-bin)" }, + { R"(x3d)", R"(model/x3d+xml)" }, + { R"(x3db)", R"(model/x3d+fastinfoset)" }, + { R"(x3dbz)", R"(model/x3d+binary)" }, + { R"(x3dv)", R"(model/x3d-vrml)" }, + { R"(x3dvz)", R"(model/x3d+vrml)" }, + { R"(x3dz)", R"(model/x3d+xml)" }, + { R"(xaml)", R"(application/xaml+xml)" }, + { R"(xap)", R"(application/x-silverlight-app)" }, + { R"(xar)", R"(application/vnd.xara)" }, + { R"(xav)", R"(application/xcap-att+xml)" }, + { R"(xbap)", R"(application/x-ms-xbap)" }, + { R"(xbd)", R"(application/vnd.fujixerox.docuworks.binder)" }, + { R"(xbm)", R"(image/x-xbitmap)" }, + { R"(xca)", R"(application/xcap-caps+xml)" }, + { R"(xcs)", R"(application/calendar+xml)" }, + { R"(xdcf)", R"(application/vnd.gov.sk.xmldatacontainer+xml)" }, + { R"(xdf)", R"(application/xcap-diff+xml)" }, + { R"(xdm)", R"(application/vnd.syncml.dm+xml)" }, + { R"(xdp)", R"(application/vnd.adobe.xdp+xml)" }, + { R"(xdssc)", R"(application/dssc+xml)" }, + { R"(xdw)", R"(application/vnd.fujixerox.docuworks)" }, + { R"(xel)", R"(application/xcap-el+xml)" }, + { R"(xenc)", R"(application/xenc+xml)" }, + { R"(xer)", R"(application/patch-ops-error+xml)" }, + { R"(xfdf)", R"(application/xfdf)" }, + { R"(xfdl)", R"(application/vnd.xfdl)" }, + { R"(xht)", R"(application/xhtml+xml)" }, + { R"(xhtm)", R"(application/vnd.pwg-xhtml-print+xml)" }, + { R"(xhtml)", R"(application/xhtml+xml)" }, + { R"(xhvml)", R"(application/xv+xml)" }, + { R"(xif)", R"(image/vnd.xiff)" }, + { R"(xla)", R"(application/vnd.ms-excel)" }, + { R"(xlam)", R"(application/vnd.ms-excel.addin.macroenabled.12)" }, + { R"(xlc)", R"(application/vnd.ms-excel)" }, + { R"(xlf)", R"(application/xliff+xml)" }, + { R"(xlm)", R"(application/vnd.ms-excel)" }, + { R"(xls)", R"(application/vnd.ms-excel)" }, + { R"(xlsb)", R"(application/vnd.ms-excel.sheet.binary.macroenabled.12)" }, + { R"(xlsm)", R"(application/vnd.ms-excel.sheet.macroenabled.12)" }, + { R"(xlsx)", R"(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)" }, + { R"(xlt)", R"(application/vnd.ms-excel)" }, + { R"(xltm)", R"(application/vnd.ms-excel.template.macroenabled.12)" }, + { R"(xltx)", R"(application/vnd.openxmlformats-officedocument.spreadsheetml.template)" }, + { R"(xlw)", R"(application/vnd.ms-excel)" }, + { R"(xm)", R"(audio/xm)" }, + { R"(xml)", R"(application/xml)" }, + { R"(xns)", R"(application/xcap-ns+xml)" }, + { R"(xo)", R"(application/vnd.olpc-sugar)" }, + { R"(xop)", R"(application/xop+xml)" }, + { R"(xpi)", R"(application/x-xpinstall)" }, + { R"(xpl)", R"(application/xproc+xml)" }, + { R"(xpm)", R"(image/x-xpixmap)" }, + { R"(xpr)", R"(application/vnd.is-xpr)" }, + { R"(xps)", R"(application/vnd.ms-xpsdocument)" }, + { R"(xpw)", R"(application/vnd.intercon.formnet)" }, + { R"(xpx)", R"(application/vnd.intercon.formnet)" }, + { R"(xsd)", R"(application/xml)" }, + { R"(xsf)", R"(application/prs.xsf+xml)" }, + { R"(xsl)", R"(application/xml)" }, + { R"(xslt)", R"(application/xslt+xml)" }, + { R"(xsm)", R"(application/vnd.syncml+xml)" }, + { R"(xspf)", R"(application/xspf+xml)" }, + { R"(xul)", R"(application/vnd.mozilla.xul+xml)" }, + { R"(xvm)", R"(application/xv+xml)" }, + { R"(xvml)", R"(application/xv+xml)" }, + { R"(xwd)", R"(image/x-xwindowdump)" }, + { R"(xyz)", R"(chemical/x-xyz)" }, + { R"(xz)", R"(application/x-xz)" }, + { R"(yaml)", R"(text/yaml)" }, + { R"(yang)", R"(application/yang)" }, + { R"(yin)", R"(application/yin+xml)" }, + { R"(yml)", R"(text/yaml)" }, + { R"(ymp)", R"(text/x-suse-ymp)" }, + { R"(z1)", R"(application/x-zmachine)" }, + { R"(z2)", R"(application/x-zmachine)" }, + { R"(z3)", R"(application/x-zmachine)" }, + { R"(z4)", R"(application/x-zmachine)" }, + { R"(z5)", R"(application/x-zmachine)" }, + { R"(z6)", R"(application/x-zmachine)" }, + { R"(z7)", R"(application/x-zmachine)" }, + { R"(z8)", R"(application/x-zmachine)" }, + { R"(zaz)", R"(application/vnd.zzazz.deck+xml)" }, + { R"(zip)", R"(application/zip)" }, + { R"(zir)", R"(application/vnd.zul)" }, + { R"(zirz)", R"(application/vnd.zul)" }, + { R"(zmm)", R"(application/vnd.handheld-entertainment+xml)" } } }; diff --git a/libtransmission/mime-types.js b/libtransmission/mime-types.js index 1ea1afb42..8de005de7 100755 --- a/libtransmission/mime-types.js +++ b/libtransmission/mime-types.js @@ -1,7 +1,8 @@ #!/usr/bin/env node +import fs from 'node:fs'; const copyright = -`// This file was generated with libtransmission/mime-types.js + `// This file was generated with libtransmission/mime-types.js // DO NOT EDIT MANUALLY // This file Copyright © Mnemosyne LLC. @@ -9,9 +10,6 @@ const copyright = // or any future license endorsed by Mnemosyne LLC. // License text can be found in the licenses/ folder.`; -const fs = require('fs'); -const https = require('https'); - // https://github.com/jshttp/mime-db // > If you're crazy enough to use this in the browser, you can just grab // > the JSON file using jsDelivr. It is recommended to replace master with @@ -21,25 +19,50 @@ const https = require('https'); // If the format changes, we'll just update this script. const url = 'https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json'; -https.get(url, (res) => { - res.setEncoding('utf8'); - const chunks = []; - res.on('data', (chunk) => chunks.push(chunk)); - res.on('end', () => { - try { - const suffixes = []; - const mime_types = JSON.parse(chunks.join('')); - for (const [mime_type, info] of Object.entries(mime_types)) { - for (const suffix of info?.extensions || []) { - suffixes.push([ suffix, mime_type ]); - } - } +async function main() { + const response = await fetch(url); + const mime_types = await response.json() - const mime_type_lines = suffixes - .map(([suffix, mime_type]) => ` { "${suffix}", "${mime_type}" }`) - .sort() - .join(',\n'); - fs.writeFileSync('mime-types.h', `${copyright} + const extensions = Object.entries(mime_types) + .reduce((acc, [mime_type, info]) => { + const { extensions, ...rest } = info; + for (const extension of extensions || []) + acc.push({ mime_type, extension, info: rest }); + return acc; + }, []) + .sort((lhs, rhs) => { + // Sort by extension + const extension_order = lhs.extension.localeCompare(rhs.extension); + if (extension_order !== 0) + return extension_order; + + // Prefer entries that has a trusted source + const lhs_has_source = lhs.info?.source ? 0 : 1; + const rhs_has_source = rhs.info?.source ? 0 : 1; + const has_source = lhs_has_source - rhs_has_source; + if (has_source !== 0) + return has_source; + + // Prefer a specific type over the generic octet stream + const lhs_is_octet = lhs.mime_type === 'application/octet-stream' ? 1 : 0; + const rhs_is_octet = rhs.mime_type === 'application/octet-stream' ? 1 : 0; + const is_octet = lhs_is_octet - rhs_is_octet; + if (is_octet !== 0) + return is_octet; + + // Prefer iana source + const lhs_is_iana = lhs.info?.source === 'iana' ? 0 : 1; + const rhs_is_iana = rhs.info?.source === 'iana' ? 0 : 1; + return lhs_is_iana - rhs_is_iana; + }) + .filter(({ extension }, pos, arr) => pos === 0 || extension !== arr[pos - 1].extension); + + const mime_type_lines = extensions + .map(({ extension, mime_type }) => ` { R"(${extension})", R"(${mime_type})" }`) + .join(',\n') + .trim(); + + fs.writeFileSync('mime-types.h', `${copyright} #pragma once @@ -52,13 +75,10 @@ struct mime_type_suffix std::string_view mime_type; }; -inline auto constexpr MimeTypeSuffixes = std::array{ - { ${mime_type_lines.trim()} } +inline auto constexpr MimeTypeSuffixes = std::array{ + { ${mime_type_lines} } }; `); - } catch (e) { - console.error(e.message); - } - }); -}); +} +main().catch(console.error);