plezi 0.11.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7faa8f51c3d95810d3e7a315b970d55276d5f3dc
4
- data.tar.gz: ac93d924d781fe4dd9c9e388a8405a971b76f623
3
+ metadata.gz: e9a6b0a7a56451936b9d79a8875db0281700d874
4
+ data.tar.gz: b99ac94d8c52014cefcdfbbcbc97a853f0f8437f
5
5
  SHA512:
6
- metadata.gz: 6e8ec22249a50788ace60a4f12af6a589264cd3d91d6e2c2873002915be5c3a0a14ece6301f39306b293de65129f620f64c04c7b38984ac0234187237cef4d06
7
- data.tar.gz: 8c23d6ac45147933bb294e97b266ee49b10481ce1747d1649b7866e8ff6e1f087201083607b53557a85b6d60632c0b5d9154e3a2b7028bbc7ae86d3a145c0730
6
+ metadata.gz: 8a9e1f987b95e1818883061e63a986f8e105c6b17b83ed33962f3a6f4bb9ee7faf9d1d5506d37fda945dc24b68560fce5946fadcff8f9617204aa3725c575cac
7
+ data.tar.gz: edd2e1681d903e6c8fc79b11543725494c29a8e30939320081a2666f2c25050d1565492e3f42ead90aba58f3894b44d27aaf0a3e69106de481bd28ab4c5b3775
@@ -2,6 +2,16 @@
2
2
 
3
3
  ***
4
4
 
5
+ Change log v.0.11.1
6
+
7
+ **Feature**: (undocumented) Rendering and Asset extentions! Now, Rendering and Asset pipeline can be extended to allow for more rendering and asset engines. This is yet undocumented and somewhat experimental, but the API in this regard will be stable for all `~>= 0.11.1` versions.
8
+
9
+ **Update**: Simpler asset rendering workflow, rewritten while adding extention support.
10
+
11
+ **Fix**: Fixed an issue where the MimeTypeHelper wouldn't recognize a file's extention (due to the '.' in the file's extention string).
12
+
13
+ ***
14
+
5
15
  Change log v.0.11.0
6
16
 
7
17
  **Update**: Requires GRHttp server and GReactor version 0.1.0 or above, adjusted to the updated API.
@@ -34,6 +34,7 @@ require 'plezi/common/api.rb'
34
34
  require 'plezi/common/dsl.rb'
35
35
  require 'plezi/common/redis.rb'
36
36
  require 'plezi/common/settings.rb'
37
+ require 'plezi/common/renderer.rb'
37
38
 
38
39
  ### helpers
39
40
 
@@ -41,7 +42,6 @@ require 'plezi/helpers/http_sender.rb'
41
42
  require 'plezi/helpers/magic_helpers.rb'
42
43
  require 'plezi/helpers/mime_types.rb'
43
44
 
44
-
45
45
  ### HTTP and WebSocket Handlers
46
46
  require 'plezi/handlers/http_router.rb'
47
47
  require 'plezi/handlers/route.rb'
@@ -53,6 +53,7 @@ require 'plezi/handlers/stubs.rb'
53
53
  require 'plezi/handlers/session.rb'
54
54
 
55
55
 
56
+
56
57
  ##############################################################################
57
58
  #
58
59
  # Plezi is an easy to use Ruby Websocket Framework, with full RESTful routing support and HTTP streaming support. It's name comes from the word "fun" in Haitian, since Plezi is really fun to work with and it keeps our code clean and streamlined.
@@ -78,12 +78,12 @@ module Plezi
78
78
 
79
79
  # returns true if the filename is cached.
80
80
  def cached? filename
81
- !CACHE_STORE[filename].nil?
81
+ CACHE_STORE[filename] && true
82
82
  end
83
83
 
84
84
  # returns true if the file exists on disk or in the cache.
85
85
  def file_exists? filename
86
- (CACHE_STORE[filename] || File.exists?(filename)) ? true : false
86
+ ( CACHE_STORE[filename] || File.exists?(filename) ) && true
87
87
  end
88
88
 
89
89
  # returns true if the file has been update since data was last cached.
@@ -0,0 +1,138 @@
1
+ module Plezi
2
+ module Base
3
+
4
+ class ExtentionManager
5
+ def initialize
6
+ @render_library = {}
7
+ @locker = Mutex.new
8
+ end
9
+ # Registers a rendering extention.
10
+ #
11
+ # Slim, Haml and ERB are registered by default.
12
+ #
13
+ # extention:: a Symbol or String representing the extention of the file to be rendered. i.e. 'slim', 'md', 'erb', etc'
14
+ # handler :: a Proc or other object that answers to call(filename, context, &block) and returnes the rendered string. The block accepted by the handler is for chaining rendered actions (allowing for `yield` within templates) and the context is the object within which the rendering should be performed (if `binding` handling is supported by the engine).
15
+ #
16
+ # If a block is passed to the `register_hook` method with no handler defined, it will act as the handler.
17
+ def register extention, handler = nil, &block
18
+ handler ||= block
19
+ raise "Handler or block required." unless handler
20
+ @locker.synchronize { @render_library[extention.to_s] = handler }
21
+ handler
22
+ end
23
+ def review extention
24
+ @locker.synchronize { @render_library[extention.to_s] }
25
+ end
26
+ # Removes a registered render extention
27
+ def remove extention
28
+ @locker.synchronize { @render_library.delete extention.to_s }
29
+ end
30
+ def each &block
31
+ block_given? ? @render_library.each(&block) : @render_library.each
32
+ end
33
+
34
+
35
+ def render base_filename, context = ( Object.new.instance_eval { binding } ), &block
36
+ @render_library.each {|ext, handler| f = "#{base_filename}.#{ext}".freeze ; return handler.call(f, context, &block) if File.exists?(f) }
37
+ false
38
+ end
39
+
40
+ end
41
+
42
+ module SASSExt
43
+ module_function
44
+
45
+ def call filename, context, &block
46
+ return false unless defined? ::Sass
47
+ @sass_cache ||= Sass::CacheStores::Memory.new if defined?(::Sass)
48
+ # review mtime and render sass if necessary
49
+ if refresh_sass?(filename)
50
+ eng = Sass::Engine.for_file(filename, cache_store: @sass_cache)
51
+ Plezi.cache_data filename, eng.dependencies
52
+ css, map = eng.render_with_sourcemap("#{File.basename(filename, '.*'.freeze)}.map".freeze)
53
+ Plezi.cache_data filename.sub(/\.s[ac]ss$/, '.map'.freeze), map.to_json( css_uri: File.basename(filename, '.*'.freeze) )
54
+ css
55
+ end
56
+ end
57
+
58
+ def refresh_sass? sass
59
+ return false unless File.exists?(sass)
60
+ return true if Plezi.cache_needs_update?(sass)
61
+ mt = Plezi.file_mtime(sass)
62
+ Plezi.get_cached(sass).each {|e| return true if File.exists?(e.options[:filename]) && (File.mtime(e.options[:filename]) > mt)} # fn = File.join( e.options[:load_paths][0].root, e.options[:filename])
63
+ false
64
+ end
65
+ end
66
+ end
67
+
68
+ # asset rendering extentions.
69
+ module AssetManager
70
+ @render_library = {}
71
+ @locker = Mutex.new
72
+
73
+ module_function
74
+ # Registers a rendering extention for a specific asset type (js, css, etc').
75
+ #
76
+ # type:: the type of
77
+ # extention:: a Symbol or String representing the extention of the file to be rendered. i.e. 'scss', 'sass', 'coffee', etc'
78
+ # handler :: a Proc or other object that answers to call(filename, context, &block) and returnes the rendered string. The block accepted by the handler is for chaining rendered actions (allowing for `yield` within templates) and the context is a Binding object which is offered to the rendering (if `binding` handling is supported by the engine).
79
+ #
80
+ # handlers are expected to manage caching for their data. The {Plezi::Cache} module is available for this task,
81
+ # but it should be noted that Plezi might cache data in that same system and conflicts might occure if the final filename isn't used for the caching (including the handler-type extention, i.e. 'coffee', slim' or 'erb').
82
+ #
83
+ # If a block is passed to the `register_hook` method with no handler defined, it will act as the handler.
84
+ def register type, extention, handler = nil, &block
85
+ raise "Type required." unless type
86
+ handler ||= block
87
+ raise "Handler or block required." unless handler
88
+ @locker.synchronize { (@render_library[type.to_s] ||= ::Plezi::Base::ExtentionManager.new).register extention, handler }
89
+ handler
90
+ end
91
+ # Removes a registered render extention
92
+ def remove type, extention
93
+ @locker.synchronize { (@render_library[type.to_s] ||= ::Plezi::Base::ExtentionManager.new).remove extention.to_s }
94
+ end
95
+ # returns an array with all the registered extentions
96
+ def all_extentions
97
+ out = []
98
+ @render_library.each {|t, l| l.each {|e, h| out << e } }
99
+ out.uniq!
100
+ out
101
+ end
102
+
103
+
104
+ def render base_filename, context = ( Object.new.instance_eval { binding } ), &block
105
+ handler = @render_library[File.extname(base_filename)[1..-1]]
106
+ handler.each {|ext, handler| f = "#{base_filename}.#{ext}".freeze ; return handler.call(f, context, &block) if File.exists?(f) } if handler
107
+ false
108
+ end
109
+ end
110
+
111
+ # Render Managment
112
+ Renderer = ::Plezi::Base::ExtentionManager.new
113
+
114
+ Renderer.register :erb do |filename, context, &block|
115
+ next unless defined? ::ERB
116
+ ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( ERB.new( IO.binread(filename) ) ) ) : (Plezi.get_cached filename) ).result((context) , &block)
117
+ end
118
+ Renderer.register :slim do |filename, context, &block|
119
+ next unless defined? ::Slim
120
+ ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( Slim::Template.new() { IO.binread filename } ) ) : (Plezi.get_cached filename) ).render(context.receiver, &block)
121
+ end
122
+ Renderer.register :haml do |filename, context, &block|
123
+ next unless defined? ::Haml
124
+ ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( Haml::Engine.new( IO.binread(filename) ) ) ) : (Plezi.get_cached filename) ).render(context.receiver, &block)
125
+ end
126
+
127
+ # JavaScript asset rendering
128
+ AssetManager.register :js, :erb, Renderer.review(:erb)
129
+ AssetManager.register :js, :coffee do |filename, context, &block|
130
+ next unless defined? ::CoffeeScript
131
+ ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, CoffeeScript.compile(IO.binread filename) ) : (Plezi.get_cached filename) )
132
+ end
133
+
134
+ # CSS asset rendering
135
+ AssetManager.register :css, :erb, Renderer.review(:erb)
136
+ AssetManager.register :css, :scss, ::Plezi::Base::SASSExt
137
+ AssetManager.register :css, :sass, ::Plezi::Base::SASSExt
138
+ end
@@ -177,20 +177,15 @@ module Plezi
177
177
  # render layout by recursion, if exists
178
178
  (return render(options.delete(:layout), options) { render template, options, &block }) if options[:layout]
179
179
  # set up defaults
180
- options[:type] ||= 'html'
180
+ options[:type] ||= 'html'.freeze
181
181
  options[:locale] ||= params[:locale].to_sym if params[:locale]
182
182
  #update content-type header
183
- response['content-type'] ||= (MimeTypeHelper::MIME_DICTIONARY[options[:type]] + "; charset=utf-8".freeze)
184
- # options[:locals] ||= {}
183
+ response['content-type'] ||= "#{MimeTypeHelper::MIME_DICTIONARY[".#{options[:type]}".freeze]}; charset=utf-8".freeze
184
+ # Circumvents I18n persistance issues (live updating and thread data storage).
185
185
  I18n.locale = options[:locale] || I18n.default_locale if defined?(I18n) # sets the locale to nil for default behavior even if the locale was set by a previous action - removed: # && options[:locale]
186
186
  # find template and create template object
187
- filename = template.is_a?(String) ? File.join( host_params[:templates].to_s, template) : (File.join( host_params[:templates].to_s, *template.to_s.split('_')) + (options[:type].empty? ? '': ".#{options[:type]}") + '.slim')
188
- return ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( Slim::Template.new() { IO.binread filename } ) ) : (Plezi.get_cached filename) ).render(self, &block) if defined?(::Slim) && Plezi.file_exists?(filename)
189
- filename.sub! /\.slim$/, '.haml'
190
- return ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( Haml::Engine.new( IO.binread(filename) ) ) ) : (Plezi.get_cached filename) ).render(self, &block) if defined?(::Haml) && Plezi.file_exists?(filename)
191
- filename.sub! /\.haml$/, '.erb'
192
- return ( Plezi.cache_needs_update?(filename) ? Plezi.cache_data( filename, ( ERB.new( IO.binread(filename) ) ) ) : (Plezi.get_cached filename) ).result(binding, &block) if defined?(::ERB) && Plezi.file_exists?(filename)
193
- return false
187
+ filename = template.is_a?(String) ? File.join( host_params[:templates].to_s, template) : (File.join( host_params[:templates].to_s, *template.to_s.split('_')) + (options[:type].empty? ? '': ".#{options[:type]}"))
188
+ ::Plezi::Renderer.render filename, binding, &block
194
189
  end
195
190
 
196
191
  # returns the initial method called (or about to be called) by the router for the HTTP request.
@@ -12,6 +12,8 @@ module Plezi
12
12
  def initialize params
13
13
  @params = params
14
14
  @routes = []
