1114 lines
40 KiB
Go
1114 lines
40 KiB
Go
package routes
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/andybalholm/brotli"
|
|
"github.com/h2non/filetype"
|
|
"github.com/h2non/filetype/types"
|
|
"sour.is/x/toolbox/log"
|
|
)
|
|
|
|
func init() {
|
|
filetype.NewMatcher(filetype.NewType("br", "application/brotli"), br)
|
|
|
|
for _, m := range defaultTypes {
|
|
if _, ok := filetype.Types[m[0]]; !ok {
|
|
filetype.NewType(m[0], m[1])
|
|
}
|
|
}
|
|
}
|
|
|
|
func br(buf []byte) bool {
|
|
var r io.Reader = bytes.NewReader(buf)
|
|
r = NewPreviewReader(r)
|
|
br := brotli.NewReader(r)
|
|
i, err := br.Read(make([]byte, 1))
|
|
log.Debugs("BR:", "i", i, "err", err)
|
|
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
if i == 0 {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func ReadMIME(in io.Reader, filename string) (string, error) {
|
|
return ReadMIMEWithSize(in, filename, 32)
|
|
}
|
|
|
|
func ReadMIMEWithSize(in io.Reader, filename string, n int) (string, error) {
|
|
mime := "application/octet-stream"
|
|
|
|
buf := make([]byte, n)
|
|
_, err := in.Read(buf)
|
|
if err != nil && err != io.EOF {
|
|
return mime, err
|
|
}
|
|
|
|
kind, err := filetype.Match(buf)
|
|
|
|
if kind == types.Unknown {
|
|
ext := strings.TrimPrefix(filepath.Ext(filename), ".")
|
|
kind = filetype.GetType(ext)
|
|
}
|
|
|
|
if kind != types.Unknown {
|
|
mime = kind.MIME.Value
|
|
}
|
|
|
|
return mime, err
|
|
}
|
|
|
|
var defaultTypes = [][2]string{
|
|
{"123", "application/vnd.lotus-1-2-3"},
|
|
{"323", "text/h323"},
|
|
{"*", "application/octet-stream"},
|
|
{"3dml", "text/vnd.in3d.3dml"},
|
|
{"3ds", "image/x-3ds"},
|
|
{"3g2", "video/3gpp2"},
|
|
{"3gp", "video/3gpp"},
|
|
{"7z", "application/x-7z-compressed"},
|
|
{"aab", "application/x-authorware-bin"},
|
|
{"aac", "audio/x-aac"},
|
|
{"aam", "application/x-authorware-map"},
|
|
{"aas", "application/x-authorware-seg"},
|
|
{"abw", "application/x-abiword"},
|
|
{"ac", "application/pkix-attr-cert"},
|
|
{"acc", "application/vnd.americandynamics.acc"},
|
|
{"ace", "application/x-ace-compressed"},
|
|
{"acu", "application/vnd.acucobol"},
|
|
{"acx", "application/internet-property-stream"},
|
|
{"adp", "audio/adpcm"},
|
|
{"aep", "application/vnd.audiograph"},
|
|
{"afm", "application/x-font-type1"},
|
|
{"afp", "application/vnd.ibm.modcap"},
|
|
{"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"},
|
|
{"apk", "application/vnd.android.package-archive"},
|
|
{"appcache", "text/cache-manifest"},
|
|
{"application", "application/x-ms-application"},
|
|
{"apr", "application/vnd.lotus-approach"},
|
|
{"arc", "application/x-freearc"},
|
|
{"asc", "application/pgp-signature"},
|
|
{"asf", "video/x-ms-asf"},
|
|
{"asm", "text/x-asm"},
|
|
{"aso", "application/vnd.accpac.simply.aso"},
|
|
{"asr", "video/x-ms-asf"},
|
|
{"asx", "video/x-ms-asf"},
|
|
{"atcacutc", "application/vnd.acucorp"},
|
|
{"atom", "application/atom+xml"},
|
|
{"atomcat", "application/atomcat+xml"},
|
|
{"atomsvc", "application/atomsvc+xml"},
|
|
{"atx", "application/vnd.antix.game-component"},
|
|
{"au", "audio/basic"},
|
|
{"avi", "video/x-msvideo"},
|
|
{"aw", "application/applixware"},
|
|
{"axs", "application/olescript"},
|
|
{"azf", "application/vnd.airzip.filesecure.azf"},
|
|
{"azs", "application/vnd.airzip.filesecure.azs"},
|
|
{"azw", "application/vnd.amazon.ebook"},
|
|
{"bas", "text/plain"},
|
|
{"bat", "application/x-msdownload"},
|
|
{"bcpio", "application/x-bcpio"},
|
|
{"bdf", "application/x-font-bdf"},
|
|
{"bdm", "application/vnd.syncml.dm+wbxml"},
|
|
{"bed", "application/vnd.realvnc.bed"},
|
|
{"bh2", "application/vnd.fujitsu.oasysprs"},
|
|
{"bin", "application/octet-stream"},
|
|
{"blb", "application/x-blorb"},
|
|
{"blorb", "application/x-blorb"},
|
|
{"bmi", "application/vnd.bmi"},
|
|
{"bmp", "image/bmp"},
|
|
{"book", "application/vnd.framemaker"},
|
|
{"box", "application/vnd.previewsystems.box"},
|
|
{"boz", "application/x-bzip2"},
|
|
{"bpk", "application/octet-stream"},
|
|
{"btif", "image/prs.btif"},
|
|
{"bz", "application/x-bzip"},
|
|
{"bz2", "application/x-bzip2"},
|
|
{"br", "application/brotli"},
|
|
{"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"},
|
|
{"cct", "application/x-director"},
|
|
{"ccxml", "application/ccxml+xml"},
|
|
{"cdbcmsg", "application/vnd.contact.cmsg"},
|
|
{"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"},
|
|
{"cla", "application/vnd.claymore"},
|
|
{"class", "application/java-vm"},
|
|
{"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"},
|
|
{"com", "application/x-msdownload"},
|
|
{"conf", "text/plain"},
|
|
{"cpio", "application/x-cpio"},
|
|
{"cpp", "text/x-c"},
|
|
{"cpt", "application/mac-compactpro"},
|
|
{"crd", "application/x-mscardfile"},
|
|
{"crl", "application/pkix-crl"},
|
|
{"crt", "application/x-x509-ca-cert"},
|
|
{"cryptonote", "application/vnd.rig.cryptonote"},
|
|
{"csh", "application/x-csh"},
|
|
{"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"},
|
|
{"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"},
|
|
{"dbk", "application/docbook+xml"},
|
|
{"dcr", "application/x-director"},
|
|
{"dcurl", "text/vnd.curl.dcurl"},
|
|
{"dd2", "application/vnd.oma.dd2+xml"},
|
|
{"ddd", "application/vnd.fujixerox.ddd"},
|
|
{"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"},
|
|
{"dic", "text/x-c"},
|
|
{"dir", "application/x-director"},
|
|
{"dis", "application/vnd.mobius.dis"},
|
|
{"dist", "application/octet-stream"},
|
|
{"distz", "application/octet-stream"},
|
|
{"djv", "image/vnd.djvu"},
|
|
{"djvu", "image/vnd.djvu"},
|
|
{"dll", "application/x-msdownload"},
|
|
{"dmg", "application/x-apple-diskimage"},
|
|
{"dmp", "application/vnd.tcpdump.pcap"},
|
|
{"dms", "application/octet-stream"},
|
|
{"dna", "application/vnd.dna"},
|
|
{"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"},
|
|
{"dra", "audio/vnd.dra"},
|
|
{"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"},
|
|
{"dwf", "model/vnd.dwf"},
|
|
{"dwg", "image/vnd.dwg"},
|
|
{"dxf", "image/vnd.dxf"},
|
|
{"dxp", "application/vnd.spotfire.dxp"},
|
|
{"dxr", "application/x-director"},
|
|
{"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"},
|
|
{"eml", "message/rfc822"},
|
|
{"emma", "application/emma+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/x-msdownload"},
|
|
{"exi", "application/exi"},
|
|
{"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"},
|
|
{"fcdt", "application/vnd.adobe.formscentral.fcdt"},
|
|
{"fcs", "application/vnd.isac.fcs"},
|
|
{"fdf", "application/vnd.fdf"},
|
|
{"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"},
|
|
{"fif", "application/fractals"},
|
|
{"fig", "application/x-xfig"},
|
|
{"flac", "audio/x-flac"},
|
|
{"fli", "video/x-fli"},
|
|
{"flo", "application/vnd.micrografx.flo"},
|
|
{"flr", "x-world/x-vrml"},
|
|
{"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"},
|
|
{"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"},
|
|
{"fxpfxpl", "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"},
|
|
{"geo", "application/vnd.dynageo"},
|
|
{"gexgre", "application/vnd.geometry-explorer"},
|
|
{"ggb", "application/vnd.geogebra.file"},
|
|
{"ggt", "application/vnd.geogebra.tool"},
|
|
{"ghf", "application/vnd.groove-help"},
|
|
{"gif", "image/gif"},
|
|
{"gim", "application/vnd.groove-identity-message"},
|
|
{"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"},
|
|
{"grv", "application/vnd.groove-injector"},
|
|
{"grxml", "application/srgs+xml"},
|
|
{"gsf", "application/x-font-ghostscript"},
|
|
{"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/x-gzip"},
|
|
{"h", "text/x-c"},
|
|
{"h261", "video/h261"},
|
|
{"h263", "video/h263"},
|
|
{"h264", "video/h264"},
|
|
{"hal", "application/vnd.hal+xml"},
|
|
{"hbci", "application/vnd.hbci"},
|
|
{"hdf", "application/x-hdf"},
|
|
{"hh", "text/x-c"},
|
|
{"hlp", "application/winhlp"},
|
|
{"hpgl", "application/vnd.hp-hpgl"},
|
|
{"hpid", "application/vnd.hp-hpid"},
|
|
{"hps", "application/vnd.hp-hps"},
|
|
{"hqx", "application/mac-binhex40"},
|
|
{"hta", "application/hta"},
|
|
{"htc", "text/x-component"},
|
|
{"htke", "application/vnd.kenameaapp"},
|
|
{"htm", "text/html"},
|
|
{"html", "text/html"},
|
|
{"htt", "text/webviewhtml"},
|
|
{"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/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"},
|
|
{"iii", "application/x-iphone"},
|
|
{"imp", "application/vnd.accpac.simply.imp"},
|
|
{"ims", "application/vnd.ms-ims"},
|
|
{"in", "text/plain"},
|
|
{"ink", "application/inkml+xml"},
|
|
{"inkml", "application/inkml+xml"},
|
|
{"ins", "application/x-internet-signup"},
|
|
{"install", "application/x-install-instructions"},
|
|
{"iota", "application/vnd.astraea-software.iota"},
|
|
{"ipfix", "application/ipfix"},
|
|
{"ipk", "application/vnd.shana.informed.package"},
|
|
{"irm", "application/vnd.ibm.rights-management"},
|
|
{"irp", "application/vnd.irepository.package+xml"},
|
|
{"iso", "application/x-iso9660-image"},
|
|
{"isp", "application/x-internet-signup"},
|
|
{"itp", "application/vnd.shana.informed.formtemplate"},
|
|
{"ivp", "application/vnd.immervision-ivp"},
|
|
{"ivu", "application/vnd.immervision-ivu"},
|
|
{"jad", "text/vnd.sun.j2me.app-descriptor"},
|
|
{"jam", "application/vnd.jam"},
|
|
{"jar", "application/java-archive"},
|
|
{"java", "text/x-java-source"},
|
|
{"jfif", "image/pipeg"},
|
|
{"jisp", "application/vnd.jisp"},
|
|
{"jlt", "application/vnd.hp-jlyt"},
|
|
{"jnlp", "application/x-java-jnlp-file"},
|
|
{"joda", "application/vnd.joost.joda-archive"},
|
|
{"jpe", "image/jpeg"},
|
|
{"jpeg", "image/jpeg"},
|
|
{"jpg", "image/jpeg"},
|
|
{"jpgm", "video/jpm"},
|
|
{"jpgv", "video/jpeg"},
|
|
{"jpm", "video/jpm"},
|
|
{"js", "application/javascript"},
|
|
{"json", "application/json"},
|
|
{"jsonml", "application/jsonml+json"},
|
|
{"kar", "audio/midi"},
|
|
{"karbon", "application/vnd.kde.karbon"},
|
|
{"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"},
|
|
{"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"},
|
|
{"lha", "application/x-lzh-compressed"},
|
|
{"link66", "application/vnd.route66.link66+xml"},
|
|
{"list", "text/plain"},
|
|
{"list3820", "application/vnd.ibm.modcap"},
|
|
{"listafp", "application/vnd.ibm.modcap"},
|
|
{"lnk", "application/x-ms-shortcut"},
|
|
{"log", "text/plain"},
|
|
{"lostxml", "application/lost+xml"},
|
|
{"lrf", "application/octet-stream"},
|
|
{"lrm", "application/vnd.ms-lrm"},
|
|
{"lsf", "video/x-la-asf"},
|
|
{"lsx", "video/x-la-asf"},
|
|
{"ltf", "application/vnd.frogans.ltf"},
|
|
{"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"},
|
|
{"m2v", "video/mpeg"},
|
|
{"m3a", "audio/mpeg"},
|
|
{"m3u", "audio/x-mpegurl"},
|
|
{"m3u8", "application/vnd.apple.mpegurl"},
|
|
{"m4a", "audio/mp4"},
|
|
{"m4u", "video/vnd.mpegurl"},
|
|
{"m4v", "video/x-m4v"},
|
|
{"ma", "application/mathematica"},
|
|
{"mads", "application/mads+xml"},
|
|
{"mag", "application/vnd.ecowin.chart"},
|
|
{"maker", "application/vnd.framemaker"},
|
|
{"man", "text/troff"},
|
|
{"mar", "application/octet-stream"},
|
|
{"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"},
|
|
{"mdb", "application/x-msaccess"},
|
|
{"mdi", "image/vnd.ms-modi"},
|
|
{"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"},
|
|
{"mk3d", "video/x-matroska"},
|
|
{"mka", "audio/x-matroska"},
|
|
{"mks", "video/x-matroska"},
|
|
{"mkv", "video/x-matroska"},
|
|
{"mlp", "application/vnd.dolby.mlp"},
|
|
{"mmd", "application/vnd.chipnuts.karaoke-mmd"},
|
|
{"mmf", "application/vnd.smaf"},
|
|
{"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/mpeg"},
|
|
{"mp4", "video/mp4"},
|
|
{"mp4a", "audio/mp4"},
|
|
{"mp4s", "application/mp4"},
|
|
{"mp4v", "video/mp4"},
|
|
{"mpa", "video/mpeg"},
|
|
{"mpc", "application/vnd.mophun.certificate"},
|
|
{"mpe", "video/mpeg"},
|
|
{"mpeg", "video/mpeg"},
|
|
{"mpg", "video/mpeg"},
|
|
{"mpg4", "video/mp4"},
|
|
{"mpga", "audio/mpeg"},
|
|
{"mpkg", "application/vnd.apple.installer+xml"},
|
|
{"mpm", "application/vnd.blueice.multipass"},
|
|
{"mpn", "application/vnd.mophun.application"},
|
|
{"mpp", "application/vnd.ms-project"},
|
|
{"mpt", "application/vnd.ms-project"},
|
|
{"mpv2", "video/mpeg"},
|
|
{"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/x-msdownload"},
|
|
{"msl", "application/vnd.mobius.msl"},
|
|
{"msty", "application/vnd.muvee.style"},
|
|
{"mts", "model/vnd.mts"},
|
|
{"mus", "application/vnd.musician"},
|
|
{"musicxml", "application/vnd.recordare.musicxml+xml"},
|
|
{"mvb", "application/x-msmediaview"},
|
|
{"mwf", "application/vnd.mfer"},
|
|
{"mxf", "application/mxf"},
|
|
{"mxl", "application/vnd.recordare.musicxml"},
|
|
{"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"},
|
|
{"nsc", "application/x-conference"},
|
|
{"nsf", "application/vnd.lotus-notes"},
|
|
{"ntf", "application/vnd.nitf"},
|
|
{"nws", "message/rfc822"},
|
|
{"nzb", "application/x-nzb"},
|
|
{"oa2", "application/vnd.fujitsu.oasys2"},
|
|
{"oa3", "application/vnd.fujitsu.oasys3"},
|
|
{"oas", "application/vnd.fujitsu.oasys"},
|
|
{"obd", "application/x-msbinder"},
|
|
{"obj", "application/x-tgif"},
|
|
{"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"},
|
|
{"ogg", "audio/ogg"},
|
|
{"ogv", "video/ogg"},
|
|
{"ogx", "application/ogg"},
|
|
{"omdoc", "application/omdoc+xml"},
|
|
{"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"},
|
|
{"org", "application/vnd.lotus-organizer"},
|
|
{"osf", "application/vnd.yamaha.openscoreformat"},
|
|
{"osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+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"},
|
|
{"oxps", "application/oxps"},
|
|
{"oxt", "application/vnd.openofficeorg.extension"},
|
|
{"p", "text/x-pascal"},
|
|
{"p10", "application/pkcs10"},
|
|
{"p12", "application/x-pkcs12"},
|
|
{"p12pfx", "application/x-pkcs12"},
|
|
{"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"},
|
|
{"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/x-pcx"},
|
|
{"pdb", "application/vnd.palm"},
|
|
{"pdf", "application/pdf"},
|
|
{"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"},
|
|
{"pic", "image/x-pict"},
|
|
{"pkg", "application/octet-stream"},
|
|
{"pki", "application/pkixcmp"},
|
|
{"pkipath", "application/pkix-pkipath"},
|
|
{"pko", "application/ynd.ms-pkipko"},
|
|
{"plb", "application/vnd.3gpp.pic-bw-large"},
|
|
{"plc", "application/vnd.mobius.plc"},
|
|
{"plf", "application/vnd.pocketlearn"},
|
|
{"pls", "application/pls+xml"},
|
|
{"pma", "application/x-perfmon"},
|
|
{"pmc", "application/x-perfmon"},
|
|
{"pml", "application/vnd.ctc-posml"},
|
|
{"pmr", "application/x-perfmon"},
|
|
{"pmw", "application/x-perfmon"},
|
|
{"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"},
|
|
{"pre", "application/vnd.lotus-freelance"},
|
|
{"prf", "application/pics-rules"},
|
|
{"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"},
|
|
{"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"},
|
|
{"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"},
|
|
{"ram", "audio/x-pn-realaudio"},
|
|
{"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"},
|
|
{"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"},
|
|
{"roa", "application/rpki-roa"},
|
|
{"roff", "text/troff"},
|
|
{"rp9", "application/vnd.cloanto.rp9"},
|
|
{"rpss", "application/vnd.nokia.radio-presets"},
|
|
{"rpst", "application/vnd.nokia.radio-preset"},
|
|
{"rq", "application/sparql-query"},
|
|
{"rs", "application/rls-services+xml"},
|
|
{"rsd", "application/rsd+xml"},
|
|
{"rss", "application/rss+xml"},
|
|
{"rtf", "application/rtf"},
|
|
{"rtx", "text/richtext"},
|
|
{"s", "text/x-asm"},
|
|
{"s3m", "audio/s3m"},
|
|
{"saf", "application/vnd.yamaha.smaf-audio"},
|
|
{"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"},
|
|
{"sct", "text/scriptlet"},
|
|
{"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"},
|
|
{"see", "application/vnd.seemail"},
|
|
{"seed", "application/vnd.fdsn.seed"},
|
|
{"sema", "application/vnd.sema"},
|
|
{"semd", "application/vnd.semd"},
|
|
{"semf", "application/vnd.semf"},
|
|
{"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"},
|
|
{"shf", "application/shf+xml"},
|
|
{"sid", "image/x-mrsid-image"},
|
|
{"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"},
|
|
{"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"},
|
|
{"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"},
|
|
{"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/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"},
|
|
{"sst", "application/vnd.ms-pkicertstore"},
|
|
{"st", "application/vnd.sailingtracker.track"},
|
|
{"stc", "application/vnd.sun.xml.calc.template"},
|
|
{"std", "application/vnd.sun.xml.draw.template"},
|
|
{"stf", "application/vnd.wt.stf"},
|
|
{"sti", "application/vnd.sun.xml.impress.template"},
|
|
{"stk", "application/hyperstudio"},
|
|
{"stl", "application/vnd.ms-pki.stl"},
|
|
{"stm", "text/html"},
|
|
{"str", "application/vnd.pg.format"},
|
|
{"stw", "application/vnd.sun.xml.writer.template"},
|
|
{"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"},
|
|
{"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"},
|
|
{"taglet", "application/vnd.mynfc"},
|
|
{"tao", "application/vnd.tao.intent-module-archive"},
|
|
{"tar", "application/x-tar"},
|
|
{"tcap", "application/vnd.3gpp2.tcap"},
|
|
{"tcl", "application/x-tcl"},
|
|
{"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"},
|
|
{"tga", "image/x-tga"},
|
|
{"tgz", "application/x-compressed"},
|
|
{"thmx", "application/vnd.ms-officetheme"},
|
|
{"tif", "image/tiff"},
|
|
{"tiff", "image/tiff"},
|
|
{"tifftif", "image/tiff"},
|
|
{"tmo", "application/vnd.tmobile-livetv"},
|
|
{"torrent", "application/x-bittorrent"},
|
|
{"tpl", "application/vnd.groove-tool-template"},
|
|
{"tpt", "application/vnd.trid.tpt"},
|
|
{"tr", "text/troff"},
|
|
{"tra", "application/vnd.trueapp"},
|
|
{"trm", "application/x-msterminal"},
|
|
{"tsd", "application/timestamped-data"},
|
|
{"tsv", "text/tab-separated-values"},
|
|
{"ttc", "font/collection"},
|
|
{"ttf", "font/ttf"},
|
|
{"ttl", "text/turtle"},
|
|
{"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"},
|
|
{"udeb", "application/x-debian-package"},
|
|
{"ufdufdl", "application/vnd.ufdl"},
|
|
{"uls", "text/iuls"},
|
|
{"ulx", "application/x-glulx"},
|
|
{"umj", "application/vnd.umajin"},
|
|
{"unityweb", "application/vnd.unity"},
|
|
{"uoml", "application/vnd.uoml+xml"},
|
|
{"uri", "text/uri-list"},
|
|
{"uris", "text/uri-list"},
|
|
{"urls", "text/uri-list"},
|
|
{"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.pd"},
|
|
{"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.pd"},
|
|
{"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"},
|
|
{"vcard", "text/vcard"},
|
|
{"vcd", "application/x-cdlink"},
|
|
{"vcf", "text/x-vcard"},
|
|
{"vcg", "application/vnd.groove-vcard"},
|
|
{"vcs", "text/x-vcalendar"},
|
|
{"vcx", "application/vnd.vcx"},
|
|
{"vis", "application/vnd.visionary"},
|
|
{"viv", "video/vnd.vivo"},
|
|
{"vob", "video/x-ms-vob"},
|
|
{"vor", "application/vnd.stardivision.writer"},
|
|
{"vox", "application/x-authorware-bin"},
|
|
{"vrml", "model/vrml"},
|
|
{"vsd", "application/vnd.visio"},
|
|
{"vsf", "application/vnd.vsf"},
|
|
{"vss", "application/vnd.visio"},
|
|
{"vst", "application/vnd.visio"},
|
|
{"vsw", "application/vnd.visio"},
|
|
{"vtu", "model/vnd.vtu"},
|
|
{"vxml", "application/voicexml+xml"},
|
|
{"w3d", "application/x-director"},
|
|
{"wad", "application/x-doom"},
|
|
{"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"},
|
|
{"webm", "video/webm"},
|
|
{"webp", "image/webp"},
|
|
{"wg", "application/vnd.pmi.widget"},
|
|
{"wgt", "application/widget"},
|
|
{"wks", "application/vnd.ms-works"},
|
|
{"wm", "video/x-ms-wm"},
|
|
{"wma", "audio/x-ms-wma"},
|
|
{"wmd", "application/x-ms-wmd"},
|
|
{"wmf", "application/x-msmetafile"},
|
|
{"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"},
|
|
{"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"},
|
|
{"wrz", "x-world/x-vrml"},
|
|
{"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"},
|
|
{"x3dbz", "model/x3d+binary"},
|
|
{"x3dv", "model/x3d+vrml"},
|
|
{"x3dvz", "model/x3d+vrml"},
|
|
{"x3dz", "model/x3d+xml"},
|
|
{"xaf", "x-world/x-vrml"},
|
|
{"xaml", "application/xaml+xml"},
|
|
{"xap", "application/x-silverlight-app"},
|
|
{"xar", "application/vnd.xara"},
|
|
{"xbap", "application/x-ms-xbap"},
|
|
{"xbd", "application/vnd.fujixerox.docuworks.binder"},
|
|
{"xbm", "image/x-xbitmap"},
|
|
{"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"},
|
|
{"xenc", "application/xenc+xml"},
|
|
{"xer", "application/patch-ops-error+xml"},
|
|
{"xfdf", "application/vnd.adobe.xfdf"},
|
|
{"xfdl", "application/vnd.xfdl"},
|
|
{"xht", "application/xhtml+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"},
|
|
{"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"},
|
|
{"xmlxsl", "application/xml"},
|
|
{"xo", "application/vnd.olpc-sugar"},
|
|
{"xof", "x-world/x-vrml"},
|
|
{"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"},
|
|
{"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"},
|
|
{"yang", "application/yang"},
|
|
{"yin", "application/yin+xml"},
|
|
{"z", "application/x-compress"},
|
|
{"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/zip"},
|
|
{"zir", "application/vnd.zul"},
|
|
{"zirz", "application/vnd.zul"},
|
|
{"zmm", "application/vnd.handheld-entertainment+xml"},
|
|
{"c", "text/plain"},
|
|
{"cdf", "application/x-cdf"},
|
|
{"evy", "application/envoy"},
|
|
{"exe", "application/octet-stream"},
|
|
{"h", "text/plain"},
|
|
{"js", "application/x-javascript"},
|
|
{"lha", "application/octet-stream"},
|
|
{"lzh", "application/octet-stream"},
|
|
{"man", "application/x-troff-man"},
|
|
{"me", "application/x-troff-me"},
|
|
{"mid", "audio/mid"},
|
|
{"mp2", "video/mpeg"},
|
|
{"ms", "application/x-troff-ms"},
|
|
{"p7c", "application/x-pkcs7-mime"},
|
|
{"p7m", "application/x-pkcs7-mime"},
|
|
{"p7s", "application/x-pkcs7-signature"},
|
|
{"pml", "application/x-perfmon"},
|
|
{"rmi", "audio/mid"},
|
|
{"roff", "application/x-troff"},
|
|
{"spl", "application/futuresplash"},
|
|
{"stl", "application/vnd.ms-pkistl"},
|
|
{"t", "application/x-troff"},
|
|
{"tr", "application/x-troff"},
|
|
{"vrml", "x-world/x-vrml"},
|
|
{"wrl", "x-world/x-vrml"},
|
|
}
|