diff --git a/Nemesis b/Nemesis
--- a/Nemesis
+++ b/Nemesis
@@ -1,11 +1,16 @@
-nemesis = do
-  
+import System.Nemesis.Titan
+import System.Nemesis.Env
+import Air.Env
+import Prelude ()
+
+main = run - do
+
   clean
     [ "**/*.hi"
     , "**/*.o"
     , "manifest"
     ]
-    
+
   desc "prepare cabal dist"
   task "dist" - do
     sh "cabal clean"
@@ -22,7 +27,7 @@
   desc "show sloc"
   task "stat" - do
     sh "cloc -match-f=hs$ --quiet src --no3"
-  
+
   desc "run"
   task "run" - do
     sh "runghc -isrc src/maid.hs"
diff --git a/maid.cabal b/maid.cabal
--- a/maid.cabal
+++ b/maid.cabal
@@ -1,9 +1,9 @@
 Name:                 maid
-Version:              2012.1.19
+Version:              2013.9.13
 Build-type:           Simple
 Synopsis:             A simple static web server
 Description:
-        
+
     Serve files from the current path
 
 License:              BSD3
@@ -20,20 +20,16 @@
   ghc-options:        -threaded
   build-depends:      base >= 4 && < 100
                     , air >= 2011.6.19
-                    , air-extra
                     , hack2 >= 2012.1.19
                     , hack2-contrib >= 2012.1.19.1
                     , data-default
-                    -- , hack2-handler-warp
                     , hack2-handler-snap-server >= 2012.1.19
-                    -- , hack2-handler-mongrel2-http
-                    
-
                     , containers
                     , moe >= 2011.6
                     , unix
                     , bytestring
-                    , process
                     , directory
+                    , text
   hs-source-dirs:     src/
   main-is:            maid.hs
+  Other-Modules:      Web.Maid.ApacheMimeTypes
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -69,9 +69,3 @@
     hs text/plain; charset=utf-8
     lhs text/plain; charset=utf-8
 