15
+ params[:assets_public_regex] = /^#{params[:assets_public].to_s.chomp('/')}\/(.+)/.freeze
16
+ params[:assets_refuse_templates] = /(#{AssetManager.all_extentions.join('|')}|\.\.\/)$/.freeze
15
17
  end
16
18
  end
17
19
 
@@ -35,7 +37,6 @@ module Plezi
35
37
  def initialize
36
38
  @hosts = {}
37
39
  @active_host = nil
38
- @sass_cache = Sass::CacheStores::Memory.new if defined?(::Sass)
39
40
  end
40
41
 
41
42
  # adds a host to the router (or activates an existing host to add new routes). accepts a host name and any parameters not related to the actual connection (ssl etc') (see {Plezi.listen})
@@ -99,18 +100,19 @@ module Plezi
99
100
  # renders assets, if necessary, and places the rendered result in the cache and in the public folder.
100
101
  def render_assets request, response, params
101
102
  # contine only if assets are defined and called for
102
- return false unless params[:assets] && request.path.match(/^#{params[:assets_public]}\/.+/)
103
+ return false unless params[:assets] && (request.path =~ params[:assets_public_regex])
103
104
  # review callback, if defined
104
105
  return true if params[:assets_callback] && params[:assets_callback].call(request, response)
105
106
 
106
107
  # get file requested
107
- source_file = File.join(params[:assets], *(request.path.match(/^#{params[:assets_public]}\/(.+)/)[1].split('/')))
108
+ source_file = File.join(params[:assets], *(request.path.match(params[:assets_public_regex])[1].split('/')))
109
+
108
110
 
109
111
  # stop if file name is reserved / has security issues
110
- return false if File.directory?(source_file) || source_file.match(/(scss|sass|coffee|\.\.\/)$/)
112
+ return false if File.directory?(source_file) || source_file =~ params[:assets_refuse_templates]
111
113
 
112
114
  # set where to store the rendered asset
113
- target_file = File.join( params[:public].to_s, params[:assets_public].to_s, *request.path.match(/^#{params[:assets_public]}\/(.*)/)[1].split('/') )
115
+ target_file = File.join( params[:public].to_s, params[:assets_public].to_s, *request.path.match(params[:assets_public_regex])[1].split('/') )
114
116
 
115
117
  # send the file if it exists (no render needed)
116
118
  if File.exists?(source_file)
@@ -118,42 +120,19 @@ module Plezi
118
120
  return (data ? Base::HTTPSender.send_raw_data(request, response, data, MimeTypeHelper::MIME_DICTIONARY[::File.extname(source_file)]) : false)
119
121
  end
120
122
 
121
- # render supported assets
122
- case source_file
123
- when /\.css$/
124
- sass = source_file.sub /css$/, 'sass'
125
- sass.sub! /sass$/, 'scss' unless Plezi.file_exists?(sass)
126
- return false unless Plezi.file_exists?(sass)
127
- # review mtime and render sass if necessary
128
- if defined?(::Sass) && refresh_sass?(sass)
129
- eng = Sass::Engine.for_file(sass, cache_store: @sass_cache)
130
- Plezi.cache_data sass, eng.dependencies
131
- css, map = eng.render_with_sourcemap(params[:assets_public])
132
- Plezi.save_file target_file, css, (params[:public] && params[:save_assets])
133
- Plezi.save_file (target_file + ".map"), map, (params[:public] && params[:save_assets])
134
- end
135
- # try to send the cached css file which started the request.
136
- return Base::HTTPSender.send_file request, response, target_file
137
- when /\.js$/
138
- coffee = source_file.sub /js$/i, 'coffee'
139
- return false unless Plezi.file_exists?(coffee)
140
- # review mtime and render coffee if necessary
141
- if defined?(::CoffeeScript) && Plezi.cache_needs_update?(coffee)
142
- # render coffee to cache
143
- Plezi.cache_data coffee, nil
144
- Plezi.save_file target_file, CoffeeScript.compile(IO.binread coffee), (params[:public] && params[:save_assets])
145
- end
146
- # try to send the cached js file which started the request.
147
- return Base::HTTPSender.send_file request, response, target_file
123
+ # render the file if it's a registered asset
124
+ data = ::Plezi::AssetManager.render source_file, binding
125
+ if data
126
+ return ::Plezi::Base::HTTPSender.send_raw_data request, response, Plezi.save_file(target_file, data, (params[:public] && params[:save_assets])), MimeTypeHelper::MIME_DICTIONARY[::File.extname(source_file)]
148
127
  end
149
- false
150
- end
151
- def refresh_sass? sass
152
- return false unless File.exists?(sass)
153
- return true if Plezi.cache_needs_update?(sass)
154
- mt = Plezi.file_mtime(sass)
155
- Plezi.get_cached(sass).each {|e| return true if File.exists?(e.options[:filename]) && (File.mtime(e.options[:filename]) > mt)} # fn = File.join( e.options[:load_paths][0].root, e.options[:filename])
156
- false
128
+
129
+ # send the data if it's a cached asset (map files and similar assets that were cached while rendering)
130
+ if Plezi.cached?(source_file)
131
+ return Base::HTTPSender.send_raw_data(request, response, Plezi.get_cached(source_file), MimeTypeHelper::MIME_DICTIONARY[::File.extname(source_file)])
132
+ end
133
+
134
+ # return false if an asset couldn't be rendered and wasn't found.
135
+ return false
157
136
  end
158
137
 
159
138
  end
@@ -3,6 +3,12 @@ module Plezi
3
3
 
4
4
  # Sends common basic HTTP responses.
5
5
  module HTTPSender
6
+ class CodeContext
7
+ attr_accessor :request
8
+ def initialize request
9
+ @request = request
10
+ end
11
+ end
6
12
  module_function
7
13
 
8
14
  ######
@@ -13,17 +19,10 @@ module Plezi
13
19
  def send_by_code request, response, code, headers = {}
14
20
  begin
15
21
  base_code_path = request.io.params[:templates] || File.expand_path('.')
16
- if defined?(::Slim) && Plezi.file_exists?(fn = File.join(base_code_path, "#{code}.html.slim"))
17
- Plezi.cache_data fn, Slim::Template.new( fn ) unless Plezi.cached? fn
18
- return send_raw_data request, response, Plezi.get_cached( fn ).render( self, request: request ), 'text/html', code, headers
19
- elsif defined?(::Haml) && Plezi.file_exists?(fn = File.join(base_code_path, "#{code}.html.haml"))
20
- Plezi.cache_data fn, Haml::Engine.new( IO.binread( fn ) ) unless Plezi.cached? fn
21
- return send_raw_data request, response, Plezi.get_cached( File.join(base_code_path, "#{code}.html.haml") ).render( self ), 'text/html', code, headers
22
- elsif defined?(::ERB) && Plezi.file_exists?(fn = File.join(base_code_path, "#{code}.html.erb"))
23
- return send_raw_data request, response, ERB.new( Plezi.load_file( fn ) ).result(binding), 'text/html', code, headers
24
- elsif Plezi.file_exists?(fn = File.join(base_code_path, "#{code}.html"))
25
- return send_file(request, response, fn, code, headers)
26
- end
22
+ fn = File.join(base_code_path, "#{code}.html")
23
+ rendered = ::Plezi::Renderer.render fn, binding #CodeContext.new(request)
24
+ return send_raw_data request, response, rendered, 'text/html', code, headers if rendered
25
+ return send_file(request, response, fn, code, headers) if Plezi.file_exists?(fn)
27
26
  return true if send_raw_data(request, response, response.class::STATUS_CODES[code], 'text/plain', code, headers)
28
27
  rescue Exception => e
29
28
  Plezi.error e
@@ -2,998 +2,1994 @@ module Plezi
2
2
  # This module holds the mime dictionary.
3
3
  module MimeTypeHelper
4
4
  # thank you Apache group (and many more), for compiling mime-type list for me to search through.
5
- MIME_DICTIONARY = {"123"=>"application/vnd.lotus-1-2-3",
6
- "3dml"=>"text/vnd.in3d.3dml",
7
- "3ds"=>"image/x-3ds",
8
- "3g2"=>"video/3gpp2",
9
- "3gp"=>"video/3gpp",
10
- "7z"=>"application/x-7z-compressed",
11
- "aab"=>"application/x-authorware-bin",
12
- "aac"=>"audio/x-aac",
13
- "aam"=>"application/x-authorware-map",
14
- "aas"=>"application/x-authorware-seg",
15
- "abw"=>"application/x-abiword",
16
- "ac"=>"application/pkix-attr-cert",
17
- "acc"=>"application/vnd.americandynamics.acc",
18
- "ace"=>"application/x-ace-compressed",
19
- "acu"=>"application/vnd.acucobol",
20
- "acutc"=>"application/vnd.acucorp",
21
- "adp"=>"audio/adpcm",
22
- "aep"=>"application/vnd.audiograph",
23
- "afm"=>"application/x-font-type1",
24
- "afp"=>"application/vnd.ibm.modcap",
25
- "ahead"=>"application/vnd.ahead.space",
26
- "ai"=>"application/postscript",
27
- "aif"=>"audio/x-aiff",
28
- "aifc"=>"audio/x-aiff",
29
- "aiff"=>"audio/x-aiff",
30
- "air"=>"application/vnd.adobe.air-application-installer-package+zip",
31
- "ait"=>"application/vnd.dvb.ait",
32
- "ami"=>"application/vnd.amiga.ami",
33
- "apk"=>"application/vnd.android.package-archive",
34
- "appcache"=>"text/cache-manifest",
35
- "application"=>"application/x-ms-application",
36
- "apr"=>"application/vnd.lotus-approach",
37
- "arc"=>"application/x-freearc",
38
- "asc"=>"application/pgp-signature",
39
- "asf"=>"video/x-ms-asf",
40
- "asm"=>"text/x-asm",
41
- "aso"=>"application/vnd.accpac.simply.aso",
42
- "asx"=>"video/x-ms-asf",
43
- "atc"=>"application/vnd.acucorp",
44
- "atom"=>"application/atom+xml",
45
- "atomcat"=>"application/atomcat+xml",
46
- "atomsvc"=>"application/atomsvc+xml",
47
- "atx"=>"application/vnd.antix.game-component",
48
- "au"=>"audio/basic",
49
- "avi"=>"video/x-msvideo",
50
- "aw"=>"application/applixware",
51
- "azf"=>"application/vnd.airzip.filesecure.azf",
52
- "azs"=>"application/vnd.airzip.filesecure.azs",
53
- "azw"=>"application/vnd.amazon.ebook",
54
- "bat"=>"application/x-msdownload",
55
- "bcpio"=>"application/x-bcpio",
56
- "bdf"=>"application/x-font-bdf",
57
- "bdm"=>"application/vnd.syncml.dm+wbxml",
58
- "bed"=>"application/vnd.realvnc.bed",
59
- "bh2"=>"application/vnd.fujitsu.oasysprs",
60
- "bin"=>"application/octet-stream",
61
- "blb"=>"application/x-blorb",
62
- "blorb"=>"application/x-blorb",
63
- "bmi"=>"application/vnd.bmi",
64
- "bmp"=>"image/bmp",
65
- "book"=>"application/vnd.framemaker",
66
- "box"=>"application/vnd.previewsystems.box",
67
- "boz"=>"application/x-bzip2",
68
- "bpk"=>"application/octet-stream",
69
- "btif"=>"image/prs.btif",
70
- "bz"=>"application/x-bzip",
71
- "bz2"=>"application/x-bzip2",
72
- "c"=>"text/x-c",
73
- "c11amc"=>"application/vnd.cluetrust.cartomobile-config",
74
- "c11amz"=>"application/vnd.cluetrust.cartomobile-config-pkg",
75
- "c4d"=>"application/vnd.clonk.c4group",
76
- "c4f"=>"application/vnd.clonk.c4group",
77
- "c4g"=>"application/vnd.clonk.c4group",
78
- "c4p"=>"application/vnd.clonk.c4group",
79
- "c4u"=>"application/vnd.clonk.c4group",
80
- "cab"=>"application/vnd.ms-cab-compressed",
81
- "caf"=>"audio/x-caf",
82
- "cap"=>"application/vnd.tcpdump.pcap",
83
- "car"=>"application/vnd.curl.car",
84
- "cat"=>"application/vnd.ms-pki.seccat",
85
- "cb7"=>"application/x-cbr",
86
- "cba"=>"application/x-cbr",
87
- "cbr"=>"application/x-cbr",
88
- "cbt"=>"application/x-cbr",
89
- "cbz"=>"application/x-cbr",
90
- "cc"=>"text/x-c",
91
- "cct"=>"application/x-director",
92
- "ccxml"=>"application/ccxml+xml",
93
- "cdbcmsg"=>"application/vnd.contact.cmsg",
94
- "cdf"=>"application/x-netcdf",
95
- "cdkey"=>"application/vnd.mediastation.cdkey",
96
- "cdmia"=>"application/cdmi-capability",
97
- "cdmic"=>"application/cdmi-container",
98
- "cdmid"=>"application/cdmi-domain",
99
- "cdmio"=>"application/cdmi-object",
100
- "cdmiq"=>"application/cdmi-queue",
101
- "cdx"=>"chemical/x-cdx",
102
- "cdxml"=>"application/vnd.chemdraw+xml",
103
- "cdy"=>"application/vnd.cinderella",
104
- "cer"=>"application/pkix-cert",
105
- "cfs"=>"application/x-cfs-compressed",
106
- "cgm"=>"image/cgm",
107
- "chat"=>"application/x-chat",
108
- "chm"=>"application/vnd.ms-htmlhelp",
109
- "chrt"=>"application/vnd.kde.kchart",
110
- "cif"=>"chemical/x-cif",
111
- "cii"=>"application/vnd.anser-web-certificate-issue-initiation",
112
- "cil"=>"application/vnd.ms-artgalry",
113
- "cla"=>"application/vnd.claymore",
114
- "class"=>"application/java-vm",
115
- "clkk"=>"application/vnd.crick.clicker.keyboard",
116
- "clkp"=>"application/vnd.crick.clicker.palette",
117
- "clkt"=>"application/vnd.crick.clicker.template",
118
- "clkw"=>"application/vnd.crick.clicker.wordbank",
119
- "clkx"=>"application/vnd.crick.clicker",
120
- "clp"=>"application/x-msclip",
121
- "cmc"=>"application/vnd.cosmocaller",
122
- "cmdf"=>"chemical/x-cmdf",
123
- "cml"=>"chemical/x-cml",
124
- "cmp"=>"application/vnd.yellowriver-custom-menu",
125
- "cmx"=>"image/x-cmx",
126
- "cod"=>"application/vnd.rim.cod",
127
- "com"=>"application/x-msdownload",
128
- "conf"=>"text/plain",
129
- "cpio"=>"application/x-cpio",
130
- "cpp"=>"text/x-c",
131
- "cpt"=>"application/mac-compactpro",
132
- "crd"=>"application/x-mscardfile",
133
- "crl"=>"application/pkix-crl",
134
- "crt"=>"application/x-x509-ca-cert",
135
- "cryptonote"=>"application/vnd.rig.cryptonote",
136
- "csh"=>"application/x-csh",
137
- "csml"=>"chemical/x-csml",
138
- "csp"=>"application/vnd.commonspace",
139
- "css"=>"text/css",
140
- "cst"=>"application/x-director",
141
- "csv"=>"text/csv",
142
- "cu"=>"application/cu-seeme",
143
- "curl"=>"text/vnd.curl",
144
- "cww"=>"application/prs.cww",
145
- "cxt"=>"application/x-director",
146
- "cxx"=>"text/x-c",
147
- "dae"=>"model/vnd.collada+xml",
148
- "daf"=>"application/vnd.mobius.daf",
149
- "dart"=>"application/vnd.dart",
150
- "dataless"=>"application/vnd.fdsn.seed",
151
- "davmount"=>"application/davmount+xml",
152
- "dbk"=>"application/docbook+xml",
153
- "dcr"=>"application/x-director",
154
- "dcurl"=>"text/vnd.curl.dcurl",
155
- "dd2"=>"application/vnd.oma.dd2+xml",
156
- "ddd"=>"application/vnd.fujixerox.ddd",
157
- "deb"=>"application/x-debian-package",
158
- "def"=>"text/plain",
159
- "deploy"=>"application/octet-stream",
160
- "der"=>"application/x-x509-ca-cert",
161
- "dfac"=>"application/vnd.dreamfactory",
162
- "dgc"=>"application/x-dgc-compressed",
163
- "dic"=>"text/x-c",
164
- "dif"=>"video/x-dv",
165
- "dir"=>"application/x-director",
166
- "dis"=>"application/vnd.mobius.dis",
167
- "dist"=>"application/octet-stream",
168
- "distz"=>"application/octet-stream",
169
- "djv"=>"image/vnd.djvu",
170
- "djvu"=>"image/vnd.djvu",
171
- "dll"=>"application/x-msdownload",
172
- "dmg"=>"application/x-apple-diskimage",
173
- "dmp"=>"application/vnd.tcpdump.pcap",
174
- "dms"=>"application/octet-stream",
175
- "dna"=>"application/vnd.dna",
176
- "doc"=>"application/msword",
177
- "docm"=>"application/vnd.ms-word.document.macroenabled.12",
178
- "docx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
179
- "dot"=>"application/msword",
180
- "dotm"=>"application/vnd.ms-word.template.macroenabled.12",
181
- "dotx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.template",
182
- "dp"=>"application/vnd.osgi.dp",
183
- "dpg"=>"application/vnd.dpgraph",
184
- "dra"=>"audio/vnd.dra",
185
- "dsc"=>"text/prs.lines.tag",
186
- "dssc"=>"application/dssc+der",
187
- "dtb"=>"application/x-dtbook+xml",
188
- "dtd"=>"application/xml-dtd",
189
- "dts"=>"audio/vnd.dts",
190
- "dtshd"=>"audio/vnd.dts.hd",
191
- "dump"=>"application/octet-stream",
192
- "dv"=>"video/x-dv",
193
- "dvb"=>"video/vnd.dvb.file",
194
- "dvi"=>"application/x-dvi",
195
- "dwf"=>"model/vnd.dwf",
196
- "dwg"=>"image/vnd.dwg",
197
- "dxf"=>"image/vnd.dxf",
198
- "dxp"=>"application/vnd.spotfire.dxp",
199
- "dxr"=>"application/x-director",
200
- "ecelp4800"=>"audio/vnd.nuera.ecelp4800",
201
- "ecelp7470"=>"audio/vnd.nuera.ecelp7470",
202
- "ecelp9600"=>"audio/vnd.nuera.ecelp9600",
203
- "ecma"=>"application/ecmascript",
204
- "edm"=>"application/vnd.novadigm.edm",
205
- "edx"=>"application/vnd.novadigm.edx",
206
- "efif"=>"application/vnd.picsel",
207
- "ei6"=>"application/vnd.pg.osasli",
208
- "elc"=>"application/octet-stream",
209
- "emf"=>"application/x-msmetafile",
210
- "eml"=>"message/rfc822",
211
- "emma"=>"application/emma+xml",
212
- "emz"=>"application/x-msmetafile",
213
- "eol"=>"audio/vnd.digital-winds",
214
- "eot"=>"application/vnd.ms-fontobject",
215
- "eps"=>"application/postscript",
216
- "epub"=>"application/epub+zip",
217
- "es3"=>"application/vnd.eszigno3+xml",
218
- "esa"=>"application/vnd.osgi.subsystem",
219
- "esf"=>"application/vnd.epson.esf",
220
- "et3"=>"application/vnd.eszigno3+xml",
221
- "etx"=>"text/x-setext",
222
- "eva"=>"application/x-eva",
223
- "evy"=>"application/x-envoy",
224
- "exe"=>"application/x-msdownload",
225
- "exi"=>"application/exi",
226
- "ext"=>"application/vnd.novadigm.ext",
227
- "ez"=>"application/andrew-inset",
228
- "ez2"=>"application/vnd.ezpix-album",
229
- "ez3"=>"application/vnd.ezpix-package",
230
- "f"=>"text/x-fortran",
231
- "f4v"=>"video/x-f4v",
232
- "f77"=>"text/x-fortran",
233
- "f90"=>"text/x-fortran",
234
- "fbs"=>"image/vnd.fastbidsheet",
235
- "fcdt"=>"application/vnd.adobe.formscentral.fcdt",
236
- "fcs"=>"application/vnd.isac.fcs",
237
- "fdf"=>"application/vnd.fdf",
238
- "fe_launch"=>"application/vnd.denovo.fcselayout-link",
239
- "fg5"=>"application/vnd.fujitsu.oasysgp",
240
- "fgd"=>"application/x-director",
241
- "fh"=>"image/x-freehand",
242
- "fh4"=>"image/x-freehand",
243
- "fh5"=>"image/x-freehand",
244
- "fh7"=>"image/x-freehand",
245
- "fhc"=>"image/x-freehand",
246
- "fig"=>"application/x-xfig",
247
- "flac"=>"audio/x-flac",
248
- "fli"=>"video/x-fli",
249
- "flo"=>"application/vnd.micrografx.flo",
250
- "flv"=>"video/x-flv",
251
- "flw"=>"application/vnd.kde.kivio",
252
- "flx"=>"text/vnd.fmi.flexstor",
253
- "fly"=>"text/vnd.fly",
254
- "fm"=>"application/vnd.framemaker",
255
- "fnc"=>"application/vnd.frogans.fnc",
256
- "for"=>"text/x-fortran",
257
- "fpx"=>"image/vnd.fpx",
258
- "frame"=>"application/vnd.framemaker",
259
- "fsc"=>"application/vnd.fsc.weblaunch",
260
- "fst"=>"image/vnd.fst",
261
- "ftc"=>"application/vnd.fluxtime.clip",
262
- "fti"=>"application/vnd.anser-web-funds-transfer-initiation",
263
- "fvt"=>"video/vnd.fvt",
264
- "fxp"=>"application/vnd.adobe.fxp",
265
- "fxpl"=>"application/vnd.adobe.fxp",
266
- "fzs"=>"application/vnd.fuzzysheet",
267
- "g2w"=>"application/vnd.geoplan",
268
- "g3"=>"image/g3fax",
269
- "g3w"=>"application/vnd.geospace",
270
- "gac"=>"application/vnd.groove-account",
271
- "gam"=>"application/x-tads",
272
- "gbr"=>"application/rpki-ghostbusters",
273
- "gca"=>"application/x-gca-compressed",
274
- "gdl"=>"model/vnd.gdl",
275
- "geo"=>"application/vnd.dynageo",
276
- "gex"=>"application/vnd.geometry-explorer",
277
- "ggb"=>"application/vnd.geogebra.file",
278
- "ggt"=>"application/vnd.geogebra.tool",
279
- "ghf"=>"application/vnd.groove-help",
280
- "gif"=>"image/gif",
281
- "gim"=>"application/vnd.groove-identity-message",
282
- "gml"=>"application/gml+xml",
283
- "gmx"=>"application/vnd.gmx",
284
- "gnumeric"=>"application/x-gnumeric",
285
- "gph"=>"application/vnd.flographit",
286
- "gpx"=>"application/gpx+xml",
287
- "gqf"=>"application/vnd.grafeq",
288
- "gqs"=>"application/vnd.grafeq",
289
- "gram"=>"application/srgs",
290
- "gramps"=>"application/x-gramps-xml",
291
- "gre"=>"application/vnd.geometry-explorer",
292
- "grv"=>"application/vnd.groove-injector",
293
- "grxml"=>"application/srgs+xml",
294
- "gsf"=>"application/x-font-ghostscript",
295
- "gtar"=>"application/x-gtar",
296
- "gtm"=>"application/vnd.groove-tool-message",
297
- "gtw"=>"model/vnd.gtw",
298
- "gv"=>"text/vnd.graphviz",
299
- "gxf"=>"application/gxf",
300
- "gxt"=>"application/vnd.geonext",
301
- "h"=>"text/x-c",
302
- "h261"=>"video/h261",
303
- "h263"=>"video/h263",
304
- "h264"=>"video/h264",
305
- "hal"=>"application/vnd.hal+xml",
306
- "hbci"=>"application/vnd.hbci",
307
- "hdf"=>"application/x-hdf",
308
- "hh"=>"text/x-c",
309
- "hlp"=>"application/winhlp",
310
- "hpgl"=>"application/vnd.hp-hpgl",
311
- "hpid"=>"application/vnd.hp-hpid",
312
- "hps"=>"application/vnd.hp-hps",
313
- "hqx"=>"application/mac-binhex40",
314
- "htke"=>"application/vnd.kenameaapp",
315
- "htm"=>"text/html",
316
- "html"=>"text/html",
317
- "hvd"=>"application/vnd.yamaha.hv-dic",
318
- "hvp"=>"application/vnd.yamaha.hv-voice",
319
- "hvs"=>"application/vnd.yamaha.hv-script",
320
- "i2g"=>"application/vnd.intergeo",
321
- "icc"=>"application/vnd.iccprofile",
322
- "ice"=>"x-conference/x-cooltalk",
323
- "icm"=>"application/vnd.iccprofile",
324
- "ico"=>"image/x-icon",
325
- "ics"=>"text/calendar",
326
- "ief"=>"image/ief",
327
- "ifb"=>"text/calendar",
328
- "ifm"=>"application/vnd.shana.informed.formdata",
329
- "iges"=>"model/iges",
330
- "igl"=>"application/vnd.igloader",
331
- "igm"=>"application/vnd.insors.igm",
332
- "igs"=>"model/iges",
333
- "igx"=>"application/vnd.micrografx.igx",
334
- "iif"=>"application/vnd.shana.informed.interchange",
335
- "imp"=>"application/vnd.accpac.simply.imp",
336
- "ims"=>"application/vnd.ms-ims",
337
- "in"=>"text/plain",
338
- "ink"=>"application/inkml+xml",
339
- "inkml"=>"application/inkml+xml",
340
- "install"=>"application/x-install-instructions",
341
- "iota"=>"application/vnd.astraea-software.iota",
342
- "ipfix"=>"application/ipfix",
343
- "ipk"=>"application/vnd.shana.informed.package",
344
- "irm"=>"application/vnd.ibm.rights-management",
345
- "irp"=>"application/vnd.irepository.package+xml",
346
- "iso"=>"application/x-iso9660-image",
347
- "itp"=>"application/vnd.shana.informed.formtemplate",
348
- "ivp"=>"application/vnd.immervision-ivp",
349
- "ivu"=>"application/vnd.immervision-ivu",
350
- "jad"=>"text/vnd.sun.j2me.app-descriptor",
351
- "jam"=>"application/vnd.jam",
352
- "jar"=>"application/java-archive",
353
- "java"=>"text/x-java-source",
354
- "jisp"=>"application/vnd.jisp",
355
- "jlt"=>"application/vnd.hp-jlyt",
356
- "jnlp"=>"application/x-java-jnlp-file",
357
- "joda"=>"application/vnd.joost.joda-archive",
358
- "jp2"=>"image/jp2",
359
- "jpe"=>"image/jpeg",
360
- "jpeg"=>"image/jpeg",
361
- "jpg"=>"image/jpeg",
362
- "jpgm"=>"video/jpm",
363
- "jpgv"=>"video/jpeg",
364
- "jpm"=>"video/jpm",
365
- "js"=>"application/javascript",
366
- "json"=>"application/json",
367
- "jsonml"=>"application/jsonml+json",
368
- "kar"=>"audio/midi",
369
- "karbon"=>"application/vnd.kde.karbon",
370
- "kfo"=>"application/vnd.kde.kformula",
371
- "kia"=>"application/vnd.kidspiration",
372
- "kml"=>"application/vnd.google-earth.kml+xml",
373
- "kmz"=>"application/vnd.google-earth.kmz",
374
- "kne"=>"application/vnd.kinar",
375
- "knp"=>"application/vnd.kinar",
376
- "kon"=>"application/vnd.kde.kontour",
377
- "kpr"=>"application/vnd.kde.kpresenter",
378
- "kpt"=>"application/vnd.kde.kpresenter",
379
- "kpxx"=>"application/vnd.ds-keypoint",
380
- "ksp"=>"application/vnd.kde.kspread",
381
- "ktr"=>"application/vnd.kahootz",
382
- "ktx"=>"image/ktx",
383
- "ktz"=>"application/vnd.kahootz",
384
- "kwd"=>"application/vnd.kde.kword",
385
- "kwt"=>"application/vnd.kde.kword",
386
- "lasxml"=>"application/vnd.las.las+xml",
387
- "latex"=>"application/x-latex",
388
- "lbd"=>"application/vnd.llamagraphics.life-balance.desktop",
389
- "lbe"=>"application/vnd.llamagraphics.life-balance.exchange+xml",
390
- "les"=>"application/vnd.hhe.lesson-player",
391
- "lha"=>"application/octet-stream",
392
- "link66"=>"application/vnd.route66.link66+xml",
393
- "list"=>"text/plain",
394
- "list3820"=>"application/vnd.ibm.modcap",
395
- "listafp"=>"application/vnd.ibm.modcap",
396
- "lnk"=>"application/x-ms-shortcut",
397
- "log"=>"text/plain",
398
- "lostxml"=>"application/lost+xml",
399
- "lrf"=>"application/octet-stream",
400
- "lrm"=>"application/vnd.ms-lrm",
401
- "ltf"=>"application/vnd.frogans.ltf",
402
- "lvp"=>"audio/vnd.lucent.voice",
403
- "lwp"=>"application/vnd.lotus-wordpro",
404
- "lzh"=>"application/octet-stream",
405
- "m13"=>"application/x-msmediaview",
406
- "m14"=>"application/x-msmediaview",
407
- "m1v"=>"video/mpeg",
408
- "m21"=>"application/mp21",
409
- "m2a"=>"audio/mpeg",
410
- "m2v"=>"video/mpeg",
411
- "m3a"=>"audio/mpeg",
412
- "m3u"=>"audio/x-mpegurl",
413
- "m3u8"=>"application/vnd.apple.mpegurl",
414
- "m4a"=>"audio/mp4a-latm",
415
- "m4b"=>"audio/mp4a-latm",
416
- "m4p"=>"audio/mp4a-latm",
417
- "m4u"=>"video/vnd.mpegurl",
418
- "m4v"=>"video/x-m4v",
419
- "ma"=>"application/mathematica",
420
- "mac"=>"image/x-macpaint",
421
- "mads"=>"application/mads+xml",
422
- "mag"=>"application/vnd.ecowin.chart",
423
- "maker"=>"application/vnd.framemaker",
424
- "man"=>"application/x-troff-man",
425
- "mar"=>"application/octet-stream",
426
- "mathml"=>"application/mathml+xml",
427
- "mb"=>"application/mathematica",
428
- "mbk"=>"application/vnd.mobius.mbk",
429
- "mbox"=>"application/mbox",
430
- "mc1"=>"application/vnd.medcalcdata",
431
- "mcd"=>"application/vnd.mcd",
432
- "mcurl"=>"text/vnd.curl.mcurl",
433
- "mdb"=>"application/x-msaccess",
434
- "mdi"=>"image/vnd.ms-modi",
435
- "me"=>"text/troff",
436
- "mesh"=>"model/mesh",
437
- "meta4"=>"application/metalink4+xml",
438
- "metalink"=>"application/metalink+xml",
439
- "mets"=>"application/mets+xml",
440
- "mfm"=>"application/vnd.mfmp",
441
- "mft"=>"application/rpki-manifest",
442
- "mgp"=>"application/vnd.osgeo.mapguide.package",
443
- "mgz"=>"application/vnd.proteus.magazine",
444
- "mid"=>"audio/midi",
445
- "midi"=>"audio/midi",
446
- "mie"=>"application/x-mie",
447
- "mif"=>"application/vnd.mif",
448
- "mime"=>"message/rfc822",
449
- "mj2"=>"video/mj2",
450
- "mjp2"=>"video/mj2",
451
- "mk3d"=>"video/x-matroska",
452
- "mka"=>"audio/x-matroska",
453
- "mks"=>"video/x-matroska",
454
- "mkv"=>"video/x-matroska",
455
- "mlp"=>"application/vnd.dolby.mlp",
456
- "mmd"=>"application/vnd.chipnuts.karaoke-mmd",
457
- "mmf"=>"application/vnd.smaf",
458
- "mmr"=>"image/vnd.fujixerox.edmics-mmr",
459
- "mng"=>"video/x-mng",
460
- "mny"=>"application/x-msmoney",
461
- "mobi"=>"application/x-mobipocket-ebook",
462
- "mods"=>"application/mods+xml",
463
- "mov"=>"video/quicktime",
464
- "movie"=>"video/x-sgi-movie",
465
- "mp2"=>"audio/mpeg",
466
- "mp21"=>"application/mp21",
467
- "mp2a"=>"audio/mpeg",
468
- "mp3"=>"audio/mpeg",
469
- "mp4"=>"video/mp4",
470
- "mp4a"=>"audio/mp4",
471
- "mp4s"=>"application/mp4",
472
- "mp4v"=>"video/mp4",
473
- "mpc"=>"application/vnd.mophun.certificate",
474
- "mpe"=>"video/mpeg",
475
- "mpeg"=>"video/mpeg",
476
- "mpg"=>"video/mpeg",
477
- "mpg4"=>"video/mp4",
478
- "mpga"=>"audio/mpeg",
479
- "mpkg"=>"application/vnd.apple.installer+xml",
480
- "mpm"=>"application/vnd.blueice.multipass",
481
- "mpn"=>"application/vnd.mophun.application",
482
- "mpp"=>"application/vnd.ms-project",
483
- "mpt"=>"application/vnd.ms-project",
484
- "mpy"=>"application/vnd.ibm.minipay",
485
- "mqy"=>"application/vnd.mobius.mqy",
486
- "mrc"=>"application/marc",
487
- "mrcx"=>"application/marcxml+xml",
488
- "ms"=>"application/x-troff-ms",
489
- "mscml"=>"application/mediaservercontrol+xml",
490
- "mseed"=>"application/vnd.fdsn.mseed",
491
- "mseq"=>"application/vnd.mseq",
492
- "msf"=>"application/vnd.epson.msf",
493
- "msh"=>"model/mesh",
494
- "msi"=>"application/x-msdownload",
495
- "msl"=>"application/vnd.mobius.msl",
496
- "msty"=>"application/vnd.muvee.style",
497
- "mts"=>"model/vnd.mts",
498
- "mus"=>"application/vnd.musician",
499
- "musicxml"=>"application/vnd.recordare.musicxml+xml",
500
- "mvb"=>"application/x-msmediaview",
501
- "mwf"=>"application/vnd.mfer",
502
- "mxf"=>"application/mxf",
503
- "mxl"=>"application/vnd.recordare.musicxml",
504
- "mxml"=>"application/xv+xml",
505
- "mxs"=>"application/vnd.triscape.mxs",
506
- "mxu"=>"video/vnd.mpegurl",
507
- "n-gage"=>"application/vnd.nokia.n-gage.symbian.install",
508
- "n3"=>"text/n3",
509
- "nb"=>"application/mathematica",
510
- "nbp"=>"application/vnd.wolfram.player",
511
- "nc"=>"application/x-netcdf",
512
- "ncx"=>"application/x-dtbncx+xml",
513
- "nfo"=>"text/x-nfo",
514
- "ngdat"=>"application/vnd.nokia.n-gage.data",
515
- "nitf"=>"application/vnd.nitf",
516
- "nlu"=>"application/vnd.neurolanguage.nlu",
517
- "nml"=>"application/vnd.enliven",
518
- "nnd"=>"application/vnd.noblenet-directory",
519
- "nns"=>"application/vnd.noblenet-sealer",
520
- "nnw"=>"application/vnd.noblenet-web",
521
- "npx"=>"image/vnd.net-fpx",
522
- "nsc"=>"application/x-conference",
523
- "nsf"=>"application/vnd.lotus-notes",
524
- "ntf"=>"application/vnd.nitf",
525
- "nzb"=>"application/x-nzb",
526
- "oa2"=>"application/vnd.fujitsu.oasys2",
527
- "oa3"=>"application/vnd.fujitsu.oasys3",
528
- "oas"=>"application/vnd.fujitsu.oasys",
529
- "obd"=>"application/x-msbinder",
530
- "obj"=>"application/x-tgif",
531
- "oda"=>"application/oda",
532
- "odb"=>"application/vnd.oasis.opendocument.database",
533
- "odc"=>"application/vnd.oasis.opendocument.chart",
534
- "odf"=>"application/vnd.oasis.opendocument.formula",
535
- "odft"=>"application/vnd.oasis.opendocument.formula-template",
536
- "odg"=>"application/vnd.oasis.opendocument.graphics",
537
- "odi"=>"application/vnd.oasis.opendocument.image",
538
- "odm"=>"application/vnd.oasis.opendocument.text-master",
539
- "odp"=>"application/vnd.oasis.opendocument.presentation",
540
- "ods"=>"application/vnd.oasis.opendocument.spreadsheet",
541
- "odt"=>"application/vnd.oasis.opendocument.text",
542
- "oga"=>"audio/ogg",
543
- "ogg"=>"audio/ogg",
544
- "ogv"=>"video/ogg",
545
- "ogx"=>"application/ogg",
546
- "omdoc"=>"application/omdoc+xml",
547
- "onepkg"=>"application/onenote",
548
- "onetmp"=>"application/onenote",
549
- "onetoc"=>"application/onenote",
550
- "onetoc2"=>"application/onenote",
551
- "opf"=>"application/oebps-package+xml",
552
- "opml"=>"text/x-opml",
553
- "oprc"=>"application/vnd.palm",
554
- "org"=>"application/vnd.lotus-organizer",
555
- "osf"=>"application/vnd.yamaha.openscoreformat",
556
- "osfpvg"=>"application/vnd.yamaha.openscoreformat.osfpvg+xml",
557
- "otc"=>"application/vnd.oasis.opendocument.chart-template",
558
- "otf"=>"application/x-font-otf",
559
- "otg"=>"application/vnd.oasis.opendocument.graphics-template",
560
- "oth"=>"application/vnd.oasis.opendocument.text-web",
561
- "oti"=>"application/vnd.oasis.opendocument.image-template",
562
- "otp"=>"application/vnd.oasis.opendocument.presentation-template",
563
- "ots"=>"application/vnd.oasis.opendocument.spreadsheet-template",
564
- "ott"=>"application/vnd.oasis.opendocument.text-template",
565
- "oxps"=>"application/oxps",
566
- "oxt"=>"application/vnd.openofficeorg.extension",
567
- "p"=>"text/x-pascal",
568
- "p10"=>"application/pkcs10",
569
- "p12"=>"application/x-pkcs12",
570
- "p7b"=>"application/x-pkcs7-certificates",
571
- "p7c"=>"application/pkcs7-mime",
572
- "p7m"=>"application/pkcs7-mime",
573
- "p7r"=>"application/x-pkcs7-certreqresp",
574
- "p7s"=>"application/pkcs7-signature",
575
- "p8"=>"application/pkcs8",
576
- "pas"=>"text/x-pascal",
577
- "paw"=>"application/vnd.pawaafile",
578
- "pbd"=>"application/vnd.powerbuilder6",
579
- "pbm"=>"image/x-portable-bitmap",
580
- "pcap"=>"application/vnd.tcpdump.pcap",
581
- "pcf"=>"application/x-font-pcf",
582
- "pcl"=>"application/vnd.hp-pcl",
583
- "pclxl"=>"application/vnd.hp-pclxl",
584
- "pct"=>"image/x-pict",
585
- "pcurl"=>"application/vnd.curl.pcurl",
586
- "pcx"=>"image/x-pcx",
587
- "pdb"=>"application/vnd.palm",
588
- "pdf"=>"application/pdf",
589
- "pfa"=>"application/x-font-type1",
590
- "pfb"=>"application/x-font-type1",
591
- "pfm"=>"application/x-font-type1",
592
- "pfr"=>"application/font-tdpfr",
593
- "pfx"=>"application/x-pkcs12",
594
- "pgm"=>"image/x-portable-graymap",
595
- "pgn"=>"application/x-chess-pgn",
596
- "pgp"=>"application/pgp-encrypted",
597
- "pic"=>"image/pict",
598
- "pict"=>"image/pict",
599
- "pkg"=>"application/octet-stream",
600
- "pki"=>"application/pkixcmp",
601
- "pkipath"=>"application/pkix-pkipath",
602
- "plb"=>"application/vnd.3gpp.pic-bw-large",
603
- "plc"=>"application/vnd.mobius.plc",
604
- "plf"=>"application/vnd.pocketlearn",
605
- "pls"=>"application/pls+xml",
606
- "pml"=>"application/vnd.ctc-posml",
607
- "png"=>"image/png",
608
- "pnm"=>"image/x-portable-anymap",
609
- "pnt"=>"image/x-macpaint",
610
- "pntg"=>"image/x-macpaint",
611
- "portpkg"=>"application/vnd.macports.portpkg",
612
- "pot"=>"application/vnd.ms-powerpoint",
613
- "potm"=>"application/vnd.ms-powerpoint.template.macroenabled.12",
614
- "potx"=>"application/vnd.openxmlformats-officedocument.presentationml.template",
615
- "ppam"=>"application/vnd.ms-powerpoint.addin.macroenabled.12",
616
- "ppd"=>"application/vnd.cups-ppd",
617
- "ppm"=>"image/x-portable-pixmap",
618
- "pps"=>"application/vnd.ms-powerpoint",
619
- "ppsm"=>"application/vnd.ms-powerpoint.slideshow.macroenabled.12",
620
- "ppsx"=>"application/vnd.openxmlformats-officedocument.presentationml.slideshow",
621
- "ppt"=>"application/vnd.ms-powerpoint",
622
- "pptm"=>"application/vnd.ms-powerpoint.presentation.macroenabled.12",
623
- "pptx"=>"application/vnd.openxmlformats-officedocument.presentationml.presentation",
624
- "pqa"=>"application/vnd.palm",
625
- "prc"=>"application/x-mobipocket-ebook",
626
- "pre"=>"application/vnd.lotus-freelance",
627
- "prf"=>"application/pics-rules",
628
- "ps"=>"application/postscript",
629
- "psb"=>"application/vnd.3gpp.pic-bw-small",
630
- "psd"=>"image/vnd.adobe.photoshop",
631
- "psf"=>"application/x-font-linux-psf",
632
- "pskcxml"=>"application/pskc+xml",
633
- "ptid"=>"application/vnd.pvi.ptid1",
634
- "pub"=>"application/x-mspublisher",
635
- "pvb"=>"application/vnd.3gpp.pic-bw-var",
636
- "pwn"=>"application/vnd.3m.post-it-notes",
637
- "pya"=>"audio/vnd.ms-playready.media.pya",
638
- "pyv"=>"video/vnd.ms-playready.media.pyv",
639
- "qam"=>"application/vnd.epson.quickanime",
640
- "qbo"=>"application/vnd.intu.qbo",
641
- "qfx"=>"application/vnd.intu.qfx",
642
- "qps"=>"application/vnd.publishare-delta-tree",
643
- "qt"=>"video/quicktime",
644
- "qti"=>"image/x-quicktime",
645
- "qtif"=>"image/x-quicktime",
646
- "qwd"=>"application/vnd.quark.quarkxpress",
647
- "qwt"=>"application/vnd.quark.quarkxpress",
648
- "qxb"=>"application/vnd.quark.quarkxpress",
649
- "qxd"=>"application/vnd.quark.quarkxpress",
650
- "qxl"=>"application/vnd.quark.quarkxpress",
651
- "qxt"=>"application/vnd.quark.quarkxpress",
652
- "ra"=>"audio/x-pn-realaudio",
653
- "ram"=>"audio/x-pn-realaudio",
654
- "rar"=>"application/x-rar-compressed",
655
- "ras"=>"image/x-cmu-raster",
656
- "rcprofile"=>"application/vnd.ipunplugged.rcprofile",
657
- "rdf"=>"application/rdf+xml",
658
- "rdz"=>"application/vnd.data-vision.rdz",
659
- "rep"=>"application/vnd.businessobjects",
660
- "res"=>"application/x-dtbresource+xml",
661
- "rgb"=>"image/x-rgb",
662
- "rif"=>"application/reginfo+xml",
663
- "rip"=>"audio/vnd.rip",
664
- "ris"=>"application/x-research-info-systems",
665
- "rl"=>"application/resource-lists+xml",
666
- "rlc"=>"image/vnd.fujixerox.edmics-rlc",
667
- "rld"=>"application/resource-lists-diff+xml",
668
- "rm"=>"application/vnd.rn-realmedia",
669
- "rmi"=>"audio/midi",
670
- "rmp"=>"audio/x-pn-realaudio-plugin",
671
- "rms"=>"application/vnd.jcp.javame.midlet-rms",
672
- "rmvb"=>"application/vnd.rn-realmedia-vbr",
673
- "rnc"=>"application/relax-ng-compact-syntax",
674
- "roa"=>"application/rpki-roa",
675
- "roff"=>"application/x-troff",
676
- "rp9"=>"application/vnd.cloanto.rp9",
677
- "rpss"=>"application/vnd.nokia.radio-presets",
678
- "rpst"=>"application/vnd.nokia.radio-preset",
679
- "rq"=>"application/sparql-query",
680
- "rs"=>"application/rls-services+xml",
681
- "rsd"=>"application/rsd+xml",
682
- "rss"=>"application/rss+xml",
683
- "rtf"=>"application/rtf",
684
- "rtx"=>"text/richtext",
685
- "s"=>"text/x-asm",
686
- "s3m"=>"audio/s3m",
687
- "saf"=>"application/vnd.yamaha.smaf-audio",
688
- "sbml"=>"application/sbml+xml",
689
- "sc"=>"application/vnd.ibm.secure-container",
690
- "scd"=>"application/x-msschedule",
691
- "scm"=>"application/vnd.lotus-screencam",
692
- "scq"=>"application/scvp-cv-request",
693
- "scs"=>"application/scvp-cv-response",
694
- "scurl"=>"text/vnd.curl.scurl",
695
- "sda"=>"application/vnd.stardivision.draw",
696
- "sdc"=>"application/vnd.stardivision.calc",
697
- "sdd"=>"application/vnd.stardivision.impress",
698
- "sdkd"=>"application/vnd.solent.sdkm+xml",
699
- "sdkm"=>"application/vnd.solent.sdkm+xml",
700
- "sdp"=>"application/sdp",
701
- "sdw"=>"application/vnd.stardivision.writer",
702
- "see"=>"application/vnd.seemail",
703
- "seed"=>"application/vnd.fdsn.seed",
704
- "sema"=>"application/vnd.sema",
705
- "semd"=>"application/vnd.semd",
706
- "semf"=>"application/vnd.semf",
707
- "ser"=>"application/java-serialized-object",
708
- "setpay"=>"application/set-payment-initiation",
709
- "setreg"=>"application/set-registration-initiation",
710
- "sfd-hdstx"=>"application/vnd.hydrostatix.sof-data",
711
- "sfs"=>"application/vnd.spotfire.sfs",
712
- "sfv"=>"text/x-sfv",
713
- "sgi"=>"image/sgi",
714
- "sgl"=>"application/vnd.stardivision.writer-global",
715
- "sgm"=>"text/sgml",
716
- "sgml"=>"text/sgml",
717
- "sh"=>"application/x-sh",
718
- "shar"=>"application/x-shar",
719
- "shf"=>"application/shf+xml",
720
- "sid"=>"image/x-mrsid-image",
721
- "sig"=>"application/pgp-signature",
722
- "sil"=>"audio/silk",
723
- "silo"=>"model/mesh",
724
- "sis"=>"application/vnd.symbian.install",
725
- "sisx"=>"application/vnd.symbian.install",
726
- "sit"=>"application/x-stuffit",
727
- "sitx"=>"application/x-stuffitx",
728
- "skd"=>"application/x-koan",
729
- "skm"=>"application/vnd.koan",
730
- "skp"=>"application/x-koan",
731
- "skt"=>"application/vnd.koan",
732
- "sldm"=>"application/vnd.ms-powerpoint.slide.macroenabled.12",
733
- "sldx"=>"application/vnd.openxmlformats-officedocument.presentationml.slide",
734
- "slt"=>"application/vnd.epson.salt",
735
- "sm"=>"application/vnd.stepmania.stepchart",
736
- "smf"=>"application/vnd.stardivision.math",
737
- "smi"=>"application/smil",
738
- "smil"=>"application/smil+xml",
739
- "smv"=>"video/x-smv",
740
- "smzip"=>"application/vnd.stepmania.package",
741
- "snd"=>"audio/basic",
742
- "snf"=>"application/x-font-snf",
743
- "so"=>"application/octet-stream",
744
- "spc"=>"application/x-pkcs7-certificates",
745
- "spf"=>"application/vnd.yamaha.smaf-phrase",
746
- "spl"=>"application/x-futuresplash",
747
- "spot"=>"text/vnd.in3d.spot",
748
- "spp"=>"application/scvp-vp-response",
749
- "spq"=>"application/scvp-vp-request",
750
- "spx"=>"audio/ogg",
751
- "sql"=>"application/x-sql",
752
- "src"=>"application/x-wais-source",
753
- "srt"=>"application/x-subrip",
754
- "sru"=>"application/sru+xml",
755
- "srx"=>"application/sparql-results+xml",
756
- "ssdl"=>"application/ssdl+xml",
757
- "sse"=>"application/vnd.kodak-descriptor",
758
- "ssf"=>"application/vnd.epson.ssf",
759
- "ssml"=>"application/ssml+xml",
760
- "st"=>"application/vnd.sailingtracker.track",
761
- "stc"=>"application/vnd.sun.xml.calc.template",
762
- "std"=>"application/vnd.sun.xml.draw.template",
763
- "stf"=>"application/vnd.wt.stf",
764
- "sti"=>"application/vnd.sun.xml.impress.template",
765
- "stk"=>"application/hyperstudio",
766
- "stl"=>"application/vnd.ms-pki.stl",
767
- "str"=>"application/vnd.pg.format",
768
- "stw"=>"application/vnd.sun.xml.writer.template",
769
- "sub"=>"text/vnd.dvb.subtitle",
770
- "sus"=>"application/vnd.sus-calendar",
771
- "susp"=>"application/vnd.sus-calendar",
772
- "sv4cpio"=>"application/x-sv4cpio",
773
- "sv4crc"=>"application/x-sv4crc",
774
- "svc"=>"application/vnd.dvb.service",
775
- "svd"=>"application/vnd.svd",
776
- "svg"=>"image/svg+xml",
777
- "svgz"=>"image/svg+xml",
778
- "swf"=>"application/x-shockwave-flash",
779
- "swi"=>"application/vnd.aristanetworks.swi",
780
- "sxc"=>"application/vnd.sun.xml.calc",
781
- "sxd"=>"application/vnd.sun.xml.draw",
782
- "sxg"=>"application/vnd.sun.xml.writer.global",
783
- "sxi"=>"application/vnd.sun.xml.impress",
784
- "sxm"=>"application/vnd.sun.xml.math",
785
- "sxw"=>"application/vnd.sun.xml.writer",
786
- "t"=>"text/troff",
787
- "t3"=>"application/x-t3vm-image",
788
- "taglet"=>"application/vnd.mynfc",
789
- "tao"=>"application/vnd.tao.intent-module-archive",
790
- "tar"=>"application/x-tar",
791
- "tcap"=>"application/vnd.3gpp2.tcap",
792
- "tcl"=>"application/x-tcl",
793
- "teacher"=>"application/vnd.smart.teacher",
794
- "tei"=>"application/tei+xml",
795
- "teicorpus"=>"application/tei+xml",
796
- "tex"=>"application/x-tex",
797
- "texi"=>"application/x-texinfo",
798
- "texinfo"=>"application/x-texinfo",
799
- "text"=>"text/plain",
800
- "tfi"=>"application/thraud+xml",
801
- "tfm"=>"application/x-tex-tfm",
802
- "tga"=>"image/x-tga",
803
- "thmx"=>"application/vnd.ms-officetheme",
804
- "tif"=>"image/tiff",
805
- "tiff"=>"image/tiff",
806
- "tmo"=>"application/vnd.tmobile-livetv",
807
- "torrent"=>"application/x-bittorrent",
808
- "tpl"=>"application/vnd.groove-tool-template",
809
- "tpt"=>"application/vnd.trid.tpt",
810
- "tr"=>"text/troff",
811
- "tra"=>"application/vnd.trueapp",
812
- "trm"=>"application/x-msterminal",
813
- "tsd"=>"application/timestamped-data",
814
- "tsv"=>"text/tab-separated-values",
815
- "ttc"=>"application/x-font-ttf",
816
- "ttf"=>"application/x-font-ttf",
817
- "ttl"=>"text/turtle",
818
- "twd"=>"application/vnd.simtech-mindmapper",
819
- "twds"=>"application/vnd.simtech-mindmapper",
820
- "txd"=>"application/vnd.genomatix.tuxedo",
821
- "txf"=>"application/vnd.mobius.txf",
822
- "txt"=>"text/plain",
823
- "u32"=>"application/x-authorware-bin",
824
- "udeb"=>"application/x-debian-package",
825
- "ufd"=>"application/vnd.ufdl",
826
- "ufdl"=>"application/vnd.ufdl",
827
- "ulx"=>"application/x-glulx",
828
- "umj"=>"application/vnd.umajin",
829
- "unityweb"=>"application/vnd.unity",
830
- "uoml"=>"application/vnd.uoml+xml",
831
- "uri"=>"text/uri-list",
832
- "uris"=>"text/uri-list",
833
- "urls"=>"text/uri-list",
834
- "ustar"=>"application/x-ustar",
835
- "utz"=>"application/vnd.uiq.theme",
836
- "uu"=>"text/x-uuencode",
837
- "uva"=>"audio/vnd.dece.audio",
838
- "uvd"=>"application/vnd.dece.data",
839
- "uvf"=>"application/vnd.dece.data",
840
- "uvg"=>"image/vnd.dece.graphic",
841
- "uvh"=>"video/vnd.dece.hd",
842
- "uvi"=>"image/vnd.dece.graphic",
843
- "uvm"=>"video/vnd.dece.mobile",
844
- "uvp"=>"video/vnd.dece.pd",
845
- "uvs"=>"video/vnd.dece.sd",
846
- "uvt"=>"application/vnd.dece.ttml+xml",
847
- "uvu"=>"video/vnd.uvvu.mp4",
848
- "uvv"=>"video/vnd.dece.video",
849
- "uvva"=>"audio/vnd.dece.audio",
850
- "uvvd"=>"application/vnd.dece.data",
851
- "uvvf"=>"application/vnd.dece.data",
852
- "uvvg"=>"image/vnd.dece.graphic",
853
- "uvvh"=>"video/vnd.dece.hd",
854
- "uvvi"=>"image/vnd.dece.graphic",
855
- "uvvm"=>"video/vnd.dece.mobile",
856
- "uvvp"=>"video/vnd.dece.pd",
857
- "uvvs"=>"video/vnd.dece.sd",
858
- "uvvt"=>"application/vnd.dece.ttml+xml",
859
- "uvvu"=>"video/vnd.uvvu.mp4",
860
- "uvvv"=>"video/vnd.dece.video",
861
- "uvvx"=>"application/vnd.dece.unspecified",
862
- "uvvz"=>"application/vnd.dece.zip",
863
- "uvx"=>"application/vnd.dece.unspecified",
864
- "uvz"=>"application/vnd.dece.zip",
865
- "vcard"=>"text/vcard",
866
- "vcd"=>"application/x-cdlink",
867
- "vcf"=>"text/x-vcard",
868
- "vcg"=>"application/vnd.groove-vcard",
869
- "vcs"=>"text/x-vcalendar",
870
- "vcx"=>"application/vnd.vcx",
871
- "vis"=>"application/vnd.visionary",
872
- "viv"=>"video/vnd.vivo",
873
- "vob"=>"video/x-ms-vob",
874
- "vor"=>"application/vnd.stardivision.writer",
875
- "vox"=>"application/x-authorware-bin",
876
- "vrml"=>"model/vrml",
877
- "vsd"=>"application/vnd.visio",
878
- "vsf"=>"application/vnd.vsf",
879
- "vss"=>"application/vnd.visio",
880
- "vst"=>"application/vnd.visio",
881
- "vsw"=>"application/vnd.visio",
882
- "vtu"=>"model/vnd.vtu",
883
- "vxml"=>"application/voicexml+xml",
884
- "w3d"=>"application/x-director",
885
- "wad"=>"application/x-doom",
886
- "wav"=>"audio/x-wav",
887
- "wax"=>"audio/x-ms-wax",
888
- "wbmp"=>"image/vnd.wap.wbmp",
889
- "wbmxl"=>"application/vnd.wap.wbxml",
890
- "wbs"=>"application/vnd.criticaltools.wbs+xml",
891
- "wbxml"=>"application/vnd.wap.wbxml",
892
- "wcm"=>"application/vnd.ms-works",
893
- "wdb"=>"application/vnd.ms-works",
894
- "wdp"=>"image/vnd.ms-photo",
895
- "weba"=>"audio/webm",
896
- "webm"=>"video/webm",
897
- "webp"=>"image/webp",
898
- "wg"=>"application/vnd.pmi.widget",
899
- "wgt"=>"application/widget",
900
- "wks"=>"application/vnd.ms-works",
901
- "wm"=>"video/x-ms-wm",
902
- "wma"=>"audio/x-ms-wma",
903
- "wmd"=>"application/x-ms-wmd",
904
- "wmf"=>"application/x-msmetafile",
905
- "wml"=>"text/vnd.wap.wml",
906
- "wmlc"=>"application/vnd.wap.wmlc",
907
- "wmls"=>"text/vnd.wap.wmlscript",
908
- "wmlsc"=>"application/vnd.wap.wmlscriptc",
909
- "wmv"=>"video/x-ms-wmv",
910
- "wmx"=>"video/x-ms-wmx",
911
- "wmz"=>"application/x-ms-wmz",
912
- "woff"=>"application/font-woff",
913
- "wpd"=>"application/vnd.wordperfect",
914
- "wpl"=>"application/vnd.ms-wpl",
915
- "wps"=>"application/vnd.ms-works",
916
- "wqd"=>"application/vnd.wqd",
917
- "wri"=>"application/x-mswrite",
918
- "wrl"=>"model/vrml",
919
- "wsdl"=>"application/wsdl+xml",
920
- "wspolicy"=>"application/wspolicy+xml",
921
- "wtb"=>"application/vnd.webturbo",
922
- "wvx"=>"video/x-ms-wvx",
923
- "x32"=>"application/x-authorware-bin",
924
- "x3d"=>"model/x3d+xml",
925
- "x3db"=>"model/x3d+binary",
926
- "x3dbz"=>"model/x3d+binary",
927
- "x3dv"=>"model/x3d+vrml",
928
- "x3dvz"=>"model/x3d+vrml",
929
- "x3dz"=>"model/x3d+xml",
930
- "xaml"=>"application/xaml+xml",
931
- "xap"=>"application/x-silverlight-app",
932
- "xar"=>"application/vnd.xara",
933
- "xbap"=>"application/x-ms-xbap",
934
- "xbd"=>"application/vnd.fujixerox.docuworks.binder",
935
- "xbm"=>"image/x-xbitmap",
936
- "xdf"=>"application/xcap-diff+xml",
937
- "xdm"=>"application/vnd.syncml.dm+xml",
938
- "xdp"=>"application/vnd.adobe.xdp+xml",
939
- "xdssc"=>"application/dssc+xml",
940
- "xdw"=>"application/vnd.fujixerox.docuworks",
941
- "xenc"=>"application/xenc+xml",
942
- "xer"=>"application/patch-ops-error+xml",
943
- "xfdf"=>"application/vnd.adobe.xfdf",
944
- "xfdl"=>"application/vnd.xfdl",
945
- "xht"=>"application/xhtml+xml",
946
- "xhtml"=>"application/xhtml+xml",
947
- "xhvml"=>"application/xv+xml",
948
- "xif"=>"image/vnd.xiff",
949
- "xla"=>"application/vnd.ms-excel",
950
- "xlam"=>"application/vnd.ms-excel.addin.macroenabled.12",
951
- "xlc"=>"application/vnd.ms-excel",
952
- "xlf"=>"application/x-xliff+xml",
953
- "xlm"=>"application/vnd.ms-excel",
954
- "xls"=>"application/vnd.ms-excel",
955
- "xlsb"=>"application/vnd.ms-excel.sheet.binary.macroenabled.12",
956
- "xlsm"=>"application/vnd.ms-excel.sheet.macroenabled.12",
957
- "xlsx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
958
- "xlt"=>"application/vnd.ms-excel",
959
- "xltm"=>"application/vnd.ms-excel.template.macroenabled.12",
960
- "xltx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.template",
961
- "xlw"=>"application/vnd.ms-excel",
962
- "xm"=>"audio/xm",
963
- "xml"=>"application/xml",
964
- "xo"=>"application/vnd.olpc-sugar",
965
- "xop"=>"application/xop+xml",
966
- "xpi"=>"application/x-xpinstall",
967
- "xpl"=>"application/xproc+xml",
968
- "xpm"=>"image/x-xpixmap",
969
- "xpr"=>"application/vnd.is-xpr",
970
- "xps"=>"application/vnd.ms-xpsdocument",
971
- "xpw"=>"application/vnd.intercon.formnet",
972
- "xpx"=>"application/vnd.intercon.formnet",
973
- "xsl"=>"application/xml",
974
- "xslt"=>"application/xslt+xml",
975
- "xsm"=>"application/vnd.syncml+xml",
976
- "xspf"=>"application/xspf+xml",
977
- "xul"=>"application/vnd.mozilla.xul+xml",
978
- "xvm"=>"application/xv+xml",
979
- "xvml"=>"application/xv+xml",
980
- "xwd"=>"image/x-xwindowdump",
981
- "xyz"=>"chemical/x-xyz",
982
- "xz"=>"application/x-xz",
983
- "yang"=>"application/yang",
984
- "yin"=>"application/yin+xml",
985
- "z1"=>"application/x-zmachine",
986
- "z2"=>"application/x-zmachine",
987
- "z3"=>"application/x-zmachine",
988
- "z4"=>"application/x-zmachine",
989
- "z5"=>"application/x-zmachine",
990
- "z6"=>"application/x-zmachine",
991
- "z7"=>"application/x-zmachine",
992
- "z8"=>"application/x-zmachine",
993
- "zaz"=>"application/vnd.zzazz.deck+xml",
994
- "zip"=>"application/zip",
995
- "zir"=>"application/vnd.zul",
996
- "zirz"=>"application/vnd.zul",
997
- "zmm"=>"application/vnd.handheld-entertainment+xml"}
5
+ MIME_DICTIONARY = { ".123"=>"application/vnd.lotus-1-2-3".freeze,
6
+ ".3dml"=>"text/vnd.in3d.3dml".freeze,
7
+ ".3ds"=>"image/x-3ds".freeze,
8
+ ".3g2"=>"video/3gpp2".freeze,
9
+ ".3gp"=>"video/3gpp".freeze,
10
+ ".7z"=>"application/x-7z-compressed".freeze,
11
+ ".aab"=>"application/x-authorware-bin".freeze,
12
+ ".aac"=>"audio/x-aac".freeze,
13
+ ".aam"=>"application/x-authorware-map".freeze,
14
+ ".aas"=>"application/x-authorware-seg".freeze,
15
+ ".abw"=>"application/x-abiword".freeze,
16
+ ".ac"=>"application/pkix-attr-cert".freeze,
17
+ ".acc"=>"application/vnd.americandynamics.acc".freeze,
18
+ ".ace"=>"application/x-ace-compressed".freeze,
19
+ ".acu"=>"application/vnd.acucobol".freeze,
20
+ ".acutc"=>"application/vnd.acucorp".freeze,
21
+ ".adp"=>"audio/adpcm".freeze,
22
+ ".aep"=>"application/vnd.audiograph".freeze,
23
+ ".afm"=>"application/x-font-type1".freeze,
24
+ ".afp"=>"application/vnd.ibm.modcap".freeze,
25
+ ".ahead"=>"application/vnd.ahead.space".freeze,
26
+ ".ai"=>"application/postscript".freeze,
27
+ ".aif"=>"audio/x-aiff".freeze,
28
+ ".aifc"=>"audio/x-aiff".freeze,
29
+ ".aiff"=>"audio/x-aiff".freeze,
30
+ ".air"=>"application/vnd.adobe.air-application-installer-package+zip".freeze,
31
+ ".ait"=>"application/vnd.dvb.ait".freeze,
32
+ ".ami"=>"application/vnd.amiga.ami".freeze,
33
+ ".apk"=>"application/vnd.android.package-archive".freeze,
34
+ ".appcache"=>"text/cache-manifest".freeze,
35
+ ".application"=>"application/x-ms-application".freeze,
36
+ ".apr"=>"application/vnd.lotus-approach".freeze,
37
+ ".arc"=>"application/x-freearc".freeze,
38
+ ".asc"=>"application/pgp-signature".freeze,
39
+ ".asf"=>"video/x-ms-asf".freeze,
40
+ ".asm"=>"text/x-asm".freeze,
41
+ ".aso"=>"application/vnd.accpac.simply.aso".freeze,
42
+ ".asx"=>"video/x-ms-asf".freeze,
43
+ ".atc"=>"application/vnd.acucorp".freeze,
44
+ ".atom"=>"application/atom+xml".freeze,
45
+ ".atomcat"=>"application/atomcat+xml".freeze,
46
+ ".atomsvc"=>"application/atomsvc+xml".freeze,
47
+ ".atx"=>"application/vnd.antix.game-component".freeze,
48
+ ".au"=>"audio/basic".freeze,
49
+ ".avi"=>"video/x-msvideo".freeze,
50
+ ".aw"=>"application/applixware".freeze,
51
+ ".azf"=>"application/vnd.airzip.filesecure.azf".freeze,
52
+ ".azs"=>"application/vnd.airzip.filesecure.azs".freeze,
53
+ ".azw"=>"application/vnd.amazon.ebook".freeze,
54
+ ".bat"=>"application/x-msdownload".freeze,
55
+ ".bcpio"=>"application/x-bcpio".freeze,
56
+ ".bdf"=>"application/x-font-bdf".freeze,
57
+ ".bdm"=>"application/vnd.syncml.dm+wbxml".freeze,
58
+ ".bed"=>"application/vnd.realvnc.bed".freeze,
59
+ ".bh2"=>"application/vnd.fujitsu.oasysprs".freeze,
60
+ ".bin"=>"application/octet-stream".freeze,
61
+ ".blb"=>"application/x-blorb".freeze,
62
+ ".blorb"=>"application/x-blorb".freeze,
63
+ ".bmi"=>"application/vnd.bmi".freeze,
64
+ ".bmp"=>"image/bmp".freeze,
65
+ ".book"=>"application/vnd.framemaker".freeze,
66
+ ".box"=>"application/vnd.previewsystems.box".freeze,
67
+ ".boz"=>"application/x-bzip2".freeze,
68
+ ".bpk"=>"application/octet-stream".freeze,
69
+ ".btif"=>"image/prs.btif".freeze,
70
+ ".bz"=>"application/x-bzip".freeze,
71
+ ".bz2"=>"application/x-bzip2".freeze,
72
+ ".c"=>"text/x-c".freeze,
73
+ ".c11amc"=>"application/vnd.cluetrust.cartomobile-config".freeze,
74
+ ".c11amz"=>"application/vnd.cluetrust.cartomobile-config-pkg".freeze,
75
+ ".c4d"=>"application/vnd.clonk.c4group".freeze,
76
+ ".c4f"=>"application/vnd.clonk.c4group".freeze,
77
+ ".c4g"=>"application/vnd.clonk.c4group".freeze,
78
+ ".c4p"=>"application/vnd.clonk.c4group".freeze,
79
+ ".c4u"=>"application/vnd.clonk.c4group".freeze,
80
+ ".cab"=>"application/vnd.ms-cab-compressed".freeze,
81
+ ".caf"=>"audio/x-caf".freeze,
82
+ ".cap"=>"application/vnd.tcpdump.pcap".freeze,
83
+ ".car"=>"application/vnd.curl.car".freeze,
84
+ ".cat"=>"application/vnd.ms-pki.seccat".freeze,
85
+ ".cb7"=>"application/x-cbr".freeze,
86
+ ".cba"=>"application/x-cbr".freeze,
87
+ ".cbr"=>"application/x-cbr".freeze,
88
+ ".cbt"=>"application/x-cbr".freeze,
89
+ ".cbz"=>"application/x-cbr".freeze,
90
+ ".cc"=>"text/x-c".freeze,
91
+ ".cct"=>"application/x-director".freeze,
92
+ ".ccxml"=>"application/ccxml+xml".freeze,
93
+ ".cdbcmsg"=>"application/vnd.contact.cmsg".freeze,
94
+ ".cdf"=>"application/x-netcdf".freeze,
95
+ ".cdkey"=>"application/vnd.mediastation.cdkey".freeze,
96
+ ".cdmia"=>"application/cdmi-capability".freeze,
97
+ ".cdmic"=>"application/cdmi-container".freeze,
98
+ ".cdmid"=>"application/cdmi-domain".freeze,
99
+ ".cdmio"=>"application/cdmi-object".freeze,
100
+ ".cdmiq"=>"application/cdmi-queue".freeze,
101
+ ".cdx"=>"chemical/x-cdx".freeze,
102
+ ".cdxml"=>"application/vnd.chemdraw+xml".freeze,
103
+ ".cdy"=>"application/vnd.cinderella".freeze,
104
+ ".cer"=>"application/pkix-cert".freeze,
105
+ ".cfs"=>"application/x-cfs-compressed".freeze,
106
+ ".cgm"=>"image/cgm".freeze,
107
+ ".chat"=>"application/x-chat".freeze,
108
+ ".chm"=>"application/vnd.ms-htmlhelp".freeze,
109
+ ".chrt"=>"application/vnd.kde.kchart".freeze,
110
+ ".cif"=>"chemical/x-cif".freeze,
111
+ ".cii"=>"application/vnd.anser-web-certificate-issue-initiation".freeze,
112
+ ".cil"=>"application/vnd.ms-artgalry".freeze,
113
+ ".cla"=>"application/vnd.claymore".freeze,
114
+ ".class"=>"application/java-vm".freeze,
115
+ ".clkk"=>"application/vnd.crick.clicker.keyboard".freeze,
116
+ ".clkp"=>"application/vnd.crick.clicker.palette".freeze,
117
+ ".clkt"=>"application/vnd.crick.clicker.template".freeze,
118
+ ".clkw"=>"application/vnd.crick.clicker.wordbank".freeze,
119
+ ".clkx"=>"application/vnd.crick.clicker".freeze,
120
+ ".clp"=>"application/x-msclip".freeze,
121
+ ".cmc"=>"application/vnd.cosmocaller".freeze,
122
+ ".cmdf"=>"chemical/x-cmdf".freeze,
123
+ ".cml"=>"chemical/x-cml".freeze,
124
+ ".cmp"=>"application/vnd.yellowriver-custom-menu".freeze,
125
+ ".cmx"=>"image/x-cmx".freeze,
126
+ ".cod"=>"application/vnd.rim.cod".freeze,
127
+ ".com"=>"application/x-msdownload".freeze,
128
+ ".conf"=>"text/plain".freeze,
129
+ ".cpio"=>"application/x-cpio".freeze,
130
+ ".cpp"=>"text/x-c".freeze,
131
+ ".cpt"=>"application/mac-compactpro".freeze,
132
+ ".crd"=>"application/x-mscardfile".freeze,
133
+ ".crl"=>"application/pkix-crl".freeze,
134
+ ".crt"=>"application/x-x509-ca-cert".freeze,
135
+ ".cryptonote"=>"application/vnd.rig.cryptonote".freeze,
136
+ ".csh"=>"application/x-csh".freeze,
137
+ ".csml"=>"chemical/x-csml".freeze,
138
+ ".csp"=>"application/vnd.commonspace".freeze,
139
+ ".css"=>"text/css".freeze,
140
+ ".cst"=>"application/x-director".freeze,
141
+ ".csv"=>"text/csv".freeze,
142
+ ".cu"=>"application/cu-seeme".freeze,
143
+ ".curl"=>"text/vnd.curl".freeze,
144
+ ".cww"=>"application/prs.cww".freeze,
145
+ ".cxt"=>"application/x-director".freeze,
146
+ ".cxx"=>"text/x-c".freeze,
147
+ ".dae"=>"model/vnd.collada+xml".freeze,
148
+ ".daf"=>"application/vnd.mobius.daf".freeze,
149
+ ".dart"=>"application/vnd.dart".freeze,
150
+ ".dataless"=>"application/vnd.fdsn.seed".freeze,
151
+ ".davmount"=>"application/davmount+xml".freeze,
152
+ ".dbk"=>"application/docbook+xml".freeze,
153
+ ".dcr"=>"application/x-director".freeze,
154
+ ".dcurl"=>"text/vnd.curl.dcurl".freeze,
155
+ ".dd2"=>"application/vnd.oma.dd2+xml".freeze,
156
+ ".ddd"=>"application/vnd.fujixerox.ddd".freeze,
157
+ ".deb"=>"application/x-debian-package".freeze,
158
+ ".def"=>"text/plain".freeze,
159
+ ".deploy"=>"application/octet-stream".freeze,
160
+ ".der"=>"application/x-x509-ca-cert".freeze,
161
+ ".dfac"=>"application/vnd.dreamfactory".freeze,
162
+ ".dgc"=>"application/x-dgc-compressed".freeze,
163
+ ".dic"=>"text/x-c".freeze,
164
+ ".dif"=>"video/x-dv".freeze,
165
+ ".dir"=>"application/x-director".freeze,
166
+ ".dis"=>"application/vnd.mobius.dis".freeze,
167
+ ".dist"=>"application/octet-stream".freeze,
168
+ ".distz"=>"application/octet-stream".freeze,
169
+ ".djv"=>"image/vnd.djvu".freeze,
170
+ ".djvu"=>"image/vnd.djvu".freeze,
171
+ ".dll"=>"application/x-msdownload".freeze,
172
+ ".dmg"=>"application/x-apple-diskimage".freeze,
173
+ ".dmp"=>"application/vnd.tcpdump.pcap".freeze,
174
+ ".dms"=>"application/octet-stream".freeze,
175
+ ".dna"=>"application/vnd.dna".freeze,
176
+ ".doc"=>"application/msword".freeze,
177
+ ".docm"=>"application/vnd.ms-word.document.macroenabled.12".freeze,
178
+ ".docx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.document".freeze,
179
+ ".dot"=>"application/msword".freeze,
180
+ ".dotm"=>"application/vnd.ms-word.template.macroenabled.12".freeze,
181
+ ".dotx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.template".freeze,
182
+ ".dp"=>"application/vnd.osgi.dp".freeze,
183
+ ".dpg"=>"application/vnd.dpgraph".freeze,
184
+ ".dra"=>"audio/vnd.dra".freeze,
185
+ ".dsc"=>"text/prs.lines.tag".freeze,
186
+ ".dssc"=>"application/dssc+der".freeze,
187
+ ".dtb"=>"application/x-dtbook+xml".freeze,
188
+ ".dtd"=>"application/xml-dtd".freeze,
189
+ ".dts"=>"audio/vnd.dts".freeze,
190
+ ".dtshd"=>"audio/vnd.dts.hd".freeze,
191
+ ".dump"=>"application/octet-stream".freeze,
192
+ ".dv"=>"video/x-dv".freeze,
193
+ ".dvb"=>"video/vnd.dvb.file".freeze,
194
+ ".dvi"=>"application/x-dvi".freeze,
195
+ ".dwf"=>"model/vnd.dwf".freeze,
196
+ ".dwg"=>"image/vnd.dwg".freeze,
197
+ ".dxf"=>"image/vnd.dxf".freeze,
198
+ ".dxp"=>"application/vnd.spotfire.dxp".freeze,
199
+ ".dxr"=>"application/x-director".freeze,
200
+ ".ecelp4800"=>"audio/vnd.nuera.ecelp4800".freeze,
201
+ ".ecelp7470"=>"audio/vnd.nuera.ecelp7470".freeze,
202
+ ".ecelp9600"=>"audio/vnd.nuera.ecelp9600".freeze,
203
+ ".ecma"=>"application/ecmascript".freeze,
204
+ ".edm"=>"application/vnd.novadigm.edm".freeze,
205
+ ".edx"=>"application/vnd.novadigm.edx".freeze,
206
+ ".efif"=>"application/vnd.picsel".freeze,
207
+ ".ei6"=>"application/vnd.pg.osasli".freeze,
208
+ ".elc"=>"application/octet-stream".freeze,
209
+ ".emf"=>"application/x-msmetafile".freeze,
210
+ ".eml"=>"message/rfc822".freeze,
211
+ ".emma"=>"application/emma+xml".freeze,
212
+ ".emz"=>"application/x-msmetafile".freeze,
213
+ ".eol"=>"audio/vnd.digital-winds".freeze,
214
+ ".eot"=>"application/vnd.ms-fontobject".freeze,
215
+ ".eps"=>"application/postscript".freeze,
216
+ ".epub"=>"application/epub+zip".freeze,
217
+ ".es3"=>"application/vnd.eszigno3+xml".freeze,
218
+ ".esa"=>"application/vnd.osgi.subsystem".freeze,
219
+ ".esf"=>"application/vnd.epson.esf".freeze,
220
+ ".et3"=>"application/vnd.eszigno3+xml".freeze,
221
+ ".etx"=>"text/x-setext".freeze,
222
+ ".eva"=>"application/x-eva".freeze,
223
+ ".evy"=>"application/x-envoy".freeze,
224
+ ".exe"=>"application/x-msdownload".freeze,
225
+ ".exi"=>"application/exi".freeze,
226
+ ".ext"=>"application/vnd.novadigm.ext".freeze,
227
+ ".ez"=>"application/andrew-inset".freeze,
228
+ ".ez2"=>"application/vnd.ezpix-album".freeze,
229
+ ".ez3"=>"application/vnd.ezpix-package".freeze,
230
+ ".f"=>"text/x-fortran".freeze,
231
+ ".f4v"=>"video/x-f4v".freeze,
232
+ ".f77"=>"text/x-fortran".freeze,
233
+ ".f90"=>"text/x-fortran".freeze,
234
+ ".fbs"=>"image/vnd.fastbidsheet".freeze,
235
+ ".fcdt"=>"application/vnd.adobe.formscentral.fcdt".freeze,
236
+ ".fcs"=>"application/vnd.isac.fcs".freeze,
237
+ ".fdf"=>"application/vnd.fdf".freeze,
238
+ ".fe_launch"=>"application/vnd.denovo.fcselayout-link".freeze,
239
+ ".fg5"=>"application/vnd.fujitsu.oasysgp".freeze,
240
+ ".fgd"=>"application/x-director".freeze,
241
+ ".fh"=>"image/x-freehand".freeze,
242
+ ".fh4"=>"image/x-freehand".freeze,
243
+ ".fh5"=>"image/x-freehand".freeze,
244
+ ".fh7"=>"image/x-freehand".freeze,
245
+ ".fhc"=>"image/x-freehand".freeze,
246
+ ".fig"=>"application/x-xfig".freeze,
247
+ ".flac"=>"audio/x-flac".freeze,
248
+ ".fli"=>"video/x-fli".freeze,
249
+ ".flo"=>"application/vnd.micrografx.flo".freeze,
250
+ ".flv"=>"video/x-flv".freeze,
251
+ ".flw"=>"application/vnd.kde.kivio".freeze,
252
+ ".flx"=>"text/vnd.fmi.flexstor".freeze,
253
+ ".fly"=>"text/vnd.fly".freeze,
254
+ ".fm"=>"application/vnd.framemaker".freeze,
255
+ ".fnc"=>"application/vnd.frogans.fnc".freeze,
256
+ ".for"=>"text/x-fortran".freeze,
257
+ ".fpx"=>"image/vnd.fpx".freeze,
258
+ ".frame"=>"application/vnd.framemaker".freeze,
259
+ ".fsc"=>"application/vnd.fsc.weblaunch".freeze,
260
+ ".fst"=>"image/vnd.fst".freeze,
261
+ ".ftc"=>"application/vnd.fluxtime.clip".freeze,
262
+ ".fti"=>"application/vnd.anser-web-funds-transfer-initiation".freeze,
263
+ ".fvt"=>"video/vnd.fvt".freeze,
264
+ ".fxp"=>"application/vnd.adobe.fxp".freeze,
265
+ ".fxpl"=>"application/vnd.adobe.fxp".freeze,
266
+ ".fzs"=>"application/vnd.fuzzysheet".freeze,
267
+ ".g2w"=>"application/vnd.geoplan".freeze,
268
+ ".g3"=>"image/g3fax".freeze,
269
+ ".g3w"=>"application/vnd.geospace".freeze,
270
+ ".gac"=>"application/vnd.groove-account".freeze,
271
+ ".gam"=>"application/x-tads".freeze,
272
+ ".gbr"=>"application/rpki-ghostbusters".freeze,
273
+ ".gca"=>"application/x-gca-compressed".freeze,
274
+ ".gdl"=>"model/vnd.gdl".freeze,
275
+ ".geo"=>"application/vnd.dynageo".freeze,
276
+ ".gex"=>"application/vnd.geometry-explorer".freeze,
277
+ ".ggb"=>"application/vnd.geogebra.file".freeze,
278
+ ".ggt"=>"application/vnd.geogebra.tool".freeze,
279
+ ".ghf"=>"application/vnd.groove-help".freeze,
280
+ ".gif"=>"image/gif".freeze,
281
+ ".gim"=>"application/vnd.groove-identity-message".freeze,
282
+ ".gml"=>"application/gml+xml".freeze,
283
+ ".gmx"=>"application/vnd.gmx".freeze,
284
+ ".gnumeric"=>"application/x-gnumeric".freeze,
285
+ ".gph"=>"application/vnd.flographit".freeze,
286
+ ".gpx"=>"application/gpx+xml".freeze,
287
+ ".gqf"=>"application/vnd.grafeq".freeze,
288
+ ".gqs"=>"application/vnd.grafeq".freeze,
289
+ ".gram"=>"application/srgs".freeze,
290
+ ".gramps"=>"application/x-gramps-xml".freeze,
291
+ ".gre"=>"application/vnd.geometry-explorer".freeze,
292
+ ".grv"=>"application/vnd.groove-injector".freeze,
293
+ ".grxml"=>"application/srgs+xml".freeze,
294
+ ".gsf"=>"application/x-font-ghostscript".freeze,
295
+ ".gtar"=>"application/x-gtar".freeze,
296
+ ".gtm"=>"application/vnd.groove-tool-message".freeze,
297
+ ".gtw"=>"model/vnd.gtw".freeze,
298
+ ".gv"=>"text/vnd.graphviz".freeze,
299
+ ".gxf"=>"application/gxf".freeze,
300
+ ".gxt"=>"application/vnd.geonext".freeze,
301
+ ".h"=>"text/x-c".freeze,
302
+ ".h261"=>"video/h261".freeze,
303
+ ".h263"=>"video/h263".freeze,
304
+ ".h264"=>"video/h264".freeze,
305
+ ".hal"=>"application/vnd.hal+xml".freeze,
306
+ ".hbci"=>"application/vnd.hbci".freeze,
307
+ ".hdf"=>"application/x-hdf".freeze,
308
+ ".hh"=>"text/x-c".freeze,
309
+ ".hlp"=>"application/winhlp".freeze,
310
+ ".hpgl"=>"application/vnd.hp-hpgl".freeze,
311
+ ".hpid"=>"application/vnd.hp-hpid".freeze,
312
+ ".hps"=>"application/vnd.hp-hps".freeze,
313
+ ".hqx"=>"application/mac-binhex40".freeze,
314
+ ".htke"=>"application/vnd.kenameaapp".freeze,
315
+ ".htm"=>"text/html".freeze,
316
+ ".html"=>"text/html".freeze,
317
+ ".hvd"=>"application/vnd.yamaha.hv-dic".freeze,
318
+ ".hvp"=>"application/vnd.yamaha.hv-voice".freeze,
319
+ ".hvs"=>"application/vnd.yamaha.hv-script".freeze,
320
+ ".i2g"=>"application/vnd.intergeo".freeze,
321
+ ".icc"=>"application/vnd.iccprofile".freeze,
322
+ ".ice"=>"x-conference/x-cooltalk".freeze,
323
+ ".icm"=>"application/vnd.iccprofile".freeze,
324
+ ".ico"=>"image/x-icon".freeze,
325
+ ".ics"=>"text/calendar".freeze,
326
+ ".ief"=>"image/ief".freeze,
327
+ ".ifb"=>"text/calendar".freeze,
328
+ ".ifm"=>"application/vnd.shana.informed.formdata".freeze,
329
+ ".iges"=>"model/iges".freeze,
330
+ ".igl"=>"application/vnd.igloader".freeze,
331
+ ".igm"=>"application/vnd.insors.igm".freeze,
332
+ ".igs"=>"model/iges".freeze,
333
+ ".igx"=>"application/vnd.micrografx.igx".freeze,
334
+ ".iif"=>"application/vnd.shana.informed.interchange".freeze,
335
+ ".imp"=>"application/vnd.accpac.simply.imp".freeze,
336
+ ".ims"=>"application/vnd.ms-ims".freeze,
337
+ ".in"=>"text/plain".freeze,
338
+ ".ink"=>"application/inkml+xml".freeze,
339
+ ".inkml"=>"application/inkml+xml".freeze,
340
+ ".install"=>"application/x-install-instructions".freeze,
341
+ ".iota"=>"application/vnd.astraea-software.iota".freeze,
342
+ ".ipfix"=>"application/ipfix".freeze,
343
+ ".ipk"=>"application/vnd.shana.informed.package".freeze,
344
+ ".irm"=>"application/vnd.ibm.rights-management".freeze,
345
+ ".irp"=>"application/vnd.irepository.package+xml".freeze,
346
+ ".iso"=>"application/x-iso9660-image".freeze,
347
+ ".itp"=>"application/vnd.shana.informed.formtemplate".freeze,
348
+ ".ivp"=>"application/vnd.immervision-ivp".freeze,
349
+ ".ivu"=>"application/vnd.immervision-ivu".freeze,
350
+ ".jad"=>"text/vnd.sun.j2me.app-descriptor".freeze,
351
+ ".jam"=>"application/vnd.jam".freeze,
352
+ ".jar"=>"application/java-archive".freeze,
353
+ ".java"=>"text/x-java-source".freeze,
354
+ ".jisp"=>"application/vnd.jisp".freeze,
355
+ ".jlt"=>"application/vnd.hp-jlyt".freeze,
356
+ ".jnlp"=>"application/x-java-jnlp-file".freeze,
357
+ ".joda"=>"application/vnd.joost.joda-archive".freeze,
358
+ ".jp2"=>"image/jp2".freeze,
359
+ ".jpe"=>"image/jpeg".freeze,
360
+ ".jpeg"=>"image/jpeg".freeze,
361
+ ".jpg"=>"image/jpeg".freeze,
362
+ ".jpgm"=>"video/jpm".freeze,
363
+ ".jpgv"=>"video/jpeg".freeze,
364
+ ".jpm"=>"video/jpm".freeze,
365
+ ".js"=>"application/javascript".freeze,
366
+ ".json"=>"application/json".freeze,
367
+ ".jsonml"=>"application/jsonml+json".freeze,
368
+ ".kar"=>"audio/midi".freeze,
369
+ ".karbon"=>"application/vnd.kde.karbon".freeze,
370
+ ".kfo"=>"application/vnd.kde.kformula".freeze,
371
+ ".kia"=>"application/vnd.kidspiration".freeze,
372
+ ".kml"=>"application/vnd.google-earth.kml+xml".freeze,
373
+ ".kmz"=>"application/vnd.google-earth.kmz".freeze,
374
+ ".kne"=>"application/vnd.kinar".freeze,
375
+ ".knp"=>"application/vnd.kinar".freeze,
376
+ ".kon"=>"application/vnd.kde.kontour".freeze,
377
+ ".kpr"=>"application/vnd.kde.kpresenter".freeze,
378
+ ".kpt"=>"application/vnd.kde.kpresenter".freeze,
379
+ ".kpxx"=>"application/vnd.ds-keypoint".freeze,
380
+ ".ksp"=>"application/vnd.kde.kspread".freeze,
381
+ ".ktr"=>"application/vnd.kahootz".freeze,
382
+ ".ktx"=>"image/ktx".freeze,
383
+ ".ktz"=>"application/vnd.kahootz".freeze,
384
+ ".kwd"=>"application/vnd.kde.kword".freeze,
385
+ ".kwt"=>"application/vnd.kde.kword".freeze,
386
+ ".lasxml"=>"application/vnd.las.las+xml".freeze,
387
+ ".latex"=>"application/x-latex".freeze,
388
+ ".lbd"=>"application/vnd.llamagraphics.life-balance.desktop".freeze,
389
+ ".lbe"=>"application/vnd.llamagraphics.life-balance.exchange+xml".freeze,
390
+ ".les"=>"application/vnd.hhe.lesson-player".freeze,
391
+ ".lha"=>"application/octet-stream".freeze,
392
+ ".link66"=>"application/vnd.route66.link66+xml".freeze,
393
+ ".list"=>"text/plain".freeze,
394
+ ".list3820"=>"application/vnd.ibm.modcap".freeze,
395
+ ".listafp"=>"application/vnd.ibm.modcap".freeze,
396
+ ".lnk"=>"application/x-ms-shortcut".freeze,
397
+ ".log"=>"text/plain".freeze,
398
+ ".lostxml"=>"application/lost+xml".freeze,
399
+ ".lrf"=>"application/octet-stream".freeze,
400
+ ".lrm"=>"application/vnd.ms-lrm".freeze,
401
+ ".ltf"=>"application/vnd.frogans.ltf".freeze,
402
+ ".lvp"=>"audio/vnd.lucent.voice".freeze,
403
+ ".lwp"=>"application/vnd.lotus-wordpro".freeze,
404
+ ".lzh"=>"application/octet-stream".freeze,
405
+ ".m13"=>"application/x-msmediaview".freeze,
406
+ ".m14"=>"application/x-msmediaview".freeze,
407
+ ".m1v"=>"video/mpeg".freeze,
408
+ ".m21"=>"application/mp21".freeze,
409
+ ".m2a"=>"audio/mpeg".freeze,
410
+ ".m2v"=>"video/mpeg".freeze,
411
+ ".m3a"=>"audio/mpeg".freeze,
412
+ ".m3u"=>"audio/x-mpegurl".freeze,
413
+ ".m3u8"=>"application/vnd.apple.mpegurl".freeze,
414
+ ".m4a"=>"audio/mp4a-latm".freeze,
415
+ ".m4b"=>"audio/mp4a-latm".freeze,
416
+ ".m4p"=>"audio/mp4a-latm".freeze,
417
+ ".m4u"=>"video/vnd.mpegurl".freeze,
418
+ ".m4v"=>"video/x-m4v".freeze,
419
+ ".ma"=>"application/mathematica".freeze,
420
+ ".mac"=>"image/x-macpaint".freeze,
421
+ ".mads"=>"application/mads+xml".freeze,
422
+ ".mag"=>"application/vnd.ecowin.chart".freeze,
423
+ ".maker"=>"application/vnd.framemaker".freeze,
424
+ ".man"=>"application/x-troff-man".freeze,
425
+ ".mar"=>"application/octet-stream".freeze,
426
+ ".mathml"=>"application/mathml+xml".freeze,
427
+ ".mb"=>"application/mathematica".freeze,
428
+ ".mbk"=>"application/vnd.mobius.mbk".freeze,
429
+ ".mbox"=>"application/mbox".freeze,
430
+ ".mc1"=>"application/vnd.medcalcdata".freeze,
431
+ ".mcd"=>"application/vnd.mcd".freeze,
432
+ ".mcurl"=>"text/vnd.curl.mcurl".freeze,
433
+ ".mdb"=>"application/x-msaccess".freeze,
434
+ ".mdi"=>"image/vnd.ms-modi".freeze,
435
+ ".me"=>"text/troff".freeze,
436
+ ".mesh"=>"model/mesh".freeze,
437
+ ".meta4"=>"application/metalink4+xml".freeze,
438
+ ".metalink"=>"application/metalink+xml".freeze,
439
+ ".mets"=>"application/mets+xml".freeze,
440
+ ".mfm"=>"application/vnd.mfmp".freeze,
441
+ ".mft"=>"application/rpki-manifest".freeze,
442
+ ".mgp"=>"application/vnd.osgeo.mapguide.package".freeze,
443
+ ".mgz"=>"application/vnd.proteus.magazine".freeze,
444
+ ".mid"=>"audio/midi".freeze,
445
+ ".midi"=>"audio/midi".freeze,
446
+ ".mie"=>"application/x-mie".freeze,
447
+ ".mif"=>"application/vnd.mif".freeze,
448
+ ".mime"=>"message/rfc822".freeze,
449
+ ".mj2"=>"video/mj2".freeze,
450
+ ".mjp2"=>"video/mj2".freeze,
451
+ ".mk3d"=>"video/x-matroska".freeze,
452
+ ".mka"=>"audio/x-matroska".freeze,
453
+ ".mks"=>"video/x-matroska".freeze,
454
+ ".mkv"=>"video/x-matroska".freeze,
455
+ ".mlp"=>"application/vnd.dolby.mlp".freeze,
456
+ ".mmd"=>"application/vnd.chipnuts.karaoke-mmd".freeze,
457
+ ".mmf"=>"application/vnd.smaf".freeze,
458
+ ".mmr"=>"image/vnd.fujixerox.edmics-mmr".freeze,
459
+ ".mng"=>"video/x-mng".freeze,
460
+ ".mny"=>"application/x-msmoney".freeze,
461
+ ".mobi"=>"application/x-mobipocket-ebook".freeze,
462
+ ".mods"=>"application/mods+xml".freeze,
463
+ ".mov"=>"video/quicktime".freeze,
464
+ ".movie"=>"video/x-sgi-movie".freeze,
465
+ ".mp2"=>"audio/mpeg".freeze,
466
+ ".mp21"=>"application/mp21".freeze,
467
+ ".mp2a"=>"audio/mpeg".freeze,
468
+ ".mp3"=>"audio/mpeg".freeze,
469
+ ".mp4"=>"video/mp4".freeze,
470
+ ".mp4a"=>"audio/mp4".freeze,
471
+ ".mp4s"=>"application/mp4".freeze,
472
+ ".mp4v"=>"video/mp4".freeze,
473
+ ".mpc"=>"application/vnd.mophun.certificate".freeze,
474
+ ".mpe"=>"video/mpeg".freeze,
475
+ ".mpeg"=>"video/mpeg".freeze,
476
+ ".mpg"=>"video/mpeg".freeze,
477
+ ".mpg4"=>"video/mp4".freeze,
478
+ ".mpga"=>"audio/mpeg".freeze,
479
+ ".mpkg"=>"application/vnd.apple.installer+xml".freeze,
480
+ ".mpm"=>"application/vnd.blueice.multipass".freeze,
481
+ ".mpn"=>"application/vnd.mophun.application".freeze,
482
+ ".mpp"=>"application/vnd.ms-project".freeze,
483
+ ".mpt"=>"application/vnd.ms-project".freeze,
484
+ ".mpy"=>"application/vnd.ibm.minipay".freeze,
485
+ ".mqy"=>"application/vnd.mobius.mqy".freeze,
486
+ ".mrc"=>"application/marc".freeze,
487
+ ".mrcx"=>"application/marcxml+xml".freeze,
488
+ ".ms"=>"application/x-troff-ms".freeze,
489
+ ".mscml"=>"application/mediaservercontrol+xml".freeze,
490
+ ".mseed"=>"application/vnd.fdsn.mseed".freeze,
491
+ ".mseq"=>"application/vnd.mseq".freeze,
492
+ ".msf"=>"application/vnd.epson.msf".freeze,
493
+ ".msh"=>"model/mesh".freeze,
494
+ ".msi"=>"application/x-msdownload".freeze,
495
+ ".msl"=>"application/vnd.mobius.msl".freeze,
496
+ ".msty"=>"application/vnd.muvee.style".freeze,
497
+ ".mts"=>"model/vnd.mts".freeze,
498
+ ".mus"=>"application/vnd.musician".freeze,
499
+ ".musicxml"=>"application/vnd.recordare.musicxml+xml".freeze,
500
+ ".mvb"=>"application/x-msmediaview".freeze,
501
+ ".mwf"=>"application/vnd.mfer".freeze,
502
+ ".mxf"=>"application/mxf".freeze,
503
+ ".mxl"=>"application/vnd.recordare.musicxml".freeze,
504
+ ".mxml"=>"application/xv+xml".freeze,
505
+ ".mxs"=>"application/vnd.triscape.mxs".freeze,
506
+ ".mxu"=>"video/vnd.mpegurl".freeze,
507
+ ".n-gage"=>"application/vnd.nokia.n-gage.symbian.install".freeze,
508
+ ".n3"=>"text/n3".freeze,
509
+ ".nb"=>"application/mathematica".freeze,
510
+ ".nbp"=>"application/vnd.wolfram.player".freeze,
511
+ ".nc"=>"application/x-netcdf".freeze,
512
+ ".ncx"=>"application/x-dtbncx+xml".freeze,
513
+ ".nfo"=>"text/x-nfo".freeze,
514
+ ".ngdat"=>"application/vnd.nokia.n-gage.data".freeze,
515
+ ".nitf"=>"application/vnd.nitf".freeze,
516
+ ".nlu"=>"application/vnd.neurolanguage.nlu".freeze,
517
+ ".nml"=>"application/vnd.enliven".freeze,
518
+ ".nnd"=>"application/vnd.noblenet-directory".freeze,
519
+ ".nns"=>"application/vnd.noblenet-sealer".freeze,
520
+ ".nnw"=>"application/vnd.noblenet-web".freeze,
521
+ ".npx"=>"image/vnd.net-fpx".freeze,
522
+ ".nsc"=>"application/x-conference".freeze,
523
+ ".nsf"=>"application/vnd.lotus-notes".freeze,
524
+ ".ntf"=>"application/vnd.nitf".freeze,
525
+ ".nzb"=>"application/x-nzb".freeze,
526
+ ".oa2"=>"application/vnd.fujitsu.oasys2".freeze,
527
+ ".oa3"=>"application/vnd.fujitsu.oasys3".freeze,
528
+ ".oas"=>"application/vnd.fujitsu.oasys".freeze,
529
+ ".obd"=>"application/x-msbinder".freeze,
530
+ ".obj"=>"application/x-tgif".freeze,
531
+ ".oda"=>"application/oda".freeze,
532
+ ".odb"=>"application/vnd.oasis.opendocument.database".freeze,
533
+ ".odc"=>"application/vnd.oasis.opendocument.chart".freeze,
534
+ ".odf"=>"application/vnd.oasis.opendocument.formula".freeze,
535
+ ".odft"=>"application/vnd.oasis.opendocument.formula-template".freeze,
536
+ ".odg"=>"application/vnd.oasis.opendocument.graphics".freeze,
537
+ ".odi"=>"application/vnd.oasis.opendocument.image".freeze,
538
+ ".odm"=>"application/vnd.oasis.opendocument.text-master".freeze,
539
+ ".odp"=>"application/vnd.oasis.opendocument.presentation".freeze,
540
+ ".ods"=>"application/vnd.oasis.opendocument.spreadsheet".freeze,
541
+ ".odt"=>"application/vnd.oasis.opendocument.text".freeze,
542
+ ".oga"=>"audio/ogg".freeze,
543
+ ".ogg"=>"audio/ogg".freeze,
544
+ ".ogv"=>"video/ogg".freeze,
545
+ ".ogx"=>"application/ogg".freeze,
546
+ ".omdoc"=>"application/omdoc+xml".freeze,
547
+ ".onepkg"=>"application/onenote".freeze,
548
+ ".onetmp"=>"application/onenote".freeze,
549
+ ".onetoc"=>"application/onenote".freeze,
550
+ ".onetoc2"=>"application/onenote".freeze,
551
+ ".opf"=>"application/oebps-package+xml".freeze,
552
+ ".opml"=>"text/x-opml".freeze,
553
+ ".oprc"=>"application/vnd.palm".freeze,
554
+ ".org"=>"application/vnd.lotus-organizer".freeze,
555
+ ".osf"=>"application/vnd.yamaha.openscoreformat".freeze,
556
+ ".osfpvg"=>"application/vnd.yamaha.openscoreformat.osfpvg+xml".freeze,
557
+ ".otc"=>"application/vnd.oasis.opendocument.chart-template".freeze,
558
+ ".otf"=>"application/x-font-otf".freeze,
559
+ ".otg"=>"application/vnd.oasis.opendocument.graphics-template".freeze,
560
+ ".oth"=>"application/vnd.oasis.opendocument.text-web".freeze,
561
+ ".oti"=>"application/vnd.oasis.opendocument.image-template".freeze,
562
+ ".otp"=>"application/vnd.oasis.opendocument.presentation-template".freeze,
563
+ ".ots"=>"application/vnd.oasis.opendocument.spreadsheet-template".freeze,
564
+ ".ott"=>"application/vnd.oasis.opendocument.text-template".freeze,
565
+ ".oxps"=>"application/oxps".freeze,
566
+ ".oxt"=>"application/vnd.openofficeorg.extension".freeze,
567
+ ".p"=>"text/x-pascal".freeze,
568
+ ".p10"=>"application/pkcs10".freeze,
569
+ ".p12"=>"application/x-pkcs12".freeze,
570
+ ".p7b"=>"application/x-pkcs7-certificates".freeze,
571
+ ".p7c"=>"application/pkcs7-mime".freeze,
572
+ ".p7m"=>"application/pkcs7-mime".freeze,
573
+ ".p7r"=>"application/x-pkcs7-certreqresp".freeze,
574
+ ".p7s"=>"application/pkcs7-signature".freeze,
575
+ ".p8"=>"application/pkcs8".freeze,
576
+ ".pas"=>"text/x-pascal".freeze,
577
+ ".paw"=>"application/vnd.pawaafile".freeze,
578
+ ".pbd"=>"application/vnd.powerbuilder6".freeze,
579
+ ".pbm"=>"image/x-portable-bitmap".freeze,
580
+ ".pcap"=>"application/vnd.tcpdump.pcap".freeze,
581
+ ".pcf"=>"application/x-font-pcf".freeze,
582
+ ".pcl"=>"application/vnd.hp-pcl".freeze,
583
+ ".pclxl"=>"application/vnd.hp-pclxl".freeze,
584
+ ".pct"=>"image/x-pict".freeze,
585
+ ".pcurl"=>"application/vnd.curl.pcurl".freeze,
586
+ ".pcx"=>"image/x-pcx".freeze,
587
+ ".pdb"=>"application/vnd.palm".freeze,
588
+ ".pdf"=>"application/pdf".freeze,
589
+ ".pfa"=>"application/x-font-type1".freeze,
590
+ ".pfb"=>"application/x-font-type1".freeze,
591
+ ".pfm"=>"application/x-font-type1".freeze,
592
+ ".pfr"=>"application/font-tdpfr".freeze,
593
+ ".pfx"=>"application/x-pkcs12".freeze,
594
+ ".pgm"=>"image/x-portable-graymap".freeze,
595
+ ".pgn"=>"application/x-chess-pgn".freeze,
596
+ ".pgp"=>"application/pgp-encrypted".freeze,
597
+ ".pic"=>"image/pict".freeze,
598
+ ".pict"=>"image/pict".freeze,
599
+ ".pkg"=>"application/octet-stream".freeze,
600
+ ".pki"=>"application/pkixcmp".freeze,
601
+ ".pkipath"=>"application/pkix-pkipath".freeze,
602
+ ".plb"=>"application/vnd.3gpp.pic-bw-large".freeze,
603
+ ".plc"=>"application/vnd.mobius.plc".freeze,
604
+ ".plf"=>"application/vnd.pocketlearn".freeze,
605
+ ".pls"=>"application/pls+xml".freeze,
606
+ ".pml"=>"application/vnd.ctc-posml".freeze,
607
+ ".png"=>"image/png".freeze,
608
+ ".pnm"=>"image/x-portable-anymap".freeze,
609
+ ".pnt"=>"image/x-macpaint".freeze,
610
+ ".pntg"=>"image/x-macpaint".freeze,
611
+ ".portpkg"=>"application/vnd.macports.portpkg".freeze,
612
+ ".pot"=>"application/vnd.ms-powerpoint".freeze,
613
+ ".potm"=>"application/vnd.ms-powerpoint.template.macroenabled.12".freeze,
614
+ ".potx"=>"application/vnd.openxmlformats-officedocument.presentationml.template".freeze,
615
+ ".ppam"=>"application/vnd.ms-powerpoint.addin.macroenabled.12".freeze,
616
+ ".ppd"=>"application/vnd.cups-ppd".freeze,
617
+ ".ppm"=>"image/x-portable-pixmap".freeze,
618
+ ".pps"=>"application/vnd.ms-powerpoint".freeze,
619
+ ".ppsm"=>"application/vnd.ms-powerpoint.slideshow.macroenabled.12".freeze,
620
+ ".ppsx"=>"application/vnd.openxmlformats-officedocument.presentationml.slideshow".freeze,
621
+ ".ppt"=>"application/vnd.ms-powerpoint".freeze,
622
+ ".pptm"=>"application/vnd.ms-powerpoint.presentation.macroenabled.12".freeze,
623
+ ".pptx"=>"application/vnd.openxmlformats-officedocument.presentationml.presentation".freeze,
624
+ ".pqa"=>"application/vnd.palm".freeze,
625
+ ".prc"=>"application/x-mobipocket-ebook".freeze,
626
+ ".pre"=>"application/vnd.lotus-freelance".freeze,
627
+ ".prf"=>"application/pics-rules".freeze,
628
+ ".ps"=>"application/postscript".freeze,
629
+ ".psb"=>"application/vnd.3gpp.pic-bw-small".freeze,
630
+ ".psd"=>"image/vnd.adobe.photoshop".freeze,
631
+ ".psf"=>"application/x-font-linux-psf".freeze,
632
+ ".pskcxml"=>"application/pskc+xml".freeze,
633
+ ".ptid"=>"application/vnd.pvi.ptid1".freeze,
634
+ ".pub"=>"application/x-mspublisher".freeze,
635
+ ".pvb"=>"application/vnd.3gpp.pic-bw-var".freeze,
636
+ ".pwn"=>"application/vnd.3m.post-it-notes".freeze,
637
+ ".pya"=>"audio/vnd.ms-playready.media.pya".freeze,
638
+ ".pyv"=>"video/vnd.ms-playready.media.pyv".freeze,
639
+ ".qam"=>"application/vnd.epson.quickanime".freeze,
640
+ ".qbo"=>"application/vnd.intu.qbo".freeze,
641
+ ".qfx"=>"application/vnd.intu.qfx".freeze,
642
+ ".qps"=>"application/vnd.publishare-delta-tree".freeze,
643
+ ".qt"=>"video/quicktime".freeze,
644
+ ".qti"=>"image/x-quicktime".freeze,
645
+ ".qtif"=>"image/x-quicktime".freeze,
646
+ ".qwd"=>"application/vnd.quark.quarkxpress".freeze,
647
+ ".qwt"=>"application/vnd.quark.quarkxpress".freeze,
648
+ ".qxb"=>"application/vnd.quark.quarkxpress".freeze,
649
+ ".qxd"=>"application/vnd.quark.quarkxpress".freeze,
650
+ ".qxl"=>"application/vnd.quark.quarkxpress".freeze,
651
+ ".qxt"=>"application/vnd.quark.quarkxpress".freeze,
652
+ ".ra"=>"audio/x-pn-realaudio".freeze,
653
+ ".ram"=>"audio/x-pn-realaudio".freeze,
654
+ ".rar"=>"application/x-rar-compressed".freeze,
655
+ ".ras"=>"image/x-cmu-raster".freeze,
656
+ ".rcprofile"=>"application/vnd.ipunplugged.rcprofile".freeze,
657
+ ".rdf"=>"application/rdf+xml".freeze,
658
+ ".rdz"=>"application/vnd.data-vision.rdz".freeze,
659
+ ".rep"=>"application/vnd.businessobjects".freeze,
660
+ ".res"=>"application/x-dtbresource+xml".freeze,
661
+ ".rgb"=>"image/x-rgb".freeze,
662
+ ".rif"=>"application/reginfo+xml".freeze,
663
+ ".rip"=>"audio/vnd.rip".freeze,
664
+ ".ris"=>"application/x-research-info-systems".freeze,
665
+ ".rl"=>"application/resource-lists+xml".freeze,
666
+ ".rlc"=>"image/vnd.fujixerox.edmics-rlc".freeze,
667
+ ".rld"=>"application/resource-lists-diff+xml".freeze,
668
+ ".rm"=>"application/vnd.rn-realmedia".freeze,
669
+ ".rmi"=>"audio/midi".freeze,
670
+ ".rmp"=>"audio/x-pn-realaudio-plugin".freeze,
671
+ ".rms"=>"application/vnd.jcp.javame.midlet-rms".freeze,
672
+ ".rmvb"=>"application/vnd.rn-realmedia-vbr".freeze,
673
+ ".rnc"=>"application/relax-ng-compact-syntax".freeze,
674
+ ".roa"=>"application/rpki-roa".freeze,
675
+ ".roff"=>"application/x-troff".freeze,
676
+ ".rp9"=>"application/vnd.cloanto.rp9".freeze,
677
+ ".rpss"=>"application/vnd.nokia.radio-presets".freeze,
678
+ ".rpst"=>"application/vnd.nokia.radio-preset".freeze,
679
+ ".rq"=>"application/sparql-query".freeze,
680
+ ".rs"=>"application/rls-services+xml".freeze,
681
+ ".rsd"=>"application/rsd+xml".freeze,
682
+ ".rss"=>"application/rss+xml".freeze,
683
+ ".rtf"=>"application/rtf".freeze,
684
+ ".rtx"=>"text/richtext".freeze,
685
+ ".s"=>"text/x-asm".freeze,
686
+ ".s3m"=>"audio/s3m".freeze,
687
+ ".saf"=>"application/vnd.yamaha.smaf-audio".freeze,
688
+ ".sbml"=>"application/sbml+xml".freeze,
689
+ ".sc"=>"application/vnd.ibm.secure-container".freeze,
690
+ ".scd"=>"application/x-msschedule".freeze,
691
+ ".scm"=>"application/vnd.lotus-screencam".freeze,
692
+ ".scq"=>"application/scvp-cv-request".freeze,
693
+ ".scs"=>"application/scvp-cv-response".freeze,
694
+ ".scurl"=>"text/vnd.curl.scurl".freeze,
695
+ ".sda"=>"application/vnd.stardivision.draw".freeze,
696
+ ".sdc"=>"application/vnd.stardivision.calc".freeze,
697
+ ".sdd"=>"application/vnd.stardivision.impress".freeze,
698
+ ".sdkd"=>"application/vnd.solent.sdkm+xml".freeze,
699
+ ".sdkm"=>"application/vnd.solent.sdkm+xml".freeze,
700
+ ".sdp"=>"application/sdp".freeze,
701
+ ".sdw"=>"application/vnd.stardivision.writer".freeze,
702
+ ".see"=>"application/vnd.seemail".freeze,
703
+ ".seed"=>"application/vnd.fdsn.seed".freeze,
704
+ ".sema"=>"application/vnd.sema".freeze,
705
+ ".semd"=>"application/vnd.semd".freeze,
706
+ ".semf"=>"application/vnd.semf".freeze,
707
+ ".ser"=>"application/java-serialized-object".freeze,
708
+ ".setpay"=>"application/set-payment-initiation".freeze,
709
+ ".setreg"=>"application/set-registration-initiation".freeze,
710
+ ".sfd-hdstx"=>"application/vnd.hydrostatix.sof-data".freeze,
711
+ ".sfs"=>"application/vnd.spotfire.sfs".freeze,
712
+ ".sfv"=>"text/x-sfv".freeze,
713
+ ".sgi"=>"image/sgi".freeze,
714
+ ".sgl"=>"application/vnd.stardivision.writer-global".freeze,
715
+ ".sgm"=>"text/sgml".freeze,
716
+ ".sgml"=>"text/sgml".freeze,
717
+ ".sh"=>"application/x-sh".freeze,
718
+ ".shar"=>"application/x-shar".freeze,
719
+ ".shf"=>"application/shf+xml".freeze,
720
+ ".sid"=>"image/x-mrsid-image".freeze,
721
+ ".sig"=>"application/pgp-signature".freeze,
722
+ ".sil"=>"audio/silk".freeze,
723
+ ".silo"=>"model/mesh".freeze,
724
+ ".sis"=>"application/vnd.symbian.install".freeze,
725
+ ".sisx"=>"application/vnd.symbian.install".freeze,
726
+ ".sit"=>"application/x-stuffit".freeze,
727
+ ".sitx"=>"application/x-stuffitx".freeze,
728
+ ".skd"=>"application/x-koan".freeze,
729
+ ".skm"=>"application/vnd.koan".freeze,
730
+ ".skp"=>"application/x-koan".freeze,
731
+ ".skt"=>"application/vnd.koan".freeze,
732
+ ".sldm"=>"application/vnd.ms-powerpoint.slide.macroenabled.12".freeze,
733
+ ".sldx"=>"application/vnd.openxmlformats-officedocument.presentationml.slide".freeze,
734
+ ".slt"=>"application/vnd.epson.salt".freeze,
735
+ ".sm"=>"application/vnd.stepmania.stepchart".freeze,
736
+ ".smf"=>"application/vnd.stardivision.math".freeze,
737
+ ".smi"=>"application/smil".freeze,
738
+ ".smil"=>"application/smil+xml".freeze,
739
+ ".smv"=>"video/x-smv".freeze,
740
+ ".smzip"=>"application/vnd.stepmania.package".freeze,
741
+ ".snd"=>"audio/basic".freeze,
742
+ ".snf"=>"application/x-font-snf".freeze,
743
+ ".so"=>"application/octet-stream".freeze,
744
+ ".spc"=>"application/x-pkcs7-certificates".freeze,
745
+ ".spf"=>"application/vnd.yamaha.smaf-phrase".freeze,
746
+ ".spl"=>"application/x-futuresplash".freeze,
747
+ ".spot"=>"text/vnd.in3d.spot".freeze,
748
+ ".spp"=>"application/scvp-vp-response".freeze,
749
+ ".spq"=>"application/scvp-vp-request".freeze,
750
+ ".spx"=>"audio/ogg".freeze,
751
+ ".sql"=>"application/x-sql".freeze,
752
+ ".src"=>"application/x-wais-source".freeze,
753
+ ".srt"=>"application/x-subrip".freeze,
754
+ ".sru"=>"application/sru+xml".freeze,
755
+ ".srx"=>"application/sparql-results+xml".freeze,
756
+ ".ssdl"=>"application/ssdl+xml".freeze,
757
+ ".sse"=>"application/vnd.kodak-descriptor".freeze,
758
+ ".ssf"=>"application/vnd.epson.ssf".freeze,
759
+ ".ssml"=>"application/ssml+xml".freeze,
760
+ ".st"=>"application/vnd.sailingtracker.track".freeze,
761
+ ".stc"=>"application/vnd.sun.xml.calc.template".freeze,
762
+ ".std"=>"application/vnd.sun.xml.draw.template".freeze,
763
+ ".stf"=>"application/vnd.wt.stf".freeze,
764
+ ".sti"=>"application/vnd.sun.xml.impress.template".freeze,
765
+ ".stk"=>"application/hyperstudio".freeze,
766
+ ".stl"=>"application/vnd.ms-pki.stl".freeze,
767
+ ".str"=>"application/vnd.pg.format".freeze,
768
+ ".stw"=>"application/vnd.sun.xml.writer.template".freeze,
769
+ ".sub"=>"text/vnd.dvb.subtitle".freeze,
770
+ ".sus"=>"application/vnd.sus-calendar".freeze,
771
+ ".susp"=>"application/vnd.sus-calendar".freeze,
772
+ ".sv4cpio"=>"application/x-sv4cpio".freeze,
773
+ ".sv4crc"=>"application/x-sv4crc".freeze,
774
+ ".svc"=>"application/vnd.dvb.service".freeze,
775
+ ".svd"=>"application/vnd.svd".freeze,
776
+ ".svg"=>"image/svg+xml".freeze,
777
+ ".svgz"=>"image/svg+xml".freeze,
778
+ ".swf"=>"application/x-shockwave-flash".freeze,
779
+ ".swi"=>"application/vnd.aristanetworks.swi".freeze,
780
+ ".sxc"=>"application/vnd.sun.xml.calc".freeze,
781
+ ".sxd"=>"application/vnd.sun.xml.draw".freeze,
782
+ ".sxg"=>"application/vnd.sun.xml.writer.global".freeze,
783
+ ".sxi"=>"application/vnd.sun.xml.impress".freeze,
784
+ ".sxm"=>"application/vnd.sun.xml.math".freeze,
785
+ ".sxw"=>"application/vnd.sun.xml.writer".freeze,
786
+ ".t"=>"text/troff".freeze,
787
+ ".t3"=>"application/x-t3vm-image".freeze,
788
+ ".taglet"=>"application/vnd.mynfc".freeze,
789
+ ".tao"=>"application/vnd.tao.intent-module-archive".freeze,
790
+ ".tar"=>"application/x-tar".freeze,
791
+ ".tcap"=>"application/vnd.3gpp2.tcap".freeze,
792
+ ".tcl"=>"application/x-tcl".freeze,
793
+ ".teacher"=>"application/vnd.smart.teacher".freeze,
794
+ ".tei"=>"application/tei+xml".freeze,
795
+ ".teicorpus"=>"application/tei+xml".freeze,
796
+ ".tex"=>"application/x-tex".freeze,
797
+ ".texi"=>"application/x-texinfo".freeze,
798
+ ".texinfo"=>"application/x-texinfo".freeze,
799
+ ".text"=>"text/plain".freeze,
800
+ ".tfi"=>"application/thraud+xml".freeze,
801
+ ".tfm"=>"application/x-tex-tfm".freeze,
802
+ ".tga"=>"image/x-tga".freeze,
803
+ ".thmx"=>"application/vnd.ms-officetheme".freeze,
804
+ ".tif"=>"image/tiff".freeze,
805
+ ".tiff"=>"image/tiff".freeze,
806
+ ".tmo"=>"application/vnd.tmobile-livetv".freeze,
807
+ ".torrent"=>"application/x-bittorrent".freeze,
808
+ ".tpl"=>"application/vnd.groove-tool-template".freeze,
809
+ ".tpt"=>"application/vnd.trid.tpt".freeze,
810
+ ".tr"=>"text/troff".freeze,
811
+ ".tra"=>"application/vnd.trueapp".freeze,
812
+ ".trm"=>"application/x-msterminal".freeze,
813
+ ".tsd"=>"application/timestamped-data".freeze,
814
+ ".tsv"=>"text/tab-separated-values".freeze,
815
+ ".ttc"=>"application/x-font-ttf".freeze,
816
+ ".ttf"=>"application/x-font-ttf".freeze,
817
+ ".ttl"=>"text/turtle".freeze,
818
+ ".twd"=>"application/vnd.simtech-mindmapper".freeze,
819
+ ".twds"=>"application/vnd.simtech-mindmapper".freeze,
820
+ ".txd"=>"application/vnd.genomatix.tuxedo".freeze,
821
+ ".txf"=>"application/vnd.mobius.txf".freeze,
822
+ ".txt"=>"text/plain".freeze,
823
+ ".u32"=>"application/x-authorware-bin".freeze,
824
+ ".udeb"=>"application/x-debian-package".freeze,
825
+ ".ufd"=>"application/vnd.ufdl".freeze,
826
+ ".ufdl"=>"application/vnd.ufdl".freeze,
827
+ ".ulx"=>"application/x-glulx".freeze,
828
+ ".umj"=>"application/vnd.umajin".freeze,
829
+ ".unityweb"=>"application/vnd.unity".freeze,
830
+ ".uoml"=>"application/vnd.uoml+xml".freeze,
831
+ ".uri"=>"text/uri-list".freeze,
832
+ ".uris"=>"text/uri-list".freeze,
833
+ ".urls"=>"text/uri-list".freeze,
834
+ ".ustar"=>"application/x-ustar".freeze,
835
+ ".utz"=>"application/vnd.uiq.theme".freeze,
836
+ ".uu"=>"text/x-uuencode".freeze,
837
+ ".uva"=>"audio/vnd.dece.audio".freeze,
838
+ ".uvd"=>"application/vnd.dece.data".freeze,
839
+ ".uvf"=>"application/vnd.dece.data".freeze,
840
+ ".uvg"=>"image/vnd.dece.graphic".freeze,
841
+ ".uvh"=>"video/vnd.dece.hd".freeze,
842
+ ".uvi"=>"image/vnd.dece.graphic".freeze,
843
+ ".uvm"=>"video/vnd.dece.mobile".freeze,
844
+ ".uvp"=>"video/vnd.dece.pd".freeze,
845
+ ".uvs"=>"video/vnd.dece.sd".freeze,
846
+ ".uvt"=>"application/vnd.dece.ttml+xml".freeze,
847
+ ".uvu"=>"video/vnd.uvvu.mp4".freeze,
848
+ ".uvv"=>"video/vnd.dece.video".freeze,
849
+ ".uvva"=>"audio/vnd.dece.audio".freeze,
850
+ ".uvvd"=>"application/vnd.dece.data".freeze,
851
+ ".uvvf"=>"application/vnd.dece.data".freeze,
852
+ ".uvvg"=>"image/vnd.dece.graphic".freeze,
853
+ ".uvvh"=>"video/vnd.dece.hd".freeze,
854
+ ".uvvi"=>"image/vnd.dece.graphic".freeze,
855
+ ".uvvm"=>"video/vnd.dece.mobile".freeze,
856
+ ".uvvp"=>"video/vnd.dece.pd".freeze,
857
+ ".uvvs"=>"video/vnd.dece.sd".freeze,
858
+ ".uvvt"=>"application/vnd.dece.ttml+xml".freeze,
859
+ ".uvvu"=>"video/vnd.uvvu.mp4".freeze,
860
+ ".uvvv"=>"video/vnd.dece.video".freeze,
861
+ ".uvvx"=>"application/vnd.dece.unspecified".freeze,
862
+ ".uvvz"=>"application/vnd.dece.zip".freeze,
863
+ ".uvx"=>"application/vnd.dece.unspecified".freeze,
864
+ ".uvz"=>"application/vnd.dece.zip".freeze,
865
+ ".vcard"=>"text/vcard".freeze,
866
+ ".vcd"=>"application/x-cdlink".freeze,
867
+ ".vcf"=>"text/x-vcard".freeze,
868
+ ".vcg"=>"application/vnd.groove-vcard".freeze,
869
+ ".vcs"=>"text/x-vcalendar".freeze,
870
+ ".vcx"=>"application/vnd.vcx".freeze,
871
+ ".vis"=>"application/vnd.visionary".freeze,
872
+ ".viv"=>"video/vnd.vivo".freeze,
873
+ ".vob"=>"video/x-ms-vob".freeze,
874
+ ".vor"=>"application/vnd.stardivision.writer".freeze,
875
+ ".vox"=>"application/x-authorware-bin".freeze,
876
+ ".vrml"=>"model/vrml".freeze,
877
+ ".vsd"=>"application/vnd.visio".freeze,
878
+ ".vsf"=>"application/vnd.vsf".freeze,
879
+ ".vss"=>"application/vnd.visio".freeze,
880
+ ".vst"=>"application/vnd.visio".freeze,
881
+ ".vsw"=>"application/vnd.visio".freeze,
882
+ ".vtu"=>"model/vnd.vtu".freeze,
883
+ ".vxml"=>"application/voicexml+xml".freeze,
884
+ ".w3d"=>"application/x-director".freeze,
885
+ ".wad"=>"application/x-doom".freeze,
886
+ ".wav"=>"audio/x-wav".freeze,
887
+ ".wax"=>"audio/x-ms-wax".freeze,
888
+ ".wbmp"=>"image/vnd.wap.wbmp".freeze,
889
+ ".wbmxl"=>"application/vnd.wap.wbxml".freeze,
890
+ ".wbs"=>"application/vnd.criticaltools.wbs+xml".freeze,
891
+ ".wbxml"=>"application/vnd.wap.wbxml".freeze,
892
+ ".wcm"=>"application/vnd.ms-works".freeze,
893
+ ".wdb"=>"application/vnd.ms-works".freeze,
894
+ ".wdp"=>"image/vnd.ms-photo".freeze,
895
+ ".weba"=>"audio/webm".freeze,
896
+ ".webm"=>"video/webm".freeze,
897
+ ".webp"=>"image/webp".freeze,
898
+ ".wg"=>"application/vnd.pmi.widget".freeze,
899
+ ".wgt"=>"application/widget".freeze,
900
+ ".wks"=>"application/vnd.ms-works".freeze,
901
+ ".wm"=>"video/x-ms-wm".freeze,
902
+ ".wma"=>"audio/x-ms-wma".freeze,
903
+ ".wmd"=>"application/x-ms-wmd".freeze,
904
+ ".wmf"=>"application/x-msmetafile".freeze,
905
+ ".wml"=>"text/vnd.wap.wml".freeze,
906
+ ".wmlc"=>"application/vnd.wap.wmlc".freeze,
907
+ ".wmls"=>"text/vnd.wap.wmlscript".freeze,
908
+ ".wmlsc"=>"application/vnd.wap.wmlscriptc".freeze,
909
+ ".wmv"=>"video/x-ms-wmv".freeze,
910
+ ".wmx"=>"video/x-ms-wmx".freeze,
911
+ ".wmz"=>"application/x-ms-wmz".freeze,
912
+ ".woff"=>"application/font-woff".freeze,
913
+ ".wpd"=>"application/vnd.wordperfect".freeze,
914
+ ".wpl"=>"application/vnd.ms-wpl".freeze,
915
+ ".wps"=>"application/vnd.ms-works".freeze,
916
+ ".wqd"=>"application/vnd.wqd".freeze,
917
+ ".wri"=>"application/x-mswrite".freeze,
918
+ ".wrl"=>"model/vrml".freeze,
919
+ ".wsdl"=>"application/wsdl+xml".freeze,
920
+ ".wspolicy"=>"application/wspolicy+xml".freeze,
921
+ ".wtb"=>"application/vnd.webturbo".freeze,
922
+ ".wvx"=>"video/x-ms-wvx".freeze,
923
+ ".x32"=>"application/x-authorware-bin".freeze,
924
+ ".x3d"=>"model/x3d+xml".freeze,
925
+ ".x3db"=>"model/x3d+binary".freeze,
926
+ ".x3dbz"=>"model/x3d+binary".freeze,
927
+ ".x3dv"=>"model/x3d+vrml".freeze,
928
+ ".x3dvz"=>"model/x3d+vrml".freeze,
929
+ ".x3dz"=>"model/x3d+xml".freeze,
930
+ ".xaml"=>"application/xaml+xml".freeze,
931
+ ".xap"=>"application/x-silverlight-app".freeze,
932
+ ".xar"=>"application/vnd.xara".freeze,
933
+ ".xbap"=>"application/x-ms-xbap".freeze,
934
+ ".xbd"=>"application/vnd.fujixerox.docuworks.binder".freeze,
935
+ ".xbm"=>"image/x-xbitmap".freeze,
936
+ ".xdf"=>"application/xcap-diff+xml".freeze,
937
+ ".xdm"=>"application/vnd.syncml.dm+xml".freeze,
938
+ ".xdp"=>"application/vnd.adobe.xdp+xml".freeze,
939
+ ".xdssc"=>"application/dssc+xml".freeze,
940
+ ".xdw"=>"application/vnd.fujixerox.docuworks".freeze,
941
+ ".xenc"=>"application/xenc+xml".freeze,
942
+ ".xer"=>"application/patch-ops-error+xml".freeze,
943
+ ".xfdf"=>"application/vnd.adobe.xfdf".freeze,
944
+ ".xfdl"=>"application/vnd.xfdl".freeze,
945
+ ".xht"=>"application/xhtml+xml".freeze,
946
+ ".xhtml"=>"application/xhtml+xml".freeze,
947
+ ".xhvml"=>"application/xv+xml".freeze,
948
+ ".xif"=>"image/vnd.xiff".freeze,
949
+ ".xla"=>"application/vnd.ms-excel".freeze,
950
+ ".xlam"=>"application/vnd.ms-excel.addin.macroenabled.12".freeze,
951
+ ".xlc"=>"application/vnd.ms-excel".freeze,
952
+ ".xlf"=>"application/x-xliff+xml".freeze,
953
+ ".xlm"=>"application/vnd.ms-excel".freeze,
954
+ ".xls"=>"application/vnd.ms-excel".freeze,
955
+ ".xlsb"=>"application/vnd.ms-excel.sheet.binary.macroenabled.12".freeze,
956
+ ".xlsm"=>"application/vnd.ms-excel.sheet.macroenabled.12".freeze,
957
+ ".xlsx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".freeze,
958
+ ".xlt"=>"application/vnd.ms-excel".freeze,
959
+ ".xltm"=>"application/vnd.ms-excel.template.macroenabled.12".freeze,
960
+ ".xltx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.template".freeze,
961
+ ".xlw"=>"application/vnd.ms-excel".freeze,
962
+ ".xm"=>"audio/xm".freeze,
963
+ ".xml"=>"application/xml".freeze,
964
+ ".xo"=>"application/vnd.olpc-sugar".freeze,
965
+ ".xop"=>"application/xop+xml".freeze,
966
+ ".xpi"=>"application/x-xpinstall".freeze,
967
+ ".xpl"=>"application/xproc+xml".freeze,
968
+ ".xpm"=>"image/x-xpixmap".freeze,
969
+ ".xpr"=>"application/vnd.is-xpr".freeze,
970
+ ".xps"=>"application/vnd.ms-xpsdocument".freeze,
971
+ ".xpw"=>"application/vnd.intercon.formnet".freeze,
972
+ ".xpx"=>"application/vnd.intercon.formnet".freeze,
973
+ ".xsl"=>"application/xml".freeze,
974
+ ".xslt"=>"application/xslt+xml".freeze,
975
+ ".xsm"=>"application/vnd.syncml+xml".freeze,
976
+ ".xspf"=>"application/xspf+xml".freeze,
977
+ ".xul"=>"application/vnd.mozilla.xul+xml".freeze,
978
+ ".xvm"=>"application/xv+xml".freeze,
979
+ ".xvml"=>"application/xv+xml".freeze,
980
+ ".xwd"=>"image/x-xwindowdump".freeze,
981
+ ".xyz"=>"chemical/x-xyz".freeze,
982
+ ".xz"=>"application/x-xz".freeze,
983
+ ".yang"=>"application/yang".freeze,
984
+ ".yin"=>"application/yin+xml".freeze,
985
+ ".z1"=>"application/x-zmachine".freeze,
986
+ ".z2"=>"application/x-zmachine".freeze,
987
+ ".z3"=>"application/x-zmachine".freeze,
988
+ ".z4"=>"application/x-zmachine".freeze,
989
+ ".z5"=>"application/x-zmachine".freeze,
990
+ ".z6"=>"application/x-zmachine".freeze,
991
+ ".z7"=>"application/x-zmachine".freeze,
992
+ ".z8"=>"application/x-zmachine".freeze,
993
+ ".zaz"=>"application/vnd.zzazz.deck+xml".freeze,
994
+ ".zip"=>"application/zip".freeze,
995
+ ".zir"=>"application/vnd.zul".freeze,
996
+ ".zirz"=>"application/vnd.zul".freeze,
997
+ ".zmm"=>"application/vnd.handheld-entertainment+xml".freeze,
998
+ ############
999
+ ## copy with no "." at the begining.
1000
+ "123"=>"application/vnd.lotus-1-2-3".freeze,
1001
+ "3dml"=>"text/vnd.in3d.3dml".freeze,
1002
+ "3ds"=>"image/x-3ds".freeze,
1003
+ "3g2"=>"video/3gpp2".freeze,
1004
+ "3gp"=>"video/3gpp".freeze,
1005
+ "7z"=>"application/x-7z-compressed".freeze,
1006
+ "aab"=>"application/x-authorware-bin".freeze,
1007
+ "aac"=>"audio/x-aac".freeze,
1008
+ "aam"=>"application/x-authorware-map".freeze,
1009
+ "aas"=>"application/x-authorware-seg".freeze,
1010
+ "abw"=>"application/x-abiword".freeze,
1011
+ "ac"=>"application/pkix-attr-cert".freeze,
1012
+ "acc"=>"application/vnd.americandynamics.acc".freeze,
1013
+ "ace"=>"application/x-ace-compressed".freeze,
1014
+ "acu"=>"application/vnd.acucobol".freeze,
1015
+ "acutc"=>"application/vnd.acucorp".freeze,
1016
+ "adp"=>"audio/adpcm".freeze,
1017
+ "aep"=>"application/vnd.audiograph".freeze,
1018
+ "afm"=>"application/x-font-type1".freeze,
1019
+ "afp"=>"application/vnd.ibm.modcap".freeze,
1020
+ "ahead"=>"application/vnd.ahead.space".freeze,
1021
+ "ai"=>"application/postscript".freeze,
1022
+ "aif"=>"audio/x-aiff".freeze,
1023
+ "aifc"=>"audio/x-aiff".freeze,
1024
+ "aiff"=>"audio/x-aiff".freeze,
1025
+ "air"=>"application/vnd.adobe.air-application-installer-package+zip".freeze,
1026
+ "ait"=>"application/vnd.dvb.ait".freeze,
1027
+ "ami"=>"application/vnd.amiga.ami".freeze,
1028
+ "apk"=>"application/vnd.android.package-archive".freeze,
1029
+ "appcache"=>"text/cache-manifest".freeze,
1030
+ "application"=>"application/x-ms-application".freeze,
1031
+ "apr"=>"application/vnd.lotus-approach".freeze,
1032
+ "arc"=>"application/x-freearc".freeze,
1033
+ "asc"=>"application/pgp-signature".freeze,
1034
+ "asf"=>"video/x-ms-asf".freeze,
1035
+ "asm"=>"text/x-asm".freeze,
1036
+ "aso"=>"application/vnd.accpac.simply.aso".freeze,
1037
+ "asx"=>"video/x-ms-asf".freeze,
1038
+ "atc"=>"application/vnd.acucorp".freeze,
1039
+ "atom"=>"application/atom+xml".freeze,
1040
+ "atomcat"=>"application/atomcat+xml".freeze,
1041
+ "atomsvc"=>"application/atomsvc+xml".freeze,
1042
+ "atx"=>"application/vnd.antix.game-component".freeze,
1043
+ "au"=>"audio/basic".freeze,
1044
+ "avi"=>"video/x-msvideo".freeze,
1045
+ "aw"=>"application/applixware".freeze,
1046
+ "azf"=>"application/vnd.airzip.filesecure.azf".freeze,
1047
+ "azs"=>"application/vnd.airzip.filesecure.azs".freeze,
1048
+ "azw"=>"application/vnd.amazon.ebook".freeze,
1049
+ "bat"=>"application/x-msdownload".freeze,
1050
+ "bcpio"=>"application/x-bcpio".freeze,
1051
+ "bdf"=>"application/x-font-bdf".freeze,
1052
+ "bdm"=>"application/vnd.syncml.dm+wbxml".freeze,
1053
+ "bed"=>"application/vnd.realvnc.bed".freeze,
1054
+ "bh2"=>"application/vnd.fujitsu.oasysprs".freeze,
1055
+ "bin"=>"application/octet-stream".freeze,
1056
+ "blb"=>"application/x-blorb".freeze,
1057
+ "blorb"=>"application/x-blorb".freeze,
1058
+ "bmi"=>"application/vnd.bmi".freeze,
1059
+ "bmp"=>"image/bmp".freeze,
1060
+ "book"=>"application/vnd.framemaker".freeze,
1061
+ "box"=>"application/vnd.previewsystems.box".freeze,
1062
+ "boz"=>"application/x-bzip2".freeze,
1063
+ "bpk"=>"application/octet-stream".freeze,
1064
+ "btif"=>"image/prs.btif".freeze,
1065
+ "bz"=>"application/x-bzip".freeze,
1066
+ "bz2"=>"application/x-bzip2".freeze,
1067
+ "c"=>"text/x-c".freeze,
1068
+ "c11amc"=>"application/vnd.cluetrust.cartomobile-config".freeze,
1069
+ "c11amz"=>"application/vnd.cluetrust.cartomobile-config-pkg".freeze,
1070
+ "c4d"=>"application/vnd.clonk.c4group".freeze,
1071
+ "c4f"=>"application/vnd.clonk.c4group".freeze,
1072
+ "c4g"=>"application/vnd.clonk.c4group".freeze,
1073
+ "c4p"=>"application/vnd.clonk.c4group".freeze,
1074
+ "c4u"=>"application/vnd.clonk.c4group".freeze,
1075
+ "cab"=>"application/vnd.ms-cab-compressed".freeze,
1076
+ "caf"=>"audio/x-caf".freeze,
1077
+ "cap"=>"application/vnd.tcpdump.pcap".freeze,
1078
+ "car"=>"application/vnd.curl.car".freeze,
1079
+ "cat"=>"application/vnd.ms-pki.seccat".freeze,
1080
+ "cb7"=>"application/x-cbr".freeze,
1081
+ "cba"=>"application/x-cbr".freeze,
1082
+ "cbr"=>"application/x-cbr".freeze,
1083
+ "cbt"=>"application/x-cbr".freeze,
1084
+ "cbz"=>"application/x-cbr".freeze,
1085
+ "cc"=>"text/x-c".freeze,
1086
+ "cct"=>"application/x-director".freeze,
1087
+ "ccxml"=>"application/ccxml+xml".freeze,
1088
+ "cdbcmsg"=>"application/vnd.contact.cmsg".freeze,
1089
+ "cdf"=>"application/x-netcdf".freeze,
1090
+ "cdkey"=>"application/vnd.mediastation.cdkey".freeze,
1091
+ "cdmia"=>"application/cdmi-capability".freeze,
1092
+ "cdmic"=>"application/cdmi-container".freeze,
1093
+ "cdmid"=>"application/cdmi-domain".freeze,
1094
+ "cdmio"=>"application/cdmi-object".freeze,
1095
+ "cdmiq"=>"application/cdmi-queue".freeze,
1096
+ "cdx"=>"chemical/x-cdx".freeze,
1097
+ "cdxml"=>"application/vnd.chemdraw+xml".freeze,
1098
+ "cdy"=>"application/vnd.cinderella".freeze,
1099
+ "cer"=>"application/pkix-cert".freeze,
1100
+ "cfs"=>"application/x-cfs-compressed".freeze,
1101
+ "cgm"=>"image/cgm".freeze,
1102
+ "chat"=>"application/x-chat".freeze,
1103
+ "chm"=>"application/vnd.ms-htmlhelp".freeze,
1104
+ "chrt"=>"application/vnd.kde.kchart".freeze,
1105
+ "cif"=>"chemical/x-cif".freeze,
1106
+ "cii"=>"application/vnd.anser-web-certificate-issue-initiation".freeze,
1107
+ "cil"=>"application/vnd.ms-artgalry".freeze,
1108
+ "cla"=>"application/vnd.claymore".freeze,
1109
+ "class"=>"application/java-vm".freeze,
1110
+ "clkk"=>"application/vnd.crick.clicker.keyboard".freeze,
1111
+ "clkp"=>"application/vnd.crick.clicker.palette".freeze,
1112
+ "clkt"=>"application/vnd.crick.clicker.template".freeze,
1113
+ "clkw"=>"application/vnd.crick.clicker.wordbank".freeze,
1114
+ "clkx"=>"application/vnd.crick.clicker".freeze,
1115
+ "clp"=>"application/x-msclip".freeze,
1116
+ "cmc"=>"application/vnd.cosmocaller".freeze,
1117
+ "cmdf"=>"chemical/x-cmdf".freeze,
1118
+ "cml"=>"chemical/x-cml".freeze,
1119
+ "cmp"=>"application/vnd.yellowriver-custom-menu".freeze,
1120
+ "cmx"=>"image/x-cmx".freeze,
1121
+ "cod"=>"application/vnd.rim.cod".freeze,
1122
+ "com"=>"application/x-msdownload".freeze,
1123
+ "conf"=>"text/plain".freeze,
1124
+ "cpio"=>"application/x-cpio".freeze,
1125
+ "cpp"=>"text/x-c".freeze,
1126
+ "cpt"=>"application/mac-compactpro".freeze,
1127
+ "crd"=>"application/x-mscardfile".freeze,
1128
+ "crl"=>"application/pkix-crl".freeze,
1129
+ "crt"=>"application/x-x509-ca-cert".freeze,
1130
+ "cryptonote"=>"application/vnd.rig.cryptonote".freeze,
1131
+ "csh"=>"application/x-csh".freeze,
1132
+ "csml"=>"chemical/x-csml".freeze,
1133
+ "csp"=>"application/vnd.commonspace".freeze,
1134
+ "css"=>"text/css".freeze,
1135
+ "cst"=>"application/x-director".freeze,
1136
+ "csv"=>"text/csv".freeze,
1137
+ "cu"=>"application/cu-seeme".freeze,
1138
+ "curl"=>"text/vnd.curl".freeze,
1139
+ "cww"=>"application/prs.cww".freeze,
1140
+ "cxt"=>"application/x-director".freeze,
1141
+ "cxx"=>"text/x-c".freeze,
1142
+ "dae"=>"model/vnd.collada+xml".freeze,
1143
+ "daf"=>"application/vnd.mobius.daf".freeze,
1144
+ "dart"=>"application/vnd.dart".freeze,
1145
+ "dataless"=>"application/vnd.fdsn.seed".freeze,
1146
+ "davmount"=>"application/davmount+xml".freeze,
1147
+ "dbk"=>"application/docbook+xml".freeze,
1148
+ "dcr"=>"application/x-director".freeze,
1149
+ "dcurl"=>"text/vnd.curl.dcurl".freeze,
1150
+ "dd2"=>"application/vnd.oma.dd2+xml".freeze,
1151
+ "ddd"=>"application/vnd.fujixerox.ddd".freeze,
1152
+ "deb"=>"application/x-debian-package".freeze,
1153
+ "def"=>"text/plain".freeze,
1154
+ "deploy"=>"application/octet-stream".freeze,
1155
+ "der"=>"application/x-x509-ca-cert".freeze,
1156
+ "dfac"=>"application/vnd.dreamfactory".freeze,
1157
+ "dgc"=>"application/x-dgc-compressed".freeze,
1158
+ "dic"=>"text/x-c".freeze,
1159
+ "dif"=>"video/x-dv".freeze,
1160
+ "dir"=>"application/x-director".freeze,
1161
+ "dis"=>"application/vnd.mobius.dis".freeze,
1162
+ "dist"=>"application/octet-stream".freeze,
1163
+ "distz"=>"application/octet-stream".freeze,
1164
+ "djv"=>"image/vnd.djvu".freeze,
1165
+ "djvu"=>"image/vnd.djvu".freeze,
1166
+ "dll"=>"application/x-msdownload".freeze,
1167
+ "dmg"=>"application/x-apple-diskimage".freeze,
1168
+ "dmp"=>"application/vnd.tcpdump.pcap".freeze,
1169
+ "dms"=>"application/octet-stream".freeze,
1170
+ "dna"=>"application/vnd.dna".freeze,
1171
+ "doc"=>"application/msword".freeze,
1172
+ "docm"=>"application/vnd.ms-word.document.macroenabled.12".freeze,
1173
+ "docx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.document".freeze,
1174
+ "dot"=>"application/msword".freeze,
1175
+ "dotm"=>"application/vnd.ms-word.template.macroenabled.12".freeze,
1176
+ "dotx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.template".freeze,
1177
+ "dp"=>"application/vnd.osgi.dp".freeze,
1178
+ "dpg"=>"application/vnd.dpgraph".freeze,
1179
+ "dra"=>"audio/vnd.dra".freeze,
1180
+ "dsc"=>"text/prs.lines.tag".freeze,
1181
+ "dssc"=>"application/dssc+der".freeze,
1182
+ "dtb"=>"application/x-dtbook+xml".freeze,
1183
+ "dtd"=>"application/xml-dtd".freeze,
1184
+ "dts"=>"audio/vnd.dts".freeze,
1185
+ "dtshd"=>"audio/vnd.dts.hd".freeze,
1186
+ "dump"=>"application/octet-stream".freeze,
1187
+ "dv"=>"video/x-dv".freeze,
1188
+ "dvb"=>"video/vnd.dvb.file".freeze,
1189
+ "dvi"=>"application/x-dvi".freeze,
1190
+ "dwf"=>"model/vnd.dwf".freeze,
1191
+ "dwg"=>"image/vnd.dwg".freeze,
1192
+ "dxf"=>"image/vnd.dxf".freeze,
1193
+ "dxp"=>"application/vnd.spotfire.dxp".freeze,
1194
+ "dxr"=>"application/x-director".freeze,
1195
+ "ecelp4800"=>"audio/vnd.nuera.ecelp4800".freeze,
1196
+ "ecelp7470"=>"audio/vnd.nuera.ecelp7470".freeze,
1197
+ "ecelp9600"=>"audio/vnd.nuera.ecelp9600".freeze,
1198
+ "ecma"=>"application/ecmascript".freeze,
1199
+ "edm"=>"application/vnd.novadigm.edm".freeze,
1200
+ "edx"=>"application/vnd.novadigm.edx".freeze,
1201
+ "efif"=>"application/vnd.picsel".freeze,
1202
+ "ei6"=>"application/vnd.pg.osasli".freeze,
1203
+ "elc"=>"application/octet-stream".freeze,
1204
+ "emf"=>"application/x-msmetafile".freeze,
1205
+ "eml"=>"message/rfc822".freeze,
1206
+ "emma"=>"application/emma+xml".freeze,
1207
+ "emz"=>"application/x-msmetafile".freeze,
1208
+ "eol"=>"audio/vnd.digital-winds".freeze,
1209
+ "eot"=>"application/vnd.ms-fontobject".freeze,
1210
+ "eps"=>"application/postscript".freeze,
1211
+ "epub"=>"application/epub+zip".freeze,
1212
+ "es3"=>"application/vnd.eszigno3+xml".freeze,
1213
+ "esa"=>"application/vnd.osgi.subsystem".freeze,
1214
+ "esf"=>"application/vnd.epson.esf".freeze,
1215
+ "et3"=>"application/vnd.eszigno3+xml".freeze,
1216
+ "etx"=>"text/x-setext".freeze,
1217
+ "eva"=>"application/x-eva".freeze,
1218
+ "evy"=>"application/x-envoy".freeze,
1219
+ "exe"=>"application/x-msdownload".freeze,
1220
+ "exi"=>"application/exi".freeze,
1221
+ "ext"=>"application/vnd.novadigm.ext".freeze,
1222
+ "ez"=>"application/andrew-inset".freeze,
1223
+ "ez2"=>"application/vnd.ezpix-album".freeze,
1224
+ "ez3"=>"application/vnd.ezpix-package".freeze,
1225
+ "f"=>"text/x-fortran".freeze,
1226
+ "f4v"=>"video/x-f4v".freeze,
1227
+ "f77"=>"text/x-fortran".freeze,
1228
+ "f90"=>"text/x-fortran".freeze,
1229
+ "fbs"=>"image/vnd.fastbidsheet".freeze,
1230
+ "fcdt"=>"application/vnd.adobe.formscentral.fcdt".freeze,
1231
+ "fcs"=>"application/vnd.isac.fcs".freeze,
1232
+ "fdf"=>"application/vnd.fdf".freeze,
1233
+ "fe_launch"=>"application/vnd.denovo.fcselayout-link".freeze,
1234
+ "fg5"=>"application/vnd.fujitsu.oasysgp".freeze,
1235
+ "fgd"=>"application/x-director".freeze,
1236
+ "fh"=>"image/x-freehand".freeze,
1237
+ "fh4"=>"image/x-freehand".freeze,
1238
+ "fh5"=>"image/x-freehand".freeze,
1239
+ "fh7"=>"image/x-freehand".freeze,
1240
+ "fhc"=>"image/x-freehand".freeze,
1241
+ "fig"=>"application/x-xfig".freeze,
1242
+ "flac"=>"audio/x-flac".freeze,
1243
+ "fli"=>"video/x-fli".freeze,
1244
+ "flo"=>"application/vnd.micrografx.flo".freeze,
1245
+ "flv"=>"video/x-flv".freeze,
1246
+ "flw"=>"application/vnd.kde.kivio".freeze,
1247
+ "flx"=>"text/vnd.fmi.flexstor".freeze,
1248
+ "fly"=>"text/vnd.fly".freeze,
1249
+ "fm"=>"application/vnd.framemaker".freeze,
1250
+ "fnc"=>"application/vnd.frogans.fnc".freeze,
1251
+ "for"=>"text/x-fortran".freeze,
1252
+ "fpx"=>"image/vnd.fpx".freeze,
1253
+ "frame"=>"application/vnd.framemaker".freeze,
1254
+ "fsc"=>"application/vnd.fsc.weblaunch".freeze,
1255
+ "fst"=>"image/vnd.fst".freeze,
1256
+ "ftc"=>"application/vnd.fluxtime.clip".freeze,
1257
+ "fti"=>"application/vnd.anser-web-funds-transfer-initiation".freeze,
1258
+ "fvt"=>"video/vnd.fvt".freeze,
1259
+ "fxp"=>"application/vnd.adobe.fxp".freeze,
1260
+ "fxpl"=>"application/vnd.adobe.fxp".freeze,
1261
+ "fzs"=>"application/vnd.fuzzysheet".freeze,
1262
+ "g2w"=>"application/vnd.geoplan".freeze,
1263
+ "g3"=>"image/g3fax".freeze,
1264
+ "g3w"=>"application/vnd.geospace".freeze,
1265
+ "gac"=>"application/vnd.groove-account".freeze,
1266
+ "gam"=>"application/x-tads".freeze,
1267
+ "gbr"=>"application/rpki-ghostbusters".freeze,
1268
+ "gca"=>"application/x-gca-compressed".freeze,
1269
+ "gdl"=>"model/vnd.gdl".freeze,
1270
+ "geo"=>"application/vnd.dynageo".freeze,
1271
+ "gex"=>"application/vnd.geometry-explorer".freeze,
1272
+ "ggb"=>"application/vnd.geogebra.file".freeze,
1273
+ "ggt"=>"application/vnd.geogebra.tool".freeze,
1274
+ "ghf"=>"application/vnd.groove-help".freeze,
1275
+ "gif"=>"image/gif".freeze,
1276
+ "gim"=>"application/vnd.groove-identity-message".freeze,
1277
+ "gml"=>"application/gml+xml".freeze,
1278
+ "gmx"=>"application/vnd.gmx".freeze,
1279
+ "gnumeric"=>"application/x-gnumeric".freeze,
1280
+ "gph"=>"application/vnd.flographit".freeze,
1281
+ "gpx"=>"application/gpx+xml".freeze,
1282
+ "gqf"=>"application/vnd.grafeq".freeze,
1283
+ "gqs"=>"application/vnd.grafeq".freeze,
1284
+ "gram"=>"application/srgs".freeze,
1285
+ "gramps"=>"application/x-gramps-xml".freeze,
1286
+ "gre"=>"application/vnd.geometry-explorer".freeze,
1287
+ "grv"=>"application/vnd.groove-injector".freeze,
1288
+ "grxml"=>"application/srgs+xml".freeze,
1289
+ "gsf"=>"application/x-font-ghostscript".freeze,
1290
+ "gtar"=>"application/x-gtar".freeze,
1291
+ "gtm"=>"application/vnd.groove-tool-message".freeze,
1292
+ "gtw"=>"model/vnd.gtw".freeze,
1293
+ "gv"=>"text/vnd.graphviz".freeze,
1294
+ "gxf"=>"application/gxf".freeze,
1295
+ "gxt"=>"application/vnd.geonext".freeze,
1296
+ "h"=>"text/x-c".freeze,
1297
+ "h261"=>"video/h261".freeze,
1298
+ "h263"=>"video/h263".freeze,
1299
+ "h264"=>"video/h264".freeze,
1300
+ "hal"=>"application/vnd.hal+xml".freeze,
1301
+ "hbci"=>"application/vnd.hbci".freeze,
1302
+ "hdf"=>"application/x-hdf".freeze,
1303
+ "hh"=>"text/x-c".freeze,
1304
+ "hlp"=>"application/winhlp".freeze,
1305
+ "hpgl"=>"application/vnd.hp-hpgl".freeze,
1306
+ "hpid"=>"application/vnd.hp-hpid".freeze,
1307
+ "hps"=>"application/vnd.hp-hps".freeze,
1308
+ "hqx"=>"application/mac-binhex40".freeze,
1309
+ "htke"=>"application/vnd.kenameaapp".freeze,
1310
+ "htm"=>"text/html".freeze,
1311
+ "html"=>"text/html".freeze,
1312
+ "hvd"=>"application/vnd.yamaha.hv-dic".freeze,
1313
+ "hvp"=>"application/vnd.yamaha.hv-voice".freeze,
1314
+ "hvs"=>"application/vnd.yamaha.hv-script".freeze,
1315
+ "i2g"=>"application/vnd.intergeo".freeze,
1316
+ "icc"=>"application/vnd.iccprofile".freeze,
1317
+ "ice"=>"x-conference/x-cooltalk".freeze,
1318
+ "icm"=>"application/vnd.iccprofile".freeze,
1319
+ "ico"=>"image/x-icon".freeze,
1320
+ "ics"=>"text/calendar".freeze,
1321
+ "ief"=>"image/ief".freeze,
1322
+ "ifb"=>"text/calendar".freeze,
1323
+ "ifm"=>"application/vnd.shana.informed.formdata".freeze,
1324
+ "iges"=>"model/iges".freeze,
1325
+ "igl"=>"application/vnd.igloader".freeze,
1326
+ "igm"=>"application/vnd.insors.igm".freeze,
1327
+ "igs"=>"model/iges".freeze,
1328
+ "igx"=>"application/vnd.micrografx.igx".freeze,
1329
+ "iif"=>"application/vnd.shana.informed.interchange".freeze,
1330
+ "imp"=>"application/vnd.accpac.simply.imp".freeze,
1331
+ "ims"=>"application/vnd.ms-ims".freeze,
1332
+ "in"=>"text/plain".freeze,
1333
+ "ink"=>"application/inkml+xml".freeze,
1334
+ "inkml"=>"application/inkml+xml".freeze,
1335
+ "install"=>"application/x-install-instructions".freeze,
1336
+ "iota"=>"application/vnd.astraea-software.iota".freeze,
1337
+ "ipfix"=>"application/ipfix".freeze,
1338
+ "ipk"=>"application/vnd.shana.informed.package".freeze,
1339
+ "irm"=>"application/vnd.ibm.rights-management".freeze,
1340
+ "irp"=>"application/vnd.irepository.package+xml".freeze,
1341
+ "iso"=>"application/x-iso9660-image".freeze,
1342
+ "itp"=>"application/vnd.shana.informed.formtemplate".freeze,
1343
+ "ivp"=>"application/vnd.immervision-ivp".freeze,
1344
+ "ivu"=>"application/vnd.immervision-ivu".freeze,
1345
+ "jad"=>"text/vnd.sun.j2me.app-descriptor".freeze,
1346
+ "jam"=>"application/vnd.jam".freeze,
1347
+ "jar"=>"application/java-archive".freeze,
1348
+ "java"=>"text/x-java-source".freeze,
1349
+ "jisp"=>"application/vnd.jisp".freeze,
1350
+ "jlt"=>"application/vnd.hp-jlyt".freeze,
1351
+ "jnlp"=>"application/x-java-jnlp-file".freeze,
1352
+ "joda"=>"application/vnd.joost.joda-archive".freeze,
1353
+ "jp2"=>"image/jp2".freeze,
1354
+ "jpe"=>"image/jpeg".freeze,
1355
+ "jpeg"=>"image/jpeg".freeze,
1356
+ "jpg"=>"image/jpeg".freeze,
1357
+ "jpgm"=>"video/jpm".freeze,
1358
+ "jpgv"=>"video/jpeg".freeze,
1359
+ "jpm"=>"video/jpm".freeze,
1360
+ "js"=>"application/javascript".freeze,
1361
+ "json"=>"application/json".freeze,
1362
+ "jsonml"=>"application/jsonml+json".freeze,
1363
+ "kar"=>"audio/midi".freeze,
1364
+ "karbon"=>"application/vnd.kde.karbon".freeze,
1365
+ "kfo"=>"application/vnd.kde.kformula".freeze,
1366
+ "kia"=>"application/vnd.kidspiration".freeze,
1367
+ "kml"=>"application/vnd.google-earth.kml+xml".freeze,
1368
+ "kmz"=>"application/vnd.google-earth.kmz".freeze,
1369
+ "kne"=>"application/vnd.kinar".freeze,
1370
+ "knp"=>"application/vnd.kinar".freeze,
1371
+ "kon"=>"application/vnd.kde.kontour".freeze,
1372
+ "kpr"=>"application/vnd.kde.kpresenter".freeze,
1373
+ "kpt"=>"application/vnd.kde.kpresenter".freeze,
1374
+ "kpxx"=>"application/vnd.ds-keypoint".freeze,
1375
+ "ksp"=>"application/vnd.kde.kspread".freeze,
1376
+ "ktr"=>"application/vnd.kahootz".freeze,
1377
+ "ktx"=>"image/ktx".freeze,
1378
+ "ktz"=>"application/vnd.kahootz".freeze,
1379
+ "kwd"=>"application/vnd.kde.kword".freeze,
1380
+ "kwt"=>"application/vnd.kde.kword".freeze,
1381
+ "lasxml"=>"application/vnd.las.las+xml".freeze,
1382
+ "latex"=>"application/x-latex".freeze,
1383
+ "lbd"=>"application/vnd.llamagraphics.life-balance.desktop".freeze,
1384
+ "lbe"=>"application/vnd.llamagraphics.life-balance.exchange+xml".freeze,
1385
+ "les"=>"application/vnd.hhe.lesson-player".freeze,
1386
+ "lha"=>"application/octet-stream".freeze,
1387
+ "link66"=>"application/vnd.route66.link66+xml".freeze,
1388
+ "list"=>"text/plain".freeze,
1389
+ "list3820"=>"application/vnd.ibm.modcap".freeze,
1390
+ "listafp"=>"application/vnd.ibm.modcap".freeze,
1391
+ "lnk"=>"application/x-ms-shortcut".freeze,
1392
+ "log"=>"text/plain".freeze,
1393
+ "lostxml"=>"application/lost+xml".freeze,
1394
+ "lrf"=>"application/octet-stream".freeze,
1395
+ "lrm"=>"application/vnd.ms-lrm".freeze,
1396
+ "ltf"=>"application/vnd.frogans.ltf".freeze,
1397
+ "lvp"=>"audio/vnd.lucent.voice".freeze,
1398
+ "lwp"=>"application/vnd.lotus-wordpro".freeze,
1399
+ "lzh"=>"application/octet-stream".freeze,
1400
+ "m13"=>"application/x-msmediaview".freeze,
1401
+ "m14"=>"application/x-msmediaview".freeze,
1402
+ "m1v"=>"video/mpeg".freeze,
1403
+ "m21"=>"application/mp21".freeze,
1404
+ "m2a"=>"audio/mpeg".freeze,
1405
+ "m2v"=>"video/mpeg".freeze,
1406
+ "m3a"=>"audio/mpeg".freeze,
1407
+ "m3u"=>"audio/x-mpegurl".freeze,
1408
+ "m3u8"=>"application/vnd.apple.mpegurl".freeze,
1409
+ "m4a"=>"audio/mp4a-latm".freeze,
1410
+ "m4b"=>"audio/mp4a-latm".freeze,
1411
+ "m4p"=>"audio/mp4a-latm".freeze,
1412
+ "m4u"=>"video/vnd.mpegurl".freeze,
1413
+ "m4v"=>"video/x-m4v".freeze,
1414
+ "ma"=>"application/mathematica".freeze,
1415
+ "mac"=>"image/x-macpaint".freeze,
1416
+ "mads"=>"application/mads+xml".freeze,
1417
+ "mag"=>"application/vnd.ecowin.chart".freeze,
1418
+ "maker"=>"application/vnd.framemaker".freeze,
1419
+ "man"=>"application/x-troff-man".freeze,
1420
+ "mar"=>"application/octet-stream".freeze,
1421
+ "mathml"=>"application/mathml+xml".freeze,
1422
+ "mb"=>"application/mathematica".freeze,
1423
+ "mbk"=>"application/vnd.mobius.mbk".freeze,
1424
+ "mbox"=>"application/mbox".freeze,
1425
+ "mc1"=>"application/vnd.medcalcdata".freeze,
1426
+ "mcd"=>"application/vnd.mcd".freeze,
1427
+ "mcurl"=>"text/vnd.curl.mcurl".freeze,
1428
+ "mdb"=>"application/x-msaccess".freeze,
1429
+ "mdi"=>"image/vnd.ms-modi".freeze,
1430
+ "me"=>"text/troff".freeze,
1431
+ "mesh"=>"model/mesh".freeze,
1432
+ "meta4"=>"application/metalink4+xml".freeze,
1433
+ "metalink"=>"application/metalink+xml".freeze,
1434
+ "mets"=>"application/mets+xml".freeze,
1435
+ "mfm"=>"application/vnd.mfmp".freeze,
1436
+ "mft"=>"application/rpki-manifest".freeze,
1437
+ "mgp"=>"application/vnd.osgeo.mapguide.package".freeze,
1438
+ "mgz"=>"application/vnd.proteus.magazine".freeze,
1439
+ "mid"=>"audio/midi".freeze,
1440
+ "midi"=>"audio/midi".freeze,
1441
+ "mie"=>"application/x-mie".freeze,
1442
+ "mif"=>"application/vnd.mif".freeze,
1443
+ "mime"=>"message/rfc822".freeze,
1444
+ "mj2"=>"video/mj2".freeze,
1445
+ "mjp2"=>"video/mj2".freeze,
1446
+ "mk3d"=>"video/x-matroska".freeze,
1447
+ "mka"=>"audio/x-matroska".freeze,
1448
+ "mks"=>"video/x-matroska".freeze,
1449
+ "mkv"=>"video/x-matroska".freeze,
1450
+ "mlp"=>"application/vnd.dolby.mlp".freeze,
1451
+ "mmd"=>"application/vnd.chipnuts.karaoke-mmd".freeze,
1452
+ "mmf"=>"application/vnd.smaf".freeze,
1453
+ "mmr"=>"image/vnd.fujixerox.edmics-mmr".freeze,
1454
+ "mng"=>"video/x-mng".freeze,
1455
+ "mny"=>"application/x-msmoney".freeze,
1456
+ "mobi"=>"application/x-mobipocket-ebook".freeze,
1457
+ "mods"=>"application/mods+xml".freeze,
1458
+ "mov"=>"video/quicktime".freeze,
1459
+ "movie"=>"video/x-sgi-movie".freeze,
1460
+ "mp2"=>"audio/mpeg".freeze,
1461
+ "mp21"=>"application/mp21".freeze,
1462
+ "mp2a"=>"audio/mpeg".freeze,
1463
+ "mp3"=>"audio/mpeg".freeze,
1464
+ "mp4"=>"video/mp4".freeze,
1465
+ "mp4a"=>"audio/mp4".freeze,
1466
+ "mp4s"=>"application/mp4".freeze,
1467
+ "mp4v"=>"video/mp4".freeze,
1468
+ "mpc"=>"application/vnd.mophun.certificate".freeze,
1469
+ "mpe"=>"video/mpeg".freeze,
1470
+ "mpeg"=>"video/mpeg".freeze,
1471
+ "mpg"=>"video/mpeg".freeze,
1472
+ "mpg4"=>"video/mp4".freeze,
1473
+ "mpga"=>"audio/mpeg".freeze,
1474
+ "mpkg"=>"application/vnd.apple.installer+xml".freeze,
1475
+ "mpm"=>"application/vnd.blueice.multipass".freeze,
1476
+ "mpn"=>"application/vnd.mophun.application".freeze,
1477
+ "mpp"=>"application/vnd.ms-project".freeze,
1478
+ "mpt"=>"application/vnd.ms-project".freeze,
1479
+ "mpy"=>"application/vnd.ibm.minipay".freeze,
1480
+ "mqy"=>"application/vnd.mobius.mqy".freeze,
1481
+ "mrc"=>"application/marc".freeze,
1482
+ "mrcx"=>"application/marcxml+xml".freeze,
1483
+ "ms"=>"application/x-troff-ms".freeze,
1484
+ "mscml"=>"application/mediaservercontrol+xml".freeze,
1485
+ "mseed"=>"application/vnd.fdsn.mseed".freeze,
1486
+ "mseq"=>"application/vnd.mseq".freeze,
1487
+ "msf"=>"application/vnd.epson.msf".freeze,
1488
+ "msh"=>"model/mesh".freeze,
1489
+ "msi"=>"application/x-msdownload".freeze,
1490
+ "msl"=>"application/vnd.mobius.msl".freeze,
1491
+ "msty"=>"application/vnd.muvee.style".freeze,
1492
+ "mts"=>"model/vnd.mts".freeze,
1493
+ "mus"=>"application/vnd.musician".freeze,
1494
+ "musicxml"=>"application/vnd.recordare.musicxml+xml".freeze,
1495
+ "mvb"=>"application/x-msmediaview".freeze,
1496
+ "mwf"=>"application/vnd.mfer".freeze,
1497
+ "mxf"=>"application/mxf".freeze,
1498
+ "mxl"=>"application/vnd.recordare.musicxml".freeze,
1499
+ "mxml"=>"application/xv+xml".freeze,
1500
+ "mxs"=>"application/vnd.triscape.mxs".freeze,
1501
+ "mxu"=>"video/vnd.mpegurl".freeze,
1502
+ "n-gage"=>"application/vnd.nokia.n-gage.symbian.install".freeze,
1503
+ "n3"=>"text/n3".freeze,
1504
+ "nb"=>"application/mathematica".freeze,
1505
+ "nbp"=>"application/vnd.wolfram.player".freeze,
1506
+ "nc"=>"application/x-netcdf".freeze,
1507
+ "ncx"=>"application/x-dtbncx+xml".freeze,
1508
+ "nfo"=>"text/x-nfo".freeze,
1509
+ "ngdat"=>"application/vnd.nokia.n-gage.data".freeze,
1510
+ "nitf"=>"application/vnd.nitf".freeze,
1511
+ "nlu"=>"application/vnd.neurolanguage.nlu".freeze,
1512
+ "nml"=>"application/vnd.enliven".freeze,
1513
+ "nnd"=>"application/vnd.noblenet-directory".freeze,
1514
+ "nns"=>"application/vnd.noblenet-sealer".freeze,
1515
+ "nnw"=>"application/vnd.noblenet-web".freeze,
1516
+ "npx"=>"image/vnd.net-fpx".freeze,
1517
+ "nsc"=>"application/x-conference".freeze,
1518
+ "nsf"=>"application/vnd.lotus-notes".freeze,
1519
+ "ntf"=>"application/vnd.nitf".freeze,
1520
+ "nzb"=>"application/x-nzb".freeze,
1521
+ "oa2"=>"application/vnd.fujitsu.oasys2".freeze,
1522
+ "oa3"=>"application/vnd.fujitsu.oasys3".freeze,
1523
+ "oas"=>"application/vnd.fujitsu.oasys".freeze,
1524
+ "obd"=>"application/x-msbinder".freeze,
1525
+ "obj"=>"application/x-tgif".freeze,
1526
+ "oda"=>"application/oda".freeze,
1527
+ "odb"=>"application/vnd.oasis.opendocument.database".freeze,
1528
+ "odc"=>"application/vnd.oasis.opendocument.chart".freeze,
1529
+ "odf"=>"application/vnd.oasis.opendocument.formula".freeze,
1530
+ "odft"=>"application/vnd.oasis.opendocument.formula-template".freeze,
1531
+ "odg"=>"application/vnd.oasis.opendocument.graphics".freeze,
1532
+ "odi"=>"application/vnd.oasis.opendocument.image".freeze,
1533
+ "odm"=>"application/vnd.oasis.opendocument.text-master".freeze,
1534
+ "odp"=>"application/vnd.oasis.opendocument.presentation".freeze,
1535
+ "ods"=>"application/vnd.oasis.opendocument.spreadsheet".freeze,
1536
+ "odt"=>"application/vnd.oasis.opendocument.text".freeze,
1537
+ "oga"=>"audio/ogg".freeze,
1538
+ "ogg"=>"audio/ogg".freeze,
1539
+ "ogv"=>"video/ogg".freeze,
1540
+ "ogx"=>"application/ogg".freeze,
1541
+ "omdoc"=>"application/omdoc+xml".freeze,
1542
+ "onepkg"=>"application/onenote".freeze,
1543
+ "onetmp"=>"application/onenote".freeze,
1544
+ "onetoc"=>"application/onenote".freeze,
1545
+ "onetoc2"=>"application/onenote".freeze,
1546
+ "opf"=>"application/oebps-package+xml".freeze,
1547
+ "opml"=>"text/x-opml".freeze,
1548
+ "oprc"=>"application/vnd.palm".freeze,
1549
+ "org"=>"application/vnd.lotus-organizer".freeze,
1550
+ "osf"=>"application/vnd.yamaha.openscoreformat".freeze,
1551
+ "osfpvg"=>"application/vnd.yamaha.openscoreformat.osfpvg+xml".freeze,
1552
+ "otc"=>"application/vnd.oasis.opendocument.chart-template".freeze,
1553
+ "otf"=>"application/x-font-otf".freeze,
1554
+ "otg"=>"application/vnd.oasis.opendocument.graphics-template".freeze,
1555
+ "oth"=>"application/vnd.oasis.opendocument.text-web".freeze,
1556
+ "oti"=>"application/vnd.oasis.opendocument.image-template".freeze,
1557
+ "otp"=>"application/vnd.oasis.opendocument.presentation-template".freeze,
1558
+ "ots"=>"application/vnd.oasis.opendocument.spreadsheet-template".freeze,
1559
+ "ott"=>"application/vnd.oasis.opendocument.text-template".freeze,
1560
+ "oxps"=>"application/oxps".freeze,
1561
+ "oxt"=>"application/vnd.openofficeorg.extension".freeze,
1562
+ "p"=>"text/x-pascal".freeze,
1563
+ "p10"=>"application/pkcs10".freeze,
1564
+ "p12"=>"application/x-pkcs12".freeze,
1565
+ "p7b"=>"application/x-pkcs7-certificates".freeze,
1566
+ "p7c"=>"application/pkcs7-mime".freeze,
1567
+ "p7m"=>"application/pkcs7-mime".freeze,
1568
+ "p7r"=>"application/x-pkcs7-certreqresp".freeze,
1569
+ "p7s"=>"application/pkcs7-signature".freeze,
1570
+ "p8"=>"application/pkcs8".freeze,
1571
+ "pas"=>"text/x-pascal".freeze,
1572
+ "paw"=>"application/vnd.pawaafile".freeze,
1573
+ "pbd"=>"application/vnd.powerbuilder6".freeze,
1574
+ "pbm"=>"image/x-portable-bitmap".freeze,
1575
+ "pcap"=>"application/vnd.tcpdump.pcap".freeze,
1576
+ "pcf"=>"application/x-font-pcf".freeze,
1577
+ "pcl"=>"application/vnd.hp-pcl".freeze,
1578
+ "pclxl"=>"application/vnd.hp-pclxl".freeze,
1579
+ "pct"=>"image/x-pict".freeze,
1580
+ "pcurl"=>"application/vnd.curl.pcurl".freeze,
1581
+ "pcx"=>"image/x-pcx".freeze,
1582
+ "pdb"=>"application/vnd.palm".freeze,
1583
+ "pdf"=>"application/pdf".freeze,
1584
+ "pfa"=>"application/x-font-type1".freeze,
1585
+ "pfb"=>"application/x-font-type1".freeze,
1586
+ "pfm"=>"application/x-font-type1".freeze,
1587
+ "pfr"=>"application/font-tdpfr".freeze,
1588
+ "pfx"=>"application/x-pkcs12".freeze,
1589
+ "pgm"=>"image/x-portable-graymap".freeze,
1590
+ "pgn"=>"application/x-chess-pgn".freeze,
1591
+ "pgp"=>"application/pgp-encrypted".freeze,
1592
+ "pic"=>"image/pict".freeze,
1593
+ "pict"=>"image/pict".freeze,
1594
+ "pkg"=>"application/octet-stream".freeze,
1595
+ "pki"=>"application/pkixcmp".freeze,
1596
+ "pkipath"=>"application/pkix-pkipath".freeze,
1597
+ "plb"=>"application/vnd.3gpp.pic-bw-large".freeze,
1598
+ "plc"=>"application/vnd.mobius.plc".freeze,
1599
+ "plf"=>"application/vnd.pocketlearn".freeze,
1600
+ "pls"=>"application/pls+xml".freeze,
1601
+ "pml"=>"application/vnd.ctc-posml".freeze,
1602
+ "png"=>"image/png".freeze,
1603
+ "pnm"=>"image/x-portable-anymap".freeze,
1604
+ "pnt"=>"image/x-macpaint".freeze,
1605
+ "pntg"=>"image/x-macpaint".freeze,
1606
+ "portpkg"=>"application/vnd.macports.portpkg".freeze,
1607
+ "pot"=>"application/vnd.ms-powerpoint".freeze,
1608
+ "potm"=>"application/vnd.ms-powerpoint.template.macroenabled.12".freeze,
1609
+ "potx"=>"application/vnd.openxmlformats-officedocument.presentationml.template".freeze,
1610
+ "ppam"=>"application/vnd.ms-powerpoint.addin.macroenabled.12".freeze,
1611
+ "ppd"=>"application/vnd.cups-ppd".freeze,
1612
+ "ppm"=>"image/x-portable-pixmap".freeze,
1613
+ "pps"=>"application/vnd.ms-powerpoint".freeze,
1614
+ "ppsm"=>"application/vnd.ms-powerpoint.slideshow.macroenabled.12".freeze,
1615
+ "ppsx"=>"application/vnd.openxmlformats-officedocument.presentationml.slideshow".freeze,
1616
+ "ppt"=>"application/vnd.ms-powerpoint".freeze,
1617
+ "pptm"=>"application/vnd.ms-powerpoint.presentation.macroenabled.12".freeze,
1618
+ "pptx"=>"application/vnd.openxmlformats-officedocument.presentationml.presentation".freeze,
1619
+ "pqa"=>"application/vnd.palm".freeze,
1620
+ "prc"=>"application/x-mobipocket-ebook".freeze,
1621
+ "pre"=>"application/vnd.lotus-freelance".freeze,
1622
+ "prf"=>"application/pics-rules".freeze,
1623
+ "ps"=>"application/postscript".freeze,
1624
+ "psb"=>"application/vnd.3gpp.pic-bw-small".freeze,
1625
+ "psd"=>"image/vnd.adobe.photoshop".freeze,
1626
+ "psf"=>"application/x-font-linux-psf".freeze,
1627
+ "pskcxml"=>"application/pskc+xml".freeze,
1628
+ "ptid"=>"application/vnd.pvi.ptid1".freeze,
1629
+ "pub"=>"application/x-mspublisher".freeze,
1630
+ "pvb"=>"application/vnd.3gpp.pic-bw-var".freeze,
1631
+ "pwn"=>"application/vnd.3m.post-it-notes".freeze,
1632
+ "pya"=>"audio/vnd.ms-playready.media.pya".freeze,
1633
+ "pyv"=>"video/vnd.ms-playready.media.pyv".freeze,
1634
+ "qam"=>"application/vnd.epson.quickanime".freeze,
1635
+ "qbo"=>"application/vnd.intu.qbo".freeze,
1636
+ "qfx"=>"application/vnd.intu.qfx".freeze,
1637
+ "qps"=>"application/vnd.publishare-delta-tree".freeze,
1638
+ "qt"=>"video/quicktime".freeze,
1639
+ "qti"=>"image/x-quicktime".freeze,
1640
+ "qtif"=>"image/x-quicktime".freeze,
1641
+ "qwd"=>"application/vnd.quark.quarkxpress".freeze,
1642
+ "qwt"=>"application/vnd.quark.quarkxpress".freeze,
1643
+ "qxb"=>"application/vnd.quark.quarkxpress".freeze,
1644
+ "qxd"=>"application/vnd.quark.quarkxpress".freeze,
1645
+ "qxl"=>"application/vnd.quark.quarkxpress".freeze,
1646
+ "qxt"=>"application/vnd.quark.quarkxpress".freeze,
1647
+ "ra"=>"audio/x-pn-realaudio".freeze,
1648
+ "ram"=>"audio/x-pn-realaudio".freeze,
1649
+ "rar"=>"application/x-rar-compressed".freeze,
1650
+ "ras"=>"image/x-cmu-raster".freeze,
1651
+ "rcprofile"=>"application/vnd.ipunplugged.rcprofile".freeze,
1652
+ "rdf"=>"application/rdf+xml".freeze,
1653
+ "rdz"=>"application/vnd.data-vision.rdz".freeze,
1654
+ "rep"=>"application/vnd.businessobjects".freeze,
1655
+ "res"=>"application/x-dtbresource+xml".freeze,
1656
+ "rgb"=>"image/x-rgb".freeze,
1657
+ "rif"=>"application/reginfo+xml".freeze,
1658
+ "rip"=>"audio/vnd.rip".freeze,
1659
+ "ris"=>"application/x-research-info-systems".freeze,
1660
+ "rl"=>"application/resource-lists+xml".freeze,
1661
+ "rlc"=>"image/vnd.fujixerox.edmics-rlc".freeze,
1662
+ "rld"=>"application/resource-lists-diff+xml".freeze,
1663
+ "rm"=>"application/vnd.rn-realmedia".freeze,
1664
+ "rmi"=>"audio/midi".freeze,
1665
+ "rmp"=>"audio/x-pn-realaudio-plugin".freeze,
1666
+ "rms"=>"application/vnd.jcp.javame.midlet-rms".freeze,
1667
+ "rmvb"=>"application/vnd.rn-realmedia-vbr".freeze,
1668
+ "rnc"=>"application/relax-ng-compact-syntax".freeze,
1669
+ "roa"=>"application/rpki-roa".freeze,
1670
+ "roff"=>"application/x-troff".freeze,
1671
+ "rp9"=>"application/vnd.cloanto.rp9".freeze,
1672
+ "rpss"=>"application/vnd.nokia.radio-presets".freeze,
1673
+ "rpst"=>"application/vnd.nokia.radio-preset".freeze,
1674
+ "rq"=>"application/sparql-query".freeze,
1675
+ "rs"=>"application/rls-services+xml".freeze,
1676
+ "rsd"=>"application/rsd+xml".freeze,
1677
+ "rss"=>"application/rss+xml".freeze,
1678
+ "rtf"=>"application/rtf".freeze,
1679
+ "rtx"=>"text/richtext".freeze,
1680
+ "s"=>"text/x-asm".freeze,
1681
+ "s3m"=>"audio/s3m".freeze,
1682
+ "saf"=>"application/vnd.yamaha.smaf-audio".freeze,
1683
+ "sbml"=>"application/sbml+xml".freeze,
1684
+ "sc"=>"application/vnd.ibm.secure-container".freeze,
1685
+ "scd"=>"application/x-msschedule".freeze,
1686
+ "scm"=>"application/vnd.lotus-screencam".freeze,
1687
+ "scq"=>"application/scvp-cv-request".freeze,
1688
+ "scs"=>"application/scvp-cv-response".freeze,
1689
+ "scurl"=>"text/vnd.curl.scurl".freeze,
1690
+ "sda"=>"application/vnd.stardivision.draw".freeze,
1691
+ "sdc"=>"application/vnd.stardivision.calc".freeze,
1692
+ "sdd"=>"application/vnd.stardivision.impress".freeze,
1693
+ "sdkd"=>"application/vnd.solent.sdkm+xml".freeze,
1694
+ "sdkm"=>"application/vnd.solent.sdkm+xml".freeze,
1695
+ "sdp"=>"application/sdp".freeze,
1696
+ "sdw"=>"application/vnd.stardivision.writer".freeze,
1697
+ "see"=>"application/vnd.seemail".freeze,
1698
+ "seed"=>"application/vnd.fdsn.seed".freeze,
1699
+ "sema"=>"application/vnd.sema".freeze,
1700
+ "semd"=>"application/vnd.semd".freeze,
1701
+ "semf"=>"application/vnd.semf".freeze,
1702
+ "ser"=>"application/java-serialized-object".freeze,
1703
+ "setpay"=>"application/set-payment-initiation".freeze,
1704
+ "setreg"=>"application/set-registration-initiation".freeze,
1705
+ "sfd-hdstx"=>"application/vnd.hydrostatix.sof-data".freeze,
1706
+ "sfs"=>"application/vnd.spotfire.sfs".freeze,
1707
+ "sfv"=>"text/x-sfv".freeze,
1708
+ "sgi"=>"image/sgi".freeze,
1709
+ "sgl"=>"application/vnd.stardivision.writer-global".freeze,
1710
+ "sgm"=>"text/sgml".freeze,
1711
+ "sgml"=>"text/sgml".freeze,
1712
+ "sh"=>"application/x-sh".freeze,
1713
+ "shar"=>"application/x-shar".freeze,
1714
+ "shf"=>"application/shf+xml".freeze,
1715
+ "sid"=>"image/x-mrsid-image".freeze,
1716
+ "sig"=>"application/pgp-signature".freeze,
1717
+ "sil"=>"audio/silk".freeze,
1718
+ "silo"=>"model/mesh".freeze,
1719
+ "sis"=>"application/vnd.symbian.install".freeze,
1720
+ "sisx"=>"application/vnd.symbian.install".freeze,
1721
+ "sit"=>"application/x-stuffit".freeze,
1722
+ "sitx"=>"application/x-stuffitx".freeze,
1723
+ "skd"=>"application/x-koan".freeze,
1724
+ "skm"=>"application/vnd.koan".freeze,
1725
+ "skp"=>"application/x-koan".freeze,
1726
+ "skt"=>"application/vnd.koan".freeze,
1727
+ "sldm"=>"application/vnd.ms-powerpoint.slide.macroenabled.12".freeze,
1728
+ "sldx"=>"application/vnd.openxmlformats-officedocument.presentationml.slide".freeze,
1729
+ "slt"=>"application/vnd.epson.salt".freeze,
1730
+ "sm"=>"application/vnd.stepmania.stepchart".freeze,
1731
+ "smf"=>"application/vnd.stardivision.math".freeze,
1732
+ "smi"=>"application/smil".freeze,
1733
+ "smil"=>"application/smil+xml".freeze,
1734
+ "smv"=>"video/x-smv".freeze,
1735
+ "smzip"=>"application/vnd.stepmania.package".freeze,
1736
+ "snd"=>"audio/basic".freeze,
1737
+ "snf"=>"application/x-font-snf".freeze,
1738
+ "so"=>"application/octet-stream".freeze,
1739
+ "spc"=>"application/x-pkcs7-certificates".freeze,
1740
+ "spf"=>"application/vnd.yamaha.smaf-phrase".freeze,
1741
+ "spl"=>"application/x-futuresplash".freeze,
1742
+ "spot"=>"text/vnd.in3d.spot".freeze,
1743
+ "spp"=>"application/scvp-vp-response".freeze,
1744
+ "spq"=>"application/scvp-vp-request".freeze,
1745
+ "spx"=>"audio/ogg".freeze,
1746
+ "sql"=>"application/x-sql".freeze,
1747
+ "src"=>"application/x-wais-source".freeze,
1748
+ "srt"=>"application/x-subrip".freeze,
1749
+ "sru"=>"application/sru+xml".freeze,
1750
+ "srx"=>"application/sparql-results+xml".freeze,
1751
+ "ssdl"=>"application/ssdl+xml".freeze,
1752
+ "sse"=>"application/vnd.kodak-descriptor".freeze,
1753
+ "ssf"=>"application/vnd.epson.ssf".freeze,
1754
+ "ssml"=>"application/ssml+xml".freeze,
1755
+ "st"=>"application/vnd.sailingtracker.track".freeze,
1756
+ "stc"=>"application/vnd.sun.xml.calc.template".freeze,
1757
+ "std"=>"application/vnd.sun.xml.draw.template".freeze,
1758
+ "stf"=>"application/vnd.wt.stf".freeze,
1759
+ "sti"=>"application/vnd.sun.xml.impress.template".freeze,
1760
+ "stk"=>"application/hyperstudio".freeze,
1761
+ "stl"=>"application/vnd.ms-pki.stl".freeze,
1762
+ "str"=>"application/vnd.pg.format".freeze,
1763
+ "stw"=>"application/vnd.sun.xml.writer.template".freeze,
1764
+ "sub"=>"text/vnd.dvb.subtitle".freeze,
1765
+ "sus"=>"application/vnd.sus-calendar".freeze,
1766
+ "susp"=>"application/vnd.sus-calendar".freeze,
1767
+ "sv4cpio"=>"application/x-sv4cpio".freeze,
1768
+ "sv4crc"=>"application/x-sv4crc".freeze,
1769
+ "svc"=>"application/vnd.dvb.service".freeze,
1770
+ "svd"=>"application/vnd.svd".freeze,
1771
+ "svg"=>"image/svg+xml".freeze,
1772
+ "svgz"=>"image/svg+xml".freeze,
1773
+ "swf"=>"application/x-shockwave-flash".freeze,
1774
+ "swi"=>"application/vnd.aristanetworks.swi".freeze,
1775
+ "sxc"=>"application/vnd.sun.xml.calc".freeze,
1776
+ "sxd"=>"application/vnd.sun.xml.draw".freeze,
1777
+ "sxg"=>"application/vnd.sun.xml.writer.global".freeze,
1778
+ "sxi"=>"application/vnd.sun.xml.impress".freeze,
1779
+ "sxm"=>"application/vnd.sun.xml.math".freeze,
1780
+ "sxw"=>"application/vnd.sun.xml.writer".freeze,
1781
+ "t"=>"text/troff".freeze,
1782
+ "t3"=>"application/x-t3vm-image".freeze,
1783
+ "taglet"=>"application/vnd.mynfc".freeze,
1784
+ "tao"=>"application/vnd.tao.intent-module-archive".freeze,
1785
+ "tar"=>"application/x-tar".freeze,
1786
+ "tcap"=>"application/vnd.3gpp2.tcap".freeze,
1787
+ "tcl"=>"application/x-tcl".freeze,
1788
+ "teacher"=>"application/vnd.smart.teacher".freeze,
1789
+ "tei"=>"application/tei+xml".freeze,
1790
+ "teicorpus"=>"application/tei+xml".freeze,
1791
+ "tex"=>"application/x-tex".freeze,
1792
+ "texi"=>"application/x-texinfo".freeze,
1793
+ "texinfo"=>"application/x-texinfo".freeze,
1794
+ "text"=>"text/plain".freeze,
1795
+ "tfi"=>"application/thraud+xml".freeze,
1796
+ "tfm"=>"application/x-tex-tfm".freeze,
1797
+ "tga"=>"image/x-tga".freeze,
1798
+ "thmx"=>"application/vnd.ms-officetheme".freeze,
1799
+ "tif"=>"image/tiff".freeze,
1800
+ "tiff"=>"image/tiff".freeze,
1801
+ "tmo"=>"application/vnd.tmobile-livetv".freeze,
1802
+ "torrent"=>"application/x-bittorrent".freeze,
1803
+ "tpl"=>"application/vnd.groove-tool-template".freeze,
1804
+ "tpt"=>"application/vnd.trid.tpt".freeze,
1805
+ "tr"=>"text/troff".freeze,
1806
+ "tra"=>"application/vnd.trueapp".freeze,
1807
+ "trm"=>"application/x-msterminal".freeze,
1808
+ "tsd"=>"application/timestamped-data".freeze,
1809
+ "tsv"=>"text/tab-separated-values".freeze,
1810
+ "ttc"=>"application/x-font-ttf".freeze,
1811
+ "ttf"=>"application/x-font-ttf".freeze,
1812
+ "ttl"=>"text/turtle".freeze,
1813
+ "twd"=>"application/vnd.simtech-mindmapper".freeze,
1814
+ "twds"=>"application/vnd.simtech-mindmapper".freeze,
1815
+ "txd"=>"application/vnd.genomatix.tuxedo".freeze,
1816
+ "txf"=>"application/vnd.mobius.txf".freeze,
1817
+ "txt"=>"text/plain".freeze,
1818
+ "u32"=>"application/x-authorware-bin".freeze,
1819
+ "udeb"=>"application/x-debian-package".freeze,
1820
+ "ufd"=>"application/vnd.ufdl".freeze,
1821
+ "ufdl"=>"application/vnd.ufdl".freeze,
1822
+ "ulx"=>"application/x-glulx".freeze,
1823
+ "umj"=>"application/vnd.umajin".freeze,
1824
+ "unityweb"=>"application/vnd.unity".freeze,
1825
+ "uoml"=>"application/vnd.uoml+xml".freeze,
1826
+ "uri"=>"text/uri-list".freeze,
1827
+ "uris"=>"text/uri-list".freeze,
1828
+ "urls"=>"text/uri-list".freeze,
1829
+ "ustar"=>"application/x-ustar".freeze,
1830
+ "utz"=>"application/vnd.uiq.theme".freeze,
1831
+ "uu"=>"text/x-uuencode".freeze,
1832
+ "uva"=>"audio/vnd.dece.audio".freeze,
1833
+ "uvd"=>"application/vnd.dece.data".freeze,
1834
+ "uvf"=>"application/vnd.dece.data".freeze,
1835
+ "uvg"=>"image/vnd.dece.graphic".freeze,
1836
+ "uvh"=>"video/vnd.dece.hd".freeze,
1837
+ "uvi"=>"image/vnd.dece.graphic".freeze,
1838
+ "uvm"=>"video/vnd.dece.mobile".freeze,
1839
+ "uvp"=>"video/vnd.dece.pd".freeze,
1840
+ "uvs"=>"video/vnd.dece.sd".freeze,
1841
+ "uvt"=>"application/vnd.dece.ttml+xml".freeze,
1842
+ "uvu"=>"video/vnd.uvvu.mp4".freeze,
1843
+ "uvv"=>"video/vnd.dece.video".freeze,
1844
+ "uvva"=>"audio/vnd.dece.audio".freeze,
1845
+ "uvvd"=>"application/vnd.dece.data".freeze,
1846
+ "uvvf"=>"application/vnd.dece.data".freeze,
1847
+ "uvvg"=>"image/vnd.dece.graphic".freeze,
1848
+ "uvvh"=>"video/vnd.dece.hd".freeze,
1849
+ "uvvi"=>"image/vnd.dece.graphic".freeze,
1850
+ "uvvm"=>"video/vnd.dece.mobile".freeze,
1851
+ "uvvp"=>"video/vnd.dece.pd".freeze,
1852
+ "uvvs"=>"video/vnd.dece.sd".freeze,
1853
+ "uvvt"=>"application/vnd.dece.ttml+xml".freeze,
1854
+ "uvvu"=>"video/vnd.uvvu.mp4".freeze,
1855
+ "uvvv"=>"video/vnd.dece.video".freeze,
1856
+ "uvvx"=>"application/vnd.dece.unspecified".freeze,
1857
+ "uvvz"=>"application/vnd.dece.zip".freeze,
1858
+ "uvx"=>"application/vnd.dece.unspecified".freeze,
1859
+ "uvz"=>"application/vnd.dece.zip".freeze,
1860
+ "vcard"=>"text/vcard".freeze,
1861
+ "vcd"=>"application/x-cdlink".freeze,
1862
+ "vcf"=>"text/x-vcard".freeze,
1863
+ "vcg"=>"application/vnd.groove-vcard".freeze,
1864
+ "vcs"=>"text/x-vcalendar".freeze,
1865
+ "vcx"=>"application/vnd.vcx".freeze,
1866
+ "vis"=>"application/vnd.visionary".freeze,
1867
+ "viv"=>"video/vnd.vivo".freeze,
1868
+ "vob"=>"video/x-ms-vob".freeze,
1869
+ "vor"=>"application/vnd.stardivision.writer".freeze,
1870
+ "vox"=>"application/x-authorware-bin".freeze,
1871
+ "vrml"=>"model/vrml".freeze,
1872
+ "vsd"=>"application/vnd.visio".freeze,
1873
+ "vsf"=>"application/vnd.vsf".freeze,
1874
+ "vss"=>"application/vnd.visio".freeze,
1875
+ "vst"=>"application/vnd.visio".freeze,
1876
+ "vsw"=>"application/vnd.visio".freeze,
1877
+ "vtu"=>"model/vnd.vtu".freeze,
1878
+ "vxml"=>"application/voicexml+xml".freeze,
1879
+ "w3d"=>"application/x-director".freeze,
1880
+ "wad"=>"application/x-doom".freeze,
1881
+ "wav"=>"audio/x-wav".freeze,
1882
+ "wax"=>"audio/x-ms-wax".freeze,
1883
+ "wbmp"=>"image/vnd.wap.wbmp".freeze,
1884
+ "wbmxl"=>"application/vnd.wap.wbxml".freeze,
1885
+ "wbs"=>"application/vnd.criticaltools.wbs+xml".freeze,
1886
+ "wbxml"=>"application/vnd.wap.wbxml".freeze,
1887
+ "wcm"=>"application/vnd.ms-works".freeze,
1888
+ "wdb"=>"application/vnd.ms-works".freeze,
1889
+ "wdp"=>"image/vnd.ms-photo".freeze,
1890
+ "weba"=>"audio/webm".freeze,
1891
+ "webm"=>"video/webm".freeze,
1892
+ "webp"=>"image/webp".freeze,
1893
+ "wg"=>"application/vnd.pmi.widget".freeze,
1894
+ "wgt"=>"application/widget".freeze,
1895
+ "wks"=>"application/vnd.ms-works".freeze,
1896
+ "wm"=>"video/x-ms-wm".freeze,
1897
+ "wma"=>"audio/x-ms-wma".freeze,
1898
+ "wmd"=>"application/x-ms-wmd".freeze,
1899
+ "wmf"=>"application/x-msmetafile".freeze,
1900
+ "wml"=>"text/vnd.wap.wml".freeze,
1901
+ "wmlc"=>"application/vnd.wap.wmlc".freeze,
1902
+ "wmls"=>"text/vnd.wap.wmlscript".freeze,
1903
+ "wmlsc"=>"application/vnd.wap.wmlscriptc".freeze,
1904
+ "wmv"=>"video/x-ms-wmv".freeze,
1905
+ "wmx"=>"video/x-ms-wmx".freeze,
1906
+ "wmz"=>"application/x-ms-wmz".freeze,
1907
+ "woff"=>"application/font-woff".freeze,
1908
+ "wpd"=>"application/vnd.wordperfect".freeze,
1909
+ "wpl"=>"application/vnd.ms-wpl".freeze,
1910
+ "wps"=>"application/vnd.ms-works".freeze,
1911
+ "wqd"=>"application/vnd.wqd".freeze,
1912
+ "wri"=>"application/x-mswrite".freeze,
1913
+ "wrl"=>"model/vrml".freeze,
1914
+ "wsdl"=>"application/wsdl+xml".freeze,
1915
+ "wspolicy"=>"application/wspolicy+xml".freeze,
1916
+ "wtb"=>"application/vnd.webturbo".freeze,
1917
+ "wvx"=>"video/x-ms-wvx".freeze,
1918
+ "x32"=>"application/x-authorware-bin".freeze,
1919
+ "x3d"=>"model/x3d+xml".freeze,
1920
+ "x3db"=>"model/x3d+binary".freeze,
1921
+ "x3dbz"=>"model/x3d+binary".freeze,
1922
+ "x3dv"=>"model/x3d+vrml".freeze,
1923
+ "x3dvz"=>"model/x3d+vrml".freeze,
1924
+ "x3dz"=>"model/x3d+xml".freeze,
1925
+ "xaml"=>"application/xaml+xml".freeze,
1926
+ "xap"=>"application/x-silverlight-app".freeze,
1927
+ "xar"=>"application/vnd.xara".freeze,
1928
+ "xbap"=>"application/x-ms-xbap".freeze,
1929
+ "xbd"=>"application/vnd.fujixerox.docuworks.binder".freeze,
1930
+ "xbm"=>"image/x-xbitmap".freeze,
1931
+ "xdf"=>"application/xcap-diff+xml".freeze,
1932
+ "xdm"=>"application/vnd.syncml.dm+xml".freeze,
1933
+ "xdp"=>"application/vnd.adobe.xdp+xml".freeze,
1934
+ "xdssc"=>"application/dssc+xml".freeze,
1935
+ "xdw"=>"application/vnd.fujixerox.docuworks".freeze,
1936
+ "xenc"=>"application/xenc+xml".freeze,
1937
+ "xer"=>"application/patch-ops-error+xml".freeze,
1938
+ "xfdf"=>"application/vnd.adobe.xfdf".freeze,
1939
+ "xfdl"=>"application/vnd.xfdl".freeze,
1940
+ "xht"=>"application/xhtml+xml".freeze,
1941
+ "xhtml"=>"application/xhtml+xml".freeze,
1942
+ "xhvml"=>"application/xv+xml".freeze,
1943
+ "xif"=>"image/vnd.xiff".freeze,
1944
+ "xla"=>"application/vnd.ms-excel".freeze,
1945
+ "xlam"=>"application/vnd.ms-excel.addin.macroenabled.12".freeze,
1946
+ "xlc"=>"application/vnd.ms-excel".freeze,
1947
+ "xlf"=>"application/x-xliff+xml".freeze,
1948
+ "xlm"=>"application/vnd.ms-excel".freeze,
1949
+ "xls"=>"application/vnd.ms-excel".freeze,
1950
+ "xlsb"=>"application/vnd.ms-excel.sheet.binary.macroenabled.12".freeze,
1951
+ "xlsm"=>"application/vnd.ms-excel.sheet.macroenabled.12".freeze,
1952
+ "xlsx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".freeze,
1953
+ "xlt"=>"application/vnd.ms-excel".freeze,
1954
+ "xltm"=>"application/vnd.ms-excel.template.macroenabled.12".freeze,
1955
+ "xltx"=>"application/vnd.openxmlformats-officedocument.spreadsheetml.template".freeze,
1956
+ "xlw"=>"application/vnd.ms-excel".freeze,
1957
+ "xm"=>"audio/xm".freeze,
1958
+ "xml"=>"application/xml".freeze,
1959
+ "xo"=>"application/vnd.olpc-sugar".freeze,
1960
+ "xop"=>"application/xop+xml".freeze,
1961
+ "xpi"=>"application/x-xpinstall".freeze,
1962
+ "xpl"=>"application/xproc+xml".freeze,
1963
+ "xpm"=>"image/x-xpixmap".freeze,
1964
+ "xpr"=>"application/vnd.is-xpr".freeze,
1965
+ "xps"=>"application/vnd.ms-xpsdocument".freeze,
1966
+ "xpw"=>"application/vnd.intercon.formnet".freeze,
1967
+ "xpx"=>"application/vnd.intercon.formnet".freeze,
1968
+ "xsl"=>"application/xml".freeze,
1969
+ "xslt"=>"application/xslt+xml".freeze,
1970
+ "xsm"=>"application/vnd.syncml+xml".freeze,
1971
+ "xspf"=>"application/xspf+xml".freeze,
1972
+ "xul"=>"application/vnd.mozilla.xul+xml".freeze,
1973
+ "xvm"=>"application/xv+xml".freeze,
1974
+ "xvml"=>"application/xv+xml".freeze,
1975
+ "xwd"=>"image/x-xwindowdump".freeze,
1976
+ "xyz"=>"chemical/x-xyz".freeze,
1977
+ "xz"=>"application/x-xz".freeze,
1978
+ "yang"=>"application/yang".freeze,
1979
+ "yin"=>"application/yin+xml".freeze,
1980
+ "z1"=>"application/x-zmachine".freeze,
1981
+ "z2"=>"application/x-zmachine".freeze,
1982
+ "z3"=>"application/x-zmachine".freeze,
1983
+ "z4"=>"application/x-zmachine".freeze,
1984
+ "z5"=>"application/x-zmachine".freeze,
1985
+ "z6"=>"application/x-zmachine".freeze,
1986
+ "z7"=>"application/x-zmachine".freeze,
1987
+ "z8"=>"application/x-zmachine".freeze,
1988
+ "zaz"=>"application/vnd.zzazz.deck+xml".freeze,
1989
+ "zip"=>"application/zip".freeze,
1990
+ "zir"=>"application/vnd.zul".freeze,
1991
+ "zirz"=>"application/vnd.zul".freeze,
1992
+ "zmm"=>"application/vnd.handheld-entertainment+xml".freeze
1993
+ }
998
1994
  end
999
1995
  end