mime-types-1.25/0000755000004100000410000000000012215067016013562 5ustar www-datawww-datamime-types-1.25/checksums.yaml.gz.sig0000444000004100000410000000040012215067016017623 0ustar www-datawww-dataļJ 3++Νj ?E0X׊)kUy6I*d%Ǿn;΃~[v*N]|؍ XrhwT true }]) end def test_class_index_3 assert(MIME::Types['text/vnd.fly', { :complete => true }].empty?) assert(!MIME::Types['text/plain', { :complete => true} ].empty?) end def _test_class_index_extensions raise NotImplementedError, 'Need to write test_class_index_extensions' end def test_class_add eruby = MIME::Type.new("application/x-eruby") do |t| t.extensions = "rhtml" t.encoding = "8bit" end MIME::Types.add(eruby) assert_equal(MIME::Types['application/x-eruby'], [eruby]) end def _test_class_add_type_variant raise NotImplementedError, 'Need to write test_class_add_type_variant' end def test_class_type_for assert_equal(MIME::Types.type_for('xml').sort, [ MIME::Types['text/xml'], MIME::Types['application/xml'] ].sort) assert_equal(MIME::Types.type_for('gif'), MIME::Types['image/gif']) MIME::Types['image/gif'][0].system = RUBY_PLATFORM assert_equal(MIME::Types.type_for('gif', true), MIME::Types['image/gif']) assert(MIME::Types.type_for('zzz').empty?) end def test_class_of assert_equal(MIME::Types.of('xml').sort, [ MIME::Types['text/xml'], MIME::Types['application/xml'] ].sort) assert_equal(MIME::Types.of('gif'), MIME::Types['image/gif']) MIME::Types['image/gif'][0].system = RUBY_PLATFORM assert_equal(MIME::Types.of('gif', true), MIME::Types['image/gif']) assert(MIME::Types.of('zzz').empty?) end def test_class_enumerable assert( MIME::Types.any? {|type| type.content_type == 'text/plain'} ) end def test_class_count assert(MIME::Types.count > 42, "A lot of types are expected to be known.") end def test_ebook_formats assert_equal( MIME::Types['application/x-mobipocket-ebook'], MIME::Types.type_for("book.mobi")) assert_equal( MIME::Types['application/epub+zip'], MIME::Types.type_for("book.epub")) assert_equal( MIME::Types['application/x-ibooks+zip'], MIME::Types.type_for("book.ibooks") ) end def test_apple_formats assert_equal( MIME::Types['application/x-apple-diskimage'], MIME::Types.type_for("disk.dmg") ) end def _test_add raise NotImplementedError, 'Need to write test_add' end def _test_add_type_variant raise NotImplementedError, 'Need to write test_add_type_variant' end def _test_data_version raise NotImplementedError, 'Need to write test_data_version' end def _test_index raise NotImplementedError, 'Need to write test_index' end def _test_index_extensions raise NotImplementedError, 'Need to write test_index_extensions' end def _test_of raise NotImplementedError, 'Need to write test_of' end def _test_type_for raise NotImplementedError, 'Need to write test_type_for' end end mime-types-1.25/test/test_mime_type.rb0000644000004100000410000002625212215067016020124 0ustar www-datawww-data# -*- ruby encoding: utf-8 -*- require 'mime/types' class TestMIMEType < Minitest::Test def yaml_mime_type_from_array MIME::Type.from_array('text/x-yaml', %w(yaml yml), '8bit', 'd9d172f608') end def setup @zip = MIME::Type.new('x-appl/x-zip') { |t| t.extensions = ['zip', 'zp'] } end def test_class_from_array yaml = yaml_mime_type_from_array assert_instance_of(MIME::Type, yaml) assert_equal('text/yaml', yaml.simplified) end def test_class_from_hash yaml = MIME::Type.from_hash('Content-Type' => 'text/x-yaml', 'Content-Transfer-Encoding' => '8bit', 'System' => 'd9d172f608', 'Extensions' => %w(yaml yml)) assert_instance_of(MIME::Type, yaml) assert_equal('text/yaml', yaml.simplified) end def test_class_from_mime_type zip2 = MIME::Type.from_mime_type(@zip) assert_instance_of(MIME::Type, @zip) assert_equal('appl/zip', @zip.simplified) refute_equal(@zip.object_id, zip2.object_id) end def test_class_simplified assert_equal(MIME::Type.simplified('text/plain'), 'text/plain') assert_equal(MIME::Type.simplified('image/jpeg'), 'image/jpeg') assert_equal(MIME::Type.simplified('application/x-msword'), 'application/msword') assert_equal(MIME::Type.simplified('text/vCard'), 'text/vcard') assert_equal(MIME::Type.simplified('application/pkcs7-mime'), 'application/pkcs7-mime') assert_equal(@zip.simplified, 'appl/zip') assert_equal(MIME::Type.simplified('x-xyz/abc'), 'xyz/abc') end def test_CMP # '<=>' assert(MIME::Type.new('text/plain') == MIME::Type.new('text/plain')) assert(MIME::Type.new('text/plain') != MIME::Type.new('image/jpeg')) assert(MIME::Type.new('text/plain') == 'text/plain') assert(MIME::Type.new('text/plain') != 'image/jpeg') assert(MIME::Type.new('text/plain') > MIME::Type.new('text/html')) assert(MIME::Type.new('text/plain') > 'text/html') assert(MIME::Type.new('text/html') < MIME::Type.new('text/plain')) assert(MIME::Type.new('text/html') < 'text/plain') assert('text/html' == MIME::Type.new('text/html')) assert('text/html' < MIME::Type.new('text/plain')) assert('text/plain' > MIME::Type.new('text/html')) end def test_ascii_eh assert(MIME::Type.new('text/plain').ascii?) refute(MIME::Type.new('image/jpeg').ascii?) refute(MIME::Type.new('application/x-msword').ascii?) assert(MIME::Type.new('text/vCard').ascii?) refute(MIME::Type.new('application/pkcs7-mime').ascii?) refute(@zip.ascii?) end def test_binary_eh refute(MIME::Type.new('text/plain').binary?) assert(MIME::Type.new('image/jpeg').binary?) assert(MIME::Type.new('application/x-msword').binary?) refute(MIME::Type.new('text/vCard').binary?) assert(MIME::Type.new('application/pkcs7-mime').binary?) assert(@zip.binary?) end def test_complete_eh yaml = yaml_mime_type_from_array assert(yaml.complete?) yaml.extensions = nil refute(yaml.complete?) end def test_content_type assert_equal(MIME::Type.new('text/plain').content_type, 'text/plain') assert_equal(MIME::Type.new('image/jpeg').content_type, 'image/jpeg') assert_equal(MIME::Type.new('application/x-msword').content_type, 'application/x-msword') assert_equal(MIME::Type.new('text/vCard').content_type, 'text/vCard') assert_equal(MIME::Type.new('application/pkcs7-mime').content_type, 'application/pkcs7-mime') assert_equal(@zip.content_type, 'x-appl/x-zip'); end def test_encoding assert_equal(MIME::Type.new('text/plain').encoding, 'quoted-printable') assert_equal(MIME::Type.new('image/jpeg').encoding, 'base64') assert_equal(MIME::Type.new('application/x-msword').encoding, 'base64') assert_equal(MIME::Type.new('text/vCard').encoding, 'quoted-printable') assert_equal(MIME::Type.new('application/pkcs7-mime').encoding, 'base64') yaml = yaml_mime_type_from_array assert_equal(yaml.encoding, '8bit') yaml.encoding = 'base64' assert_equal(yaml.encoding, 'base64') yaml.encoding = :default assert_equal(yaml.encoding, 'quoted-printable') assert_raises(ArgumentError) { yaml.encoding = 'binary' } assert_equal(@zip.encoding, 'base64') end def _test_default_encoding raise NotImplementedError, 'Need to write test_default_encoding' end def _test_docs raise NotImplementedError, 'Need to write test_docs' end def _test_docs_equals raise NotImplementedError, 'Need to write test_docs_equals' end def test_eql? assert(MIME::Type.new('text/plain').eql?(MIME::Type.new('text/plain'))) refute(MIME::Type.new('text/plain').eql?(MIME::Type.new('image/jpeg'))) refute(MIME::Type.new('text/plain').eql?('text/plain')) refute(MIME::Type.new('text/plain').eql?('image/jpeg')) end def _test_encoding raise NotImplementedError, 'Need to write test_encoding' end def _test_encoding_equals raise NotImplementedError, 'Need to write test_encoding_equals' end def test_extensions yaml = yaml_mime_type_from_array assert_equal(yaml.extensions, %w(yaml yml)) yaml.extensions = 'yaml' assert_equal(yaml.extensions, ['yaml']) assert_equal(@zip.extensions.size, 2) assert_equal(@zip.extensions, ['zip', 'zp']) end def _test_extensions_equals raise NotImplementedError, 'Need to write test_extensions_equals' end def test_like_eh assert(MIME::Type.new('text/plain').like?(MIME::Type.new('text/plain'))) assert(MIME::Type.new('text/plain').like?(MIME::Type.new('text/x-plain'))) refute(MIME::Type.new('text/plain').like?(MIME::Type.new('image/jpeg'))) assert(MIME::Type.new('text/plain').like?('text/plain')) assert(MIME::Type.new('text/plain').like?('text/x-plain')) refute(MIME::Type.new('text/plain').like?('image/jpeg')) end def test_media_type assert_equal(MIME::Type.new('text/plain').media_type, 'text') assert_equal(MIME::Type.new('image/jpeg').media_type, 'image') assert_equal(MIME::Type.new('application/x-msword').media_type, 'application') assert_equal(MIME::Type.new('text/vCard').media_type, 'text') assert_equal(MIME::Type.new('application/pkcs7-mime').media_type, 'application') assert_equal(MIME::Type.new('x-chemical/x-pdb').media_type, 'chemical') assert_equal(@zip.media_type, 'appl') end def _test_obsolete_eh raise NotImplementedError, 'Need to write test_obsolete_eh' end def _test_obsolete_equals raise NotImplementedError, 'Need to write test_obsolete_equals' end def test_platform_eh yaml = yaml_mime_type_from_array refute(yaml.platform?) yaml.system = nil refute(yaml.platform?) yaml.system = %r{#{RUBY_PLATFORM}} assert(yaml.platform?) end def test_raw_media_type assert_equal(MIME::Type.new('text/plain').raw_media_type, 'text') assert_equal(MIME::Type.new('image/jpeg').raw_media_type, 'image') assert_equal(MIME::Type.new('application/x-msword').raw_media_type, 'application') assert_equal(MIME::Type.new('text/vCard').raw_media_type, 'text') assert_equal(MIME::Type.new('application/pkcs7-mime').raw_media_type, 'application') assert_equal(MIME::Type.new('x-chemical/x-pdb').raw_media_type, 'x-chemical') assert_equal(@zip.raw_media_type, 'x-appl') end def test_raw_sub_type assert_equal(MIME::Type.new('text/plain').raw_sub_type, 'plain') assert_equal(MIME::Type.new('image/jpeg').raw_sub_type, 'jpeg') assert_equal(MIME::Type.new('application/x-msword').raw_sub_type, 'x-msword') assert_equal(MIME::Type.new('text/vCard').raw_sub_type, 'vCard') assert_equal(MIME::Type.new('application/pkcs7-mime').raw_sub_type, 'pkcs7-mime') assert_equal(@zip.raw_sub_type, 'x-zip') end def test_registered_eh assert(MIME::Type.new('text/plain').registered?) assert(MIME::Type.new('image/jpeg').registered?) refute(MIME::Type.new('application/x-msword').registered?) assert(MIME::Type.new('text/vCard').registered?) assert(MIME::Type.new('application/pkcs7-mime').registered?) refute(@zip.registered?) end def _test_registered_equals raise NotImplementedError, 'Need to write test_registered_equals' end def test_signature_eh refute(MIME::Type.new('text/plain').signature?) refute(MIME::Type.new('image/jpeg').signature?) refute(MIME::Type.new('application/x-msword').signature?) assert(MIME::Type.new('text/vCard').signature?) assert(MIME::Type.new('application/pkcs7-mime').signature?) end def test_simplified assert_equal(MIME::Type.new('text/plain').simplified, 'text/plain') assert_equal(MIME::Type.new('image/jpeg').simplified, 'image/jpeg') assert_equal(MIME::Type.new('application/x-msword').simplified, 'application/msword') assert_equal(MIME::Type.new('text/vCard').simplified, 'text/vcard') assert_equal(MIME::Type.new('application/pkcs7-mime').simplified, 'application/pkcs7-mime') assert_equal(MIME::Type.new('x-chemical/x-pdb').simplified, 'chemical/pdb') end def test_sub_type assert_equal(MIME::Type.new('text/plain').sub_type, 'plain') assert_equal(MIME::Type.new('image/jpeg').sub_type, 'jpeg') assert_equal(MIME::Type.new('application/x-msword').sub_type, 'msword') assert_equal(MIME::Type.new('text/vCard').sub_type, 'vcard') assert_equal(MIME::Type.new('application/pkcs7-mime').sub_type, 'pkcs7-mime') assert_equal(@zip.sub_type, 'zip') end def test_system_equals yaml = yaml_mime_type_from_array assert_equal(yaml.system, %r{d9d172f608}) yaml.system = /win32/ assert_equal(yaml.system, %r{win32}) yaml.system = nil assert_nil(yaml.system) end def test_system_eh yaml = yaml_mime_type_from_array assert(yaml.system?) yaml.system = nil refute(yaml.system?) end def test_to_a yaml = yaml_mime_type_from_array assert_equal(yaml.to_a, ['text/x-yaml', %w(yaml yml), '8bit', /d9d172f608/, nil, nil, nil, false]) end def test_to_hash yaml = yaml_mime_type_from_array assert_equal(yaml.to_hash, { 'Content-Type' => 'text/x-yaml', 'Content-Transfer-Encoding' => '8bit', 'Extensions' => %w(yaml yml), 'System' => /d9d172f608/, 'Registered' => false, 'URL' => nil, 'Obsolete' => nil, 'Docs' => nil }) end def test_to_s assert_equal("#{MIME::Type.new('text/plain')}", 'text/plain') end def test_class_constructors refute_nil(@zip) yaml = MIME::Type.new('text/x-yaml') do |y| y.extensions = %w(yaml yml) y.encoding = '8bit' y.system = 'd9d172f608' end assert_instance_of(MIME::Type, yaml) assert_raises(MIME::InvalidContentType) { MIME::Type.new('apps') } assert_raises(MIME::InvalidContentType) { MIME::Type.new(nil) } end def _test_to_str raise NotImplementedError, 'Need to write test_to_str' end def _test_url raise NotImplementedError, 'Need to write test_url' end def _test_url_equals raise NotImplementedError, 'Need to write test_url_equals' end def _test_urls raise NotImplementedError, 'Need to write test_urls' end def __test_use_instead raise NotImplementedError, 'Need to write test_use_instead' end end mime-types-1.25/test/test_mime_types_lazy.rb0000644000004100000410000000224512215067016021342 0ustar www-datawww-data# -*- ruby encoding: utf-8 -*- require 'mime/types' class TestMIMETypesLazy < Minitest::Test def setup ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'true' ENV['RUBY_MIME_TYPES_CACHE'] = File.expand_path('../cache.tst', __FILE__) MIME::Types.send(:write_mime_types_to_cache) end def teardown reset_mime_types if File.exist? ENV['RUBY_MIME_TYPES_CACHE'] FileUtils.rm ENV['RUBY_MIME_TYPES_CACHE'] ENV.delete('RUBY_MIME_TYPES_CACHE') end ENV.delete('RUBY_MIME_TYPES_LAZY_LOAD') end def reset_mime_types MIME::Types.instance_variable_set(:@__types__, nil) MIME::Types.send(:load_mime_types) end def test_lazy_load? assert_equal(true, MIME::Types.send(:lazy_load?)) ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = nil assert_equal(nil, MIME::Types.send(:lazy_load?)) ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'false' assert_equal(false, MIME::Types.send(:lazy_load?)) end def test_lazy_loading MIME::Types.instance_variable_set(:@__types__, nil) assert_nil(MIME::Types.instance_variable_get(:@__types__)) refute_nil(MIME::Types['text/html'].first) refute_nil(MIME::Types.instance_variable_get(:@__types__)) end end mime-types-1.25/README.rdoc0000644000004100000410000001064512215067016015376 0ustar www-datawww-data= MIME::Types for Ruby home :: http://mime-types.rubyforge.org/ code :: https://github.com/halostatue/mime-types/ bugs :: https://github.com/halostatue/mime-types/issues rdoc :: http://mime-types.rubyforge.org/ code climate :: {}[https://codeclimate.com/github/halostatue/mime-types] continuous integration :: {}[https://travis-ci.org/halostatue/mime-types] == Description This library allows for the identification of a file's likely MIME content type. This is release 1.25, adding experimental caching and lazy loading functionality. The caching and lazy loading features were initially implemented by Greg Brockman (gdb). As these features are experimental, they are disabled by default and must be enabled through the use of environment variables. The cache is invalidated on a per-version basis; the cache for version 1.25 will not be reused for version 1.26. To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+ to any value other than 'false'. When using lazy loading, the initial startup of MIME::Types is around 12–25× faster than normal startup (on my system, normal startup is about 90 ms; lazy startup is about 4 ms). This isn't generally useful, however, as the MIME::Types database has not been loaded. Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage comes from using the cache. To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a filename where MIME::Types will have read-write access. The first time a new version of MIME::Types is run using this file, it will be created, taking a little longer than normal. Subsequent loads using the same cache file will be approximately 3½× faster (25 ms) than normal loads. This can be combined with +RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded or multiprocess environment where all threads or processes will be using the same cache file. As the caching interface is still experimental, the only values cached are the default MIME::Types database, not any custom MIME::Types added by users. MIME types are used in MIME-compliant communications, as in e-mail or HTTP traffic, to indicate the type of content which is transmitted. MIME::Types provides the ability for detailed information about MIME entities (provided as a set of MIME::Type objects) to be determined and used programmatically. There are many types defined by RFCs and vendors, so the list is long but not complete; don't hesitate to ask to add additional information. This library follows the IANA collection of MIME types (see below for reference). MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. As of version 1.15, the data format for the MIME::Type list has changed and the synchronization will no longer happen. MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA registry}[http://www.iana.org/assignments/media-types/] ({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp] and added by the users of MIME::Types. == Synopsis MIME types are used in MIME entities, as in email or HTTP traffic. It is useful at times to have information available about MIME types (or, inversely, about files). A MIME::Type stores the known information about one MIME type. require 'mime/types' plaintext = MIME::Types['text/plain'] # returns [text/plain, text/plain] text = plaintext.first puts text.media_type # => 'text' puts text.sub_type # => 'plain' puts text.extensions.join(" ") # => 'txt asc c cc h hh cpp hpp dat hlp' puts text.encoding # => quoted-printable puts text.binary? # => false puts text.ascii? # => true puts text.obsolete? # => false puts text.registered? # => true puts text == 'text/plain' # => true puts MIME::Type.simplified('x-appl/x-zip') # => 'appl/zip' puts MIME::Types.any? { |type| type.content_type == 'text/plain' } # => true puts MIME::Types.all?(&:registered?) # => false :include: Contributing.rdoc :include: Licence.rdoc mime-types-1.25/Rakefile0000644000004100000410000001531112215067016015230 0ustar www-datawww-data# -*- ruby encoding: utf-8 -*- require 'rubygems' require 'hoe' Hoe.plugin :bundler Hoe.plugin :doofus Hoe.plugin :email Hoe.plugin :gemspec2 Hoe.plugin :git Hoe.plugin :rubyforge Hoe.plugin :minitest Hoe.plugin :travis spec = Hoe.spec 'mime-types' do developer('Austin Ziegler', 'austin@rubyforge.org') self.remote_rdoc_dir = '.' self.rsync_args << ' --exclude=statsvn/' self.history_file = 'History.rdoc' self.readme_file = 'README.rdoc' self.extra_rdoc_files = FileList["*.rdoc"].to_a self.licenses = ["MIT", "Artistic 2.0", "GPL-2"] self.extra_dev_deps << ['hoe-bundler', '~> 1.2'] self.extra_dev_deps << ['hoe-doofus', '~> 1.0'] self.extra_dev_deps << ['hoe-gemspec2', '~> 1.1'] self.extra_dev_deps << ['hoe-git', '~> 1.5'] self.extra_dev_deps << ['hoe-rubygems', '~> 1.0'] self.extra_dev_deps << ['hoe-travis', '~> 1.2'] self.extra_dev_deps << ['minitest', '~> 4.5'] self.extra_dev_deps << ['rake', '~> 10.0'] end def reload_mime_types(repeats = 1, force_load = false) repeats.times { Object.send(:remove_const, :MIME) if defined? MIME load 'lib/mime/types.rb' MIME::Types.send(:__types__) if force_load } end desc 'Benchmark' task :benchmark, :repeats do |t, args| repeats = args.repeats.to_i repeats = 50 if repeats.zero? require 'benchmark' $LOAD_PATH.unshift 'lib' cache_file = File.expand_path('../cache.mtx', __FILE__) rm cache_file if File.exist? cache_file Benchmark.bm(17) do |x| x.report("Normal:") { reload_mime_types repeats } ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'yes' x.report("Lazy:") { reload_mime_types repeats } x.report("Lazy+Load:") { reload_mime_types repeats, true } ENV.delete('RUBY_MIME_TYPES_LAZY_LOAD') ENV['RUBY_MIME_TYPES_CACHE'] = cache_file reload_mime_types x.report("Cached:") { reload_mime_types repeats } ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'yes' x.report("Lazy Cached:") { reload_mime_types repeats } x.report("Lazy Cached Load:") { reload_mime_types repeats, true } end rm cache_file end namespace :mime do desc "Download the current MIME type registrations from IANA." task :iana, :save, :destination do |t, args| save_type = (args.save || :text).to_sym case save_type when :text, :both, :html nil else raise "Unknown save type provided. Must be one of text, both, or html." end destination = args.destination || "type-lists" require 'open-uri' require 'nokogiri' require 'cgi' class IANAParser include Comparable INDEX = %q(http://www.iana.org/assignments/media-types/) CONTACT_PEOPLE = %r{http://www.iana.org/assignments/contact-people.html?#(.*)} RFC_EDITOR = %r{http://www.rfc-editor.org/rfc/rfc(\d+).txt} IETF_RFC = %r{http://www.ietf.org/rfc/rfc(\d+).txt} IETF_RFC_TOOLS = %r{http://tools.ietf.org/html/rfc(\d+)} class << self def load_index @types ||= {} Nokogiri::HTML(open(INDEX) { |f| f.read }).xpath('//p/a').each do |tag| href_match = %r{^/assignments/media-types/(.+)/$}.match(tag['href']) next if href_match.nil? type = href_match.captures[0] @types[tag.content] = IANAParser.new(tag.content, type) end end attr_reader :types end def initialize(name, type) @name = name @type = type @url = File.join(INDEX, @type) end attr_reader :name attr_reader :type attr_reader :url attr_reader :html def download(name = nil) @html = Nokogiri::HTML(open(name || @url) { |f| f.read }) end def save_html File.open("#@name.html", "wb") { |w| w.write @html } end def <=>(o) self.name <=> o.name end def parse nodes = html.xpath("//table//table//tr") # How many children does the first node have? node_count = nodes.first.children.select { |n| n.elem? }.size if node_count == 1 # The title node doesn't have what we expect. Let's try it based # on the first real node. node_count = nodes.first.next.children.select { |n| n.elem? }.size end @mime_types = nodes.map do |node| next if node == nodes.first elems = node.children.select { |n| n.elem? } next if elems.size.zero? if elems.size != node_count warn "size mismatch (#{elems.size} != #{node_count}) in node: #{node}" next end case elems.size when 3 subtype_index = 1 refnode_index = 2 when 4 subtype_index = 1 refnode_index = 3 else raise "Unknown element size." end subtype = elems[subtype_index].content.chomp.strip refnodes = elems[refnode_index].children.select { |n| n.elem? }.map { |ref| case ref['href'] when CONTACT_PEOPLE tag = CGI::unescape($1).chomp.strip if tag == ref.content "[#{ref.content}]" else "[#{ref.content}=#{tag}]" end when RFC_EDITOR, IETF_RFC, IETF_RFC_TOOLS "RFC#$1" when %r{(https?://.*)} "{#{ref.content}=#$1}" else ref end } refs = refnodes.join(',') "#@type/#{subtype} 'IANA,#{refs}" end.compact @mime_types end def save_text File.open("#@name.txt", "wb") { |w| w.write @mime_types.join("\n") } end end puts "Downloading index of MIME types from #{IANAParser::INDEX}." IANAParser.load_index require 'fileutils' FileUtils.mkdir_p destination Dir.chdir destination do IANAParser.types.values.sort.each do |parser| next if parser.name == "example" or parser.name == "mime" puts "Downloading #{parser.name} from #{parser.url}" parser.download if :html == save_type || :both == save_type puts "Saving #{parser.name}.html" parser.save_html end if :text == save_type || :both == save_type puts "Parsing #{parser.name} HTML" parser.parse puts "Saving #{parser.name}.txt" parser.save_text end end end end desc "Shows known MIME type sources." task :mime_type_sources do puts <<-EOS http://www.ltsw.se/knbase/internet/mime.htp http://www.webmaster-toolkit.com/mime-types.shtml http://plugindoc.mozdev.org/winmime.php http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html http://www.feedforall.com/mime-types.htm http://www.iana.org/assignments/media-types/ EOS end end # vim: syntax=ruby mime-types-1.25/Contributing.rdoc0000644000004100000410000000437212215067016017110 0ustar www-datawww-data== Contributing I value any contribution to MIME::Types you can provide: a bug report, a feature request, or code contributions. Code contributions to MIME::Types are especially welcomeencouraged. Because MIME::Types is a complex codebase, there are a few guidelines: * Changes (aside from new MIME types) will not be accepted without tests. The test suite is written with MiniTest. * Match my coding style. * Use a thoughtfully-named topic branch that contains your change. Rebase your commits into logical chunks as necessary. * Use {quality commit messages}[http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html]. * Do not change the version number; when your patch is accepted and a release is made, the version will be updated at that point. * Submit a GitHub pull request with your changes. * New features require new documentation. === Test Dependencies To run the test suite, you will need to install the development dependencies for MIME::Types. If you have Bundler, you can accomplish this easily: $ bundle install MIME::Types uses Ryan Davis’s excellent {Hoe}[https://github.com/seattlerb/hoe] to manage the release process, and it adds a number of rake tasks. You will mostly be interested in: $ rake which runs the tests the same way that: $ rake test $ rake travis will do. === Workflow Here's the most direct way to get your work merged into the project: * Fork the project. * Clone down your fork (+git clone git://github.com//mime-types.git+). * Create a topic branch to contain your change (+git checkout -b my\_awesome\_feature+). * Hack away, add tests. Not necessarily in that order. * Make sure everything still passes by running `rake`. * If necessary, rebase your commits into logical chunks, without errors. * Push the branch up (+git push origin my\_awesome\_feature+). * Create a pull request against halostatue/mime-types and describe what your change does and the why you think it should be merged. === Contributors * Austin Ziegler created MIME::Types. Thanks to everyone else who has contributed to MIME::Types: * Andre Pankratz * Mauricio Linhares * Richard Hirner * Todd Carrico * Garret Alfert * Hans de Graaff * Henrik Hodne * Martin d'Allens * cgat * Greg Brockman mime-types-1.25/docs/0000755000004100000410000000000012215067016014512 5ustar www-datawww-datamime-types-1.25/docs/COPYING.txt0000644000004100000410000004325412215067016016373 0ustar www-datawww-data GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. mime-types-1.25/docs/artistic.txt0000644000004100000410000001372712215067016017107 0ustar www-datawww-dataThe "Artistic License" Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as uunet.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. 7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. 8. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End mime-types-1.25/.hoerc0000644000004100000410000000016212215067016014662 0ustar www-datawww-data--- exclude: !ruby/regexp /(tmp|swp)$|CVS|TAGS|\.(svn|git|hg|DS_Store|idea)|Gemfile\.lock|type-lists\/|\.gemspec/ mime-types-1.25/.gemtest0000644000004100000410000000000012215067016015221 0ustar www-datawww-datamime-types-1.25/Licence.rdoc0000644000004100000410000000327212215067016016001 0ustar www-datawww-data== Licence This software is available under three licenses: the GNU GPL version 2 (or at your option, a later version), the Perl Artistic license, or the MIT license. Note that my preference for licensing is the MIT license, but the original Perl MIME::Types was dually originally licensed with the Perl Artistic and the GNU GPL ("the same terms as Perl itself") and given that the Ruby implementation hewed pretty closely to the Perl version, I must maintain the additional licensing terms. * Copyright 2003–2013 Austin Ziegler. * Adapted from MIME::Types (Perl) by Mark Overmeer. === MIT License this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. === Perl Artistic License (version 2) See the file docs/artistic.txt in the main distribution. === GNU GPL version 2 See the file docs/COPYING.txt in the main distribution. mime-types-1.25/checksums.yaml.gz0000444000004100000410000000065112215067016017052 0ustar www-datawww-datag R0Sl9,Eq`[#%X;m¢4߯n%}:}px~yJv^nc|I>$q#S$ dzzeML:E ex8;vy+Þ"NO3zJ}! e6e}Y8r 9Z9mҊ_QV]b#K=' - !ruby/object:Gem::Version version: 2.0.4 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ! '>=' - !ruby/object:Gem::Version version: 2.0.4 - !ruby/object:Gem::Dependency name: minitest requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '5.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '5.0' - !ruby/object:Gem::Dependency name: rdoc requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' - !ruby/object:Gem::Dependency name: hoe-bundler requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.2' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.2' - !ruby/object:Gem::Dependency name: hoe-doofus requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.0' - !ruby/object:Gem::Dependency name: hoe-gemspec2 requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.1' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.1' - !ruby/object:Gem::Dependency name: hoe-git requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.5' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.5' - !ruby/object:Gem::Dependency name: hoe-rubygems requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.0' - !ruby/object:Gem::Dependency name: hoe-travis requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.2' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.2' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '10.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '10.0' - !ruby/object:Gem::Dependency name: hoe requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '3.7' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '3.7' description: ! 'This library allows for the identification of a file''s likely MIME content type. This is release 1.25, adding experimental caching and lazy loading functionality. The caching and lazy loading features were initially implemented by Greg Brockman (gdb). As these features are experimental, they are disabled by default and must be enabled through the use of environment variables. The cache is invalidated on a per-version basis; the cache for version 1.25 will not be reused for version 1.26. To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+ to any value other than ''false''. When using lazy loading, the initial startup of MIME::Types is around 12–25× faster than normal startup (on my system, normal startup is about 90 ms; lazy startup is about 4 ms). This isn''t generally useful, however, as the MIME::Types database has not been loaded. Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage comes from using the cache. To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a filename where MIME::Types will have read-write access. The first time a new version of MIME::Types is run using this file, it will be created, taking a little longer than normal. Subsequent loads using the same cache file will be approximately 3½× faster (25 ms) than normal loads. This can be combined with +RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded or multiprocess environment where all threads or processes will be using the same cache file. As the caching interface is still experimental, the only values cached are the default MIME::Types database, not any custom MIME::Types added by users. MIME types are used in MIME-compliant communications, as in e-mail or HTTP traffic, to indicate the type of content which is transmitted. MIME::Types provides the ability for detailed information about MIME entities (provided as a set of MIME::Type objects) to be determined and used programmatically. There are many types defined by RFCs and vendors, so the list is long but not complete; don''t hesitate to ask to add additional information. This library follows the IANA collection of MIME types (see below for reference). MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. As of version 1.15, the data format for the MIME::Type list has changed and the synchronization will no longer happen. MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA registry}[http://www.iana.org/assignments/media-types/] ({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp] and added by the users of MIME::Types.' email: - austin@rubyforge.org executables: [] extensions: [] extra_rdoc_files: - Contributing.rdoc - History.rdoc - Licence.rdoc - Manifest.txt - README.rdoc - docs/COPYING.txt - docs/artistic.txt files: - .gemtest - .hoerc - .travis.yml - Contributing.rdoc - Gemfile - History.rdoc - Licence.rdoc - Manifest.txt - README.rdoc - Rakefile - docs/COPYING.txt - docs/artistic.txt - lib/mime-types.rb - lib/mime/types.rb - lib/mime/types/application - lib/mime/types/application.mac - lib/mime/types/application.nonstandard - lib/mime/types/application.obsolete - lib/mime/types/audio - lib/mime/types/audio.nonstandard - lib/mime/types/audio.obsolete - lib/mime/types/image - lib/mime/types/image.nonstandard - lib/mime/types/image.obsolete - lib/mime/types/message - lib/mime/types/message.obsolete - lib/mime/types/model - lib/mime/types/multipart - lib/mime/types/multipart.nonstandard - lib/mime/types/multipart.obsolete - lib/mime/types/other.nonstandard - lib/mime/types/text - lib/mime/types/text.nonstandard - lib/mime/types/text.obsolete - lib/mime/types/text.vms - lib/mime/types/video - lib/mime/types/video.nonstandard - lib/mime/types/video.obsolete - test/test_mime_type.rb - test/test_mime_types.rb - test/test_mime_types_cache.rb - test/test_mime_types_lazy.rb homepage: http://mime-types.rubyforge.org/ licenses: - MIT - Artistic 2.0 - GPL-2 metadata: {} post_install_message: rdoc_options: - --main - README.rdoc require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ! '>=' - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ! '>=' - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: mime-types rubygems_version: 2.0.7 signing_key: specification_version: 4 summary: This library allows for the identification of a file's likely MIME content type test_files: - test/test_mime_type.rb - test/test_mime_types.rb - test/test_mime_types_cache.rb - test/test_mime_types_lazy.rb mime-types-1.25/metadata.gz.sig0000444000004100000410000000040012215067016016455 0ustar www-datawww-dataoA$!(tآⲨS׎D]zLhT<*Pnآ~n)VQ54`K uĂ9/Kuqf3#ܨK6PuJڙM A\7|=/oyCN'Uɮ,'J8.JVgA`Q{f95G?n0Ħ1~tA pN%ԕ׉V" uw̬ Pl^N,Kk J3'Wmime-types-1.25/Gemfile0000644000004100000410000000141712215067016015060 0ustar www-datawww-data# -*- ruby -*- # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`. source "https://rubygems.org/" gem "rubyforge", ">=2.0.4", :group => [:development, :test] gem "minitest", "~>5.0", :group => [:development, :test] gem "rdoc", "~>4.0", :group => [:development, :test] gem "hoe-bundler", "~>1.2", :group => [:development, :test] gem "hoe-doofus", "~>1.0", :group => [:development, :test] gem "hoe-gemspec2", "~>1.1", :group => [:development, :test] gem "hoe-git", "~>1.5", :group => [:development, :test] gem "hoe-rubygems", "~>1.0", :group => [:development, :test] gem "hoe-travis", "~>1.2", :group => [:development, :test] gem "rake", "~>10.0", :group => [:development, :test] gem "hoe", "~>3.7", :group => [:development, :test] # vim: syntax=ruby mime-types-1.25/Manifest.txt0000644000004100000410000000173212215067016016074 0ustar www-datawww-data.gemtest .hoerc .travis.yml Contributing.rdoc Gemfile History.rdoc Licence.rdoc Manifest.txt README.rdoc Rakefile docs/COPYING.txt docs/artistic.txt lib/mime-types.rb lib/mime/types.rb lib/mime/types/application lib/mime/types/application.mac lib/mime/types/application.nonstandard lib/mime/types/application.obsolete lib/mime/types/audio lib/mime/types/audio.nonstandard lib/mime/types/audio.obsolete lib/mime/types/image lib/mime/types/image.nonstandard lib/mime/types/image.obsolete lib/mime/types/message lib/mime/types/message.obsolete lib/mime/types/model lib/mime/types/multipart lib/mime/types/multipart.nonstandard lib/mime/types/multipart.obsolete lib/mime/types/other.nonstandard lib/mime/types/text lib/mime/types/text.nonstandard lib/mime/types/text.obsolete lib/mime/types/text.vms lib/mime/types/video lib/mime/types/video.nonstandard lib/mime/types/video.obsolete test/test_mime_type.rb test/test_mime_types.rb test/test_mime_types_cache.rb test/test_mime_types_lazy.rb mime-types-1.25/data.tar.gz.sig0000444000004100000410000000040012215067016016373 0ustar www-datawww-data{ohD@6h<~_l+n 6gE-d0̜&e{i c'zlb L /:|$ 'p]4N2va,?fX^% ?| V*eZ0ݠapFq˫T/gi߈ ev4lޠ;ҌAaAh7Yl "9 MlFJ Lp2mx>2 WRMcfmime-types-1.25/History.rdoc0000644000004100000410000003120712215067016016077 0ustar www-datawww-data== 1.25 / 2013-08-30 * New Features: * Adding lazy loading and caching functionality to the default data based on work done by Greg Brockman (gdb). * Bugs: * Force the default internal application encoding to be used when reading the MIME types database. Based on a change by briangamble, found in the rapid7 fork. * New extensions: * mjpeg (video/x-motion-jpeg) based on a change by punkrats, found in the vidibus fork. * Modernized MiniTest configuration. == 1.24 / 2013-08-14 * Code Climate: * Working on improving the quality of the mime-types codebase through the use of Code Climate. https://codeclimate.com/github/halostatue/mime-types * Simplified MIME::Type.from_array to make more assumptions about assignment. * Documentation: * LeoYoung pointed out that the README.rdoc contained examples that could never possibly work because MIME::Types#[] returns (for all the versions I have handy) an array, not a single type. I have updated README.rdoc to reflect this. * Removed Nokogiri as a declared development dependency. It is still required if you're going to use the IANA parser functionality, but it is not necessary for most development purposes. This has been removed to ensure that Travis CI passes on Ruby 1.8.7. * New MIME Types: * 7zip (application/x-7z-compressed). Fixes a request by kodram. https://github.com/halostatue/mime-types/issues/32 * application/x-www-form-urlencoded. Fixes a request by alexkwolfe. https://github.com/halostatue/mime-types/issues/39 * Various new MIME types from IANA: * application/mbms-schedule\+xml from 3GPP and Turcotte. * application/provenance\+xml from W3C and Herman. * application/session-info from 3GPP and Firmin. * application/urc-grpsheet\+xml, application/urc-targetdesc\+xml, application/uisocketdesc\+xml from Zimmermann. * application/api\+json from Klabnik. * application/vnd.etsi.pstn\+xml from Han and Belling. * application/vnd.fujixerox.docuworks.container from Tashiro. * application/vnd.windows.devicepairing from Dandawate. * video/vnd.radgamettools.bink and video/vnd.radgamettools.smacker from Andersson. * Updated MIME Types: * RFC 6960 was adopted (application/ocsp-request and application/ocsp-response). == 1.23 / 2013-04-20 * New Feature: * Arnaud Meuret (ameuret) suggested that it could be useful if the MIME type collection was enumerable, so he implemented it in #30. Thanks for the contribution! https://github.com/halostatue/mime-types/pull/30 * Updated MIME Types: * RFC6910 was adopted (application/call-completion). * RFC6902 was adopted (application/json-patch\+json). * RFC6917 was adopted (application/mrb-consumer\+xml, application/mrb-publish\+xml). * RFC6922 was adopted (application/sql). * RFC2560 is being {updated}[http://tools.ietf.org/html/draft-ietf-pkix-rfc2560bis]. * Administrivia: * The gemspec now includes information about the licenses under which the mime-types gem is available. * Using hoe-gemspec2 instead of hoe-gemspec. == 1.22 / 2013-03-30 * New MIME Types: * Added support for 3FR (Hasselblad raw images) files. MIME-Type was obtained by looking at exif data with exiftool. Thanks to cgat for these changes. https://github.com/halostatue/mime-types/pull/27 * Updated MIME Types: * Pulled the latest updates from the IANA MIME-Type registry. * Added support for Ruby 2.0 with Travis CI. == 1.21 / 2013-02-09 * New MIME Types: * Various new or updated MIME types by Garret Alfert: application/vnd.ms-fontobject, .eot; application/x-chrome-extension, .crx; application/x-web-app-manifest\+json, .webapp; application/x-xpinstall, .xpi; image/svg\+xml, .svg, .svgz; image/webp, .webp; text/cache-manifest, .appcache, .manifest. https://github.com/halostatue/mime-types/pull/24 * Fixed some Manifest.txt related madness on Travis. == 1.20.1 / 2013-01-26 * New MIME Types: * Apple iWork document types added by Hans de Graaff (application/x-iwork-keynote-sffkey, .key; application/x-iwork-pages-sffpages, .pages; application/x-iwork-numbers-sffnumbers, .numbers). https://github.com/halostatue/mime-types/issue/20 * epub, ibooks, mobi, and DMG content types by Mauricio Linhares (mac:application/x-apple-diskimage, .dmg; application/epub\+zip, .epub; application/x-ibooks\+zip, .ibooks; application/x-mobipocket-ebook, .mobi). https://github.com/halostatue/mime-types/issue/22 * rss content type by Garret Alfert (application/rss\+xml, .rss). https://github.com/halostatue/mime-types/issue/23 * Added or updated MIME types from the latest IANA list. * Fixed MIME Types: * Excel macro-enabled spreadsheets had an incorrect extension. Thanks to Rafael Belvederese for reporting this issue. https://github.com/halostatue/mime-types/issue/21 * Enabled for use with travis. * Enabled gem signing. * Fixed an error related to MIME type downloads. * This was previously published as 1.20, but I had forgotten some attributions. == 1.19 / 2012-06-20 * New MIME Types: * XCF Gnome Images (image/x-xcf, image/x-compressed-xcf; .xcf). https://github.com/halostatue/mime-types/issue/17 * Types reported in https://github.com/halostatue/mime-types/issues/12: * DV (video/x-dv; .dv) * IVF (video/x-ivf; .ivf) * Matroska (video/x-matroska; .mkv) * Motion JPEG (video/x-motion-jpeg; .mjpg) * RealMedia (official; application/vnd.rn-realmedia; .rm) * New extensions: * dcm (application/dicom); https://github.com/halostatue/mime-types/issue/16. * Types reported in https://github.com/halostatue/mime-types/issues/12: * 3g2, 3gpp2 (video/3gpp2) * mpeg (video/mpeg) * mxf (application/mxf) * ts (video/MP2T) * ogg (video/ogg) * Fixed MIME Types: * Adobe AIR application installer packages was missing a hyphen. https://github.com/halostatue/mime-types/issue/13 * Types reported in https://github.com/halostatue/mime-types/issues/12: * audio/x-pn-realaudio extension is .ra, not .rm. * Resolved https://github.com/halostatue/mime-types/issues/8. Apparently some people run the tests on Linux. Imagine that. == 1.18 / 2012-03-20 * New MIME Types: * Types reported in https://github.com/halostatue/mime-types/issues/6: * CoffeeScript (text/x-coffeescript; .coffee; 8bit). * AIR (application/vnd.adobe.air-applicationinstaller-package+zip, .air; base64). * WOFF (application/font-woff; .woff; base64). * TrueType (application/x-font-truetype; .ttf; base64). * OpenType (application/x-font-opentype; .otf; base64). * WebM (audio/webm, video/webm; .webm). https://github.com/halostatue/mime-types/issues/11. * New extensions: * f4v/f4p (video/mp4, used by Adobe); f4a/fb4 (audio/mp4, used by Adobe). * Bug Fixes: * It was pointed out that Licence.txt was incorrectly named. Fixed by renaming to Licence.rdoc (from Issue/Pull Request #8, https://github.com/halostatue/mime-types/issues/8). * It was pointed out that a plan to have the test output generated automatically never went through. https://github.com/halostatue/mime-types/issues/10 == 1.17.2 / 2011-10-25 * Bug Fixes: * Fixed an issue with Ruby 1.9 and file encoding. == 1.17.1 / 2011-10-23 * Minor Enhancements: * Implemented modern 'hoe' semantics. * Switched to minitest instead of test/unit. * Converted documentation from .txt to .rdoc. * Removed setup.rb. https://github.com/halostatue/mime-types/issues/3 * Should no longer complain about missing RubyGems keys https://github.com/halostatue/mime-types/issues/2 * Added .mp4 and .mpg4 as recognized extensions for {application,audio,video}/mp4 per RFC4337. https://github.com/halostatue/mime-types/issues/1 * Added audio/x-aac and .aac per RubyForge issue #28054 (http://rubyforge.org/tracker/index.php?func=detail&aid=28054&group_id=293&atid=1194). * Made it much easier to update MIME types from this point forward. * Updated MIME types from IANA. == 1.16 * Made compatible with Ruby 1.8.6, 1.8.7, and 1.9.1. * Switched to the 'hoe' gem system and added a lot of build-time tools. * Updated the MIME types to the list based on the values in the Perl library version 1.27. Also updated based on external source information and bug reports. * This is the last planned version of MIME::Types 1.x. Work will be starting soon on MIME::Types 2.x with richer data querying mechanisms and support for external data sources. == 1.15 * Removed lib/mime/type.rb to form a single MIME::Types database source. It is unlikely that one will ever need MIME::Type without MIME::Types. * Re-synchronized the MIME type list with the sources, focusing primarily on the IANA list. * Added more detailed source information for MIME::Type objects. * Changed MIME::Types from a module to a class with a default instance. There should be no difference in usage. * Removed MIME::Types::DATA_VERSION; it is now an attribute on the MIME::Types instance. * NOTE: Synchronization with the Perl version of MIME::Types is no longer a priority as of this release. The data format and information has changed. * Removed MIME::Types.by_suffix and MIME::Types.by_mediatype. == 1.13.1 * Fixed a problem with the installer running tests. This now works. * Improved the implementation of MIME::Type.signature? * Moved code around to use the class << self idiom instead of always prepending the module/class name. * Added two new best-guess implementations of functions found in Perl's MIME::Types implementation (1.13). Do not rely on these until the purpose and implementation is stabilised. * Updated the MIME list to reflect changes noted by Ville Skyttä . * Added a new constant to MIME::Types, DATA_VERSION. This will allow the Ruby version number to be updated separately from the Perl version while keeping the MIME Type list version in sync. == 1.13 ! WARNING: This version changes the API of MIME::Types ! ! WARNING: This version is compatible with Ruby 1.8 and higher ONLY ! * Removed dependency on InstallPackage; offering 1.13 as either .tar.gz or .gem. * Split into two files, mime/type.rb and mime/types.rb. This will make maintaining the list of changes easier. * Changed the MIME::Type construction API. Accepts only a single String argument (but does no named type-checking) and yields self. * Removed private methods #init_extensions, #init_encoding, and #init_system and replaced with #extensions=, #encoding=, and #system=. * Added #default_encoding to return 'quoted-printable' or 'base64' depending on the media type of the MIME type. * Added #raw_media_type and #raw_sub_type to provide the non-simplified versions of the media type and subtype. * Alternative constructors MIME::Type.from_array, MIME::Type.from_hash, and MIME::Type.from_mime_type added to compensate for the removal of named type checking in the original constructor. * Added #to_str, #to_a, and #to_hash methods. The latter two will provide output suitable for use in #from_array and #from_hash. * Removed "binary" encoding and enforced the use of a valid encoding string. * Added #system? returning true if the MIME::Type is an OS-specific MIME::Type. * Added #platform? returning true if the MIME::Type is an OS-specific MIME::Type for the current RUBY_PLATFORM. * Added #like? returning true if the simplified type matches the other value provided. #<'application/x-excel'>.like?('application/excel') is true. * Added #complete? returning true if the MIME::Type specifies an extension list. * Updated the MIME type list to reflect additions by Mark Overmeer for Perl's MIME::Types 1.12 and the official IANA list as of 2004.04.06. A number of formerly "registered" MIME types are now no longer registered (e.g., application/excel is now application/x-excel). This ensures that the simplified type still works with applications, but does not report an unregistered type as registered. * Restored MIME type list to Mark Overmeer's format to facilitate easy exchange between the two projects. * Added additional unit tests from Mark Overmeer's 1.12 version. == 1.07 * Changed version numbering to match Perl MIME::Types 1.07. * Re-synchronized with Mark Overmeer's list in Perl PMIME::Types 1.07. * [NN Poster] updated the attributes for the PGP types. == 1.005 * Changed to Phil Thomson's InstallPackage. * Added several types from Perl MIME::Types 1.005. * Cleaned up data format; some data formats will show up with proper data now. == 1.004 * Updated to match Perl MIME::Types 1.004, links credited to Dan Puro. Adds new reference list to http://www.indiana.edu/cgi-bin-local/mimetypes * Removed InvalidType and replaced with TypeError. * Changed instances of #type to #class. * Cleaned up how simplified versions are created. == 1.003 * Initial release based on Perl MIME::Types 1.003. mime-types-1.25/lib/0000755000004100000410000000000012215067016014330 5ustar www-datawww-datamime-types-1.25/lib/mime-types.rb0000644000004100000410000000006512215067016016747 0ustar www-datawww-data# -*- ruby encoding: utf-8 -*- require 'mime/types' mime-types-1.25/lib/mime/0000755000004100000410000000000012215067016015257 5ustar www-datawww-datamime-types-1.25/lib/mime/types/0000755000004100000410000000000012215067016016423 5ustar www-datawww-datamime-types-1.25/lib/mime/types/text.obsolete0000644000004100000410000000061212215067016021144 0ustar www-datawww-data!text/directory 'IANA,RFC2425,RFC6350 !text/ecmascript 'IANA,RFC4329 !text/javascript @js 'IANA,RFC4329 !text/x-rtf @rtf :8bit =use-instead:text/rtf !text/x-vnd.flatland.3dml =use-instead:model/vnd.flatland.3dml *!text/comma-separated-values @csv :8bit =use-instead:text/csv *!text/vnd.flatland.3dml =use-instead:model/vnd.flatland.3dml !text/vnd.si.uricatalogue 'IANA,[Parks Young=ParksYoung] mime-types-1.25/lib/mime/types/message.obsolete0000644000004100000410000000014212215067016021602 0ustar www-datawww-data!message/news :8bit 'IANA,RFC1036,[H.Spencer] !message/vnd.si.simp 'IANA,[Parks Young=ParksYoung] mime-types-1.25/lib/mime/types/multipart0000644000004100000410000000104012215067016020362 0ustar www-datawww-datamultipart/alternative :8bit 'IANA,RFC2045,RFC2046 multipart/appledouble :8bit 'IANA,[Faltstrom] multipart/byteranges 'IANA,RFC2616 multipart/digest :8bit 'IANA,RFC2045,RFC2046 multipart/encrypted 'IANA,RFC1847 multipart/example 'IANA,RFC4735 multipart/form-data 'IANA,RFC2388 multipart/header-set 'IANA,[Crocker] multipart/mixed :8bit 'IANA,RFC2045,RFC2046 multipart/parallel :8bit 'IANA,RFC2045,RFC2046 multipart/related 'IANA,RFC2387 multipart/report 'IANA,RFC6522 multipart/signed 'IANA,RFC1847 multipart/voice-message 'IANA,RFC2421,RFC2423 mime-types-1.25/lib/mime/types/application.obsolete0000644000004100000410000000557212215067016022475 0ustar www-datawww-data!application/smil @smi,smil :8bit 'IANA,RFC4536 =use-instead:application/smil+xml !application/vnd.arastra.swi 'IANA,[Fenner] =use-instead:application/vnd.aristanetworks.swi !application/vnd.geocube+xml :8bit 'IANA,[Pirsch] !application/vnd.gmx 'IANA,[Sciberras] !application/vnd.nokia.ncd+xml 'IANA,[Nokia] =use-instead:application/vnd.nokia.ncd !application/x-123 @wk =use-instead:application/vnd.lotus-1-2-3 !application/x-access @mdf,mda,mdb,mde =use-instead:application/x-msaccess !application/x-compress @z,Z :base64 =use-instead:application/x-compressed !application/x-javascript @js :8bit =use-instead:application/javascript !application/x-lotus-123 @wks =use-instead:application/vnd.lotus-1-2-3 !application/x-mathcad @mcd :base64 =use-instead:application/vnd.mcd !application/x-msword @doc,dot,wrd :base64 =use-instead:application/msword !application/x-rtf @rtf :base64 'LTSW =use-instead:application/rtf !application/x-troff @t,tr,roff 'LTSW =use-instead:text/troff !application/x-u-star 'LTSW =use-instead:application/x-ustar !application/x-word @doc,dot :base64 =use-instead:application/msword !application/x-wordperfect @wp =use-instead:application/vnd.wordperfect !application/x-wordperfectd @wpd =use-instead:application/vnd.wordperfect !application/xhtml-voice+xml 'IANA,{RFC-mccobb-xplusv-media-type-04.txt=https://datatracker.ietf.org/public/idindex.cgi?command=id_detail&filename=draft-mccobb-xplusv-media-type} *!application/access @mdf,mda,mdb,mde =use-instead:application/x-msaccess *!application/bleeper @bleep :base64 =use-instead:application/x-bleeper *!application/cals1840 'LTSW =use-instead:application/cals-1840 *!application/futuresplash @spl =use-instead:application/x-futuresplash *!application/ghostview =use-instead:application/x-ghostview *!application/hep @hep =use-instead:application/x-hep *!application/imagemap @imagemap,imap :8bit =use-instead:application/x-imagemap *!application/lotus-123 @wks =use-instead:application/vnd.lotus-1-2-3 *!application/mac-compactpro @cpt =use-instead:application/x-mac-compactpro *!application/mathcad @mcd :base64 =use-instead:application/vnd.mcd *!application/mathematica-old =use-instead:application/x-mathematica-old *!application/news-message-id 'IANA,RFC1036,[Spencer] *!application/quicktimeplayer @qtl =use-instead:application/x-quicktimeplayer *!application/remote_printing 'LTSW =use-instead:application/remote-printing *!application/toolbook @tbk =use-instead:application/x-toolbook *!application/VMSBACKUP @bck :base64 =use-instead:application/x-VMSBACKUP *!application/vnd.ms-word.document.macroEnabled.12 @docm *!application/vnd.ms-word.template.macroEnabled.12 @dotm *!application/wordperfect @wp =use-instead:application/vnd.wordperfect *!application/wordperfect6.1 @wp6 =use-instead:application/x-wordperfect6.1 *!application/wordperfectd @wpd =use-instead:application/vnd.wordperfect *!application/x400.bp 'LTSW =use-instead:application/x400-bp mime-types-1.25/lib/mime/types/multipart.obsolete0000644000004100000410000000026312215067016022203 0ustar www-datawww-data!multipart/x-parallel =use-instead:multipart/parallel multipart/x-gzip multipart/x-mixed-replace multipart/x-tar multipart/x-ustar multipart/x-www-form-urlencoded multipart/x-zip mime-types-1.25/lib/mime/types/video0000644000004100000410000000544212215067016017461 0ustar www-datawww-datavideo/1d-interleaved-parityfec 'IANA,RFC6015 video/3gpp @3gp,3gpp 'IANA,RFC3839,RFC6381 video/3gpp-tt 'IANA,RFC4396 video/3gpp2 @3g2,3gpp2 'IANA,RFC4393,RFC6381 video/BMPEG 'IANA,RFC3555 video/BT656 'IANA,RFC3555 video/CelB 'IANA,RFC3555 video/DV 'IANA,RFC6469 video/encaprtp 'IANA,RFC6849 video/example 'IANA,RFC4735 video/H261 'IANA,RFC4587 video/H263 'IANA,RFC3555 video/H263-1998 'IANA,RFC4629 video/H263-2000 'IANA,RFC4629 video/H264 'IANA,RFC6184 video/H264-RCDO 'IANA,RFC6185 video/H264-SVC 'IANA,RFC6190 video/JPEG 'IANA,RFC3555 video/jpeg2000 'IANA,RFC5371,RFC5372 video/MJ2 @mj2,mjp2 'IANA,RFC3745 video/MP1S 'IANA,RFC3555 video/MP2P 'IANA,RFC3555 video/MP2T @ts 'IANA,RFC3555 video/mp4 @mp4,mpg4,f4v,f4p 'IANA,RFC4337,RFC6381,{Adobe=http://www.kaourantin.net/2007/10/new-file-extensions-and-mime-types.html} video/MP4V-ES 'IANA,RFC6416 video/mpeg @mp2,mp3g,mpe,mpeg,mpg :base64 'IANA,RFC2045,RFC2046 video/mpeg4-generic 'IANA,RFC3640 video/MPV 'IANA,RFC3555 video/nv 'IANA,RFC4856 video/ogg @ogg,ogv 'IANA,RFC5334 video/parityfec 'IANA,RFC5109 video/pointer 'IANA,RFC2862 video/quicktime @qt,mov :base64 'IANA,RFC6381,[Lindner] video/raptorfec 'IANA,RFC6682 video/raw 'IANA,RFC4175 video/rtp-enc-aescm128 'IANA,[3GPP] video/rtploopback 'IANA,RFC6849 video/rtx 'IANA,RFC4588 video/SMPTE292M 'IANA,RFC3497 video/ulpfec 'IANA,RFC5109 video/vc1 'IANA,RFC4425 video/vnd.CCTV 'IANA,[Rottmann] video/vnd.dece.hd 'IANA,[Dolan] video/vnd.dece.mobile 'IANA,[Dolan] video/vnd.dece.mp4 'IANA,[Dolan] video/vnd.dece.pd 'IANA,[Dolan] video/vnd.dece.sd 'IANA,[Dolan] video/vnd.dece.video 'IANA,[Dolan] video/vnd.directv.mpeg 'IANA,[Zerbe] video/vnd.directv.mpeg-tts 'IANA,[Zerbe] video/vnd.dlna.mpeg-tts 'IANA,[Heredia] video/vnd.dvb.file 'IANA,[Siebert],[Murray] video/vnd.fvt 'IANA,[Fuldseth] video/vnd.hns.video 'IANA,[Swaminathan] video/vnd.iptvforum.1dparityfec-1010 'IANA,[Nakamura] video/vnd.iptvforum.1dparityfec-2005 'IANA,[Nakamura] video/vnd.iptvforum.2dparityfec-1010 'IANA,[Nakamura] video/vnd.iptvforum.2dparityfec-2005 'IANA,[Nakamura] video/vnd.iptvforum.ttsavc 'IANA,[Nakamura] video/vnd.iptvforum.ttsmpeg2 'IANA,[Nakamura] video/vnd.motorola.video 'IANA,[McGinty] video/vnd.motorola.videop 'IANA,[McGinty] video/vnd.mpegurl @mxu,m4u :8bit 'IANA,[Recktenwald] video/vnd.ms-playready.media.pyv 'IANA,[DiAcetis] video/vnd.nokia.interleaved-multimedia @nim 'IANA,[Kangaslampi] video/vnd.nokia.videovoip 'IANA,[Nokia] video/vnd.objectvideo @mp4,m4v 'IANA,[Clark] video/vnd.radgamettools.bink 'IANA,[Andersson] video/vnd.radgamettools.smacker 'IANA,[Andersson] video/vnd.sealed.mpeg1 @s11 'IANA,[Petersen] video/vnd.sealed.mpeg4 @smpg,s14 'IANA,[Petersen] video/vnd.sealed.swf @sswf,ssw 'IANA,[Petersen] video/vnd.sealedmedia.softseal.mov @smov,smo,s1q 'IANA,[Petersen] video/vnd.uvvu.mp4 'IANA,[Dolan] video/vnd.vivo @viv,vivo 'IANA,[Wolfe] mime-types-1.25/lib/mime/types/message0000644000004100000410000000123412215067016017772 0ustar www-datawww-datamessage/CPIM 'IANA,RFC3862 message/delivery-status 'IANA,RFC1894 message/disposition-notification 'IANA,RFC3798 message/example 'IANA,RFC4735 message/external-body :8bit 'IANA,RFC2045,RFC2046 message/feedback-report 'IANA,RFC5965 message/global 'IANA,RFC6532 message/global-delivery-status 'IANA,RFC6533 message/global-disposition-notification 'IANA,RFC6533 message/global-headers 'IANA,RFC6533 message/http 'IANA,RFC2616 message/imdn+xml 'IANA,RFC5438 message/partial :8bit 'IANA,RFC2045,RFC2046 message/rfc822 @eml :8bit 'IANA,RFC2045,RFC2046 message/s-http 'IANA,RFC2660 message/sip 'IANA,RFC3261 message/sipfrag 'IANA,RFC3420 message/tracking-status 'IANA,RFC3886 mime-types-1.25/lib/mime/types/video.nonstandard0000644000004100000410000000064512215067016021773 0ustar www-datawww-datavideo/x-dl @dl :base64 video/x-dv @dv video/x-fli @fli :base64 video/x-flv @flv :base64 video/x-gl @gl :base64 video/x-ivf @ivf video/x-matroska @mkv video/x-motion-jpeg @mjpg,mjpeg video/x-ms-asf @asf,asx video/x-ms-wm @wm video/x-ms-wmv @wmv video/x-ms-wmx @wmx video/x-ms-wvx @wvx video/x-msvideo @avi :base64 video/x-sgi-movie @movie :base64 *video/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} mime-types-1.25/lib/mime/types/image.nonstandard0000644000004100000410000000124612215067016021745 0ustar www-datawww-data*image/pjpeg :base64 =Fixes a bug with IE6 and progressive JPEGs image/x-bmp @bmp image/x-cmu-raster @ras image/x-compressed-xcf @xcfbz2,xcfgz =see-also:image/x-xcf image/x-hasselblad-3fr @3fr :base64 image/x-paintshoppro @psp,pspimage :base64 image/x-pict image/x-portable-anymap @pnm :base64 image/x-portable-bitmap @pbm :base64 image/x-portable-graymap @pgm :base64 image/x-portable-pixmap @ppm :base64 image/x-rgb @rgb :base64 image/x-targa @tga image/x-vnd.dgn @dgn image/x-win-bmp image/x-xbitmap @xbm :7bit image/x-xbm @xbm :7bit image/x-xcf @xcf '{XCF=http://git.gnome.org/browse/gimp/tree/devel-docs/xcf.txt} image/x-xpixmap @xpm :8bit image/x-xwindowdump @xwd :base64 mime-types-1.25/lib/mime/types/model0000644000004100000410000000111012215067016017437 0ustar www-datawww-datamodel/example 'IANA,RFC4735 model/iges @igs,iges 'IANA,[Parks] model/mesh @msh,mesh,silo 'IANA,RFC2077 model/vnd.collada+xml 'IANA,[Riordon] model/vnd.dwf 'IANA,[Pratt] model/vnd.flatland.3dml 'IANA,[Powers] model/vnd.gdl 'IANA,[Babits] model/vnd.gs-gdl 'IANA,[Babits] model/vnd.gtw 'IANA,[Ozaki] model/vnd.moml+xml 'IANA,[Brooks] model/vnd.mts 'IANA,[Rabinovitch] model/vnd.parasolid.transmit.binary @x_b,xmt_bin 'IANA,[Parasolid] model/vnd.parasolid.transmit.text @x_t,xmt_txt :quoted-printable 'IANA,[Parasolid] model/vnd.vtu 'IANA,[Rabinovitch] model/vrml @wrl,vrml 'IANA,RFC2077 mime-types-1.25/lib/mime/types/text.nonstandard0000644000004100000410000000030712215067016021644 0ustar www-datawww-datatext/cache-manifest @appcache,manifest text/x-coffescript @coffee :8bit text/x-component @htc :8bit text/x-setext @etx text/x-vcalendar @vcs :8bit text/x-vcard @vcf :8bit text/x-yaml @yaml,yml :8bit mime-types-1.25/lib/mime/types/audio0000644000004100000410000001100412215067016017443 0ustar www-datawww-dataaudio/1d-interleaved-parityfec 'IANA,RFC6015 audio/32kadpcm 'IANA,RFC3802,RFC2421 audio/3gpp 'IANA,RFC3839,RFC6381 audio/3gpp2 'IANA,RFC4393,RFC6381 audio/ac3 'IANA,RFC4184 audio/AMR @amr :base64 'RFC4867 audio/AMR-WB @awb :base64 'RFC4867 audio/amr-wb+ 'IANA,RFC4352 audio/asc 'IANA,RFC6295 audio/ATRAC-ADVANCED-LOSSLESS 'IANA,RFC5584 audio/ATRAC-X 'IANA,RFC5584 audio/ATRAC3 'IANA,RFC5584 audio/basic @au,snd :base64 'IANA,RFC2045,RFC2046 audio/BV16 'IANA,RFC4298 audio/BV32 'IANA,RFC4298 audio/clearmode 'IANA,RFC4040 audio/CN 'IANA,RFC3389 audio/DAT12 'IANA,RFC3190 audio/dls 'IANA,RFC4613 audio/dsr-es201108 'IANA,RFC3557 audio/dsr-es202050 'IANA,RFC4060 audio/dsr-es202211 'IANA,RFC4060 audio/dsr-es202212 'IANA,RFC4060 audio/DV 'IANA,RFC6469 audio/DVI4 'IANA,RFC4856 audio/eac3 'IANA,RFC4598 audio/encaprtp 'IANA,RFC6849 audio/EVRC @evc 'IANA,RFC4788 audio/EVRC-QCP 'IANA,RFC3625 audio/EVRC0 'IANA,RFC4788 audio/EVRC1 'IANA,RFC4788 audio/EVRCB 'IANA,RFC5188 audio/EVRCB0 'IANA,RFC5188 audio/EVRCB1 'IANA,RFC4788 audio/EVRCNW 'IANA,RFC6884 audio/EVRCNW0 'IANA,RFC6884 audio/EVRCNW1 'IANA,RFC6884 audio/EVRCWB 'IANA,RFC5188 audio/EVRCWB0 'IANA,RFC5188 audio/EVRCWB1 'IANA,RFC5188 audio/example 'IANA,RFC4735 audio/fwdred 'IANA,RFC6354 audio/G719 'IANA,RFC5404,{Errata3245=http://www.rfc-editor.org/errata_search.php?rfc=5404&eid=3245} audio/G722 'IANA,RFC4856 audio/G7221 'IANA,RFC5577 audio/G723 'IANA,RFC4856 audio/G726-16 'IANA,RFC4856 audio/G726-24 'IANA,RFC4856 audio/G726-32 'IANA,RFC4856 audio/G726-40 'IANA,RFC4856 audio/G728 'IANA,RFC4856 audio/G729 'IANA,RFC4856 audio/G7291 'IANA,RFC4749,RFC5459 audio/G729D 'IANA,RFC4856 audio/G729E 'IANA,RFC4856 audio/GSM 'IANA,RFC4856 audio/GSM-EFR 'IANA,RFC4856 audio/GSM-HR-08 'IANA,RFC5993 audio/iLBC 'IANA,RFC3952 audio/ip-mr_v2.5 'IANA,RFC6262 audio/L16 @l16 'IANA,RFC4856 audio/L20 'IANA,RFC3190 audio/L24 'IANA,RFC3190 audio/L8 'IANA,RFC4856 audio/LPC 'IANA,RFC4856 audio/mobile-xmf 'IANA,RFC4723 audio/mp4 @mp4,mpg4,f4a,f4b 'IANA,RFC4337,{Adobe=http://www.kaourantin.net/2007/10/new-file-extensions-and-mime-types.html} audio/MP4A-LATM @m4a 'IANA,RFC6416 audio/MPA 'IANA,RFC3555 audio/mpa-robust 'IANA,RFC5219 audio/mpeg @mpga,mp2,mp3 :base64 'IANA,RFC3003 audio/mpeg4-generic 'IANA,RFC3640,RFC5691,RFC6295 audio/ogg @ogg 'IANA,RFC5334 audio/parityfec 'IANA,RFC5109 audio/PCMA 'IANA,RFC4856 audio/PCMA-WB 'IANA,RFC5391 audio/PCMU 'IANA,RFC4856 audio/PCMU-WB 'IANA,RFC5391 audio/prs.sid 'IANA,[Walleij] audio/QCELP 'IANA,RFC3555,RFC3625 audio/raptorfec 'IANA,RFC6682 audio/RED 'IANA,RFC3555 audio/rtp-enc-aescm128 'IANA,[3GPP] audio/rtp-midi 'IANA,RFC6295 audio/rtploopback 'IANA,RFC6849 audio/rtx 'IANA,RFC4588 audio/SMV @smv 'IANA,RFC3558 audio/SMV-QCP 'IANA,RFC3625 audio/SMV0 'IANA,RFC3558 audio/sp-midi 'IANA,[Kosonen],[T. White=T.White] audio/speex 'IANA,RFC5574 audio/t140c 'IANA,RFC4351 audio/t38 'IANA,RFC4612 audio/telephone-event 'IANA,RFC4733 audio/tone 'IANA,RFC4733 audio/UEMCLIP 'IANA,RFC5686 audio/ulpfec 'IANA,RFC5109 audio/VDVI 'IANA,RFC4856 audio/VMR-WB 'IANA,RFC4348,RFC4424 audio/vnd.3gpp.iufp 'IANA,[Belling] audio/vnd.4SB 'IANA,[De Jaham] audio/vnd.audiokoz 'IANA,[DeBarros] audio/vnd.CELP 'IANA,[De Jaham] audio/vnd.cisco.nse 'IANA,[Kumar] audio/vnd.cmles.radio-events 'IANA,[Goulet] audio/vnd.cns.anp1 'IANA,[McLaughlin] audio/vnd.cns.inf1 'IANA,[McLaughlin] audio/vnd.dece.audio 'IANA,[Dolan] audio/vnd.digital-winds @eol :7bit 'IANA,[Strazds] audio/vnd.dlna.adts 'IANA,[Heredia] audio/vnd.dolby.heaac.1 'IANA,[Hattersley] audio/vnd.dolby.heaac.2 'IANA,[Hattersley] audio/vnd.dolby.mlp 'IANA,[Ward] audio/vnd.dolby.mps 'IANA,[Hattersley] audio/vnd.dolby.pl2 'IANA,[Hattersley] audio/vnd.dolby.pl2x 'IANA,[Hattersley] audio/vnd.dolby.pl2z 'IANA,[Hattersley] audio/vnd.dolby.pulse.1 'IANA,[Hattersley] audio/vnd.dra 'IANA,[Tian] audio/vnd.dts 'IANA,[Zou] audio/vnd.dts.hd 'IANA,[Zou] audio/vnd.dvb.file 'IANA,[Siebert] audio/vnd.everad.plj @plj 'IANA,[Cicelsky] audio/vnd.hns.audio 'IANA,[Swaminathan] audio/vnd.lucent.voice @lvp 'IANA,[Vaudreuil] audio/vnd.ms-playready.media.pya 'IANA,[DiAcetis] audio/vnd.nokia.mobile-xmf @mxmf 'IANA,[Nokia Corporation=Nokia] audio/vnd.nortel.vbk @vbk 'IANA,[Parsons] audio/vnd.nuera.ecelp4800 @ecelp4800 'IANA,[Fox] audio/vnd.nuera.ecelp7470 @ecelp7470 'IANA,[Fox] audio/vnd.nuera.ecelp9600 @ecelp9600 'IANA,[Fox] audio/vnd.octel.sbc 'IANA,[Vaudreuil] audio/vnd.rhetorex.32kadpcm 'IANA,[Vaudreuil] audio/vnd.rip 'IANA,[Dawe] audio/vnd.sealedmedia.softseal.mpeg @smp3,smp,s1m 'IANA,[Petersen] audio/vnd.vmx.cvsd 'IANA,[Vaudreuil] audio/vorbis 'IANA,RFC5215 audio/vorbis-config 'IANA,RFC5215 mime-types-1.25/lib/mime/types/application.mac0000644000004100000410000000016312215067016021410 0ustar www-datawww-datamac:application/x-apple-diskimage @dmg mac:application/x-mac @bin :base64 mac:application/x-macbase64 @bin :base64 mime-types-1.25/lib/mime/types/text.vms0000644000004100000410000000003212215067016020131 0ustar www-datawww-datavms:text/plain @doc :8bit mime-types-1.25/lib/mime/types/application.nonstandard0000644000004100000410000001104212215067016023161 0ustar www-datawww-data*application/acad 'LTSW *application/appledouble :base64 *application/clariscad 'LTSW *application/drafting 'LTSW *application/dxf 'LTSW *application/excel @xls,xlt 'LTSW *application/fractals 'LTSW *application/i-deas 'LTSW *application/macbinary 'LTSW *application/netcdf @nc,cdf 'LTSW *application/powerpoint @ppt,pps,pot :base64 'LTSW *application/pro_eng 'LTSW *application/set 'LTSW *application/SLA 'LTSW *application/solids 'LTSW *application/STEP 'LTSW *application/vda 'LTSW *application/vnd.adobe.air-application-installer-package+zip @air :base64 *application/vnd.android.package-archive @apk *application/vnd.ms-fontobject @eot *application/vnd.rn-realmedia @rm *application/vnd.stardivision.calc @sdc *application/vnd.stardivision.chart @sds *application/vnd.stardivision.draw @sda *application/vnd.stardivision.impress @sdd *application/vnd.stardivision.math @sdf *application/vnd.stardivision.writer @sdw *application/vnd.stardivision.writer-global @sgl *application/vnd.sun.xml.calc @sxc *application/vnd.sun.xml.calc.template @stc *application/vnd.sun.xml.draw @sxd *application/vnd.sun.xml.draw.template @std *application/vnd.sun.xml.impress @sxi *application/vnd.sun.xml.impress.template @sti *application/vnd.sun.xml.math @sxm *application/vnd.sun.xml.writer @sxw *application/vnd.sun.xml.writer.global @sxg *application/vnd.sun.xml.writer.template @stw *application/word @doc,dot 'LTSW application/epub+zip @epub application/rss+xml @rss application/x-bcpio @bcpio 'LTSW application/x-bleeper @bleep :base64 application/x-bzip2 @bz2 application/x-cdlink @vcd application/x-chess-pgn @pgn application/x-chrome-extension @crx application/x-clariscad application/x-compressed @z,Z :base64 'LTSW application/x-cpio @cpio :base64 'LTSW application/x-csh @csh :8bit 'LTSW application/x-cu-seeme @csm,cu application/x-debian-package @deb application/x-director @dcr,@dir,@dxr application/x-drafting application/x-dvi @dvi :base64 'LTSW application/x-dxf application/x-excel application/x-font-opentype @otf :base64 application/x-font-truetype @ttf :base64 application/x-fractals application/x-futuresplash @spl application/x-ghostview application/x-gtar @gtar,tgz,tbz2,tbz :base64 'LTSW application/x-gzip @gz :base64 'LTSW application/x-hdf @hdf 'LTSW application/x-hep @hep application/x-html+ruby @rhtml :8bit application/x-httpd-php @phtml,pht,php :8bit application/x-ibooks+zip @ibooks application/x-ica @ica application/x-ideas application/x-imagemap @imagemap,imap :8bit application/x-iwork-keynote-sffkey @key application/x-iwork-numbers-sffnumbers @numbers application/x-iwork-pages-sffpages @pages application/x-java-archive @jar 'LTSW application/x-java-jnlp-file @jnlp 'LTSW application/x-java-serialized-object @ser 'LTSW application/x-java-vm @class 'LTSW application/x-koan @skp,skd,skt,skm application/x-latex @ltx,latex :8bit 'LTSW application/x-mac-compactpro @cpt application/x-macbinary application/x-maker @frm,maker,frame,fm,fb,book,fbdoc =use-instead:application/vnd.framemaker application/x-mathematica-old application/x-mif @mif 'LTSW application/x-mobipocket-ebook @mobi application/x-ms-wmd @wmd application/x-ms-wmz @wmz application/x-msaccess @mda,mdb,mde,mdf application/x-msdos-program @cmd,bat,com,exe :base64 application/x-msdownload @exe,com :base64 application/x-netcdf @nc,cdf application/x-ns-proxy-autoconfig @pac application/x-opera-extension @oex application/x-pagemaker @pm,pm5,pt5 application/x-perl @pl,pm :8bit application/x-pgp application/x-python @py :8bit application/x-quicktimeplayer @qtl application/x-rar-compressed @rar :base64 application/x-remote_printing application/x-ruby @rb,rbw :8bit application/x-set application/x-sh @sh :8bit 'LTSW application/x-shar @shar :8bit 'LTSW application/x-shockwave-flash @swf application/x-SLA application/x-solids application/x-spss @sav,sbs,sps,spo,spp application/x-STEP application/x-stuffit @sit :base64 'LTSW application/x-sv4cpio @sv4cpio :base64 'LTSW application/x-sv4crc @sv4crc :base64 'LTSW application/x-tar @tar :base64 'LTSW application/x-tcl @tcl :8bit 'LTSW application/x-tex @tex :8bit application/x-texinfo @texinfo,texi :8bit application/x-toolbook @tbk application/x-troff-man @man :8bit 'LTSW application/x-troff-me @me 'LTSW application/x-troff-ms @ms 'LTSW application/x-ustar @ustar :base64 'LTSW application/x-VMSBACKUP @bck :base64 application/x-wais-source @src 'LTSW application/x-web-app-manifest+json @webapp application/x-Wingz @wz application/x-wordperfect6.1 @wp6 application/x-x509-ca-cert @crt :base64 application/x-xpinstall @xpi application/x-7z-compressed @7z '{7zip=http://www.7-zip.org/7z.html} mime-types-1.25/lib/mime/types/video.obsolete0000644000004100000410000000021012215067016021260 0ustar www-datawww-data*!video/dl @dl :base64 =use-instead:video/x-dl *!video/gl @gl :base64 =use-instead:video/x-gl *!video/vnd.dlna.mpeg-tts 'IANA,[Heredia] mime-types-1.25/lib/mime/types/application0000644000004100000410000015146512215067016020665 0ustar www-datawww-dataapplication/1d-interleaved-parityfec 'IANA,RFC6015 application/3gpp-ims+xml 'IANA,[Meredith] application/activemessage 'IANA,[Shapiro] application/andrew-inset 'IANA,[Borenstein] application/applefile :base64 'IANA,[Faltstrom] application/atom+xml @atom :8bit 'IANA,RFC4287,RFC5023 application/atomcat+xml :8bit 'IANA,RFC5023 application/atomdeleted+xml :8bit 'IANA,RFC6721 application/atomicmail 'IANA,[Borenstein] application/atomsvc+xml :8bit 'IANA,RFC5023 application/auth-policy+xml :8bit 'IANA,RFC4745 application/batch-SMTP 'IANA,RFC2442 application/beep+xml 'IANA,RFC3080 application/calendar+xml 'IANA,RFC6321 application/call-completion 'IANA,RFC6910 application/cals-1840 'IANA,RFC1895 application/ccmp+xml 'IANA,RFC6503 application/ccxml+xml 'IANA,RFC4267 application/cdmi-capability 'IANA,RFC6208 application/cdmi-container 'IANA,RFC6208 application/cdmi-domain 'IANA,RFC6208 application/cdmi-object 'IANA,RFC6208 application/cdmi-queue 'IANA,RFC6208 application/cea-2018+xml 'IANA,[Zimmermann] application/cellml+xml 'IANA,RFC4708 application/cfw 'IANA,RFC6230 application/cnrp+xml 'IANA,RFC3367 application/commonground 'IANA,[Glazer] application/conference-info+xml 'IANA,RFC4575 application/cpl+xml 'IANA,RFC3880 application/csta+xml 'IANA,[Ecma International Helpdesk] application/CSTAdata+xml 'IANA,[Ecma International Helpdesk] application/cybercash 'IANA,[Eastlake] application/dash+xml 'IANA,[Stockhammer] application/davmount+xml 'IANA,RFC4709 application/dca-rft 'IANA,[Campbell] application/dec-dx 'IANA,[Campbell] application/dialog-info+xml 'IANA,RFC4235 application/dicom @dcm 'IANA,RFC3240 application/dns 'IANA,RFC4027 application/dskpp+xml 'IANA,RFC6063 application/dssc+der 'IANA,RFC5698 application/dssc+xml 'IANA,RFC5698 application/dvcs 'IANA,RFC3029 application/ecmascript 'IANA,RFC4329 application/EDI-Consent 'IANA,RFC1767 application/EDI-X12 'IANA,RFC1767 application/EDIFACT 'IANA,RFC1767 application/emma+xml 'IANA,[W3C] application/encaprtp 'IANA,RFC6849 application/epp+xml 'IANA,RFC5730 application/eshop 'IANA,[Katz] application/example 'IANA,RFC4735 application/exi 'IANA,[W3C] application/fastinfoset 'IANA,[ITU-T ASN.1 Rapporteur] application/fastsoap 'IANA,[ITU-T ASN.1 Rapporteur] application/fdt+xml 'IANA,RFC6726 application/fits 'IANA,RFC4047 application/font-tdpfr @pfr 'IANA,RFC3073 application/font-woff @woff :base64 'IANA,[W3C] application/framework-attributes+xml 'IANA,RFC6230 application/gzip 'IANA,RFC6713 application/H224 'IANA,RFC4573 application/held+xml 'IANA,RFC5985 application/http 'IANA,RFC2616 application/hyperstudio @stk 'IANA,[Domino] application/ibe-key-request+xml 'IANA,RFC5408 application/ibe-pkg-reply+xml 'IANA,RFC5408 application/ibe-pp-data 'IANA,RFC5408 application/iges 'IANA,[Parks] application/im-iscomposing+xml 'IANA,RFC3994 application/index 'IANA,RFC2652 application/index.cmd 'IANA,RFC2652 application/index.obj 'IANA,RFC2652 application/index.response 'IANA,RFC2652 application/index.vnd 'IANA,RFC2652 application/inkml+xml 'IANA,[Ashimura] application/iotp 'IANA,RFC2935 application/ipfix 'IANA,RFC5655 application/ipp 'IANA,RFC2910 application/isup 'IANA,RFC3204 application/javascript @js :8bit 'IANA,RFC4329 application/json @json :8bit 'IANA,RFC4627 application/json-patch+json 'IANA,RFC6902 application/kpml-request+xml 'IANA,RFC4730 application/kpml-response+xml 'IANA,RFC4730 application/link-format 'IANA,RFC6690 application/lost+xml 'IANA,RFC5222 application/lostsync+xml 'IANA,RFC6739 application/mac-binhex40 @hqx :8bit 'IANA,[Faltstrom] application/macwriteii 'IANA,[Lindner] application/mads+xml 'IANA,RFC6207 application/marc 'IANA,RFC2220 application/marcxml+xml 'IANA,RFC6207 application/mathematica 'IANA,[Wolfram] application/mathml+xml 'IANA,[W3C] application/mathml-content+xml 'IANA,[W3C] application/mathml-presentation+xml 'IANA,[W3C] application/mbms-associated-procedure-description+xml 'IANA,[3GPP] application/mbms-deregister+xml 'IANA,[3GPP] application/mbms-envelope+xml 'IANA,[3GPP] application/mbms-msk+xml 'IANA,[3GPP] application/mbms-msk-response+xml 'IANA,[3GPP] application/mbms-protection-description+xml 'IANA,[3GPP] application/mbms-reception-report+xml 'IANA,[3GPP] application/mbms-register+xml 'IANA,[3GPP] application/mbms-register-response+xml 'IANA,[3GPP] application/mbms-schedule+xml 'IANA,[3GPP],[Turcotte] application/mbms-user-service-description+xml 'IANA,[3GPP] application/mbox 'IANA,RFC4155 application/media-policy-dataset+xml 'IANA,RFC6796 application/media_control+xml 'IANA,RFC5168 application/mediaservercontrol+xml 'IANA,RFC5022 application/metalink4+xml 'IANA,RFC5854 application/mets+xml 'IANA,RFC6207 application/mikey 'IANA,RFC3830 application/mods+xml 'IANA,RFC6207 application/moss-keys 'IANA,RFC1848 application/moss-signature 'IANA,RFC1848 application/mosskey-data 'IANA,RFC1848 application/mosskey-request 'IANA,RFC1848 application/mp21 'IANA,RFC6381,[Singer] application/mp4 @mp4,mpg4 'IANA,RFC4337,RFC6381 application/mpeg4-generic 'IANA,RFC3640 application/mpeg4-iod 'IANA,RFC4337 application/mpeg4-iod-xmt 'IANA,RFC4337 application/mrb-consumer+xml 'IANA,RFC6917 application/mrb-publish+xml 'IANA,RFC6917 application/msc-ivr+xml 'IANA,RFC6231 application/msc-mixer+xml 'IANA,RFC6505 application/msword @doc,dot,wrd :base64 'IANA,[Lindner] application/mxf @mxf 'IANA,RFC4539 application/nasdata 'IANA,RFC4707 application/news-checkgroups 'IANA,RFC5537 application/news-groupinfo 'IANA,RFC5537 application/news-transmission 'IANA,RFC5537 application/nlsml+xml 'IANA,RFC6787 application/nss 'IANA,[Hammer] application/ocsp-request 'IANA,RFC6960 application/ocsp-response 'IANA,RFC6960 application/octet-stream @bin,dms,lha,lzh,exe,class,ani,pgp,so,dll,dylib :base64 'IANA,RFC2045,RFC2046 application/oda @oda 'IANA,RFC2045,RFC2046 application/oebps-package+xml 'IANA,RFC4839 application/ogg @ogx 'IANA,RFC5334 application/oxps 'IANA,[Ecma International Helpdesk] application/p2p-overlay+xml 'IANA,{RFC-ietf-p2psip-base-26=http://tools.ietf.org/html/draft-ietf-p2psip-base} application/parityfec 'IANA,RFC5109 application/patch-ops-error+xml 'IANA,RFC5261 application/pdf @pdf :base64 'IANA,RFC3778 application/pgp-encrypted :7bit 'IANA,RFC3156 application/pgp-keys :7bit 'IANA,RFC3156 application/pgp-signature @sig :base64 'IANA,RFC3156 application/pidf+xml 'IANA,RFC3863 application/pidf-diff+xml 'IANA,RFC5262 application/pkcs10 @p10 'IANA,RFC5967 application/pkcs7-mime @p7m,p7c 'IANA,RFC5751 application/pkcs7-signature @p7s 'IANA,RFC5751 application/pkcs8 'IANA,RFC5958 application/pkix-attr-cert 'IANA,RFC5877 application/pkix-cert @cer 'IANA,RFC2585 application/pkix-crl @crl 'IANA,RFC2585 application/pkix-pkipath @pkipath 'IANA,RFC6066 application/pkixcmp @pki 'IANA,RFC2510 application/pls+xml 'IANA,RFC4267 application/poc-settings+xml 'IANA,RFC4354 application/postscript @ai,eps,ps :8bit 'IANA,RFC2045,RFC2046 application/provenance+xml 'IANA,[3GPP],[Firmin] application/prs.alvestrand.titrax-sheet 'IANA,[Alvestrand] application/prs.cww @cw,cww 'IANA,[Rungchavalnont] application/prs.nprend @rnd,rct 'IANA,[Doggett] application/prs.plucker 'IANA,[Janssen] application/prs.rdf-xml-crypt 'IANA,[Inkster] application/prs.xsf+xml 'IANA,[Stührenberg=Stuhrenberg] application/pskc+xml 'IANA,RFC6030 application/qsig 'IANA,RFC3204 application/raptorfec 'IANA,RFC6682 application/rdf+xml @rdf :8bit 'IANA,RFC3870 application/reginfo+xml 'IANA,RFC3680 application/relax-ng-compact-syntax 'IANA,{ISO/IEC 19757-2:2003/FDAM-1=http://www.jtc1sc34.org/repository/0661.pdf} application/remote-printing 'IANA,RFC1486,[Rose] application/resource-lists+xml 'IANA,RFC4826 application/resource-lists-diff+xml 'IANA,RFC5362 application/riscos 'IANA,[Smith] application/rlmi+xml 'IANA,RFC4662 application/rls-services+xml 'IANA,RFC4826 application/rpki-ghostbusters 'IANA,RFC6493 application/rpki-manifest 'IANA,RFC6481 application/rpki-roa 'IANA,RFC6481 application/rpki-updown 'IANA,RFC6492 application/rtf @rtf 'IANA,[Lindner] application/rtploopback 'IANA,RFC6849 application/rtx 'IANA,RFC4588 application/samlassertion+xml 'IANA,[OASIS Security Services Technical Committee (SSTC)] application/samlmetadata+xml 'IANA,[OASIS Security Services Technical Committee (SSTC)] application/sbml+xml 'IANA,RFC3823 application/scvp-cv-request 'IANA,RFC5055 application/scvp-cv-response 'IANA,RFC5055 application/scvp-vp-request 'IANA,RFC5055 application/scvp-vp-response 'IANA,RFC5055 application/sdp 'IANA,RFC4566 application/sep+xml 'IANA,[Robby_Simpson=RoSimpson],[ZigBee_Alliance=ZigBee] application/sep-exi 'IANA,[Robby_Simpson=RoSimpson],[ZigBee_Alliance=ZigBee] application/set-payment 'IANA,[Korver] application/set-payment-initiation 'IANA,[Korver] application/set-registration 'IANA,[Korver] application/set-registration-initiation 'IANA,[Korver] application/sgml @sgml 'IANA,RFC1874 application/sgml-open-catalog @soc 'IANA,[Grosso] application/shf+xml 'IANA,RFC4194 application/sieve @siv 'IANA,RFC5228 application/simple-filter+xml 'IANA,RFC4661 application/simple-message-summary 'IANA,RFC3842 application/simpleSymbolContainer 'IANA,[3GPP] application/slate 'IANA,[Crowley] application/smil+xml @smi,smil :8bit 'IANA,RFC4536 application/smpte336m 'IANA,RFC6597 application/soap+fastinfoset 'IANA,[ITU-T ASN.1 Rapporteur] application/soap+xml 'IANA,RFC3902 application/sparql-query 'IANA,[W3C] application/sparql-results+xml 'IANA,[W3C] application/spirits-event+xml 'IANA,RFC3910 application/sql 'IANA,RFC6922 application/srgs 'IANA,RFC4267 application/srgs+xml 'IANA,RFC4267 application/sru+xml 'IANA,RFC6207 application/ssml+xml 'IANA,RFC4267 application/tamp-apex-update 'IANA,RFC5934 application/tamp-apex-update-confirm 'IANA,RFC5934 application/tamp-community-update 'IANA,RFC5934 application/tamp-community-update-confirm 'IANA,RFC5934 application/tamp-error 'IANA,RFC5934 application/tamp-sequence-adjust 'IANA,RFC5934 application/tamp-sequence-adjust-confirm 'IANA,RFC5934 application/tamp-status-query 'IANA,RFC5934 application/tamp-status-response 'IANA,RFC5934 application/tamp-update 'IANA,RFC5934 application/tamp-update-confirm 'IANA,RFC5934 application/tei+xml 'IANA,RFC6129 application/thraud+xml 'IANA,RFC5941 application/timestamp-query 'IANA,RFC3161 application/timestamp-reply 'IANA,RFC3161 application/timestamped-data 'IANA,RFC5955 application/tve-trigger 'IANA,[Welsh] application/ulpfec 'IANA,RFC5109 application/urc-grpsheet+xml 'IANA,[Zimmermann] application/urc-ressheet+xml 'IANA,[Zimmermann] application/vcard+xml 'IANA,RFC6351 application/vemmi 'IANA,RFC2122 application/vnd.3gpp.bsf+xml 'IANA,[Meredith] application/vnd.3gpp.pic-bw-large @plb 'IANA,[Meredith] application/vnd.3gpp.pic-bw-small @psb 'IANA,[Meredith] application/vnd.3gpp.pic-bw-var @pvb 'IANA,[Meredith] application/vnd.3gpp.sms @sms 'IANA,[Meredith] application/vnd.3gpp2.bcmcsinfo+xml 'IANA,[Dryden] application/vnd.3gpp2.sms 'IANA,[Mahendran] application/vnd.3gpp2.tcap 'IANA,[Mahendran] application/vnd.3M.Post-it-Notes 'IANA,[O'Brien] application/vnd.accpac.simply.aso 'IANA,[Leow] application/vnd.accpac.simply.imp 'IANA,[Leow] application/vnd.acucobol 'IANA,[Lubin] application/vnd.acucorp @atc,acutc :7bit 'IANA,[Lubin] application/vnd.adobe.formscentral.fcdt 'IANA,[Solc] application/vnd.adobe.fxp 'IANA,[Brambley],[Heintz] application/vnd.adobe.partial-upload 'IANA,[Otala] application/vnd.adobe.xdp+xml 'IANA,[Brinkman] application/vnd.adobe.xfdf @xfdf 'IANA,[Perelman] application/vnd.aether.imp 'IANA,[Moskowitz] application/vnd.ah-barcode 'IANA,[Ichinose] application/vnd.ahead.space 'IANA,[Kristensen] application/vnd.airzip.filesecure.azf 'IANA,[Mould],[Clueit] application/vnd.airzip.filesecure.azs 'IANA,[Mould],[Clueit] application/vnd.americandynamics.acc 'IANA,[Sands] application/vnd.amiga.ami @ami 'IANA,[Blumberg] application/vnd.amundsen.maze+xml 'IANA,[Amundsen] application/vnd.anser-web-certificate-issue-initiation 'IANA,[Mori] application/vnd.antix.game-component 'IANA,[Shelton] application/vnd.api+json 'IANA,[Klabnik] application/vnd.apple.installer+xml 'IANA,[Bierman] application/vnd.apple.mpegurl 'IANA,[Singer],[Pantos] application/vnd.aristanetworks.swi 'IANA,[Fenner] application/vnd.astraea-software.iota 'IANA,[Snazell] application/vnd.audiograph 'IANA,[Slusanschi] application/vnd.autopackage 'IANA,[Hearn] application/vnd.avistar+xml 'IANA,[Vysotsky] application/vnd.balsamiq.bmml+xml 'IANA,[Giacomo_Guilizzoni] application/vnd.blueice.multipass @mpm 'IANA,[Holmstrom] application/vnd.bluetooth.ep.oob 'IANA,[Foley] application/vnd.bmi 'IANA,[Gotoh] application/vnd.businessobjects 'IANA,[Imoucha] application/vnd.cab-jscript 'IANA,[Falkenberg] application/vnd.canon-cpdl 'IANA,[Muto] application/vnd.canon-lips 'IANA,[Muto] application/vnd.cendio.thinlinc.clientconf 'IANA,[Åstrand=Astrand] application/vnd.century-systems.tcp_stream 'IANA,[Shuji Fujii=Shuji_Fujii] application/vnd.chemdraw+xml 'IANA,[Howes] application/vnd.chipnuts.karaoke-mmd 'IANA,[Xiong] application/vnd.cinderella @cdy 'IANA,[Kortenkamp] application/vnd.cirpack.isdn-ext 'IANA,[Mayeux] application/vnd.claymore 'IANA,[Simpson] application/vnd.cloanto.rp9 'IANA,[Labatt] application/vnd.clonk.c4group 'IANA,[Brammer] application/vnd.cluetrust.cartomobile-config 'IANA,[Paulsen] application/vnd.cluetrust.cartomobile-config-pkg 'IANA,[Paulsen] application/vnd.collection+json 'IANA,[Amundsen] application/vnd.collection.next+json 'IANA,[Ioseb Dzmanashvili=Ioseb_Dzmanashvili] application/vnd.commerce-battelle 'IANA,[Applebaum] application/vnd.commonspace 'IANA,[Chandhok] application/vnd.contact.cmsg 'IANA,[Patz] application/vnd.cosmocaller @cmc 'IANA,[Dellutri] application/vnd.crick.clicker 'IANA,[Burt] application/vnd.crick.clicker.keyboard 'IANA,[Burt] application/vnd.crick.clicker.palette 'IANA,[Burt] application/vnd.crick.clicker.template 'IANA,[Burt] application/vnd.crick.clicker.wordbank 'IANA,[Burt] application/vnd.criticaltools.wbs+xml @wbs 'IANA,[Spiller] application/vnd.ctc-posml 'IANA,[Kohlhepp] application/vnd.ctct.ws+xml 'IANA,[Ancona] application/vnd.cups-pdf 'IANA,[Sweet] application/vnd.cups-postscript 'IANA,[Sweet] application/vnd.cups-ppd 'IANA,[Sweet] application/vnd.cups-raster 'IANA,[Sweet] application/vnd.cups-raw 'IANA,[Sweet] application/vnd.curl @curl 'IANA,[Byrnes] application/vnd.cyan.dean.root+xml 'IANA,[Kern] application/vnd.cybank 'IANA,[Helmee] application/vnd.dart 'IANA,[Sandholm] application/vnd.data-vision.rdz @rdz 'IANA,[Fields] application/vnd.dece.data 'IANA,[Dolan] application/vnd.dece.ttml+xml 'IANA,[Dolan] application/vnd.dece.unspecified 'IANA,[Dolan] application/vnd.dece.zip 'IANA,[Dolan] application/vnd.denovo.fcselayout-link 'IANA,[Dixon] application/vnd.desmume.movie 'IANA,[Andersson] application/vnd.dir-bi.plate-dl-nosuffix 'IANA,[Yamanaka] application/vnd.dm.delegation+xml 'IANA,[Ferrazzini] application/vnd.dna 'IANA,[Searcy] application/vnd.dolby.mobile.1 'IANA,[Hattersley] application/vnd.dolby.mobile.2 'IANA,[Hattersley] application/vnd.dpgraph 'IANA,[Parker] application/vnd.dreamfactory @dfac 'IANA,[Appleton] application/vnd.dtg.local 'IANA,[Ali_Teffahi] application/vnd.dtg.local.flash 'IANA,[Ali_Teffahi] application/vnd.dtg.local.html 'IANA,[Ali_Teffahi] application/vnd.dvb.ait 'IANA,[Siebert],[Lagally] application/vnd.dvb.dvbj 'IANA,[Siebert],[Lagally] application/vnd.dvb.esgcontainer 'IANA,[Heuer] application/vnd.dvb.ipdcdftnotifaccess 'IANA,[Yue] application/vnd.dvb.ipdcesgaccess 'IANA,[Heuer] application/vnd.dvb.ipdcesgaccess2 'IANA,[Marcon] application/vnd.dvb.ipdcesgpdd 'IANA,[Marcon] application/vnd.dvb.ipdcroaming 'IANA,[Xu] application/vnd.dvb.iptv.alfec-base 'IANA,[Henry] application/vnd.dvb.iptv.alfec-enhancement 'IANA,[Henry] application/vnd.dvb.notif-aggregate-root+xml 'IANA,[Yue] application/vnd.dvb.notif-container+xml 'IANA,[Yue] application/vnd.dvb.notif-generic+xml 'IANA,[Yue] application/vnd.dvb.notif-ia-msglist+xml 'IANA,[Yue] application/vnd.dvb.notif-ia-registration-request+xml 'IANA,[Yue] application/vnd.dvb.notif-ia-registration-response+xml 'IANA,[Yue] application/vnd.dvb.notif-init+xml 'IANA,[Yue] application/vnd.dvb.pfr 'IANA,[Siebert],[Lagally] application/vnd.dvb.service 'IANA,[Siebert],[Lagally] application/vnd.dxr 'IANA,[Duffy] application/vnd.dynageo 'IANA,[Mechling] application/vnd.easykaraoke.cdgdownload 'IANA,[Downs] application/vnd.ecdis-update 'IANA,[Buettgenbach] application/vnd.ecowin.chart 'IANA,[Olsson] application/vnd.ecowin.filerequest 'IANA,[Olsson] application/vnd.ecowin.fileupdate 'IANA,[Olsson] application/vnd.ecowin.series 'IANA,[Olsson] application/vnd.ecowin.seriesrequest 'IANA,[Olsson] application/vnd.ecowin.seriesupdate 'IANA,[Olsson] application/vnd.emclient.accessrequest+xml 'IANA,[Navara] application/vnd.enliven 'IANA,[Santinelli] application/vnd.eprints.data+xml 'IANA,[Brody] application/vnd.epson.esf 'IANA,[Hoshina] application/vnd.epson.msf 'IANA,[Hoshina] application/vnd.epson.quickanime 'IANA,[Gu] application/vnd.epson.salt 'IANA,[Nagatomo] application/vnd.epson.ssf 'IANA,[Hoshina] application/vnd.ericsson.quickcall 'IANA,[Tidwell] application/vnd.eszigno3+xml 'IANA,[Tóth=Toth] application/vnd.etsi.aoc+xml 'IANA,[Hu] application/vnd.etsi.cug+xml 'IANA,[Hu] application/vnd.etsi.iptvcommand+xml 'IANA,[Hu] application/vnd.etsi.iptvdiscovery+xml 'IANA,[Hu] application/vnd.etsi.iptvprofile+xml 'IANA,[Hu] application/vnd.etsi.iptvsad-bc+xml 'IANA,[Hu] application/vnd.etsi.iptvsad-cod+xml 'IANA,[Hu] application/vnd.etsi.iptvsad-npvr+xml 'IANA,[Hu] application/vnd.etsi.iptvservice+xml 'IANA,[Ortega] application/vnd.etsi.iptvsync+xml 'IANA,[Ortega] application/vnd.etsi.iptvueprofile+xml 'IANA,[Hu] application/vnd.etsi.mcid+xml 'IANA,[Hu] application/vnd.etsi.mheg5 'IANA,[Ortega],[Medland] application/vnd.etsi.overload-control-policy-dataset+xml 'IANA,[Ortega] application/vnd.etsi.pstn+xml 'IANA,[Han],[Belling] application/vnd.etsi.sci+xml 'IANA,[Hu] application/vnd.etsi.simservs+xml 'IANA,[Hu] application/vnd.etsi.tsl+xml 'IANA,[Hu] application/vnd.etsi.tsl.der 'IANA,[Hu] application/vnd.eudora.data 'IANA,[Resnick] application/vnd.ezpix-album 'IANA,[Electronic Zombie, Corp.=ElectronicZombieCorp] application/vnd.ezpix-package 'IANA,[Electronic Zombie, Corp.=ElectronicZombieCorp] application/vnd.f-secure.mobile 'IANA,[Sarivaara] application/vnd.fdf 'IANA,[Zilles] application/vnd.fdsn.mseed 'IANA,[Trabant] application/vnd.fdsn.seed 'IANA,[Trabant] application/vnd.ffsns 'IANA,[Holstage] application/vnd.fints 'IANA,[Hammann] application/vnd.FloGraphIt 'IANA,[Floersch] application/vnd.fluxtime.clip 'IANA,[Winter] application/vnd.font-fontforge-sfd 'IANA,[Williams] application/vnd.framemaker @frm,maker,frame,fm,fb,book,fbdoc 'IANA,[Wexler] application/vnd.frogans.fnc 'IANA,[Tamas] application/vnd.frogans.ltf 'IANA,[Tamas] application/vnd.fsc.weblaunch @fsc :7bit 'IANA,[D.Smith] application/vnd.fujitsu.oasys 'IANA,[Togashi] application/vnd.fujitsu.oasys2 'IANA,[Togashi] application/vnd.fujitsu.oasys3 'IANA,[Okudaira] application/vnd.fujitsu.oasysgp 'IANA,[Sugimoto] application/vnd.fujitsu.oasysprs 'IANA,[Ogita] application/vnd.fujixerox.ART-EX 'IANA,[Tanabe] application/vnd.fujixerox.ART4 'IANA,[Tanabe] application/vnd.fujixerox.ddd 'IANA,[Onda] application/vnd.fujixerox.docuworks 'IANA,[Taguchi] application/vnd.fujixerox.docuworks.binder 'IANA,[Matsumoto] application/vnd.fujixerox.docuworks.container 'IANA,[Tashiro] application/vnd.fujixerox.HBPL 'IANA,[Tanabe] application/vnd.fut-misnet 'IANA,[Pruulmann] application/vnd.fuzzysheet 'IANA,[Birtwistle] application/vnd.genomatix.tuxedo @txd 'IANA,[Frey] application/vnd.geogebra.file 'IANA,[GeoGebra],[Kreis] application/vnd.geogebra.tool 'IANA,[GeoGebra],[Kreis] application/vnd.geometry-explorer 'IANA,[Hvidsten] application/vnd.geonext 'IANA,[Ehmann] application/vnd.geoplan 'IANA,[Mercat] application/vnd.geospace 'IANA,[Mercat] application/vnd.globalplatform.card-content-mgt 'IANA,[Bernabeu] application/vnd.globalplatform.card-content-mgt-response 'IANA,[Bernabeu] application/vnd.google-earth.kml+xml @kml :8bit 'IANA,[Ashbridge] application/vnd.google-earth.kmz @kmz :8bit 'IANA,[Ashbridge] application/vnd.grafeq 'IANA,[Tupper] application/vnd.gridmp 'IANA,[Lawson] application/vnd.groove-account 'IANA,[Joseph] application/vnd.groove-help 'IANA,[Joseph] application/vnd.groove-identity-message 'IANA,[Joseph] application/vnd.groove-injector 'IANA,[Joseph] application/vnd.groove-tool-message 'IANA,[Joseph] application/vnd.groove-tool-template 'IANA,[Joseph] application/vnd.groove-vcard 'IANA,[Joseph] application/vnd.hal+json 'IANA,[Kelly] application/vnd.hal+xml 'IANA,[Kelly] application/vnd.HandHeld-Entertainment+xml 'IANA,[Hamilton] application/vnd.hbci @hbci,hbc,kom,upa,pkd,bpd 'IANA,[Hammann] application/vnd.hcl-bireports 'IANA,[Serres] application/vnd.hhe.lesson-player @les 'IANA,[Jones] application/vnd.hp-HPGL @plt,hpgl 'IANA,[Pentecost] application/vnd.hp-hpid 'IANA,[Gupta] application/vnd.hp-hps 'IANA,[Aubrey] application/vnd.hp-jlyt 'IANA,[Gaash] application/vnd.hp-PCL 'IANA,[Pentecost] application/vnd.hp-PCLXL 'IANA,[Pentecost] application/vnd.httphone 'IANA,[Lefevre] application/vnd.hydrostatix.sof-data 'IANA,[Gillam] application/vnd.hzn-3d-crossword 'IANA,[Minnis] application/vnd.ibm.afplinedata 'IANA,[Buis] application/vnd.ibm.electronic-media @emm 'IANA,[Tantlinger] application/vnd.ibm.MiniPay 'IANA,[Herzberg] application/vnd.ibm.modcap 'IANA,[Hohensee] application/vnd.ibm.rights-management @irm 'IANA,[Tantlinger] application/vnd.ibm.secure-container @sc 'IANA,[Tantlinger] application/vnd.iccprofile 'IANA,[Green] application/vnd.ieee.1905 'IANA,[Rajkotia] application/vnd.igloader 'IANA,[Fisher] application/vnd.immervision-ivp 'IANA,[Villegas] application/vnd.immervision-ivu 'IANA,[Villegas] application/vnd.informedcontrol.rms+xml 'IANA,[Wahl] application/vnd.informix-visionary 'IANA,[Gales] application/vnd.infotech.project 'IANA,[Engelke] application/vnd.infotech.project+xml 'IANA,[Engelke] application/vnd.innopath.wamp.notification 'IANA,[Sudo] application/vnd.insors.igm 'IANA,[Swanson] application/vnd.intercon.formnet 'IANA,[Gurak] application/vnd.intergeo 'IANA,[Kreis=Kreis2] application/vnd.intertrust.digibox 'IANA,[Tomasello] application/vnd.intertrust.nncp 'IANA,[Tomasello] application/vnd.intu.qbo 'IANA,[Scratchley] application/vnd.intu.qfx 'IANA,[Scratchley] application/vnd.iptc.g2.conceptitem+xml 'IANA,[Steidl] application/vnd.iptc.g2.knowledgeitem+xml 'IANA,[Steidl] application/vnd.iptc.g2.newsitem+xml 'IANA,[Steidl] application/vnd.iptc.g2.newsmessage+xml 'IANA,[Steidl] application/vnd.iptc.g2.packageitem+xml 'IANA,[Steidl] application/vnd.iptc.g2.planningitem+xml 'IANA,[Steidl] application/vnd.ipunplugged.rcprofile @rcprofile 'IANA,[Ersson] application/vnd.irepository.package+xml @irp 'IANA,[Knowles] application/vnd.is-xpr 'IANA,[Natarajan] application/vnd.isac.fcs 'IANA,[RBrinkman] application/vnd.jam 'IANA,[B.Kumar] application/vnd.japannet-directory-service 'IANA,[Fujii] application/vnd.japannet-jpnstore-wakeup 'IANA,[Yoshitake] application/vnd.japannet-payment-wakeup 'IANA,[Fujii] application/vnd.japannet-registration 'IANA,[Yoshitake] application/vnd.japannet-registration-wakeup 'IANA,[Fujii] application/vnd.japannet-setstore-wakeup 'IANA,[Yoshitake] application/vnd.japannet-verification 'IANA,[Yoshitake] application/vnd.japannet-verification-wakeup 'IANA,[Fujii] application/vnd.jcp.javame.midlet-rms 'IANA,[Gorshenev] application/vnd.jisp @jisp 'IANA,[Deckers] application/vnd.joost.joda-archive 'IANA,[Joost] application/vnd.jsk.isdn-ngn 'IANA,[Kiyonobu] application/vnd.kahootz 'IANA,[Macdonald] application/vnd.kde.karbon @karbon 'IANA,[Faure] application/vnd.kde.kchart @chrt 'IANA,[Faure] application/vnd.kde.kformula @kfo 'IANA,[Faure] application/vnd.kde.kivio @flw 'IANA,[Faure] application/vnd.kde.kontour @kon 'IANA,[Faure] application/vnd.kde.kpresenter @kpr,kpt 'IANA,[Faure] application/vnd.kde.kspread @ksp 'IANA,[Faure] application/vnd.kde.kword @kwd,kwt 'IANA,[Faure] application/vnd.kenameaapp @htke 'IANA,[DiGiorgio-Haag] application/vnd.kidspiration @kia 'IANA,[Bennett] application/vnd.Kinar @kne,knp,sdf 'IANA,[Thakkar] application/vnd.koan 'IANA,[Cole] application/vnd.kodak-descriptor 'IANA,[Donahue] application/vnd.las.las+xml 'IANA,[Bailey=RBailey] application/vnd.liberty-request+xml 'IANA,[McDowell] application/vnd.llamagraphics.life-balance.desktop @lbd 'IANA,[White] application/vnd.llamagraphics.life-balance.exchange+xml @lbe 'IANA,[White] application/vnd.lotus-1-2-3 @wks,123 'IANA,[Wattenberger] application/vnd.lotus-approach 'IANA,[Wattenberger] application/vnd.lotus-freelance 'IANA,[Wattenberger] application/vnd.lotus-notes 'IANA,[Laramie] application/vnd.lotus-organizer 'IANA,[Wattenberger] application/vnd.lotus-screencam 'IANA,[Wattenberger] application/vnd.lotus-wordpro 'IANA,[Wattenberger] application/vnd.macports.portpkg 'IANA,[Berry] application/vnd.marlin.drm.actiontoken+xml 'IANA,[Ellison] application/vnd.marlin.drm.conftoken+xml 'IANA,[Ellison] application/vnd.marlin.drm.license+xml 'IANA,[Ellison] application/vnd.marlin.drm.mdcf 'IANA,[Ellison] application/vnd.mcd @mcd 'IANA,[Gotoh] application/vnd.medcalcdata 'IANA,[Schoonjans] application/vnd.mediastation.cdkey 'IANA,[Flurry] application/vnd.meridian-slingshot 'IANA,[Wedel] application/vnd.MFER 'IANA,[Hirai] application/vnd.mfmp @mfm 'IANA,[Ikeda] application/vnd.micrografx.flo @flo 'IANA,[Prevo] application/vnd.micrografx.igx @igx 'IANA,[Prevo] application/vnd.mif @mif 'IANA,[Wexler] application/vnd.minisoft-hp3000-save 'IANA,[Bartram] application/vnd.mitsubishi.misty-guard.trustweb 'IANA,[Tanaka] application/vnd.Mobius.DAF 'IANA,[Kabayama] application/vnd.Mobius.DIS 'IANA,[Kabayama] application/vnd.Mobius.MBK 'IANA,[Devasia] application/vnd.Mobius.MQY 'IANA,[Devasia] application/vnd.Mobius.MSL 'IANA,[Kabayama] application/vnd.Mobius.PLC 'IANA,[Kabayama] application/vnd.Mobius.TXF 'IANA,[Kabayama] application/vnd.mophun.application @mpn 'IANA,[Wennerstrom] application/vnd.mophun.certificate @mpc 'IANA,[Wennerstrom] application/vnd.motorola.flexsuite 'IANA,[Patton] application/vnd.motorola.flexsuite.adsi 'IANA,[Patton] application/vnd.motorola.flexsuite.fis 'IANA,[Patton] application/vnd.motorola.flexsuite.gotap 'IANA,[Patton] application/vnd.motorola.flexsuite.kmr 'IANA,[Patton] application/vnd.motorola.flexsuite.ttc 'IANA,[Patton] application/vnd.motorola.flexsuite.wem 'IANA,[Patton] application/vnd.motorola.iprm 'IANA,[Shamsaasef] application/vnd.mozilla.xul+xml @xul 'IANA,[McDaniel] application/vnd.ms-artgalry @cil 'IANA,[Slawson] application/vnd.ms-asf @asf 'IANA,[Fleischman] application/vnd.ms-cab-compressed @cab 'IANA,[Scarborough] application/vnd.ms-excel @xls,xlt :base64 'IANA,[Gill] application/vnd.ms-excel.addin.macroEnabled.12 'IANA,[Rae] application/vnd.ms-excel.sheet.binary.macroEnabled.12 @xlsb 'IANA,[Rae] application/vnd.ms-excel.sheet.macroEnabled.12 @xlsm 'IANA,[Rae] application/vnd.ms-excel.template.macroEnabled.12 'IANA,[Rae] application/vnd.ms-fontobject 'IANA,[Scarborough] application/vnd.ms-htmlhelp 'IANA,[Techtonik] application/vnd.ms-ims 'IANA,[Ledoux] application/vnd.ms-lrm @lrm 'IANA,[Ledoux] application/vnd.ms-office.activeX+xml 'IANA,[Rae] application/vnd.ms-officetheme 'IANA,[Rae] application/vnd.ms-playready.initiator+xml 'IANA,[Schneider] application/vnd.ms-powerpoint @ppt,pps,pot :base64 'IANA,[Gill] application/vnd.ms-powerpoint.addin.macroEnabled.12 'IANA,[Rae] application/vnd.ms-powerpoint.presentation.macroEnabled.12 'IANA,[Rae] application/vnd.ms-powerpoint.slide.macroEnabled.12 'IANA,[Rae] application/vnd.ms-powerpoint.slideshow.macroEnabled.12 'IANA,[Rae] application/vnd.ms-powerpoint.template.macroEnabled.12 @potm 'IANA,[Rae] application/vnd.ms-project @mpp :base64 'IANA,[Gill] application/vnd.ms-tnef :base64 'IANA,[Gill] application/vnd.ms-windows.printerpairing 'IANA,[Hutchings] application/vnd.ms-wmdrm.lic-chlg-req 'IANA,[Lau] application/vnd.ms-wmdrm.lic-resp 'IANA,[Lau] application/vnd.ms-wmdrm.meter-chlg-req 'IANA,[Lau] application/vnd.ms-wmdrm.meter-resp 'IANA,[Lau] application/vnd.ms-word.document.macroEnabled.12 'IANA,[Rae] application/vnd.ms-word.template.macroEnabled.12 'IANA,[Rae] application/vnd.ms-works :base64 'IANA,[Gill] application/vnd.ms-wpl @wpl :base64 'IANA,[Plastina] application/vnd.ms-xpsdocument @xps :8bit 'IANA,[McGatha] application/vnd.mseq @mseq 'IANA,[Le Bodic] application/vnd.msign 'IANA,[Borcherding] application/vnd.multiad.creator 'IANA,[Mills] application/vnd.multiad.creator.cif 'IANA,[Mills] application/vnd.music-niff 'IANA,[Butler] application/vnd.musician 'IANA,[Adams] application/vnd.muvee.style 'IANA,[Anantharamu] application/vnd.mynfc 'IANA,[Lefevre] application/vnd.ncd.control 'IANA,[Tarkkala] application/vnd.ncd.reference 'IANA,[Tarkkala] application/vnd.nervana @ent,entity,req,request,bkm,kcm 'IANA,[Judkins] application/vnd.netfpx 'IANA,[Mutz] application/vnd.neurolanguage.nlu 'IANA,[DuFeu] application/vnd.nintendo.nitro.rom 'IANA,[Andersson] application/vnd.nitf 'IANA,[Rogan] application/vnd.noblenet-directory 'IANA,[Solomon] application/vnd.noblenet-sealer 'IANA,[Solomon] application/vnd.noblenet-web 'IANA,[Solomon] application/vnd.nokia.catalogs 'IANA,[Nokia] application/vnd.nokia.conml+wbxml 'IANA,[Nokia] application/vnd.nokia.conml+xml 'IANA,[Nokia] application/vnd.nokia.iptv.config+xml 'IANA,[Nokia] application/vnd.nokia.iSDS-radio-presets 'IANA,[Nokia] application/vnd.nokia.landmark+wbxml 'IANA,[Nokia] application/vnd.nokia.landmark+xml 'IANA,[Nokia] application/vnd.nokia.landmarkcollection+xml 'IANA,[Nokia] application/vnd.nokia.n-gage.ac+xml 'IANA,[Nokia] application/vnd.nokia.n-gage.data 'IANA,[Nokia] application/vnd.nokia.n-gage.symbian.install 'IANA,[Nokia] application/vnd.nokia.ncd 'IANA,[Nokia] application/vnd.nokia.pcd+wbxml 'IANA,[Nokia] application/vnd.nokia.pcd+xml 'IANA,[Nokia] application/vnd.nokia.radio-preset @rpst 'IANA,[Nokia] application/vnd.nokia.radio-presets @rpss 'IANA,[Nokia] application/vnd.novadigm.EDM 'IANA,[Swenson] application/vnd.novadigm.EDX 'IANA,[Swenson] application/vnd.novadigm.EXT 'IANA,[Swenson] application/vnd.ntt-local.content-share 'IANA,[Taya] application/vnd.ntt-local.file-transfer 'IANA,[NTT-local] application/vnd.ntt-local.sip-ta_remote 'IANA,[NTT-local] application/vnd.ntt-local.sip-ta_tcp_stream 'IANA,[NTT-local] application/vnd.oasis.opendocument.chart @odc 'IANA,[Oppermann] application/vnd.oasis.opendocument.chart-template @odc 'IANA,[Oppermann] application/vnd.oasis.opendocument.database @odb 'IANA,[Schubert],[Oasis OpenDocument TC=OASIS OpenDocumentTC] application/vnd.oasis.opendocument.formula @odf 'IANA,[Oppermann] application/vnd.oasis.opendocument.formula-template @odf 'IANA,[Oppermann] application/vnd.oasis.opendocument.graphics @odg 'IANA,[Oppermann] application/vnd.oasis.opendocument.graphics-template @otg 'IANA,[Oppermann] application/vnd.oasis.opendocument.image @odi 'IANA,[Oppermann] application/vnd.oasis.opendocument.image-template @odi 'IANA,[Oppermann] application/vnd.oasis.opendocument.presentation @odp 'IANA,[Oppermann] application/vnd.oasis.opendocument.presentation-template @otp 'IANA,[Oppermann] application/vnd.oasis.opendocument.spreadsheet @ods 'IANA,[Oppermann] application/vnd.oasis.opendocument.spreadsheet-template @ots 'IANA,[Oppermann] application/vnd.oasis.opendocument.text @odt 'IANA,[Oppermann] application/vnd.oasis.opendocument.text-master @odm 'IANA,[Schubert],[OASIS] application/vnd.oasis.opendocument.text-template @ott 'IANA,[Schubert],[OASIS] application/vnd.oasis.opendocument.text-web @oth 'IANA,[Schubert],[OASIS] application/vnd.obn 'IANA,[Hessling] application/vnd.oftn.l10n+json 'IANA,[Grey] application/vnd.oipf.contentaccessdownload+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.contentaccessstreaming+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.cspg-hexbinary 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.dae.svg+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.dae.xhtml+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.mippvcontrolmessage+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.pae.gem 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.spdiscovery+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.spdlist+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.ueprofile+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.oipf.userprofile+xml 'IANA,[D'Esclercs=DEsclercs] application/vnd.olpc-sugar 'IANA,[Palmieri] application/vnd.oma-scws-config 'IANA,[Mahalal] application/vnd.oma-scws-http-request 'IANA,[Mahalal] application/vnd.oma-scws-http-response 'IANA,[Mahalal] application/vnd.oma.bcast.associated-procedure-parameter+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.drm-trigger+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.imd+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.ltkm 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.notification+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.provisioningtrigger 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.sgboot 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.sgdd+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.sgdu 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.simple-symbol-container 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.smartcard-trigger+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.sprov+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.bcast.stkm 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.cab-address-book+xml 'IANA,[Wang],[OMA] application/vnd.oma.cab-pcc+xml 'IANA,[Wang],[OMA] application/vnd.oma.cab-subs-invite+xml 'IANA,[Wang],[OMA] application/vnd.oma.cab-user-prefs+xml 'IANA,[Wang],[OMA] application/vnd.oma.dcd 'IANA,[Primo],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.dcdc 'IANA,[Primo],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.dd2+xml 'IANA,[Sato],[Open Mobile Alliance's BAC DLDRM Working Group] application/vnd.oma.drm.risd+xml 'IANA,[Rauschenbach],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.group-usage-list+xml 'IANA,[Kelley],[OMA Presence and Availability (PAG) Working Group] application/vnd.oma.pal+xml 'IANA,[McColgan],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.poc.detailed-progress-report+xml 'IANA,[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.oma.poc.final-report+xml 'IANA,[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.oma.poc.groups+xml 'IANA,[Kelley],[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.oma.poc.invocation-descriptor+xml 'IANA,[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.oma.poc.optimized-progress-report+xml 'IANA,[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.oma.push 'IANA,[Sullivan],[OMA] application/vnd.oma.scidm.messages+xml 'IANA,[Zeng],[OMNA - Open Mobile Naming Authority=OMNA-OpenMobileNamingAuthority] application/vnd.oma.xcap-directory+xml 'IANA,[Kelley],[OMA Presence and Availability (PAG) Working Group] application/vnd.omads-email+xml 'IANA,[OMA Data Synchronization Working Group] application/vnd.omads-file+xml 'IANA,[OMA Data Synchronization Working Group] application/vnd.omads-folder+xml 'IANA,[OMA Data Synchronization Working Group] application/vnd.omaloc-supl-init 'IANA,[Grange] application/vnd.openofficeorg.extension 'IANA,[Lingner] application/vnd.openxmlformats-officedocument.custom-properties+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.customXmlProperties+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawing+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.chart+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.extended-properties+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.comments+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.presentation @pptx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.presProps+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slide 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slide+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slideshow @ppsx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.tags+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.template @potx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.template.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.sheet @xlsx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.template 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.theme+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.themeOverride+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.vmlDrawing 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.document @docx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.template @dotx 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml 'IANA,[Murata] application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml 'IANA,[Murata] application/vnd.openxmlformats-package.core-properties+xml 'IANA,[Murata] application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml 'IANA,[Murata] application/vnd.openxmlformats-package.relationships+xml 'IANA,[Murata] application/vnd.orange.indata 'IANA,[CHATRAS_Bruno] application/vnd.osa.netdeploy 'IANA,[Klos] application/vnd.osgeo.mapguide.package 'IANA,[Birch] application/vnd.osgi.bundle 'IANA,[Kriens] application/vnd.osgi.dp 'IANA,[Kriens] application/vnd.osgi.subsystem 'IANA,[Kriens] application/vnd.otps.ct-kip+xml 'IANA,[Nyström=Nystrom] application/vnd.palm @prc,pdb,pqa,oprc :base64 'IANA,[Peacock] application/vnd.paos.xml 'IANA,[Kemp] application/vnd.pawaafile 'IANA,[Baskaran] application/vnd.pg.format 'IANA,[Gandert] application/vnd.pg.osasli 'IANA,[Gandert] application/vnd.piaccess.application-licence 'IANA,[Maneos] application/vnd.picsel @efif 'IANA,[Naccarato] application/vnd.pmi.widget 'IANA,[Lewis] application/vnd.poc.group-advertisement+xml 'IANA,[Kelley],[OMA Push to Talk over Cellular (POC) Working Group] application/vnd.pocketlearn 'IANA,[Pando] application/vnd.powerbuilder6 'IANA,[Guy] application/vnd.powerbuilder6-s 'IANA,[Guy] application/vnd.powerbuilder7 'IANA,[Shilts] application/vnd.powerbuilder7-s 'IANA,[Shilts] application/vnd.powerbuilder75 'IANA,[Shilts] application/vnd.powerbuilder75-s 'IANA,[Shilts] application/vnd.preminet 'IANA,[Tenhunen] application/vnd.previewsystems.box 'IANA,[Smolgovsky] application/vnd.proteus.magazine 'IANA,[Hoch] application/vnd.publishare-delta-tree 'IANA,[Ben-Kiki] application/vnd.pvi.ptid1 @pti,ptid 'IANA,[Lamb] application/vnd.pwg-multiplexed 'IANA,RFC3391 application/vnd.pwg-xhtml-print+xml 'IANA,[Wright] application/vnd.qualcomm.brew-app-res 'IANA,[Forrester] application/vnd.Quark.QuarkXPress @qxd,qxt,qwd,qwt,qxl,qxb :8bit 'IANA,[Scheidler] application/vnd.quobject-quoxdocument 'IANA,[Ludwig] application/vnd.radisys.moml+xml 'IANA,RFC5707 application/vnd.radisys.msml+xml 'IANA,RFC5707 application/vnd.radisys.msml-audit+xml 'IANA,RFC5707 application/vnd.radisys.msml-audit-conf+xml 'IANA,RFC5707 application/vnd.radisys.msml-audit-conn+xml 'IANA,RFC5707 application/vnd.radisys.msml-audit-dialog+xml 'IANA,RFC5707 application/vnd.radisys.msml-audit-stream+xml 'IANA,RFC5707 application/vnd.radisys.msml-conf+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-base+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-fax-detect+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-fax-sendrecv+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-group+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-speech+xml 'IANA,RFC5707 application/vnd.radisys.msml-dialog-transform+xml 'IANA,RFC5707 application/vnd.rainstor.data 'IANA,[Crook] application/vnd.rapid 'IANA,[Szekely] application/vnd.realvnc.bed 'IANA,[Reeves] application/vnd.recordare.musicxml 'IANA,[Good] application/vnd.recordare.musicxml+xml 'IANA,[Good] application/vnd.RenLearn.rlprint 'IANA,[Wick] application/vnd.rig.cryptonote 'IANA,[Jibiki] application/vnd.route66.link66+xml 'IANA,[Kikstra] application/vnd.rs-274x 'IANA,[Harding] application/vnd.ruckus.download 'IANA,[Harris] application/vnd.s3sms 'IANA,[Tarkkala] application/vnd.sailingtracker.track 'IANA,[Vesalainen] application/vnd.sbm.cid 'IANA,[Kusakari] application/vnd.sbm.mid2 'IANA,[Murai] application/vnd.scribus 'IANA,[Bradney] application/vnd.sealed.3df 'IANA,[Kwan] application/vnd.sealed.csf 'IANA,[Kwan] application/vnd.sealed.doc @sdoc,sdo,s1w 'IANA,[Petersen] application/vnd.sealed.eml @seml,sem 'IANA,[Petersen] application/vnd.sealed.mht @smht,smh 'IANA,[Petersen] application/vnd.sealed.net 'IANA,[Lambert] application/vnd.sealed.ppt @sppt,spp,s1p 'IANA,[Petersen] application/vnd.sealed.tiff 'IANA,[Kwan],[Lambert] application/vnd.sealed.xls @sxls,sxl,s1e 'IANA,[Petersen] application/vnd.sealedmedia.softseal.html @stml,stm,s1h 'IANA,[Petersen] application/vnd.sealedmedia.softseal.pdf @spdf,spd,s1a 'IANA,[Petersen] application/vnd.seemail @see 'IANA,[Webb] application/vnd.sema 'IANA,[Hansson] application/vnd.semd 'IANA,[Hansson] application/vnd.semf 'IANA,[Hansson] application/vnd.shana.informed.formdata 'IANA,[Selzler] application/vnd.shana.informed.formtemplate 'IANA,[Selzler] application/vnd.shana.informed.interchange 'IANA,[Selzler] application/vnd.shana.informed.package 'IANA,[Selzler] application/vnd.SimTech-MindMapper 'IANA,[Koh] application/vnd.siren+json 'IANA,[Swiber] application/vnd.smaf @mmf 'IANA,[Takahashi] application/vnd.smart.notebook 'IANA,[Neitz] application/vnd.smart.teacher 'IANA,[Boyle] application/vnd.software602.filler.form+xml 'IANA,[Hytka],[Vondrous] application/vnd.software602.filler.form-xml-zip 'IANA,[Hytka],[Vondrous] application/vnd.solent.sdkm+xml 'IANA,[Gauntlett] application/vnd.spotfire.dxp 'IANA,[Jernberg] application/vnd.spotfire.sfs 'IANA,[Jernberg] application/vnd.sss-cod 'IANA,[Dani] application/vnd.sss-dtf 'IANA,[Bruno] application/vnd.sss-ntf 'IANA,[Bruno] application/vnd.stepmania.package 'IANA,[Andersson] application/vnd.stepmania.stepchart 'IANA,[Andersson] application/vnd.street-stream 'IANA,[Levitt] application/vnd.sun.wadl+xml 'IANA,[Hadley] application/vnd.sus-calendar @sus,susp 'IANA,[Niedfeldt] application/vnd.svd 'IANA,[Becker] application/vnd.swiftview-ics 'IANA,[Widener] application/vnd.syncml+xml 'IANA,[OMA Data Synchronization Working Group] application/vnd.syncml.dm+wbxml 'IANA,[OMA-DM Work Group] application/vnd.syncml.dm+xml 'IANA,[Rao],[OMA-DM Work Group] application/vnd.syncml.dm.notification 'IANA,[Thompson],[OMA-DM Work Group] application/vnd.syncml.dmddf+wbxml 'IANA,[OMA-DM Work Group] application/vnd.syncml.dmddf+xml 'IANA,[OMA-DM Work Group] application/vnd.syncml.dmtnds+wbxml 'IANA,[OMA-DM Work Group] application/vnd.syncml.dmtnds+xml 'IANA,[OMA-DM Work Group] application/vnd.syncml.ds.notification 'IANA,[OMA Data Synchronization Working Group] application/vnd.tao.intent-module-archive 'IANA,[Shelton] application/vnd.tmobile-livetv 'IANA,[Helin] application/vnd.trid.tpt 'IANA,[Cusack] application/vnd.triscape.mxs 'IANA,[Simonoff] application/vnd.trueapp 'IANA,[Hepler] application/vnd.truedoc 'IANA,[Chase] application/vnd.ubisoft.webplayer 'IANA,[Talbot] application/vnd.ufdl 'IANA,[Manning] application/vnd.uiq.theme 'IANA,[Ocock] application/vnd.umajin 'IANA,[Riden] application/vnd.unity 'IANA,[Unity3d] application/vnd.uoml+xml 'IANA,[Gerdes] application/vnd.uplanet.alert 'IANA,[Martin] application/vnd.uplanet.alert-wbxml 'IANA,[Martin] application/vnd.uplanet.bearer-choice 'IANA,[Martin] application/vnd.uplanet.bearer-choice-wbxml 'IANA,[Martin] application/vnd.uplanet.cacheop 'IANA,[Martin] application/vnd.uplanet.cacheop-wbxml 'IANA,[Martin] application/vnd.uplanet.channel 'IANA,[Martin] application/vnd.uplanet.channel-wbxml 'IANA,[Martin] application/vnd.uplanet.list 'IANA,[Martin] application/vnd.uplanet.list-wbxml 'IANA,[Martin] application/vnd.uplanet.listcmd 'IANA,[Martin] application/vnd.uplanet.listcmd-wbxml 'IANA,[Martin] application/vnd.uplanet.signal 'IANA,[Martin] application/vnd.vcx 'IANA,[T.Sugimoto] application/vnd.vd-study 'IANA,[Rogge] application/vnd.vectorworks 'IANA,[Ferguson],[Sarkar] application/vnd.verimatrix.vcas 'IANA,[Peterka] application/vnd.vidsoft.vidconference @vsc :8bit 'IANA,[Hess] application/vnd.visio @vsd,vst,vsw,vss 'IANA,[Sandal] application/vnd.visionary @vis 'IANA,[Aravindakumar] application/vnd.vividence.scriptfile 'IANA,[Risher] application/vnd.vsf 'IANA,[Rowe] application/vnd.wap.sic @sic 'IANA,[WAP-Forum] application/vnd.wap.slc @slc 'IANA,[WAP-Forum] application/vnd.wap.wbxml @wbxml 'IANA,[Stark] application/vnd.wap.wmlc @wmlc 'IANA,[Stark] application/vnd.wap.wmlscriptc @wmlsc 'IANA,[Stark] application/vnd.webturbo @wtb 'IANA,[Rehem] application/vnd.wfa.wsc 'IANA,[Wi-Fi Alliance] application/vnd.windows.devicepairing 'IANA,[Dandawate] application/vnd.wmc 'IANA,[Kjørnes=Kjornes] application/vnd.wmf.bootstrap 'IANA,[Nguyenphu],[Iyer] application/vnd.wolfram.mathematica 'IANA,[Wolfram] application/vnd.wolfram.mathematica.package 'IANA,[Wolfram] application/vnd.wolfram.player 'IANA,[Wolfram] application/vnd.wordperfect @wpd 'IANA,[Scarborough] application/vnd.wqd @wqd 'IANA,[Bostrom] application/vnd.wrq-hp3000-labelled 'IANA,[Bartram] application/vnd.wt.stf 'IANA,[Wohler] application/vnd.wv.csp+wbxml @wv 'IANA,[Salmi] application/vnd.wv.csp+xml :8bit 'IANA,[Ingimundarson] application/vnd.wv.ssp+xml :8bit 'IANA,[Ingimundarson] application/vnd.xacml+json 'IANA,[Brossard] application/vnd.xara 'IANA,[Matthewman] application/vnd.xfdl 'IANA,[Manning] application/vnd.xfdl.webform 'IANA,[Mansell] application/vnd.xmi+xml 'IANA,[Waskiewicz] application/vnd.xmpie.cpkg 'IANA,[Sherwin] application/vnd.xmpie.dpkg 'IANA,[Sherwin] application/vnd.xmpie.plan 'IANA,[Sherwin] application/vnd.xmpie.ppkg 'IANA,[Sherwin] application/vnd.xmpie.xlim 'IANA,[Sherwin] application/vnd.yamaha.hv-dic @hvd 'IANA,[Yamamoto] application/vnd.yamaha.hv-script @hvs 'IANA,[Yamamoto] application/vnd.yamaha.hv-voice @hvp 'IANA,[Yamamoto] application/vnd.yamaha.openscoreformat 'IANA,[Olleson] application/vnd.yamaha.openscoreformat.osfpvg+xml 'IANA,[Olleson] application/vnd.yamaha.remote-setup 'IANA,[Sukizaki] application/vnd.yamaha.smaf-audio @saf 'IANA,[Shinoda] application/vnd.yamaha.smaf-phrase @spf 'IANA,[Shinoda] application/vnd.yamaha.through-ngn 'IANA,[Sukizaki] application/vnd.yamaha.tunnel-udpencap 'IANA,[Sukizaki] application/vnd.yellowriver-custom-menu 'IANA,[Yellow] application/vnd.zul 'IANA,[Grothmann] application/vnd.zzazz.deck+xml 'IANA,[Hewett] application/voicexml+xml 'IANA,RFC4267 application/vq-rtcpxr 'IANA,RFC6035 application/watcherinfo+xml @wif 'IANA,RFC3858 application/whoispp-query 'IANA,RFC2957 application/whoispp-response 'IANA,RFC2958 application/widget 'IANA,[W3C],[Pemberton] application/wita 'IANA,[Campbell] application/wordperfect5.1 @wp5,wp 'IANA,[Lindner] application/wsdl+xml 'IANA,[W3C] application/wspolicy+xml 'IANA,[W3C] application/x-www-form-urlencoded :7bit '[W3C],{HTML5=http://www.w3.org/TR/html5/iana.html#application/x-www-form-urlencoded} application/x400-bp 'IANA,RFC1494 application/xcap-att+xml 'IANA,RFC4825 application/xcap-caps+xml 'IANA,RFC4825 application/xcap-diff+xml 'IANA,RFC5874 application/xcap-el+xml 'IANA,RFC4825 application/xcap-error+xml 'IANA,RFC4825 application/xcap-ns+xml 'IANA,RFC4825 application/xcon-conference-info+xml 'IANA,{RFC-ietf-xcon-event-package-01.txt=http://tools.ietf.org/html/draft-ietf-xcon-event-package} application/xcon-conference-info-diff+xml 'IANA,{RFC-ietf-xcon-event-package-01.txt=http://tools.ietf.org/html/draft-ietf-xcon-event-package} application/xenc+xml 'IANA,[Reagle],[XENC Working Group] application/xhtml+xml @xhtml :8bit 'IANA,RFC3236 application/xml @xml,xsl :8bit 'IANA,RFC3023 application/xml-dtd @dtd :8bit 'IANA,RFC3023 application/xml-external-parsed-entity 'IANA,RFC3023 application/xmpp+xml 'IANA,RFC3923 application/xop+xml 'IANA,[Nottingham] application/xslt+xml @xslt 'IANA,[W3C] application/xv+xml 'IANA,RFC4374 application/yang 'IANA,RFC6020 application/yin+xml 'IANA,RFC6020 application/zip @zip :base64 'IANA,[Lindner] application/zlib 'IANA,RFC6713 mime-types-1.25/lib/mime/types/image.obsolete0000644000004100000410000000036012215067016021242 0ustar www-datawww-data*!image/bmp @bmp =use-instead:image/x-bmp *!image/cmu-raster =use-instead:image/x-cmu-raster *!image/targa @tga =use-instead:image/x-targa *!image/vnd.dgn @dgn =use-instead:image/x-vnd.dgn *!image/vnd.net.fpx =use-instead:image/vnd.net-fpx mime-types-1.25/lib/mime/types/audio.nonstandard0000644000004100000410000000053412215067016021763 0ustar www-datawww-dataaudio/x-aac @aac audio/x-aiff @aif,aifc,aiff :base64 audio/x-midi @mid,midi,kar :base64 audio/x-ms-wax @wax audio/x-ms-wma @wma audio/x-ms-wmv @wmv audio/x-pn-realaudio @ra,ram :base64 audio/x-pn-realaudio-plugin @rpm audio/x-realaudio @ra :base64 audio/x-wav @wav :base64 *audio/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} mime-types-1.25/lib/mime/types/multipart.nonstandard0000644000004100000410000000006612215067016022703 0ustar www-datawww-data!multipart/x-parallel =use-instead:multipart/parallel mime-types-1.25/lib/mime/types/image0000644000004100000410000000325012215067016017430 0ustar www-datawww-dataimage/cgm 'IANA,[Francis] image/example 'IANA,RFC4735 image/fits 'IANA,RFC4047 image/g3fax 'IANA,RFC1494 image/gif @gif :base64 'IANA,RFC2045,RFC2046 image/ief @ief :base64 'IANA,RFC1314 image/jp2 @jp2,jpg2 :base64 'IANA,RFC3745 image/jpeg @jpeg,jpg,jpe :base64 'IANA,RFC2045,RFC2046 image/jpm @jpm,jpgm :base64 'IANA,RFC3745 image/jpx @jpx,jpf :base64 'IANA,RFC3745 image/ktx 'IANA,[Callow],[Khronos] image/naplps 'IANA,[Ferber] image/png @png :base64 'IANA,[Randers-Pehrson] image/prs.btif 'IANA,[Simon] image/prs.pti 'IANA,[Laun] image/pwg-raster 'IANA,[Sweet] image/svg+xml @svg,svgz :8bit 'IANA,[W3C] image/t38 'IANA,RFC3362 image/tiff @tiff,tif :base64 'IANA,RFC2302 image/tiff-fx 'IANA,RFC3950 image/vnd.adobe.photoshop @psd 'IANA,[Scarborough] image/vnd.airzip.accelerator.azv 'IANA,[Clueit] image/vnd.cns.inf2 'IANA,[McLaughlin] image/vnd.dece.graphic 'IANA,[Dolan] image/vnd.djvu @djvu,djv 'IANA,[Bottou] image/vnd.dvb.subtitle 'IANA,[Siebert],[Lagally] image/vnd.dwg @dwg 'IANA,[Moline] image/vnd.dxf 'IANA,[Moline] image/vnd.fastbidsheet 'IANA,[Becker] image/vnd.fpx 'IANA,[Spencer] image/vnd.fst 'IANA,[Fuldseth] image/vnd.fujixerox.edmics-mmr 'IANA,[Onda] image/vnd.fujixerox.edmics-rlc 'IANA,[Onda] image/vnd.globalgraphics.pgb @pgb 'IANA,[Bailey] image/vnd.microsoft.icon @ico 'IANA,[Butcher] image/vnd.mix 'IANA,[Reddy] image/vnd.ms-modi @mdi 'IANA,[Vaughan] image/vnd.net-fpx 'IANA,[Spencer] image/vnd.radiance 'IANA,[Fritz],[GWard] image/vnd.sealed.png 'IANA,[Petersen] image/vnd.sealedmedia.softseal.gif 'IANA,[Petersen] image/vnd.sealedmedia.softseal.jpg 'IANA,[Petersen] image/vnd.svf 'IANA,[Moline] image/vnd.wap.wbmp 'IANA,[Stark] image/vnd.xiff 'IANA,[S.Martin] image/webp @webp mime-types-1.25/lib/mime/types/audio.obsolete0000644000004100000410000000007512215067016021264 0ustar www-datawww-data!audio/vnd.qcelp @qcp 'IANA,RFC3625 =use-instead:audio/QCELP mime-types-1.25/lib/mime/types/text0000644000004100000410000000441012215067016017331 0ustar www-datawww-datatext/1d-interleaved-parityfec 'IANA,RFC6015 text/calendar 'IANA,RFC5545 text/css @css :8bit 'IANA,RFC2318 text/csv @csv :8bit 'IANA,RFC4180 text/dns 'IANA,RFC4027 text/encaprtp 'IANA,RFC6849 text/enriched 'IANA,RFC1896 text/example 'IANA,RFC4735 text/fwdred 'IANA,RFC6354 text/grammar-ref-list 'IANA,RFC6787 text/html @html,htm,htmlx,shtml,htx :8bit 'IANA,[Michael Smith=MSmith],[W3C] text/jcr-cnd 'IANA,[Piegaze] text/mizar 'IANA,[Jesse Alama=Jesse_Alama] text/n3 'IANA,[Prud'hommeaux=Prudhommeaux],[W3C] text/parityfec 'IANA,RFC5109 text/plain @txt,asc,c,cc,h,hh,cpp,hpp,dat,hlp 'IANA,RFC2046,RFC3676,RFC5147 text/provenance-notation 'IANA,[Herman],[W3C] text/prs.fallenstein.rst @rst 'IANA,[Fallenstein] text/prs.lines.tag 'IANA,[Lines] text/raptorfec 'IANA,RFC6682 text/RED 'IANA,RFC4102 text/rfc822-headers 'IANA,RFC6522 text/richtext @rtx :8bit 'IANA,RFC2045,RFC2046 text/rtf @rtf :8bit 'IANA,[Lindner] text/rtp-enc-aescm128 'IANA,[3GPP] text/rtploopback 'IANA,RFC6849 text/rtx 'IANA,RFC4588 text/sgml @sgml,sgm 'IANA,RFC1874 text/t140 'IANA,RFC4103 text/tab-separated-values @tsv 'IANA,[Lindner] text/troff @t,tr,roff,troff :8bit 'IANA,RFC4263 text/turtle 'IANA,[Prud'hommeaux=Prudhommeaux],[W3C] text/ulpfec 'IANA,RFC5109 text/uri-list 'IANA,RFC2483 text/vcard 'IANA,RFC6350 text/vnd.abc 'IANA,[Allen] text/vnd.curl 'IANA,[Byrnes] text/vnd.debian.copyright 'IANA,[Plessy] text/vnd.DMClientScript 'IANA,[Bradley] text/vnd.dvb.subtitle 'IANA,[Siebert],[Lagally] text/vnd.esmertec.theme-descriptor 'IANA,[Eilemann] text/vnd.fly 'IANA,[Gurney] text/vnd.fmi.flexstor 'IANA,[Hurtta] text/vnd.graphviz 'IANA,[Ellson] text/vnd.in3d.3dml 'IANA,[Powers] text/vnd.in3d.spot 'IANA,[Powers] text/vnd.IPTC.NewsML 'IANA,[IPTC] text/vnd.IPTC.NITF 'IANA,[IPTC] text/vnd.latex-z 'IANA,[Lubos] text/vnd.motorola.reflex 'IANA,[Patton] text/vnd.ms-mediapackage 'IANA,[Nelson] text/vnd.net2phone.commcenter.command @ccc 'IANA,[Xie] text/vnd.radisys.msml-basic-layout 'IANA,RFC5707 text/vnd.sun.j2me.app-descriptor @jad :8bit 'IANA,[G.Adams] text/vnd.trolltech.linguist 'IANA,[D.Lambert] text/vnd.wap.si @si 'IANA,[WAP-Forum] text/vnd.wap.sl @sl 'IANA,[WAP-Forum] text/vnd.wap.wml @wml 'IANA,[Stark] text/vnd.wap.wmlscript @wmls 'IANA,[Stark] text/xml @xml,dtd :8bit 'IANA,RFC3023 text/xml-external-parsed-entity 'IANA,RFC3023 mime-types-1.25/lib/mime/types/other.nonstandard0000644000004100000410000000041112215067016021775 0ustar www-datawww-data!chemical/x-pdb @pdb =use-instead:x-chemical/x-pdb !chemical/x-xyz @xyz =use-instead:x-chemical/x-xyz *!drawing/dwf @dwf =use-instead:x-drawing/dwf x-chemical/x-pdb @pdb x-chemical/x-xyz @xyz x-conference/x-cooltalk @ice x-drawing/dwf @dwf x-world/x-vrml @wrl,vrml mime-types-1.25/lib/mime/types.rb0000644000004100000410000007750012215067016016761 0ustar www-datawww-data# -*- ruby encoding: utf-8 -*- # The namespace for MIME applications, tools, and libraries. module MIME # Reflects a MIME Content-Type which is in invalid format (e.g., it isn't # in the form of type/subtype). class InvalidContentType < RuntimeError; end # The definition of one MIME content-type. # # == Usage # require 'mime/types' # # plaintext = MIME::Types['text/plain'].first # # returns [text/plain, text/plain] # text = plaintext.first # print text.media_type # => 'text' # print text.sub_type # => 'plain' # # puts text.extensions.join(" ") # => 'asc txt c cc h hh cpp' # # puts text.encoding # => 8bit # puts text.binary? # => false # puts text.ascii? # => true # puts text == 'text/plain' # => true # puts MIME::Type.simplified('x-appl/x-zip') # => 'appl/zip' # # puts MIME::Types.any? { |type| # type.content_type == 'text/plain' # } # => true # puts MIME::Types.all?(&:registered?) # # => false # class Type # The released version of Ruby MIME::Types VERSION = '1.25' include Comparable MEDIA_TYPE_RE = %r{([-\w.+]+)/([-\w.+]*)}o UNREG_RE = %r{[Xx]-}o ENCODING_RE = %r{(?:base64|7bit|8bit|quoted\-printable)}o PLATFORM_RE = %r|#{RUBY_PLATFORM}|o SIGNATURES = %w(application/pgp-keys application/pgp application/pgp-signature application/pkcs10 application/pkcs7-mime application/pkcs7-signature text/vcard) IANA_URL = "http://www.iana.org/assignments/media-types/%s/%s" RFC_URL = "http://rfc-editor.org/rfc/rfc%s.txt" DRAFT_URL = "http://datatracker.ietf.org/public/idindex.cgi?command=id_details&filename=%s" LTSW_URL = "http://www.ltsw.se/knbase/internet/%s.htp" CONTACT_URL = "http://www.iana.org/assignments/contact-people.htm#%s" # Returns +true+ if the simplified type matches the current def like?(other) if other.respond_to?(:simplified) @simplified == other.simplified else @simplified == Type.simplified(other) end end # Compares the MIME::Type against the exact content type or the # simplified type (the simplified type will be used if comparing against # something that can be treated as a String with #to_s). In comparisons, # this is done against the lowercase version of the MIME::Type. def <=>(other) if other.respond_to?(:content_type) @content_type.downcase <=> other.content_type.downcase elsif other.respond_to?(:to_s) @simplified <=> Type.simplified(other.to_s) else @content_type.downcase <=> other.downcase end end # Compares the MIME::Type based on how reliable it is before doing a # normal <=> comparison. Used by MIME::Types#[] to sort types. The # comparisons involved are: # # 1. self.simplified <=> other.simplified (ensures that we # don't try to compare different types) # 2. IANA-registered definitions < other definitions. # 3. Generic definitions < platform definitions. # 3. Complete definitions < incomplete definitions. # 4. Current definitions < obsolete definitions. # 5. Obselete with use-instead references < obsolete without. # 6. Obsolete use-instead definitions are compared. def priority_compare(other) pc = simplified <=> other.simplified if pc.zero? pc = if registered? != other.registered? registered? ? -1 : 1 # registered < unregistered elsif platform? != other.platform? platform? ? 1 : -1 # generic < platform elsif complete? != other.complete? pc = complete? ? -1 : 1 # complete < incomplete elsif obsolete? != other.obsolete? pc = obsolete? ? 1 : -1 # current < obsolete end if pc.zero? and obsolete? and (use_instead != other.use_instead) pc = if use_instead.nil? -1 elsif other.use_instead.nil? 1 else use_instead <=> other.use_instead end end end pc end # Returns +true+ if the other object is a MIME::Type and the content # types match. def eql?(other) other.kind_of?(MIME::Type) and self == other end # Returns the whole MIME content-type string. # # text/plain => text/plain # x-chemical/x-pdb => x-chemical/x-pdb attr_reader :content_type # Returns the media type of the simplified MIME type. # # text/plain => text # x-chemical/x-pdb => chemical attr_reader :media_type # Returns the media type of the unmodified MIME type. # # text/plain => text # x-chemical/x-pdb => x-chemical attr_reader :raw_media_type # Returns the sub-type of the simplified MIME type. # # text/plain => plain # x-chemical/x-pdb => pdb attr_reader :sub_type # Returns the media type of the unmodified MIME type. # # text/plain => plain # x-chemical/x-pdb => x-pdb attr_reader :raw_sub_type # The MIME types main- and sub-label can both start with x-, # which indicates that it is a non-registered name. Of course, after # registration this flag can disappear, adds to the confusing # proliferation of MIME types. The simplified string has the x- # removed and are translated to lowercase. # # text/plain => text/plain # x-chemical/x-pdb => chemical/pdb attr_reader :simplified # The list of extensions which are known to be used for this MIME::Type. # Non-array values will be coerced into an array with #to_a. Array # values will be flattened and +nil+ values removed. attr_accessor :extensions remove_method :extensions= ; def extensions=(ext) #:nodoc: @extensions = [ext].flatten.compact end # The encoding (7bit, 8bit, quoted-printable, or base64) required to # transport the data of this content type safely across a network, which # roughly corresponds to Content-Transfer-Encoding. A value of +nil+ or # :default will reset the #encoding to the #default_encoding # for the MIME::Type. Raises ArgumentError if the encoding provided is # invalid. # # If the encoding is not provided on construction, this will be either # 'quoted-printable' (for text/* media types) and 'base64' for eveything # else. attr_accessor :encoding remove_method :encoding= ; def encoding=(enc) #:nodoc: if enc.nil? or enc == :default @encoding = self.default_encoding elsif enc =~ ENCODING_RE @encoding = enc else raise ArgumentError, "The encoding must be nil, :default, base64, 7bit, 8bit, or quoted-printable." end end # The regexp for the operating system that this MIME::Type is specific # to. attr_accessor :system remove_method :system= ; def system=(os) #:nodoc: if os.nil? or os.kind_of?(Regexp) @system = os else @system = %r|#{os}| end end # Returns the default encoding for the MIME::Type based on the media # type. attr_reader :default_encoding remove_method :default_encoding def default_encoding (@media_type == 'text') ? 'quoted-printable' : 'base64' end # Returns the media type or types that should be used instead of this # media type, if it is obsolete. If there is no replacement media type, # or it is not obsolete, +nil+ will be returned. attr_reader :use_instead remove_method :use_instead def use_instead return nil unless @obsolete @use_instead end # Returns +true+ if the media type is obsolete. def obsolete? @obsolete ? true : false end # Sets the obsolescence indicator for this media type. attr_writer :obsolete # The documentation for this MIME::Type. Documentation about media # types will be found on a media type definition as a comment. # Documentation will be found through #docs. attr_accessor :docs remove_method :docs= ; def docs=(d) if d a = d.scan(%r{use-instead:#{MEDIA_TYPE_RE}}) if a.empty? @use_instead = nil else @use_instead = a.map { |el| "#{el[0]}/#{el[1]}" } end end @docs = d end # The encoded URL list for this MIME::Type. See #urls for more # information. attr_accessor :url # The decoded URL list for this MIME::Type. # The special URL value IANA will be translated into: # http://www.iana.org/assignments/media-types// # # The special URL value RFC### will be translated into: # http://www.rfc-editor.org/rfc/rfc###.txt # # The special URL value DRAFT:name will be translated into: # https://datatracker.ietf.org/public/idindex.cgi? # command=id_detail&filename= # # The special URL value LTSW will be translated into: # http://www.ltsw.se/knbase/internet/.htp # # The special URL value [token] will be translated into: # http://www.iana.org/assignments/contact-people.htm# # # These values will be accessible through #urls, which always returns an # array. def urls @url.map do |el| case el when %r{^IANA$} IANA_URL % [ @media_type, @sub_type ] when %r{^RFC(\d+)$} RFC_URL % $1 when %r{^DRAFT:(.+)$} DRAFT_URL % $1 when %r{^LTSW$} LTSW_URL % @media_type when %r{^\{([^=]+)=([^\}]+)\}} [$1, $2] when %r{^\[([^=]+)=([^\]]+)\]} [$1, CONTACT_URL % $2] when %r{^\[([^\]]+)\]} CONTACT_URL % $1 else el end end end class << self # The MIME types main- and sub-label can both start with x-, # which indicates that it is a non-registered name. Of course, after # registration this flag can disappear, adds to the confusing # proliferation of MIME types. The simplified string has the # x- removed and are translated to lowercase. def simplified(content_type) matchdata = MEDIA_TYPE_RE.match(content_type) if matchdata.nil? simplified = nil else media_type = matchdata.captures[0].downcase.gsub(UNREG_RE, '') subtype = matchdata.captures[1].downcase.gsub(UNREG_RE, '') simplified = "#{media_type}/#{subtype}" end simplified end # Creates a MIME::Type from an array in the form of: # [type-name, [extensions], encoding, system] # # +extensions+, +encoding+, and +system+ are optional. # # MIME::Type.from_array("application/x-ruby", ['rb'], '8bit') # MIME::Type.from_array(["application/x-ruby", ['rb'], '8bit']) # # These are equivalent to: # # MIME::Type.new('application/x-ruby') do |t| # t.extensions = %w(rb) # t.encoding = '8bit' # end def from_array(*args) #:yields MIME::Type.new: # Dereferences the array one level, if necessary. args = args.first if args.first.kind_of? Array unless args.size.between?(1, 8) raise ArgumentError, "Array provided must contain between one and eight elements." end MIME::Type.new(args.shift) do |t| t.extensions, t.encoding, t.system, t.obsolete, t.docs, t.url, t.registered = *args yield t if block_given? end end # Creates a MIME::Type from a hash. Keys are case-insensitive, # dashes may be replaced with underscores, and the internal Symbol # of the lowercase-underscore version can be used as well. That is, # Content-Type can be provided as content-type, Content_Type, # content_type, or :content_type. # # Known keys are Content-Type, # Content-Transfer-Encoding, Extensions, and # System. # # MIME::Type.from_hash('Content-Type' => 'text/x-yaml', # 'Content-Transfer-Encoding' => '8bit', # 'System' => 'linux', # 'Extensions' => ['yaml', 'yml']) # # This is equivalent to: # # MIME::Type.new('text/x-yaml') do |t| # t.encoding = '8bit' # t.system = 'linux' # t.extensions = ['yaml', 'yml'] # end def from_hash(hash) #:yields MIME::Type.new: type = {} hash.each_pair do |k, v| type[k.to_s.tr('A-Z', 'a-z').gsub(/-/, '_').to_sym] = v end MIME::Type.new(type[:content_type]) do |t| t.extensions = type[:extensions] t.encoding = type[:content_transfer_encoding] t.system = type[:system] t.obsolete = type[:obsolete] t.docs = type[:docs] t.url = type[:url] t.registered = type[:registered] yield t if block_given? end end # Essentially a copy constructor. # # MIME::Type.from_mime_type(plaintext) # # is equivalent to: # # MIME::Type.new(plaintext.content_type.dup) do |t| # t.extensions = plaintext.extensions.dup # t.system = plaintext.system.dup # t.encoding = plaintext.encoding.dup # end def from_mime_type(mime_type) #:yields the new MIME::Type: MIME::Type.new(mime_type.content_type.dup) do |t| t.extensions = mime_type.extensions.map { |e| e.dup } t.url = mime_type.url && mime_type.url.map { |e| e.dup } mime_type.system && t.system = mime_type.system.dup mime_type.encoding && t.encoding = mime_type.encoding.dup t.obsolete = mime_type.obsolete? t.registered = mime_type.registered? mime_type.docs && t.docs = mime_type.docs.dup yield t if block_given? end end end # Builds a MIME::Type object from the provided MIME Content Type value # (e.g., 'text/plain' or 'applicaton/x-eruby'). The constructed object # is yielded to an optional block for additional configuration, such as # associating extensions and encoding information. def initialize(content_type) #:yields self: matchdata = MEDIA_TYPE_RE.match(content_type) if matchdata.nil? raise InvalidContentType, "Invalid Content-Type provided ('#{content_type}')" end @content_type = content_type @raw_media_type = matchdata.captures[0] @raw_sub_type = matchdata.captures[1] @simplified = MIME::Type.simplified(@content_type) matchdata = MEDIA_TYPE_RE.match(@simplified) @media_type = matchdata.captures[0] @sub_type = matchdata.captures[1] self.extensions = nil self.encoding = :default self.system = nil self.registered = true self.url = nil self.obsolete = nil self.docs = nil yield self if block_given? end # MIME content-types which are not regestered by IANA nor defined in # RFCs are required to start with x-. This counts as well for # a new media type as well as a new sub-type of an existing media # type. If either the media-type or the content-type begins with # x-, this method will return +false+. def registered? if (@raw_media_type =~ UNREG_RE) || (@raw_sub_type =~ UNREG_RE) false else @registered end end attr_writer :registered #:nodoc: # MIME types can be specified to be sent across a network in particular # formats. This method returns +true+ when the MIME type encoding is set # to base64. def binary? @encoding == 'base64' end # MIME types can be specified to be sent across a network in particular # formats. This method returns +false+ when the MIME type encoding is # set to base64. def ascii? not binary? end # Returns +true+ when the simplified MIME type is in the list of known # digital signatures. def signature? SIGNATURES.include?(@simplified.downcase) end # Returns +true+ if the MIME::Type is specific to an operating system. def system? not @system.nil? end # Returns +true+ if the MIME::Type is specific to the current operating # system as represented by RUBY_PLATFORM. def platform? system? and (RUBY_PLATFORM =~ @system) end # Returns +true+ if the MIME::Type specifies an extension list, # indicating that it is a complete MIME::Type. def complete? not @extensions.empty? end # Returns the MIME type as a string. def to_s @content_type end # Returns the MIME type as a string for implicit conversions. def to_str @content_type end # Returns the MIME type as an array suitable for use with # MIME::Type.from_array. def to_a [ @content_type, @extensions, @encoding, @system, @obsolete, @docs, @url, registered? ] end # Returns the MIME type as an array suitable for use with # MIME::Type.from_hash. def to_hash { 'Content-Type' => @content_type, 'Content-Transfer-Encoding' => @encoding, 'Extensions' => @extensions, 'System' => @system, 'Obsolete' => @obsolete, 'Docs' => @docs, 'URL' => @url, 'Registered' => registered?, } end end # = MIME::Types # MIME types are used in MIME-compliant communications, as in e-mail or # HTTP traffic, to indicate the type of content which is transmitted. # MIME::Types provides the ability for detailed information about MIME # entities (provided as a set of MIME::Type objects) to be determined and # used programmatically. There are many types defined by RFCs and vendors, # so the list is long but not complete; don't hesitate to ask to add # additional information. This library follows the IANA collection of MIME # types (see below for reference). # # == Description # MIME types are used in MIME entities, as in email or HTTP traffic. It is # useful at times to have information available about MIME types (or, # inversely, about files). A MIME::Type stores the known information about # one MIME type. # # == Usage # require 'mime/types' # # plaintext = MIME::Types['text/plain'] # print plaintext.media_type # => 'text' # print plaintext.sub_type # => 'plain' # # puts plaintext.extensions.join(" ") # => 'asc txt c cc h hh cpp' # # puts plaintext.encoding # => 8bit # puts plaintext.binary? # => false # puts plaintext.ascii? # => true # puts plaintext.obsolete? # => false # puts plaintext.registered? # => true # puts plaintext == 'text/plain' # => true # puts MIME::Type.simplified('x-appl/x-zip') # => 'appl/zip' # # This module is built to conform to the MIME types of RFCs 2045 and 2231. # It follows the official IANA registry at # http://www.iana.org/assignments/media-types/ and # ftp://ftp.iana.org/assignments/media-types with some unofficial types # added from the the collection at # http://www.ltsw.se/knbase/internet/mime.htp class Types # The released version of Ruby MIME::Types VERSION = MIME::Type::VERSION DATA_VERSION = (VERSION.to_f * 100).to_i # The data version. attr_reader :data_version class HashWithArrayDefault < Hash # :nodoc: def initialize super { |h, k| h[k] = [] } end def marshal_dump {}.merge(self) end def marshal_load(hash) self.merge!(hash) end end class CacheContainer # :nodoc: attr_reader :version, :data def initialize(version, data) @version, @data = version, data end end def initialize(data_version = DATA_VERSION) @type_variants = HashWithArrayDefault.new @extension_index = HashWithArrayDefault.new @data_version = data_version end def add_type_variant(mime_type) #:nodoc: @type_variants[mime_type.simplified] << mime_type end def index_extensions(mime_type) #:nodoc: mime_type.extensions.each { |ext| @extension_index[ext] << mime_type } end def defined_types #:nodoc: @type_variants.values.flatten end # Returns the number of known types. A shortcut of MIME::Types[//].size. # (Keep in mind that this is memory intensive, cache the result to spare # resources) def count defined_types.size end def each defined_types.each { |t| yield t } end @__types__ = nil # Returns a list of MIME::Type objects, which may be empty. The optional # flag parameters are :complete (finds only complete MIME::Type objects) # and :platform (finds only MIME::Types for the current platform). It is # possible for multiple matches to be returned for either type (in the # example below, 'text/plain' returns two values -- one for the general # case, and one for VMS systems. # # puts "\nMIME::Types['text/plain']" # MIME::Types['text/plain'].each { |t| puts t.to_a.join(", ") } # # puts "\nMIME::Types[/^image/, :complete => true]" # MIME::Types[/^image/, :complete => true].each do |t| # puts t.to_a.join(", ") # end # # If multiple type definitions are returned, returns them sorted as # follows: # 1. Complete definitions sort before incomplete ones; # 2. IANA-registered definitions sort before LTSW-recorded # definitions. # 3. Generic definitions sort before platform-specific ones; # 4. Current definitions sort before obsolete ones; # 5. Obsolete definitions with use-instead clauses sort before those # without; # 6. Obsolete definitions use-instead clauses are compared. # 7. Sort on name. def [](type_id, flags = {}) matches = case type_id when MIME::Type @type_variants[type_id.simplified] when Regexp match(type_id) else @type_variants[MIME::Type.simplified(type_id)] end prune_matches(matches, flags).sort { |a, b| a.priority_compare(b) } end # Return the list of MIME::Types which belongs to the file based on its # filename extension. If +platform+ is +true+, then only file types that # are specific to the current platform will be returned. # # This will always return an array. # # puts "MIME::Types.type_for('citydesk.xml') # => [application/xml, text/xml] # puts "MIME::Types.type_for('citydesk.gif') # => [image/gif] def type_for(filename, platform = false) ext = filename.chomp.downcase.gsub(/.*\./o, '') list = @extension_index[ext] list.delete_if { |e| not e.platform? } if platform list end # A synonym for MIME::Types.type_for def of(filename, platform = false) type_for(filename, platform) end # Add one or more MIME::Type objects to the set of known types. Each # type should be experimental (e.g., 'application/x-ruby'). If the type # is already known, a warning will be displayed. # # Please inform the maintainer of this module when registered # types are missing. def add(*types) types.each do |mime_type| if mime_type.kind_of? MIME::Types add(*mime_type.defined_types) else if @type_variants.include?(mime_type.simplified) if @type_variants[mime_type.simplified].include?(mime_type) warn "Type #{mime_type} already registered as a variant of #{mime_type.simplified}." unless defined? MIME::Types::LOAD end end add_type_variant(mime_type) index_extensions(mime_type) end end end private def prune_matches(matches, flags) matches.delete_if { |e| not e.complete? } if flags[:complete] matches.delete_if { |e| not e.platform? } if flags[:platform] matches end def match(pattern) matches = @type_variants.select { |k, v| k =~ pattern } if matches.respond_to? :values matches.values.flatten else matches.map { |m| m.last }.flatten end end class << self def add_type_variant(mime_type) #:nodoc: __types__.add_type_variant(mime_type) end def index_extensions(mime_type) #:nodoc: __types__.index_extensions(mime_type) end # The regular expression used to match a file-based MIME type # definition. TEXT_FORMAT_RE = %r{ \A \s* ([*])? # 0: Unregistered? (!)? # 1: Obsolete? (?:(\w+):)? # 2: Platform marker #{MIME::Type::MEDIA_TYPE_RE}? # 3,4: Media type (?:\s+@([^\s]+))? # 5: Extensions (?:\s+:(#{MIME::Type::ENCODING_RE}))? # 6: Encoding (?:\s+'(.+))? # 7: URL list (?:\s+=(.+))? # 8: Documentation (?:\s*([#].*)?)? \s* \z }x # Build the type list from a file in the format: # # [*][!][os:]mt/st[@ext][:enc]['url-list][=docs] # # == * # An unofficial MIME type. This should be used if and only if the MIME type # is not properly specified (that is, not under either x-type or # vnd.name.type). # # == ! # An obsolete MIME type. May be used with an unofficial MIME type. # # == os: # Platform-specific MIME type definition. # # == mt # The media type. # # == st # The media subtype. # # == @ext # The list of comma-separated extensions. # # == :enc # The encoding. # # == 'url-list # The list of comma-separated URLs. # # == =docs # The documentation string. # # That is, everything except the media type and the subtype is optional. The # more information that's available, though, the richer the values that can # be provided. def load_from_file(filename) #:nodoc: if defined? ::Encoding data = File.open(filename, 'r:UTF-8:-') { |f| f.read } else data = File.open(filename) { |f| f.read } end data = data.split($/) mime = MIME::Types.new data.each_with_index { |line, index| item = line.chomp.strip next if item.empty? begin m = TEXT_FORMAT_RE.match(item).captures rescue Exception puts "#{filename}:#{index}: Parsing error in MIME type definitions." puts "=> #{line}" raise end unregistered, obsolete, platform, mediatype, subtype, extensions, encoding, urls, docs, comment = *m if mediatype.nil? if comment.nil? puts "#{filename}:#{index}: Parsing error in MIME type definitions." puts "=> #{line}" raise RuntimeError end next end extensions &&= extensions.split(/,/) urls &&= urls.split(/,/) mime_type = MIME::Type.new("#{mediatype}/#{subtype}") do |t| t.extensions = extensions t.encoding = encoding t.system = platform t.obsolete = obsolete t.registered = false if unregistered t.docs = docs t.url = urls end mime.add(mime_type) } mime end # Returns a list of MIME::Type objects, which may be empty. The # optional flag parameters are :complete (finds only complete # MIME::Type objects) and :platform (finds only MIME::Types for the # current platform). It is possible for multiple matches to be # returned for either type (in the example below, 'text/plain' returns # two values -- one for the general case, and one for VMS systems. # # puts "\nMIME::Types['text/plain']" # MIME::Types['text/plain'].each { |t| puts t.to_a.join(", ") } # # puts "\nMIME::Types[/^image/, :complete => true]" # MIME::Types[/^image/, :complete => true].each do |t| # puts t.to_a.join(", ") # end def [](type_id, flags = {}) __types__[type_id, flags] end include Enumerable def count __types__.count end def each __types__.each {|t| yield t } end # Return the list of MIME::Types which belongs to the file based on # its filename extension. If +platform+ is +true+, then only file # types that are specific to the current platform will be returned. # # This will always return an array. # # puts "MIME::Types.type_for('citydesk.xml') # => [application/xml, text/xml] # puts "MIME::Types.type_for('citydesk.gif') # => [image/gif] def type_for(filename, platform = false) __types__.type_for(filename, platform) end # A synonym for MIME::Types.type_for def of(filename, platform = false) __types__.type_for(filename, platform) end # Add one or more MIME::Type objects to the set of known types. Each # type should be experimental (e.g., 'application/x-ruby'). If the # type is already known, a warning will be displayed. # # Please inform the maintainer of this module when registered # types are missing. def add(*types) __types__.add(*types) end # Returns the currently defined cache file, if any. def cache_file ENV['RUBY_MIME_TYPES_CACHE'] end private def load_mime_types_from_cache load_mime_types_from_cache! if cache_file end def load_mime_types_from_cache! raise ArgumentError, "No RUBY_MIME_TYPES_CACHE set." unless cache_file return false unless File.exists? cache_file begin data = File.read(cache_file) container = Marshal.load(data) if container.version == VERSION @__types__ = Marshal.load(container.data) true else false end rescue => e warn "Could not load MIME::Types cache: #{e}" false end end def write_mime_types_to_cache write_mime_types_to_cache! if cache_file end def write_mime_types_to_cache! raise ArgumentError, "No RUBY_MIME_TYPES_CACHE set." unless cache_file File.open(cache_file, 'w') do |f| cache = MIME::Types::CacheContainer.new(VERSION, Marshal.dump(__types__)) f.write Marshal.dump(cache) end true end def load_and_parse_mime_types const_set(:LOAD, true) unless $DEBUG Dir[File.join(File.dirname(__FILE__), 'types', '*')].sort.each { |f| add(load_from_file(f)) } remove_const :LOAD if defined? LOAD end def lazy_load? (lazy = ENV['RUBY_MIME_TYPES_LAZY_LOAD']) && (lazy != 'false') end def __types__ load_mime_types unless @__types__ @__types__ end def load_mime_types @__types__ = new(VERSION) unless load_mime_types_from_cache load_and_parse_mime_types write_mime_types_to_cache end end end load_mime_types unless lazy_load? end end # vim: ft=ruby