-note
-----
-
-use the git version
-
-![maid](https://github.com/nfjinjing/maid/raw/master/maid.jpg)
diff --git a/src/Web/Maid/ApacheMimeTypes.hs b/src/Web/Maid/ApacheMimeTypes.hs
new file mode 100644
--- /dev/null
+++ b/src/Web/Maid/ApacheMimeTypes.hs
@@ -0,0 +1,1604 @@
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+module Web.Maid.ApacheMimeTypes where
+
+
+import qualified Data.Text as T
+import Air.TH
+
+
+
+apache_mime_types :: T.Text
+apache_mime_types = [here|
+
+# This file maps Internet media types to unique file extension(s).
+# Although created for httpd, this file is used by many software systems
+# and has been placed in the public domain for unlimited redisribution.
+#
+# The table below contains both registered and (common) unregistered types.
+# A type that has no unique extension can be ignored -- they are listed
+# here to guide configurations toward known types and to make it easier to
+# identify "new" types.  File extensions are also commonly used to indicate
+# content languages and encodings, so choose them carefully.
+#
+# Internet media types should be registered as described in RFC 4288.
+# The registry is at <http://www.iana.org/assignments/media-types/>.
+#
+# MIME type (lowercased)      Extensions
+# ============================================  ==========
+# application/1d-interleaved-parityfec
+# application/3gpp-ims+xml
+# application/activemessage
+application/andrew-inset      ez
+# application/applefile
+application/applixware        aw
+application/atom+xml        atom
+application/atomcat+xml       atomcat
+# application/atomicmail
+application/atomsvc+xml       atomsvc
+# application/auth-policy+xml
+# application/batch-smtp
+# application/beep+xml
+# application/calendar+xml
+# application/cals-1840
+# application/ccmp+xml
+application/ccxml+xml       ccxml
+application/cdmi-capability     cdmia
+application/cdmi-container      cdmic
+application/cdmi-domain       cdmid
+application/cdmi-object       cdmio
+application/cdmi-queue        cdmiq
+# application/cea-2018+xml
+# application/cellml+xml
+# application/cfw
+# application/cnrp+xml
+# application/commonground
+# application/conference-info+xml
+# application/cpl+xml
+# application/csta+xml
+# application/cstadata+xml
+application/cu-seeme        cu
+# application/cybercash
+application/davmount+xml      davmount
+# application/dca-rft
+# application/dec-dx
+# application/dialog-info+xml
+# application/dicom
+# application/dns
+application/docbook+xml       dbk
+# application/dskpp+xml
+application/dssc+der        dssc
+application/dssc+xml        xdssc
+# application/dvcs
+application/ecmascript        ecma
+# application/edi-consent
+# application/edi-x12
+# application/edifact
+application/emma+xml        emma
+# application/epp+xml
+application/epub+zip        epub
+# application/eshop
+# application/example
+application/exi         exi
+# application/fastinfoset
+# application/fastsoap
+# application/fits
+application/font-tdpfr        pfr
+# application/framework-attributes+xml
+application/gml+xml       gml
+application/gpx+xml       gpx
+application/gxf         gxf
+# application/h224
+# application/held+xml
+# application/http
+application/hyperstudio       stk
+# application/ibe-key-request+xml
+# application/ibe-pkg-reply+xml
+# application/ibe-pp-data
+# application/iges
+# application/im-iscomposing+xml
+# application/index
+# application/index.cmd
+# application/index.obj
+# application/index.response
+# application/index.vnd
+application/inkml+xml       ink inkml
+# application/iotp
+application/ipfix       ipfix
+# application/ipp
+# application/isup
+application/java-archive      jar
+application/java-serialized-object    ser
+application/java-vm       class
+application/javascript        js
+application/json        json
+application/jsonml+json       jsonml
+# application/kpml-request+xml
+# application/kpml-response+xml
+application/lost+xml        lostxml
+application/mac-binhex40      hqx
+application/mac-compactpro      cpt
+# application/macwriteii
+application/mads+xml        mads
+application/marc        mrc
+application/marcxml+xml       mrcx
+application/mathematica       ma nb mb
+# application/mathml-content+xml
+# application/mathml-presentation+xml
+application/mathml+xml        mathml
+# application/mbms-associated-procedure-description+xml
+# application/mbms-deregister+xml
+# application/mbms-envelope+xml
+# application/mbms-msk+xml
+# application/mbms-msk-response+xml
+# application/mbms-protection-description+xml
+# application/mbms-reception-report+xml
+# application/mbms-register+xml
+# application/mbms-register-response+xml
+# application/mbms-user-service-description+xml
+application/mbox        mbox
+# application/media_control+xml
+application/mediaservercontrol+xml    mscml
+application/metalink+xml      metalink
+application/metalink4+xml     meta4
+application/mets+xml        mets
+# application/mikey
+application/mods+xml        mods
+# application/moss-keys
+# application/moss-signature
+# application/mosskey-data
+# application/mosskey-request
+application/mp21        m21 mp21
+application/mp4         mp4s
+# application/mpeg4-generic
+# application/mpeg4-iod
+# application/mpeg4-iod-xmt
+# application/msc-ivr+xml
+# application/msc-mixer+xml
+application/msword        doc dot
+application/mxf         mxf
+# application/nasdata
+# application/news-checkgroups
+# application/news-groupinfo
+# application/news-transmission
+# application/nss
+# application/ocsp-request
+# application/ocsp-response
+application/octet-stream  bin dms lrf mar so dist distz pkg bpk dump elc deploy
+application/oda         oda
+application/oebps-package+xml     opf
+application/ogg         ogx
+application/omdoc+xml       omdoc
+application/onenote       onetoc onetoc2 onetmp onepkg
+application/oxps        oxps
+# application/parityfec
+application/patch-ops-error+xml     xer
+application/pdf         pdf
+application/pgp-encrypted     pgp
+# application/pgp-keys
+application/pgp-signature     asc sig
+application/pics-rules        prf
+# application/pidf+xml
+# application/pidf-diff+xml
+application/pkcs10        p10
+application/pkcs7-mime        p7m p7c
+application/pkcs7-signature     p7s
+application/pkcs8       p8
+application/pkix-attr-cert      ac
+application/pkix-cert       cer
+application/pkix-crl        crl
+application/pkix-pkipath      pkipath
+application/pkixcmp       pki
+application/pls+xml       pls
+# application/poc-settings+xml
+application/postscript        ai eps ps
+# application/prs.alvestrand.titrax-sheet
+application/prs.cww       cww
+# application/prs.nprend
+# application/prs.plucker
+# application/prs.rdf-xml-crypt
+# application/prs.xsf+xml
+application/pskc+xml        pskcxml
+# application/qsig
+application/rdf+xml       rdf
+application/reginfo+xml       rif
+application/relax-ng-compact-syntax   rnc
+# application/remote-printing
+application/resource-lists+xml      rl
+application/resource-lists-diff+xml   rld
+# application/riscos
+# application/rlmi+xml
+application/rls-services+xml      rs
+application/rpki-ghostbusters     gbr
+application/rpki-manifest     mft
+application/rpki-roa        roa
+# application/rpki-updown
+application/rsd+xml       rsd
+application/rss+xml       rss
+application/rtf         rtf
+# application/rtx
+# application/samlassertion+xml
+# application/samlmetadata+xml
+application/sbml+xml        sbml
+application/scvp-cv-request     scq
+application/scvp-cv-response      scs
+application/scvp-vp-request     spq
+application/scvp-vp-response      spp
+application/sdp         sdp
+# application/set-payment
+application/set-payment-initiation    setpay
+# application/set-registration
+application/set-registration-initiation   setreg
+# application/sgml
+# application/sgml-open-catalog
+application/shf+xml       shf
+# application/sieve
+# application/simple-filter+xml
+# application/simple-message-summary
+# application/simplesymbolcontainer
+# application/slate
+# application/smil
+application/smil+xml        smi smil
+# application/soap+fastinfoset
+# application/soap+xml
+application/sparql-query      rq
+application/sparql-results+xml      srx
+# application/spirits-event+xml
+application/srgs        gram
+application/srgs+xml        grxml
+application/sru+xml       sru
+application/ssdl+xml        ssdl
+application/ssml+xml        ssml
+# application/tamp-apex-update
+# application/tamp-apex-update-confirm
+# application/tamp-community-update
+# application/tamp-community-update-confirm
+# application/tamp-error
+# application/tamp-sequence-adjust
+# application/tamp-sequence-adjust-confirm
+# application/tamp-status-query
+# application/tamp-status-response
+# application/tamp-update
+# application/tamp-update-confirm
+application/tei+xml       tei teicorpus
+application/thraud+xml        tfi
+# application/timestamp-query
+# application/timestamp-reply
+application/timestamped-data      tsd
+# application/tve-trigger
+# application/ulpfec
+# application/vcard+xml
+# application/vemmi
+# application/vividence.scriptfile
+# application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large   plb
+application/vnd.3gpp.pic-bw-small   psb
+application/vnd.3gpp.pic-bw-var     pvb
+# application/vnd.3gpp.sms
+# application/vnd.3gpp2.bcmcsinfo+xml
+# application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap      tcap
+application/vnd.3m.post-it-notes    pwn
+application/vnd.accpac.simply.aso   aso
+application/vnd.accpac.simply.imp   imp
+application/vnd.acucobol      acu
+application/vnd.acucorp       atc acutc
+application/vnd.adobe.air-application-installer-package+zip air
+application/vnd.adobe.formscentral.fcdt   fcdt
+application/vnd.adobe.fxp     fxp fxpl
+# application/vnd.adobe.partial-upload
+application/vnd.adobe.xdp+xml     xdp
+application/vnd.adobe.xfdf      xfdf
+# application/vnd.aether.imp
+# application/vnd.ah-barcode
+application/vnd.ahead.space     ahead
+application/vnd.airzip.filesecure.azf   azf
+application/vnd.airzip.filesecure.azs   azs
+application/vnd.amazon.ebook      azw
+application/vnd.americandynamics.acc    acc
+application/vnd.amiga.ami     ami
+# application/vnd.amundsen.maze+xml
+application/vnd.android.package-archive   apk
+application/vnd.anser-web-certificate-issue-initiation  cii
+application/vnd.anser-web-funds-transfer-initiation fti
+application/vnd.antix.game-component    atx
+application/vnd.apple.installer+xml   mpkg
+application/vnd.apple.mpegurl     m3u8
+# application/vnd.arastra.swi
+application/vnd.aristanetworks.swi    swi
+application/vnd.astraea-software.iota   iota
+application/vnd.audiograph      aep
+# application/vnd.autopackage
+# application/vnd.avistar+xml
+application/vnd.blueice.multipass   mpm
+# application/vnd.bluetooth.ep.oob
+application/vnd.bmi       bmi
+application/vnd.businessobjects     rep
+# application/vnd.cab-jscript
+# application/vnd.canon-cpdl
+# application/vnd.canon-lips
+# application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml      cdxml
+application/vnd.chipnuts.karaoke-mmd    mmd
+application/vnd.cinderella      cdy
+# application/vnd.cirpack.isdn-ext
+application/vnd.claymore      cla
+application/vnd.cloanto.rp9     rp9
+application/vnd.clonk.c4group     c4g c4d c4f c4p c4u
+application/vnd.cluetrust.cartomobile-config    c11amc
+application/vnd.cluetrust.cartomobile-config-pkg  c11amz
+# application/vnd.collection+json
+# application/vnd.commerce-battelle
+application/vnd.commonspace     csp
+application/vnd.contact.cmsg      cdbcmsg
+application/vnd.cosmocaller     cmc
+application/vnd.crick.clicker     clkx
+application/vnd.crick.clicker.keyboard    clkk
+application/vnd.crick.clicker.palette   clkp
+application/vnd.crick.clicker.template    clkt
+application/vnd.crick.clicker.wordbank    clkw
+application/vnd.criticaltools.wbs+xml   wbs
+application/vnd.ctc-posml     pml
+# application/vnd.ctct.ws+xml
+# application/vnd.cups-pdf
+# application/vnd.cups-postscript
+application/vnd.cups-ppd      ppd
+# application/vnd.cups-raster
+# application/vnd.cups-raw
+# application/vnd.curl
+application/vnd.curl.car      car
+application/vnd.curl.pcurl      pcurl
+# application/vnd.cybank
+application/vnd.dart        dart
+application/vnd.data-vision.rdz     rdz
+application/vnd.dece.data     uvf uvvf uvd uvvd
+application/vnd.dece.ttml+xml     uvt uvvt
+application/vnd.dece.unspecified    uvx uvvx
+application/vnd.dece.zip      uvz uvvz
+application/vnd.denovo.fcselayout-link    fe_launch
+# application/vnd.dir-bi.plate-dl-nosuffix
+application/vnd.dna       dna
+application/vnd.dolby.mlp     mlp
+# application/vnd.dolby.mobile.1
+# application/vnd.dolby.mobile.2
+application/vnd.dpgraph       dpg
+application/vnd.dreamfactory      dfac
+application/vnd.ds-keypoint     kpxx
+application/vnd.dvb.ait       ait
+# application/vnd.dvb.dvbj
+# application/vnd.dvb.esgcontainer
+# application/vnd.dvb.ipdcdftnotifaccess
+# application/vnd.dvb.ipdcesgaccess
+# application/vnd.dvb.ipdcesgaccess2
+# application/vnd.dvb.ipdcesgpdd
+# application/vnd.dvb.ipdcroaming
+# application/vnd.dvb.iptv.alfec-base
+# application/vnd.dvb.iptv.alfec-enhancement
+# application/vnd.dvb.notif-aggregate-root+xml
+# application/vnd.dvb.notif-container+xml
+# application/vnd.dvb.notif-generic+xml
+# application/vnd.dvb.notif-ia-msglist+xml
+# application/vnd.dvb.notif-ia-registration-request+xml
+# application/vnd.dvb.notif-ia-registration-response+xml
+# application/vnd.dvb.notif-init+xml
+# application/vnd.dvb.pfr
+application/vnd.dvb.service     svc
+# application/vnd.dxr
+application/vnd.dynageo       geo
+# application/vnd.easykaraoke.cdgdownload
+# application/vnd.ecdis-update
+application/vnd.ecowin.chart      mag
+# application/vnd.ecowin.filerequest
+# application/vnd.ecowin.fileupdate
+# application/vnd.ecowin.series
+# application/vnd.ecowin.seriesrequest
+# application/vnd.ecowin.seriesupdate
+# application/vnd.emclient.accessrequest+xml
+application/vnd.enliven       nml
+# application/vnd.eprints.data+xml
+application/vnd.epson.esf     esf
+application/vnd.epson.msf     msf
+application/vnd.epson.quickanime    qam
+application/vnd.epson.salt      slt
+application/vnd.epson.ssf     ssf
+# application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml      es3 et3
+# application/vnd.etsi.aoc+xml
+# application/vnd.etsi.cug+xml
+# application/vnd.etsi.iptvcommand+xml
+# application/vnd.etsi.iptvdiscovery+xml
+# application/vnd.etsi.iptvprofile+xml
+# application/vnd.etsi.iptvsad-bc+xml
+# application/vnd.etsi.iptvsad-cod+xml
+# application/vnd.etsi.iptvsad-npvr+xml
+# application/vnd.etsi.iptvservice+xml
+# application/vnd.etsi.iptvsync+xml
+# application/vnd.etsi.iptvueprofile+xml
+# application/vnd.etsi.mcid+xml
+# application/vnd.etsi.overload-control-policy-dataset+xml
+# application/vnd.etsi.sci+xml
+# application/vnd.etsi.simservs+xml
+# application/vnd.etsi.tsl+xml
+# application/vnd.etsi.tsl.der
+# application/vnd.eudora.data
+application/vnd.ezpix-album     ez2
+application/vnd.ezpix-package     ez3
+# application/vnd.f-secure.mobile
+application/vnd.fdf       fdf
+application/vnd.fdsn.mseed      mseed
+application/vnd.fdsn.seed     seed dataless
+# application/vnd.ffsns
+# application/vnd.fints
+application/vnd.flographit      gph
+application/vnd.fluxtime.clip     ftc
+# application/vnd.font-fontforge-sfd
+application/vnd.framemaker      fm frame maker book
+application/vnd.frogans.fnc     fnc
+application/vnd.frogans.ltf     ltf
+application/vnd.fsc.weblaunch     fsc
+application/vnd.fujitsu.oasys     oas
+application/vnd.fujitsu.oasys2      oa2
+application/vnd.fujitsu.oasys3      oa3
+application/vnd.fujitsu.oasysgp     fg5
+application/vnd.fujitsu.oasysprs    bh2
+# application/vnd.fujixerox.art-ex
+# application/vnd.fujixerox.art4
+# application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd     ddd
+application/vnd.fujixerox.docuworks   xdw
+application/vnd.fujixerox.docuworks.binder  xbd
+# application/vnd.fut-misnet
+application/vnd.fuzzysheet      fzs
+application/vnd.genomatix.tuxedo    txd
+# application/vnd.geocube+xml
+application/vnd.geogebra.file     ggb
+application/vnd.geogebra.tool     ggt
+application/vnd.geometry-explorer   gex gre
+application/vnd.geonext       gxt
+application/vnd.geoplan       g2w
+application/vnd.geospace      g3w
+# application/vnd.globalplatform.card-content-mgt
+# application/vnd.globalplatform.card-content-mgt-response
+application/vnd.gmx       gmx
+application/vnd.google-earth.kml+xml    kml
+application/vnd.google-earth.kmz    kmz
+application/vnd.grafeq        gqf gqs
+# application/vnd.gridmp
+application/vnd.groove-account      gac
+application/vnd.groove-help     ghf
+application/vnd.groove-identity-message   gim
+application/vnd.groove-injector     grv
+application/vnd.groove-tool-message   gtm
+application/vnd.groove-tool-template    tpl
+application/vnd.groove-vcard      vcg
+# application/vnd.hal+json
+application/vnd.hal+xml       hal
+application/vnd.handheld-entertainment+xml  zmm
+application/vnd.hbci        hbci
+# application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player   les
+application/vnd.hp-hpgl       hpgl
+application/vnd.hp-hpid       hpid
+application/vnd.hp-hps        hps
+application/vnd.hp-jlyt       jlt
+application/vnd.hp-pcl        pcl
+application/vnd.hp-pclxl      pclxl
+# application/vnd.httphone
+application/vnd.hydrostatix.sof-data    sfd-hdstx
+# application/vnd.hzn-3d-crossword
+# application/vnd.ibm.afplinedata
+# application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay     mpy
+application/vnd.ibm.modcap      afp listafp list3820
+application/vnd.ibm.rights-management   irm
+application/vnd.ibm.secure-container    sc
+application/vnd.iccprofile      icc icm
+application/vnd.igloader      igl
+application/vnd.immervision-ivp     ivp
+application/vnd.immervision-ivu     ivu
+# application/vnd.informedcontrol.rms+xml
+# application/vnd.informix-visionary
+# application/vnd.infotech.project
+# application/vnd.infotech.project+xml
+# application/vnd.innopath.wamp.notification
+application/vnd.insors.igm      igm
+application/vnd.intercon.formnet    xpw xpx
+application/vnd.intergeo      i2g
+# application/vnd.intertrust.digibox
+# application/vnd.intertrust.nncp
+application/vnd.intu.qbo      qbo
+application/vnd.intu.qfx      qfx
+# application/vnd.iptc.g2.conceptitem+xml
+# application/vnd.iptc.g2.knowledgeitem+xml
+# application/vnd.iptc.g2.newsitem+xml
+# application/vnd.iptc.g2.newsmessage+xml
+# application/vnd.iptc.g2.packageitem+xml
+# application/vnd.iptc.g2.planningitem+xml
+application/vnd.ipunplugged.rcprofile   rcprofile
+application/vnd.irepository.package+xml   irp
+application/vnd.is-xpr        xpr
+application/vnd.isac.fcs      fcs
+application/vnd.jam       jam
+# application/vnd.japannet-directory-service
+# application/vnd.japannet-jpnstore-wakeup
+# application/vnd.japannet-payment-wakeup
+# application/vnd.japannet-registration
+# application/vnd.japannet-registration-wakeup
+# application/vnd.japannet-setstore-wakeup
+# application/vnd.japannet-verification
+# application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms   rms
+application/vnd.jisp        jisp
+application/vnd.joost.joda-archive    joda
+application/vnd.kahootz       ktz ktr
+application/vnd.kde.karbon      karbon
+application/vnd.kde.kchart      chrt
+application/vnd.kde.kformula      kfo
+application/vnd.kde.kivio     flw
+application/vnd.kde.kontour     kon
+application/vnd.kde.kpresenter      kpr kpt
+application/vnd.kde.kspread     ksp
+application/vnd.kde.kword     kwd kwt
+application/vnd.kenameaapp      htke
+application/vnd.kidspiration      kia
+application/vnd.kinar       kne knp
+application/vnd.koan        skp skd skt skm
+application/vnd.kodak-descriptor    sse
+application/vnd.las.las+xml     lasxml
+# application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop  lbd
+application/vnd.llamagraphics.life-balance.exchange+xml lbe
+application/vnd.lotus-1-2-3     123
+application/vnd.lotus-approach      apr
+application/vnd.lotus-freelance     pre
+application/vnd.lotus-notes     nsf
+application/vnd.lotus-organizer     org
+application/vnd.lotus-screencam     scm
+application/vnd.lotus-wordpro     lwp
+application/vnd.macports.portpkg    portpkg
+# application/vnd.marlin.drm.actiontoken+xml
+# application/vnd.marlin.drm.conftoken+xml
+# application/vnd.marlin.drm.license+xml
+# application/vnd.marlin.drm.mdcf
+application/vnd.mcd       mcd
+application/vnd.medcalcdata     mc1
+application/vnd.mediastation.cdkey    cdkey
+# application/vnd.meridian-slingshot
+application/vnd.mfer        mwf
+application/vnd.mfmp        mfm
+application/vnd.micrografx.flo      flo
+application/vnd.micrografx.igx      igx
+application/vnd.mif       mif
+# application/vnd.minisoft-hp3000-save
+# application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf      daf
+application/vnd.mobius.dis      dis
+application/vnd.mobius.mbk      mbk
+application/vnd.mobius.mqy      mqy
+application/vnd.mobius.msl      msl
+application/vnd.mobius.plc      plc
+application/vnd.mobius.txf      txf
+application/vnd.mophun.application    mpn
+application/vnd.mophun.certificate    mpc
+# application/vnd.motorola.flexsuite
+# application/vnd.motorola.flexsuite.adsi
+# application/vnd.motorola.flexsuite.fis
+# application/vnd.motorola.flexsuite.gotap
+# application/vnd.motorola.flexsuite.kmr
+# application/vnd.motorola.flexsuite.ttc
+# application/vnd.motorola.flexsuite.wem
+# application/vnd.motorola.iprm
+application/vnd.mozilla.xul+xml     xul
+application/vnd.ms-artgalry     cil
+# application/vnd.ms-asf
+application/vnd.ms-cab-compressed   cab
+# application/vnd.ms-color.iccprofile
+application/vnd.ms-excel      xls xlm xla xlc xlt xlw
+application/vnd.ms-excel.addin.macroenabled.12    xlam
+application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb
+application/vnd.ms-excel.sheet.macroenabled.12    xlsm
+application/vnd.ms-excel.template.macroenabled.12 xltm
+application/vnd.ms-fontobject     eot
+application/vnd.ms-htmlhelp     chm
+application/vnd.ms-ims        ims
+application/vnd.ms-lrm        lrm
+# application/vnd.ms-office.activex+xml
+application/vnd.ms-officetheme      thmx
+# application/vnd.ms-opentype
+# application/vnd.ms-package.obfuscated-opentype
+application/vnd.ms-pki.seccat     cat
+application/vnd.ms-pki.stl      stl
+# application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint     ppt pps pot
+application/vnd.ms-powerpoint.addin.macroenabled.12   ppam
+application/vnd.ms-powerpoint.presentation.macroenabled.12  pptm
+application/vnd.ms-powerpoint.slide.macroenabled.12   sldm
+application/vnd.ms-powerpoint.slideshow.macroenabled.12   ppsm
+application/vnd.ms-powerpoint.template.macroenabled.12    potm
+# application/vnd.ms-printing.printticket+xml
+application/vnd.ms-project      mpp mpt
+# application/vnd.ms-tnef
+# application/vnd.ms-wmdrm.lic-chlg-req
+# application/vnd.ms-wmdrm.lic-resp
+# application/vnd.ms-wmdrm.meter-chlg-req
+# application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-word.document.macroenabled.12  docm
+application/vnd.ms-word.template.macroenabled.12  dotm
+application/vnd.ms-works      wps wks wcm wdb
+application/vnd.ms-wpl        wpl
+application/vnd.ms-xpsdocument      xps
+application/vnd.mseq        mseq
+# application/vnd.msign
+# application/vnd.multiad.creator
+# application/vnd.multiad.creator.cif
+# application/vnd.music-niff
+application/vnd.musician      mus
+application/vnd.muvee.style     msty
+application/vnd.mynfc       taglet
+# application/vnd.ncd.control
+# application/vnd.ncd.reference
+# application/vnd.nervana
+# application/vnd.netfpx
+application/vnd.neurolanguage.nlu   nlu
+application/vnd.nitf        ntf nitf
+application/vnd.noblenet-directory    nnd
+application/vnd.noblenet-sealer     nns
+application/vnd.noblenet-web      nnw
+# application/vnd.nokia.catalogs
+# application/vnd.nokia.conml+wbxml
+# application/vnd.nokia.conml+xml
+# application/vnd.nokia.isds-radio-presets
+# application/vnd.nokia.iptv.config+xml
+# application/vnd.nokia.landmark+wbxml
+# application/vnd.nokia.landmark+xml
+# application/vnd.nokia.landmarkcollection+xml
+# application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data   ngdat
+application/vnd.nokia.n-gage.symbian.install  n-gage
+# application/vnd.nokia.ncd
+# application/vnd.nokia.pcd+wbxml
+# application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset    rpst
+application/vnd.nokia.radio-presets   rpss
+application/vnd.novadigm.edm      edm
+application/vnd.novadigm.edx      edx
+application/vnd.novadigm.ext      ext
+# application/vnd.ntt-local.file-transfer
+# application/vnd.ntt-local.sip-ta_remote
+# application/vnd.ntt-local.sip-ta_tcp_stream
+application/vnd.oasis.opendocument.chart    odc
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.database   odb
+application/vnd.oasis.opendocument.formula    odf
+application/vnd.oasis.opendocument.formula-template odft
+application/vnd.oasis.opendocument.graphics   odg
+application/vnd.oasis.opendocument.graphics-template  otg
+application/vnd.oasis.opendocument.image    odi
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.presentation   odp
+application/vnd.oasis.opendocument.presentation-template  otp
+application/vnd.oasis.opendocument.spreadsheet    ods
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.text     odt
+application/vnd.oasis.opendocument.text-master    odm
+application/vnd.oasis.opendocument.text-template  ott
+application/vnd.oasis.opendocument.text-web   oth
+# application/vnd.obn
+# application/vnd.oftn.l10n+json
+# application/vnd.oipf.contentaccessdownload+xml
+# application/vnd.oipf.contentaccessstreaming+xml
+# application/vnd.oipf.cspg-hexbinary
+# application/vnd.oipf.dae.svg+xml
+# application/vnd.oipf.dae.xhtml+xml
+# application/vnd.oipf.mippvcontrolmessage+xml
+# application/vnd.oipf.pae.gem
+# application/vnd.oipf.spdiscovery+xml
+# application/vnd.oipf.spdlist+xml
+# application/vnd.oipf.ueprofile+xml
+# application/vnd.oipf.userprofile+xml
+application/vnd.olpc-sugar      xo
+# application/vnd.oma-scws-config
+# application/vnd.oma-scws-http-request
+# application/vnd.oma-scws-http-response
+# application/vnd.oma.bcast.associated-procedure-parameter+xml
+# application/vnd.oma.bcast.drm-trigger+xml
+# application/vnd.oma.bcast.imd+xml
+# application/vnd.oma.bcast.ltkm
+# application/vnd.oma.bcast.notification+xml
+# application/vnd.oma.bcast.provisioningtrigger
+# application/vnd.oma.bcast.sgboot
+# application/vnd.oma.bcast.sgdd+xml
+# application/vnd.oma.bcast.sgdu
+# application/vnd.oma.bcast.simple-symbol-container
+# application/vnd.oma.bcast.smartcard-trigger+xml
+# application/vnd.oma.bcast.sprov+xml
+# application/vnd.oma.bcast.stkm
+# application/vnd.oma.cab-address-book+xml
+# application/vnd.oma.cab-feature-handler+xml
+# application/vnd.oma.cab-pcc+xml
+# application/vnd.oma.cab-user-prefs+xml
+# application/vnd.oma.dcd
+# application/vnd.oma.dcdc
+application/vnd.oma.dd2+xml     dd2
+# application/vnd.oma.drm.risd+xml
+# application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.pal+xml
+# application/vnd.oma.poc.detailed-progress-report+xml
+# application/vnd.oma.poc.final-report+xml
+# application/vnd.oma.poc.groups+xml
+# application/vnd.oma.poc.invocation-descriptor+xml
+# application/vnd.oma.poc.optimized-progress-report+xml
+# application/vnd.oma.push
+# application/vnd.oma.scidm.messages+xml
+# application/vnd.oma.xcap-directory+xml
+# application/vnd.omads-email+xml
+# application/vnd.omads-file+xml
+# application/vnd.omads-folder+xml
+# application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension   oxt
+# application/vnd.openxmlformats-officedocument.custom-properties+xml
+# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
+# application/vnd.openxmlformats-officedocument.drawing+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
+# application/vnd.openxmlformats-officedocument.extended-properties+xml
+# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
+# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
+# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
+application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
+# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
+application/vnd.openxmlformats-officedocument.presentationml.slide  sldx
+# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideshow  ppsx
+# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
+application/vnd.openxmlformats-officedocument.presentationml.template potx
+# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.template  xltx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
+# application/vnd.openxmlformats-officedocument.theme+xml
+# application/vnd.openxmlformats-officedocument.themeoverride+xml
+# application/vnd.openxmlformats-officedocument.vmldrawing
+# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
+# application/vnd.openxmlformats-package.core-properties+xml
+# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
+# application/vnd.openxmlformats-package.relationships+xml
+# application/vnd.quobject-quoxdocument
+# application/vnd.osa.netdeploy
+application/vnd.osgeo.mapguide.package    mgp
+# application/vnd.osgi.bundle
+application/vnd.osgi.dp       dp
+application/vnd.osgi.subsystem      esa
+# application/vnd.otps.ct-kip+xml
+application/vnd.palm        pdb pqa oprc
+# application/vnd.paos.xml
+application/vnd.pawaafile     paw
+application/vnd.pg.format     str
+application/vnd.pg.osasli     ei6
+# application/vnd.piaccess.application-licence
+application/vnd.picsel        efif
+application/vnd.pmi.widget      wg
+# application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn     plf
+application/vnd.powerbuilder6     pbd
+# application/vnd.powerbuilder6-s
+# application/vnd.powerbuilder7
+# application/vnd.powerbuilder7-s
+# application/vnd.powerbuilder75
+# application/vnd.powerbuilder75-s
+# application/vnd.preminet
+application/vnd.previewsystems.box    box
+application/vnd.proteus.magazine    mgz
+application/vnd.publishare-delta-tree   qps
+application/vnd.pvi.ptid1     ptid
+# application/vnd.pwg-multiplexed
+# application/vnd.pwg-xhtml-print+xml
+# application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress   qxd qxt qwd qwt qxl qxb
+# application/vnd.radisys.moml+xml
+# application/vnd.radisys.msml+xml
+# application/vnd.radisys.msml-audit+xml
+# application/vnd.radisys.msml-audit-conf+xml
+# application/vnd.radisys.msml-audit-conn+xml
+# application/vnd.radisys.msml-audit-dialog+xml
+# application/vnd.radisys.msml-audit-stream+xml
+# application/vnd.radisys.msml-conf+xml
+# application/vnd.radisys.msml-dialog+xml
+# application/vnd.radisys.msml-dialog-base+xml
+# application/vnd.radisys.msml-dialog-fax-detect+xml
+# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
+# application/vnd.radisys.msml-dialog-group+xml
+# application/vnd.radisys.msml-dialog-speech+xml
+# application/vnd.radisys.msml-dialog-transform+xml
+# application/vnd.rainstor.data
+# application/vnd.rapid
+application/vnd.realvnc.bed     bed
+application/vnd.recordare.musicxml    mxl
+application/vnd.recordare.musicxml+xml    musicxml
+# application/vnd.renlearn.rlprint
+application/vnd.rig.cryptonote      cryptonote
+application/vnd.rim.cod       cod
+application/vnd.rn-realmedia      rm
+application/vnd.rn-realmedia-vbr    rmvb
+application/vnd.route66.link66+xml    link66
+# application/vnd.rs-274x
+# application/vnd.ruckus.download
+# application/vnd.s3sms
+application/vnd.sailingtracker.track    st
+# application/vnd.sbm.cid
+# application/vnd.sbm.mid2
+# application/vnd.scribus
+# application/vnd.sealed.3df
+# application/vnd.sealed.csf
+# application/vnd.sealed.doc
+# application/vnd.sealed.eml
+# application/vnd.sealed.mht
+# application/vnd.sealed.net
+# application/vnd.sealed.ppt
+# application/vnd.sealed.tiff
+# application/vnd.sealed.xls
+# application/vnd.sealedmedia.softseal.html
+# application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail       see
+application/vnd.sema        sema
+application/vnd.semd        semd
+application/vnd.semf        semf
+application/vnd.shana.informed.formdata   ifm
+application/vnd.shana.informed.formtemplate itp
+application/vnd.shana.informed.interchange  iif
+application/vnd.shana.informed.package    ipk
+application/vnd.simtech-mindmapper    twd twds
+application/vnd.smaf        mmf
+# application/vnd.smart.notebook
+application/vnd.smart.teacher     teacher
+# application/vnd.software602.filler.form+xml
+# application/vnd.software602.filler.form-xml-zip
+application/vnd.solent.sdkm+xml     sdkm sdkd
+application/vnd.spotfire.dxp      dxp
+application/vnd.spotfire.sfs      sfs
+# application/vnd.sss-cod
+# application/vnd.sss-dtf
+# application/vnd.sss-ntf
+application/vnd.stardivision.calc   sdc
+application/vnd.stardivision.draw   sda
+application/vnd.stardivision.impress    sdd
+application/vnd.stardivision.math   smf
+application/vnd.stardivision.writer   sdw vor
+application/vnd.stardivision.writer-global  sgl
+application/vnd.stepmania.package   smzip
+application/vnd.stepmania.stepchart   sm
+# application/vnd.street-stream
+application/vnd.sun.xml.calc      sxc
+application/vnd.sun.xml.calc.template   stc
+application/vnd.sun.xml.draw      sxd
+application/vnd.sun.xml.draw.template   std
+application/vnd.sun.xml.impress     sxi
+application/vnd.sun.xml.impress.template  sti
+application/vnd.sun.xml.math      sxm
+application/vnd.sun.xml.writer      sxw
+application/vnd.sun.xml.writer.global   sxg
+application/vnd.sun.xml.writer.template   stw
+# application/vnd.sun.wadl+xml
+application/vnd.sus-calendar      sus susp
+application/vnd.svd       svd
+# application/vnd.swiftview-ics
+application/vnd.symbian.install     sis sisx
+application/vnd.syncml+xml      xsm
+application/vnd.syncml.dm+wbxml     bdm
+application/vnd.syncml.dm+xml     xdm
+# application/vnd.syncml.dm.notification
+# application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive tao
+application/vnd.tcpdump.pcap      pcap cap dmp
+application/vnd.tmobile-livetv      tmo
+application/vnd.trid.tpt      tpt
+application/vnd.triscape.mxs      mxs
+application/vnd.trueapp       tra
+# application/vnd.truedoc
+# application/vnd.ubisoft.webplayer
+application/vnd.ufdl        ufd ufdl
+application/vnd.uiq.theme     utz
+application/vnd.umajin        umj
+application/vnd.unity       unityweb
+application/vnd.uoml+xml      uoml
+# application/vnd.uplanet.alert
+# application/vnd.uplanet.alert-wbxml
+# application/vnd.uplanet.bearer-choice
+# application/vnd.uplanet.bearer-choice-wbxml
+# application/vnd.uplanet.cacheop
+# application/vnd.uplanet.cacheop-wbxml
+# application/vnd.uplanet.channel
+# application/vnd.uplanet.channel-wbxml
+# application/vnd.uplanet.list
+# application/vnd.uplanet.list-wbxml
+# application/vnd.uplanet.listcmd
+# application/vnd.uplanet.listcmd-wbxml
+# application/vnd.uplanet.signal
+application/vnd.vcx       vcx
+# application/vnd.vd-study
+# application/vnd.vectorworks
+# application/vnd.verimatrix.vcas
+# application/vnd.vidsoft.vidconference
+application/vnd.visio       vsd vst vss vsw
+application/vnd.visionary     vis
+# application/vnd.vividence.scriptfile
+application/vnd.vsf       vsf
+# application/vnd.wap.sic
+# application/vnd.wap.slc
+application/vnd.wap.wbxml     wbxml
+application/vnd.wap.wmlc      wmlc
+application/vnd.wap.wmlscriptc      wmlsc
+application/vnd.webturbo      wtb
+# application/vnd.wfa.wsc
+# application/vnd.wmc
+# application/vnd.wmf.bootstrap
+# application/vnd.wolfram.mathematica
+# application/vnd.wolfram.mathematica.package
+application/vnd.wolfram.player      nbp
+application/vnd.wordperfect     wpd
+application/vnd.wqd       wqd
+# application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf        stf
+# application/vnd.wv.csp+wbxml
+# application/vnd.wv.csp+xml
+# application/vnd.wv.ssp+xml
+application/vnd.xara        xar
+application/vnd.xfdl        xfdl
+# application/vnd.xfdl.webform
+# application/vnd.xmi+xml
+# application/vnd.xmpie.cpkg
+# application/vnd.xmpie.dpkg
+# application/vnd.xmpie.plan
+# application/vnd.xmpie.ppkg
+# application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic     hvd
+application/vnd.yamaha.hv-script    hvs
+application/vnd.yamaha.hv-voice     hvp
+application/vnd.yamaha.openscoreformat      osf
+application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg
+# application/vnd.yamaha.remote-setup
+application/vnd.yamaha.smaf-audio   saf
+application/vnd.yamaha.smaf-phrase    spf
+# application/vnd.yamaha.through-ngn
+# application/vnd.yamaha.tunnel-udpencap
+application/vnd.yellowriver-custom-menu   cmp
+application/vnd.zul       zir zirz
+application/vnd.zzazz.deck+xml      zaz
+application/voicexml+xml      vxml
+# application/vq-rtcpxr
+# application/watcherinfo+xml
+# application/whoispp-query
+# application/whoispp-response
+application/widget        wgt
+application/winhlp        hlp
+# application/wita
+# application/wordperfect5.1
+application/wsdl+xml        wsdl
+application/wspolicy+xml      wspolicy
+application/x-7z-compressed     7z
+application/x-abiword       abw
+application/x-ace-compressed      ace
+# application/x-amf
+application/x-apple-diskimage     dmg
+application/x-authorware-bin      aab x32 u32 vox
+application/x-authorware-map      aam
+application/x-authorware-seg      aas
+application/x-bcpio       bcpio
+application/x-bittorrent      torrent
+application/x-blorb       blb blorb
+application/x-bzip        bz
+application/x-bzip2       bz2 boz
+application/x-cbr       cbr cba cbt cbz cb7
+application/x-cdlink        vcd
+application/x-cfs-compressed      cfs
+application/x-chat        chat
+application/x-chess-pgn       pgn
+application/x-conference      nsc
+# application/x-compress
+application/x-cpio        cpio
+application/x-csh       csh
+application/x-debian-package      deb udeb
+application/x-dgc-compressed      dgc
+application/x-director      dir dcr dxr cst cct cxt w3d fgd swa
+application/x-doom        wad
+application/x-dtbncx+xml      ncx
+application/x-dtbook+xml      dtb
+application/x-dtbresource+xml     res
+application/x-dvi       dvi
+application/x-envoy       evy
+application/x-eva       eva
+application/x-font-bdf        bdf
+# application/x-font-dos
+# application/x-font-framemaker
+application/x-font-ghostscript      gsf
+# application/x-font-libgrx
+application/x-font-linux-psf      psf
+application/x-font-otf        otf
+application/x-font-pcf        pcf
+application/x-font-snf        snf
+# application/x-font-speedo
+# application/x-font-sunos-news
+application/x-font-ttf        ttf ttc
+application/x-font-type1      pfa pfb pfm afm
+application/x-font-woff       woff
+# application/x-font-vfont
+application/x-freearc       arc
+application/x-futuresplash      spl
+application/x-gca-compressed      gca
+application/x-glulx       ulx
+application/x-gnumeric        gnumeric
+application/x-gramps-xml      gramps
+application/x-gtar        gtar
+# application/x-gzip
+application/x-hdf       hdf
+application/x-install-instructions    install
+application/x-iso9660-image     iso
+application/x-java-jnlp-file      jnlp
+application/x-latex       latex
+application/x-lzh-compressed      lzh lha
+application/x-mie       mie
+application/x-mobipocket-ebook      prc mobi
+application/x-ms-application      application
+application/x-ms-shortcut     lnk
+application/x-ms-wmd        wmd
+application/x-ms-wmz        wmz
+application/x-ms-xbap       xbap
+application/x-msaccess        mdb
+application/x-msbinder        obd
+application/x-mscardfile      crd
+application/x-msclip        clp
+application/x-msdownload      exe dll com bat msi
+application/x-msmediaview     mvb m13 m14
+application/x-msmetafile      wmf wmz emf emz
+application/x-msmoney       mny
+application/x-mspublisher     pub
+application/x-msschedule      scd
+application/x-msterminal      trm
+application/x-mswrite       wri
+application/x-netcdf        nc cdf
+application/x-nzb       nzb
+application/x-pkcs12        p12 pfx
+application/x-pkcs7-certificates    p7b spc
+application/x-pkcs7-certreqresp     p7r
+application/x-rar-compressed      rar
+application/x-research-info-systems   ris
+application/x-sh        sh
+application/x-shar        shar
+application/x-shockwave-flash     swf
+application/x-silverlight-app     xap
+application/x-sql       sql
+application/x-stuffit       sit
+application/x-stuffitx        sitx
+application/x-subrip        srt
+application/x-sv4cpio       sv4cpio
+application/x-sv4crc        sv4crc
+application/x-t3vm-image      t3
+application/x-tads        gam
+application/x-tar       tar
+application/x-tcl       tcl
+application/x-tex       tex
+application/x-tex-tfm       tfm
+application/x-texinfo       texinfo texi
+application/x-tgif        obj
+application/x-ustar       ustar
+application/x-wais-source     src
+application/x-x509-ca-cert      der crt
+application/x-xfig        fig
+application/x-xliff+xml       xlf
+application/x-xpinstall       xpi
+application/x-xz        xz
+application/x-zmachine        z1 z2 z3 z4 z5 z6 z7 z8
+# application/x400-bp
+application/xaml+xml        xaml
+# application/xcap-att+xml
+# application/xcap-caps+xml
+application/xcap-diff+xml     xdf
+# application/xcap-el+xml
+# application/xcap-error+xml
+# application/xcap-ns+xml
+# application/xcon-conference-info-diff+xml
+# application/xcon-conference-info+xml
+application/xenc+xml        xenc
+application/xhtml+xml       xhtml xht
+# application/xhtml-voice+xml
+application/xml         xml xsl
+application/xml-dtd       dtd
+# application/xml-external-parsed-entity
+# application/xmpp+xml
+application/xop+xml       xop
+application/xproc+xml       xpl
+application/xslt+xml        xslt
+application/xspf+xml        xspf
+application/xv+xml        mxml xhvml xvml xvm
+application/yang        yang
+application/yin+xml       yin
+application/zip         zip
+# audio/1d-interleaved-parityfec
+# audio/32kadpcm
+# audio/3gpp
+# audio/3gpp2
+# audio/ac3
+audio/adpcm         adp
+# audio/amr
+# audio/amr-wb
+# audio/amr-wb+
+# audio/asc
+# audio/atrac-advanced-lossless
+# audio/atrac-x
+# audio/atrac3
+audio/basic         au snd
+# audio/bv16
+# audio/bv32
+# audio/clearmode
+# audio/cn
+# audio/dat12
+# audio/dls
+# audio/dsr-es201108
+# audio/dsr-es202050
+# audio/dsr-es202211
+# audio/dsr-es202212
+# audio/dv
+# audio/dvi4
+# audio/eac3
+# audio/evrc
+# audio/evrc-qcp
+# audio/evrc0
+# audio/evrc1
+# audio/evrcb
+# audio/evrcb0
+# audio/evrcb1
+# audio/evrcwb
+# audio/evrcwb0
+# audio/evrcwb1
+# audio/example
+# audio/fwdred
+# audio/g719
+# audio/g722
+# audio/g7221
+# audio/g723
+# audio/g726-16
+# audio/g726-24
+# audio/g726-32
+# audio/g726-40
+# audio/g728
+# audio/g729
+# audio/g7291
+# audio/g729d
+# audio/g729e
+# audio/gsm
+# audio/gsm-efr
+# audio/gsm-hr-08
+# audio/ilbc
+# audio/ip-mr_v2.5
+# audio/isac
+# audio/l16
+# audio/l20
+# audio/l24
+# audio/l8
+# audio/lpc
+audio/midi          mid midi kar rmi
+# audio/mobile-xmf
+audio/mp4         mp4a
+# audio/mp4a-latm
+# audio/mpa
+# audio/mpa-robust
+audio/mpeg          mpga mp2 mp2a mp3 m2a m3a
+# audio/mpeg4-generic
+# audio/musepack
+audio/ogg         oga ogg spx
+# audio/opus
+# audio/parityfec
+# audio/pcma
+# audio/pcma-wb
+# audio/pcmu-wb
+# audio/pcmu
+# audio/prs.sid
+# audio/qcelp
+# audio/red
+# audio/rtp-enc-aescm128
+# audio/rtp-midi
+# audio/rtx
+audio/s3m         s3m
+audio/silk          sil
+# audio/smv
+# audio/smv0
+# audio/smv-qcp
+# audio/sp-midi
+# audio/speex
+# audio/t140c
+# audio/t38
+# audio/telephone-event
+# audio/tone
+# audio/uemclip
+# audio/ulpfec
+# audio/vdvi
+# audio/vmr-wb
+# audio/vnd.3gpp.iufp
+# audio/vnd.4sb
+# audio/vnd.audiokoz
+# audio/vnd.celp
+# audio/vnd.cisco.nse
+# audio/vnd.cmles.radio-events
+# audio/vnd.cns.anp1
+# audio/vnd.cns.inf1
+audio/vnd.dece.audio        uva uvva
+audio/vnd.digital-winds       eol
+# audio/vnd.dlna.adts
+# audio/vnd.dolby.heaac.1
+# audio/vnd.dolby.heaac.2
+# audio/vnd.dolby.mlp
+# audio/vnd.dolby.mps
+# audio/vnd.dolby.pl2
+# audio/vnd.dolby.pl2x
+# audio/vnd.dolby.pl2z
+# audio/vnd.dolby.pulse.1
+audio/vnd.dra         dra
+audio/vnd.dts         dts
+audio/vnd.dts.hd        dtshd
+# audio/vnd.dvb.file
+# audio/vnd.everad.plj
+# audio/vnd.hns.audio
+audio/vnd.lucent.voice        lvp
+audio/vnd.ms-playready.media.pya    pya
+# audio/vnd.nokia.mobile-xmf
+# audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800     ecelp4800
+audio/vnd.nuera.ecelp7470     ecelp7470
+audio/vnd.nuera.ecelp9600     ecelp9600
+# audio/vnd.octel.sbc
+# audio/vnd.qcelp
+# audio/vnd.rhetorex.32kadpcm
+audio/vnd.rip         rip
+# audio/vnd.sealedmedia.softseal.mpeg
+# audio/vnd.vmx.cvsd
+# audio/vorbis
+# audio/vorbis-config
+audio/webm          weba
+audio/x-aac         aac
+audio/x-aiff          aif aiff aifc
+audio/x-caf         caf
+audio/x-flac          flac
+audio/x-matroska        mka
+audio/x-mpegurl         m3u
+audio/x-ms-wax          wax
+audio/x-ms-wma          wma
+audio/x-pn-realaudio        ram ra
+audio/x-pn-realaudio-plugin     rmp
+# audio/x-tta
+audio/x-wav         wav
+audio/xm          xm
+chemical/x-cdx          cdx
+chemical/x-cif          cif
+chemical/x-cmdf         cmdf
+chemical/x-cml          cml
+chemical/x-csml         csml
+# chemical/x-pdb
+chemical/x-xyz          xyz
+image/bmp         bmp
+image/cgm         cgm
+# image/example
+# image/fits
+image/g3fax         g3
+image/gif         gif
+image/ief         ief
+# image/jp2
+image/jpeg          jpeg jpg jpe
+# image/jpm
+# image/jpx
+image/ktx         ktx
+# image/naplps
+image/png         png
+image/prs.btif          btif
+# image/prs.pti
+image/sgi         sgi
+image/svg+xml         svg svgz
+# image/t38
+image/tiff          tiff tif
+# image/tiff-fx
+image/vnd.adobe.photoshop     psd
+# image/vnd.cns.inf2
+image/vnd.dece.graphic        uvi uvvi uvg uvvg
+image/vnd.dvb.subtitle        sub
+image/vnd.djvu          djvu djv
+image/vnd.dwg         dwg
+image/vnd.dxf         dxf
+image/vnd.fastbidsheet        fbs
+image/vnd.fpx         fpx
+image/vnd.fst         fst
+image/vnd.fujixerox.edmics-mmr      mmr
+image/vnd.fujixerox.edmics-rlc      rlc
+# image/vnd.globalgraphics.pgb
+# image/vnd.microsoft.icon
+# image/vnd.mix
+image/vnd.ms-modi       mdi
+image/vnd.ms-photo        wdp
+image/vnd.net-fpx       npx
+# image/vnd.radiance
+# image/vnd.sealed.png
+# image/vnd.sealedmedia.softseal.gif
+# image/vnd.sealedmedia.softseal.jpg
+# image/vnd.svf
+image/vnd.wap.wbmp        wbmp
+image/vnd.xiff          xif
+image/webp          webp
+image/x-3ds         3ds
+image/x-cmu-raster        ras
+image/x-cmx         cmx
+image/x-freehand        fh fhc fh4 fh5 fh7
+image/x-icon          ico
+image/x-mrsid-image       sid
+image/x-pcx         pcx
+image/x-pict          pic pct
+image/x-portable-anymap       pnm
+image/x-portable-bitmap       pbm
+image/x-portable-graymap      pgm
+image/x-portable-pixmap       ppm
+image/x-rgb         rgb
+image/x-tga         tga
+image/x-xbitmap         xbm
+image/x-xpixmap         xpm
+image/x-xwindowdump       xwd
+# message/cpim
+# message/delivery-status
+# message/disposition-notification
+# message/example
+# message/external-body
+# message/feedback-report
+# message/global
+# message/global-delivery-status
+# message/global-disposition-notification
+# message/global-headers
+# message/http
+# message/imdn+xml
+# message/news
+# message/partial
+message/rfc822          eml mime
+# message/s-http
+# message/sip
+# message/sipfrag
+# message/tracking-status
+# message/vnd.si.simp
+# model/example
+model/iges          igs iges
+model/mesh          msh mesh silo
+model/vnd.collada+xml       dae
+model/vnd.dwf         dwf
+# model/vnd.flatland.3dml
+model/vnd.gdl         gdl
+# model/vnd.gs-gdl
+# model/vnd.gs.gdl
+model/vnd.gtw         gtw
+# model/vnd.moml+xml
+model/vnd.mts         mts
+# model/vnd.parasolid.transmit.binary
+# model/vnd.parasolid.transmit.text
+model/vnd.vtu         vtu
+model/vrml          wrl vrml
+model/x3d+binary        x3db x3dbz
+model/x3d+vrml          x3dv x3dvz
+model/x3d+xml         x3d x3dz
+# multipart/alternative
+# multipart/appledouble
+# multipart/byteranges
+# multipart/digest
+# multipart/encrypted
+# multipart/example
+# multipart/form-data
+# multipart/header-set
+# multipart/mixed
+# multipart/parallel
+# multipart/related
+# multipart/report
+# multipart/signed
+# multipart/voice-message
+# text/1d-interleaved-parityfec
+text/cache-manifest       appcache
+text/calendar         ics ifb
+text/css          css
+text/csv          csv
+# text/directory
+# text/dns
+# text/ecmascript
+# text/enriched
+# text/example
+# text/fwdred
+text/html         html htm
+# text/javascript
+text/n3           n3
+# text/parityfec
+text/plain          txt text conf def list log in
+# text/prs.fallenstein.rst
+text/prs.lines.tag        dsc
+# text/vnd.radisys.msml-basic-layout
+# text/red
+# text/rfc822-headers
+text/richtext         rtx
+# text/rtf
+# text/rtp-enc-aescm128
+# text/rtx
+text/sgml         sgml sgm
+# text/t140
+text/tab-separated-values     tsv
+text/troff          t tr roff man me ms
+text/turtle         ttl
+# text/ulpfec
+text/uri-list         uri uris urls
+text/vcard          vcard
+# text/vnd.abc
+text/vnd.curl         curl
+text/vnd.curl.dcurl       dcurl
+text/vnd.curl.scurl       scurl
+text/vnd.curl.mcurl       mcurl
+# text/vnd.dmclientscript
+text/vnd.dvb.subtitle       sub
+# text/vnd.esmertec.theme-descriptor
+text/vnd.fly          fly
+text/vnd.fmi.flexstor       flx
+text/vnd.graphviz       gv
+text/vnd.in3d.3dml        3dml
+text/vnd.in3d.spot        spot
+# text/vnd.iptc.newsml
+# text/vnd.iptc.nitf
+# text/vnd.latex-z
+# text/vnd.motorola.reflex
+# text/vnd.ms-mediapackage
+# text/vnd.net2phone.commcenter.command
+# text/vnd.si.uricatalogue
+text/vnd.sun.j2me.app-descriptor    jad
+# text/vnd.trolltech.linguist
+# text/vnd.wap.si
+# text/vnd.wap.sl
+text/vnd.wap.wml        wml
+text/vnd.wap.wmlscript        wmls
+text/x-asm          s asm
+text/x-c          c cc cxx cpp h hh dic
+text/x-fortran          f for f77 f90
+text/x-java-source        java
+text/x-opml         opml
+text/x-pascal         p pas
+text/x-nfo          nfo
+text/x-setext         etx
+text/x-sfv          sfv
+text/x-uuencode         uu
+text/x-vcalendar        vcs
+text/x-vcard          vcf
+# text/xml
+# text/xml-external-parsed-entity
+# video/1d-interleaved-parityfec
+video/3gpp          3gp
+# video/3gpp-tt
+video/3gpp2         3g2
+# video/bmpeg
+# video/bt656
+# video/celb
+# video/dv
+# video/example
+video/h261          h261
+video/h263          h263
+# video/h263-1998
+# video/h263-2000
+video/h264          h264
+# video/h264-rcdo
+# video/h264-svc
+video/jpeg          jpgv
+# video/jpeg2000
+video/jpm         jpm jpgm
+video/mj2         mj2 mjp2
+# video/mp1s
+# video/mp2p
+# video/mp2t
+video/mp4         mp4 mp4v mpg4
+# video/mp4v-es
+video/mpeg          mpeg mpg mpe m1v m2v
+# video/mpeg4-generic
+# video/mpv
+# video/nv
+video/ogg         ogv
+# video/parityfec
+# video/pointer
+video/quicktime         qt mov
+# video/raw
+# video/rtp-enc-aescm128
+# video/rtx
+# video/smpte292m
+# video/ulpfec
+# video/vc1
+# video/vnd.cctv
+video/vnd.dece.hd       uvh uvvh
+video/vnd.dece.mobile       uvm uvvm
+# video/vnd.dece.mp4
+video/vnd.dece.pd       uvp uvvp
+video/vnd.dece.sd       uvs uvvs
+video/vnd.dece.video        uvv uvvv
+# video/vnd.directv.mpeg
+# video/vnd.directv.mpeg-tts
+# video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file        dvb
+video/vnd.fvt         fvt
+# video/vnd.hns.video
+# video/vnd.iptvforum.1dparityfec-1010
+# video/vnd.iptvforum.1dparityfec-2005
+# video/vnd.iptvforum.2dparityfec-1010
+# video/vnd.iptvforum.2dparityfec-2005
+# video/vnd.iptvforum.ttsavc
+# video/vnd.iptvforum.ttsmpeg2
+# video/vnd.motorola.video
+# video/vnd.motorola.videop
+video/vnd.mpegurl       mxu m4u
+video/vnd.ms-playready.media.pyv    pyv
+# video/vnd.nokia.interleaved-multimedia
+# video/vnd.nokia.videovoip
+# video/vnd.objectvideo
+# video/vnd.sealed.mpeg1
+# video/vnd.sealed.mpeg4
+# video/vnd.sealed.swf
+# video/vnd.sealedmedia.softseal.mov
+video/vnd.uvvu.mp4        uvu uvvu
+video/vnd.vivo          viv
+video/webm          webm
+video/x-f4v         f4v
+video/x-fli         fli
+video/x-flv         flv
+video/x-m4v         m4v
+video/x-matroska        mkv mk3d mks
+video/x-mng         mng
+video/x-ms-asf          asf asx
+video/x-ms-vob          vob
+video/x-ms-wm         wm
+video/x-ms-wmv          wmv
+video/x-ms-wmx          wmx
+video/x-ms-wvx          wvx
+video/x-msvideo         avi
+video/x-sgi-movie       movie
+video/x-smv         smv
+x-conference/x-cooltalk       ice
+
+|]
diff --git a/src/maid.hs b/src/maid.hs
--- a/src/maid.hs
+++ b/src/maid.hs
@@ -1,12 +1,11 @@
-{-# LANGUAGE NamedFieldPuns, QuasiQuotes, OverloadedStrings #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TupleSections #-}
 
 
 import System.Environment (getArgs)
 import Air.Env hiding (div, log, head, def)
-
-
 import Air.TH
-import Air.Extra (b2u, strip)
 
 import Prelude ()
 import Data.Default (def)
@@ -17,89 +16,80 @@
 import Hack2.Contrib.Middleware.UserMime
 import Hack2.Contrib.Middleware.Cascade
 import Hack2.Contrib.Middleware.XForwardedForToRemoteHost
-import qualified Hack2 as Hack2
-
--- import Hack.Contrib.Mime
--- import Data.Map (toAscList)
 import Hack2.Contrib.Utils (use, unescape_uri)
 import Hack2.Contrib.Response (set_content_type, set_body_bytestring)
 import Hack2.Contrib.Request (path)
 import Hack2 hiding (body)
-import System.Posix.Files
+import System.Posix.Files (getFileStatus, isDirectory)
 import Data.List (isInfixOf, sort, (\\))
 import Text.HTML.Moe2 hiding ((/), select, br)
 import Control.Monad ((>=>))
-import System.Process
 import System.Directory (doesFileExist, getDirectoryContents, doesDirectoryExist)
-import Control.Arrow ((&&&))
 import qualified Data.ByteString.Char8 as B
+import Data.Maybe (fromMaybe, catMaybes)
 
--- import qualified Hack2.Handler.Mongrel2HTTP as Mongrel2
--- import Hack2.Handler.Warp
 import Hack2.Handler.SnapServer
-
-
--- test_handler = Mongrel2.Handler
---   {
---     Mongrel2.handlerPullFrom = "tcp://127.0.0.1:6666"
---   , Mongrel2.handlerPublishTo = "tcp://127.0.0.1:6667"
---   , Mongrel2.handlerId = Just "bcc1453e-9cc0-11e0-af11-6cf049b16ec3"
---   }
-
+import qualified Data.Text as T
+import qualified Data.Text.Encoding as E
+import qualified Data.Text.IO as TextIO
+import Web.Maid.ApacheMimeTypes (apache_mime_types)
 
 
+b2u :: String -> String
+b2u = B.pack > E.decodeUtf8 > T.unpack
 
+strip :: String -> String
+strip = T.pack > T.strip > T.unpack
 
 main :: IO ()
 main = do
   args <- getArgs
-  let { port = 
+  let { _port =
     if length args == (0 :: Int)
       then 3000
-      else read - first args
+      else read - first args .fromMaybe ""
     }
-  
+
   let { app =
     dir_serve - \env -> do
       let static_app = static (Just ".") [""] (const - return not_found)
-      
+
       r <- static_app env
-      if r.status == 200
-        then do
-          _content_type <- readProcess "file" ["-b", "--mime", "." + env.pathInfo.B.unpack.unescape_uri] ""
-          -- putStrLn _content_type
-          return - r.set_content_type (_content_type.strip.B.pack)
-        else
-          return r          
+
+      --if r.status == 200
+      --  then do
+      --    _content_type <- readProcess "file" ["-b", "--mime", "." + env.pathInfo.B.unpack.unescape_uri] ""
+      --    -- putStrLn _content_type
+      --    return - r.set_content_type (_content_type.strip.B.pack)
+      --  else
+      --    return r
+
+      return r
     }
 
   maid_mime_exist <- doesFileExist "mime.types"
-    
-  mime_types <- if maid_mime_exist then B.readFile "mime.types" else return default_mime_types
-  
 
-  let version = "2011.10.12"
-      -- moe = "Moe MAX"
-      
+  mime_types <- if maid_mime_exist then TextIO.readFile "mime.types" else return default_mime_types
+
+
+  let version = "2013.9.13"
       br = puts ""
-  
+
   br
-  
+
   puts - " ❂ Maid Version:    " + version
   br
-  
+
   puts - "   Usage:           maid port"
   puts - "   Example:         maid 3000"
   br
-  
-  puts - "   Serving on port: " ++ show port
+
+  puts - "   Serving on port: " ++ show _port
   br
-  
-  let maid_app = use (middleware_stack - B.unpack mime_types) app
-  -- Mongrel2.runWithConfig def { Mongrel2.handler = test_handler } maid_app
-  
-  runWithConfig def {port} - maid_app
-  
+
+  let maid_app = use (middleware_stack mime_types) app
+  runWithConfig def {port = _port} - maid_app
+
   where
     dir_serve app = cascade
       [
@@ -110,26 +100,46 @@
       ]
 
 
-middleware_stack :: String -> [Middleware]
+middleware_stack :: T.Text -> [Middleware]
 middleware_stack mime_types =
   [
     no_favicon
   , content_length
   , x_forwarded_for_to_remote_host
   , simple_access_logger - Nothing
-  , user_mime - map (\(x,y) -> (B.pack x, B.pack y)) - parse_user_mimes - mime_types
+  , user_mime - mime_type_list
   -- , user_mime - mime_types.toAscList.map_fst (drop 1)
   -- , \app env -> do
   --   r <- app env
   --   print - r.headers
   --   return r
   ]
-  
   where
-    parse_user_mimes :: String -> [(String, String)]
-    parse_user_mimes = lines > reject null > map (words > first &&& words > tail > unwords)
+    mime_type_list = map (\(x,y) -> (E.encodeUtf8 x, E.encodeUtf8 y)) - parse_user_mimes - mime_types
 
+parse_user_mimes :: T.Text -> [(T.Text, T.Text)]
+parse_user_mimes =
+    T.unpack
+  > lines
+  > map strip
+  > reject null
+  > reject (starts_with "#")
+  > map parse_line
+  > catMaybes
+  > map expand_line
+  > concat
+  > map (\(x,y) -> (x.T.pack, y.T.pack))
 
+  where
+    parse_line :: String -> Maybe (String, [String])
+    parse_line line =
+      case line.words of
+        (x:y:ys) -> Just (x, y:ys)
+        _ -> Nothing
+
+    expand_line :: (String, [String]) -> [(String, String)]
+    expand_line (mime, extensions) = extensions.map (\extension -> (extension,mime))
+
 no_favicon :: Middleware
 no_favicon app = \env -> do
   -- putStrLn - "pathInfo is: " + env.pathInfo
@@ -148,10 +158,7 @@
 list_dir :: Application
 list_dir env = do
   let _path = "." + env.pathInfo .B.unpack.unescape_uri.b2u
-  
-  -- print _path
-  
-  -- no hack please
+
   if ".." `isInfixOf` _path
     then
       return not_found
@@ -161,36 +168,36 @@
         then return not_found
         else do
           is_dir <- is_directory _path
-      
+
           if not is_dir
             then
               return not_found
             else do
               let ls :: String -> IO [String]
                   ls s = getDirectoryContents s ^ (\\ [".", ".."])
-              
+
               _paths <- ls _path
 
               -- print _paths
-        
+
               let _full_paths = _paths.map (_path.drop (2 :: Int) /)
-          
+
               is_path_dir_flag <- _full_paths.mapM is_directory
 
               let flagged = zip _paths is_path_dir_flag
-          
+
                   dirs = flagged.select snd.sort .map_fst (+ "/")
-                  files =  flagged.reject snd.sort 
+                  files =  flagged.reject snd.sort
 
                   sorted = dirs + files
-          
+
               maid_css_exist <- doesFileExist "maid.css"
-          
+
               _css <- if maid_css_exist then B.readFile "maid.css" else return default_css_style
-            
-              
+
+
               let _html = B.pack - dir_template sorted (B.unpack _css) (env.path.B.unpack.unescape_uri)
-              
+
               return - def
                 {
                   status = 200
@@ -205,15 +212,15 @@
     head - do
       meta ! [http_equiv "Content-Type", content "text/html; charset=utf-8"] - return ()
       style - str _css
-      
+
     body - do
       div ! [_class "container"] - do
         ul - do
           xs.mapM_ (\(_path, dir_tag) ->
             li - do
-              
+
               let path_dom = a ! [href - "/" / current_path.b2u / _path] - str - _path
-                
+
               if dir_tag
                 then
                   div ! [_class "directory"] -
@@ -221,9 +228,9 @@
                 else
                   path_dom
             )
-          
 
 
+
 default_css_style :: B.ByteString
 default_css_style = [here|
 
@@ -262,10 +269,9 @@
 |]
 
 
-default_mime_types :: B.ByteString
+default_mime_types :: T.Text
 default_mime_types = [here|
 
-hs text/plain; charset=utf-8
-lhs text/plain; charset=utf-8
+text/plain hs lhs
 
-|] .B.pack
+|] + apache_mime_types
