diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..2369228 --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..bd83d31 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "plugins": ["@prettier/plugin-ruby"], + "singleQuote": true, + "rubySingleQuote": true +} diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..fa05aaa --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,2 @@ +Style/StringLiterals: + EnforcedStyle: single_quotes diff --git a/gems/3.3.2/cache/mime-types-3.5.1.gem b/gems/3.3.2/cache/mime-types-3.5.1.gem new file mode 100644 index 0000000..b9e0e60 Binary files /dev/null and b/gems/3.3.2/cache/mime-types-3.5.1.gem differ diff --git a/gems/3.3.2/gems/mime-types-3.5.1/.standard.yml b/gems/3.3.2/gems/mime-types-3.5.1/.standard.yml new file mode 100644 index 0000000..13d7bfa --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/.standard.yml @@ -0,0 +1,4 @@ +parallel: true +ruby_version: 2.3 +ignore: + - 'mime-types.gemspec' diff --git a/gems/3.3.2/gems/mime-types-3.5.1/Code-of-Conduct.md b/gems/3.3.2/gems/mime-types-3.5.1/Code-of-Conduct.md new file mode 100644 index 0000000..306de4e --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/Code-of-Conduct.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/gems/3.3.2/gems/mime-types-3.5.1/Contributing.md b/gems/3.3.2/gems/mime-types-3.5.1/Contributing.md new file mode 100644 index 0000000..058138a --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/Contributing.md @@ -0,0 +1,132 @@ +# Contributing + +I value any contribution to mime-types you can provide: a bug report, a feature +request, or code contributions. + +There are a few guidelines for contributing to mime-types: + +- Code changes _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][]. +- 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 or changed behaviours require new or updated documentation. + +## Adding or Modifying MIME Types + +The mime-types registry is no longer contained in mime-types, but in +[mime-types-data][]. Please see that project for contributions there. + +### Test Dependencies + +mime-types uses Ryan Davis’s [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` will do. + +To assist with the installation of the development dependencies for +mime-types, I have provided the simplest possible Gemfile pointing to the +(generated) `mime-types.gemspec` file. This will permit you to do `bundle install` to get the development dependencies. If you already have `hoe` +installed, you can accomplish the same thing with `rake newb`. + +This task will install any missing dependencies, run the tests/specs, and +generate the RDoc. + +You can run tests with code coverage analysis by running `rake test:coverage`. + +## Benchmarks + +mime-types offers several benchmark tasks to measure different measures of +performance. + +There is a repeated load test, measuring how long it takes to start and load +mime-types with its full registry. By default, it runs fifty loops and uses the +built-in benchmark library: + +- `rake benchmark:load` + +There are two allocation tracing benchmarks (for normal and columnar loads). +These can only be run on Ruby 2.1 or better and requires the +[allocation\_tracer][] gem (not installed by default). + +- `rake benchmark:allocations` +- `rake benchmark:allocations:columnar` + +There are two loaded object count benchmarks (for normal and columnar loads). +These use `ObjectSpace.count_objects`. + +- `rake benchmark:objects` +- `rake benchmark:objects:columnar` + +## 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//ruby-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 mime-types/ruby-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 over the years: + +- Aaron Patterson +- Alex Vondrak +- Aggelos Avgerinos +- Al Snow +- Andre Pankratz +- Andy Brody +- Arnaud Meuret +- Brandon Galbraith +- Burke Libbey +- Chris Gat +- David Genord +- Dillon Welch +- Eric Marden +- Edward Betts +- Garret Alfert +- Godfrey Chan +- Greg Brockman +- Hans de Graaff +- Henrik Hodne +- Igor Victor +- Janko Marohnić +- Jean Boussier +- Jeremy Evans +- Juanito Fatas +- Jun Aruga +- Łukasz Śliwa +- Keerthi Siva +- Ken Ip +- Kevin Menard +- Koichi ITO +- Martin d'Allens +- Mauricio Linhares +- Nicolas Leger +- Nicholas La Roux +- nycvotes-dev +- Olle Jonsson +- Postmodern +- Richard Hirner +- Richard Hurt +- Richard Schneeman +- Robb Shecter +- Tibor Szolár +- Todd Carrico + +[minitest]: https://github.com/seattlerb/minitest +[quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[mime-types-data]: https://github.com/mime-types/mime-types-data +[hoe]: https://github.com/seattlerb/hoe +[allocation\_tracer]: https://github.com/ko1/allocation_tracer diff --git a/gems/3.3.2/gems/mime-types-3.5.1/History.md b/gems/3.3.2/gems/mime-types-3.5.1/History.md new file mode 100644 index 0000000..789a901 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/History.md @@ -0,0 +1,319 @@ +# Changelog + +## 3.5.1 / 2023-08-21 + +- 1 bug fix: + + - Better handle possible line-termination strings (legal in Unix filenames) + such as `\n` in `MIME::Types.type_for`. Reported by ooooooo-q in [#177][], + resolved in [#178][]. + +## 3.5.0 / 2023-08-07 + +- 1 minor enhancement: + + - Robb Shecter changed the default log level for duplicate type variant from + `warn` to `debug` in [#170][]. This works because `MIME::Types.logger` is + intended to fit the `::Logger` interface, and the default logger + (`WarnLogger`) is a subclass of `::Logger` that passes through to + `Kernel.warn`. + + - Further consideration has changed cache load messages from `warn` to + `error` and deprecation messages from `warn` to `debug`. + +- 1 bug fix: + + - Added a definition of `MIME::Type#hash`. Contributed by Alex Vondrak in + [#167][], fixing [#166][]. + +- Dependency and CI updates: + + - Update the .github/workflows/ci.yml workflow to test Ruby 3.2 and more + reliably test certain combinations rather than depending on exclusions. + + - Change `.standard.yml` configuration to format for Ruby 2.3 as certain files + are not properly detected with Ruby 2.0. + + - Change from `hoe-git` to `hoe-git2` to support Hoe version 4. + + - Apply `standardrb --fix`. + + - The above changes have resulted in the Soft deprecation of Ruby versions + below 2.6. Any errors reported for Ruby versions 2.0, 2.1, 2.2, 2.3, 2.4, + and 2.5 will be resolved, but maintaining CI for these versions is + unsustainable. + +## 3.4.1 / 2021-11-16 + +- 1 bug fix: + + - Fixed a Ruby < 2.3 incompatibility introduced by the use of standardrb, + where `<<-` heredocs were converted to `<<~` heredocs. These have been + reverted back to `<<-` with the indentation kept and a `.strip` call + to prevent excess whitespace. + +## 3.4.0 / 2021-11-15 + +- 1 minor enhancement: + + - Added a new field to `MIME::Type` for checking provisional registrations + from IANA. [#157] + +- Documentation: + + - Kevin Menard synced the documentation so that all examples are correct. + [#153] + +- Administrivia: + + - Added Ruby 3.0 to the CI test matrix. Added `windows/jruby` to the + CI exclusion list; it refuses to run successfully. + - Removed the Travis CI configuration and changed it to Github Workflows + [#150][]. Removed Coveralls configuration. + - Igor Victor added TruffleRuby to the Travis CI configuration. [#149] + - Koichi ITO loosened an excessively tight dependency. [#147] + - Started using `standardrb` for Ruby formatting and validation. + - Moved `deps:top` functionality to a support file. + +## 3.3.1 / 2019-12-26 + +- 1 minor bug fix: + + - Al Snow fixed a warning with MIME::Types::Logger producing a warning + because Ruby 2.7 introduces numbered block parameters. Because of the way + that the MIME::Types::Logger works for deprecation messages, the + initializer parameters had been named `_1`, `_2`, and `_3`. This has now + been resolved. [#146] + +- Administrivia: + + - Olle Jonsson removed an outdated Travis configuration option. [#142][] + +## 3.3 / 2019-09-04 + +- 1 minor enhancement + + - Jean Boussier reduced memory usage for Ruby versions 2.3 or higher by + interning various string values in each type. This is done with a + backwards-compatible call that _freezes_ the strings on older versions of + Ruby. [#141] + +- Administrivia: + + - Nicholas La Roux updated Travis build configurations. [#139] + +## 3.2.2 / 2018-08-12 + +- Hiroto Fukui removed a stray `debugger` statement that I had used in + producing v3.2.1. [#137] + +## 3.2.1 / 2018-08-12 + +- A few bugs related to MIME::Types::Container and its use in the + mime-types-data helper tools reared their head because I released 3.2 + before verifying against mime-types-data. + +## 3.2 / 2018-08-12 + +- 2 minor enhancements + + - Janko Marohnić contributed a change to `MIME::Type#priority_order` that + should improve on strict sorting when dealing with MIME types that appear + to be in the same family even if strict sorting would cause an + unregistered type to be sorted first. [#132] + + - Dillon Welch contributed a change that added `frozen_string_literal: true` + to files so that modern Rubies can automatically reduce duplicate string + allocations. [#135] + +- 2 bug fixes + + - Burke Libbey fixed a problem with cached data loading. [#126] + + - Resolved an issue where Enumerable#inject returns `nil` when provided an + empty enumerable and a default value has not been provided. This is + because when Enumerable#inject isn't provided a starting value, the first + value is used as the default value. In every case where this error was + happening, the result was supposed to be an array containing Set objects + so they can be reduced to a single Set. [#117][], [#127][], [#134][] + + - Fixed an uncontrolled growth bug in MIME::Types::Container where a key + miss would create a new entry with an empty Set in the container. This + was working as designed (this particular feature was heavily used during + MIME::Type registry construction), but the design was flawed in that it + did not have any way of determining the difference between construction + and querying. This would mean that, if you have a function in your web + app that queries the MIME::Types registry by extension, the extension + registry would grow uncontrollably. [#136] + +- Deprecations: + + - Lazy loading (`$RUBY_MIME_TYPES_LAZY_LOAD`) has been deprecated. + +- Documentation Changes: + + - Supporting files are now Markdown instead of rdoc, except for the README. + + - The history file has been modified to remove all history prior to 3.0. + This history can be found in previous commits. + + - A spelling error was corrected by Edward Betts ([#129][]). + +- Administrivia: + + - CI configuration for more modern versions of Ruby were added by Nicolas + Leger ([#130][]), Jun Aruga ([#125][]), and Austin Ziegler. Removed + ruby-head-clang and rbx (Rubinius) from CI. + + - Fixed tests which were asserting equality against nil, which will become + an error in Minitest 6. + +## 3.1 / 2016-05-22 + +- 1 documentation change: + + - Tim Smith (@tas50) updated the build badges to be SVGs to improve + readability on high-density (retina) screens with pull request [#112][]. + +- 3 bug fixes + + - A test for `MIME::Types::Cache` fails under Ruby 2.3 because of frozen + strings, [#118][]. This has been fixed. + + - The JSON data has been incorrectly encoded since the release of + mime-types 3 on the `xrefs` field, because of the switch to using a Set + to store cross-reference information. This has been fixed. + + - A tentative fix for [#117][] has been applied, removing the only circular + require dependencies that exist (and for which there was code to prevent, + but the current fix is simpler). I have no way to verify this fix and + depending on how things are loaded by `delayed_job`, this fix may not be + sufficient. + +- 1 governance change + + - Updated to Contributor Covenant 1.4. + +## 3.0 / 2015-11-21 + +- 2 governance changes + + - This project and the related mime-types-data project are now exclusively + MIT licensed. Resolves [#95][]. + + - All projects under the mime-types organization now have a standard code + of conduct adapted from the [Contributor Covenant][]. This text can be + found in the [Code-of-Conduct.md][] file. + +- 3 major changes + + - All methods deprecated in mime-types 2.x have been removed. + + - mime-types now requires Ruby 2.0 compatibility or later. Resolves + [#97][]. + + - The registry data has been removed from mime-types and put into + mime-types-data, maintained and released separately. It can be found at + [mime-types-data][]. + +- 17 minor changes: + + - `MIME::Type` changes: + + - Changed the way that simplified types representations are created to + reflect the fact that `x-` prefixes are no longer considered special + according to IANA. A simplified MIME type is case-folded to lowercase. + A new keyword parameter, `remove_x_prefix`, can be provided to remove + `x-` prefixes. + + - Improved initialization with an Array works so that extensions do not + need to be wrapped in another array. This means that + `%w(text/yaml yaml yml)` works in the same way that + `['text/yaml', %w(yaml yml)]` did (and still does). + + - Changed `priority_compare` to conform with attributes that no longer + exist. + + - Changed the internal implementation of extensions to use a frozen Set. + + - When extensions are set or modified with `add_extensions`, the primary + registry will be informed of a need to re-index extensions. Resolves + [#84][]. + + - The preferred extension can be set explicitly. If not set, it will be + the first extension. If the preferred extension is not in the extension + list, it will be added. + + - Improved how xref URLs are generated. + + - Converted `obsolete`, `registered` and `signature` to `attr_accessors`. + + - `MIME::Types` changes: + + - Modified `MIME::Types.new` to track instances of `MIME::Types` so that + they can be told to reindex the extensions as necessary. + + - Removed `data_version` attribute. + + - Changed `#[]` so that the `complete` and `registered` flags are + keywords instead of a generic options parameter. + + - Extracted the class methods to a separate file. + + - Changed the container implementation to use a Set instead of an Array + to prevent data duplication. Resolves [#79][]. + + - `MIME::Types::Cache` changes: + + - Caching is now based on the data gem version instead of the mime-types + version. + + - Caching is compatible with columnar registry stores. + + - `MIME::Types::Loader` changes: + + - `MIME::Types::Loader::PATH` has been removed and replaced with + `MIME::Types::Data::PATH` from the mime-types-data gem. The environment + variable `RUBY_MIME_TYPES_DATA` is still used. + + - Support for the long-deprecated mime-types v1 format has been removed. + + - The registry is default loaded from the columnar store by default. The + internal format of the columnar store has changed; many of the boolean + flags are now loaded from a single file. Resolves [#85][]. + +[#79]: https://github.com/mime-types/ruby-mime-types/pull/79 +[#84]: https://github.com/mime-types/ruby-mime-types/pull/84 +[#85]: https://github.com/mime-types/ruby-mime-types/pull/85 +[#95]: https://github.com/mime-types/ruby-mime-types/pull/95 +[#97]: https://github.com/mime-types/ruby-mime-types/pull/97 +[#112]: https://github.com/mime-types/ruby-mime-types/pull/112 +[#117]: https://github.com/mime-types/ruby-mime-types/issues/117 +[#118]: https://github.com/mime-types/ruby-mime-types/pull/118 +[#125]: https://github.com/mime-types/ruby-mime-types/pull/125 +[#126]: https://github.com/mime-types/ruby-mime-types/pull/126 +[#127]: https://github.com/mime-types/ruby-mime-types/issues/127 +[#129]: https://github.com/mime-types/ruby-mime-types/pull/129 +[#130]: https://github.com/mime-types/ruby-mime-types/pull/130 +[#127]: https://github.com/mime-types/ruby-mime-types/issues/127 +[#132]: https://github.com/mime-types/ruby-mime-types/pull/132 +[#134]: https://github.com/mime-types/ruby-mime-types/issues/134 +[#135]: https://github.com/mime-types/ruby-mime-types/pull/135 +[#136]: https://github.com/mime-types/ruby-mime-types/issues/136 +[#137]: https://github.com/mime-types/ruby-mime-types/pull/137 +[#139]: https://github.com/mime-types/ruby-mime-types/pull/139 +[#141]: https://github.com/mime-types/ruby-mime-types/pull/141 +[#142]: https://github.com/mime-types/ruby-mime-types/pull/142 +[#146]: https://github.com/mime-types/ruby-mime-types/pull/146 +[#147]: https://github.com/mime-types/ruby-mime-types/pull/147 +[#149]: https://github.com/mime-types/ruby-mime-types/pull/149 +[#150]: https://github.com/mime-types/ruby-mime-types/pull/150 +[#153]: https://github.com/mime-types/ruby-mime-types/pull/153 +[#166]: https://github.com/mime-types/ruby-mime-types/issues/166 +[#167]: https://github.com/mime-types/ruby-mime-types/pull/167 +[#170]: https://github.com/mime-types/ruby-mime-types/pull/170 +[#177]: https://github.com/mime-types/ruby-mime-types/issues/177 +[#178]: https://github.com/mime-types/ruby-mime-types/pull/178 +[code-of-conduct.md]: Code-of-Conduct_md.html +[contributor covenant]: http://contributor-covenant.org +[mime-types-data]: https://github.com/mime-types/mime-types-data diff --git a/gems/3.3.2/gems/mime-types-3.5.1/Licence.md b/gems/3.3.2/gems/mime-types-3.5.1/Licence.md new file mode 100644 index 0000000..d928f71 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/Licence.md @@ -0,0 +1,25 @@ +# Licence + +- Copyright 2003–2019 Austin Ziegler and contributors. + +The software in this repository is made available under the MIT license. + +## MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of +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. diff --git a/gems/3.3.2/gems/mime-types-3.5.1/Manifest.txt b/gems/3.3.2/gems/mime-types-3.5.1/Manifest.txt new file mode 100644 index 0000000..410202f --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/Manifest.txt @@ -0,0 +1,32 @@ +.standard.yml +Code-of-Conduct.md +Contributing.md +History.md +Licence.md +Manifest.txt +README.rdoc +Rakefile +lib/mime-types.rb +lib/mime/type.rb +lib/mime/type/columnar.rb +lib/mime/types.rb +lib/mime/types/_columnar.rb +lib/mime/types/cache.rb +lib/mime/types/columnar.rb +lib/mime/types/container.rb +lib/mime/types/deprecations.rb +lib/mime/types/full.rb +lib/mime/types/loader.rb +lib/mime/types/logger.rb +lib/mime/types/registry.rb +test/bad-fixtures/malformed +test/fixture/json.json +test/fixture/old-data +test/fixture/yaml.yaml +test/minitest_helper.rb +test/test_mime_type.rb +test/test_mime_types.rb +test/test_mime_types_cache.rb +test/test_mime_types_class.rb +test/test_mime_types_lazy.rb +test/test_mime_types_loader.rb diff --git a/gems/3.3.2/gems/mime-types-3.5.1/README.rdoc b/gems/3.3.2/gems/mime-types-3.5.1/README.rdoc new file mode 100644 index 0000000..623b419 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/README.rdoc @@ -0,0 +1,194 @@ += mime-types for Ruby + +home :: https://github.com/mime-types/ruby-mime-types/ +code :: https://github.com/mime-types/ruby-mime-types/ +bugs :: https://github.com/mime-types/ruby-mime-types/issues +rdoc :: http://rdoc.info/gems/mime-types/ +clog :: https://github.com/mime-types/ruby-mime-types/blob/master/History.md +continuous integration :: {Build Status}[https://github.com/mime-types/ruby-mime-types/actions/workflows/ci.yml] +test coverage :: {Coverage Status}[https://coveralls.io/github/mime-types/ruby-mime-types?branch=master] + +== Description + +The mime-types library provides a library and registry for information about +MIME content type definitions. It can be used to determine defined filename +extensions for MIME types, or to use filename extensions to look up the likely +MIME type definitions. + +Version 3.0 is a major release that requires Ruby 2.0 compatibility and removes +deprecated functions. The columnar registry format introduced in 2.6 has been +made the primary format; the registry data has been extracted from this library +and put into {mime-types-data}[https://github.com/mime-types/mime-types-data]. +Additionally, mime-types is now licensed exclusively under the MIT licence and +there is a code of conduct in effect. There are a number of other smaller +changes described in the History file. + +=== About MIME Media Types + +MIME content types are used in MIME-compliant communications, as in e-mail or +HTTP traffic, to indicate the type of content which is transmitted. The +mime-types library provides the ability for detailed information about MIME +entities (provided as an enumerable collection of MIME::Type objects) to be +determined and used. There are many types defined by RFCs and vendors, so the +list is long but by definition incomplete; don't hesitate to add additional +type definitions. MIME type definitions found in mime-types are from RFCs, W3C +recommendations, the {IANA Media Types +registry}[https://www.iana.org/assignments/media-types/media-types.xhtml], and +user contributions. It conforms to RFCs 2045 and 2231. + +=== mime-types 3.x + +Users are encouraged to upgrade to mime-types 3.x as soon as is practical. +mime-types 3.x requires Ruby 2.0 compatibility and a simpler licensing scheme. + +== 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'] # => [ 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.preferred_extension # => 'txt' + puts text.friendly # => 'Text Document' + puts text.i18n_key # => 'text.plain' + + puts text.encoding # => quoted-printable + puts text.default_encoding # => quoted-printable + puts text.binary? # => false + puts text.ascii? # => true + puts text.obsolete? # => false + puts text.registered? # => true + puts text.provisional? # => false + puts text.complete? # => true + + puts text # => 'text/plain' + + puts text == 'text/plain' # => true + puts 'text/plain' == text # => true + puts text == 'text/x-plain' # => false + puts 'text/x-plain' == text # => false + + puts MIME::Type.simplified('x-appl/x-zip') # => 'x-appl/x-zip' + puts MIME::Type.i18n_key('x-appl/x-zip') # => 'x-appl.x-zip' + + puts text.like?('text/x-plain') # => true + puts text.like?(MIME::Type.new('x-text/x-plain')) # => true + + puts text.xrefs.inspect # => { "rfc" => [ "rfc2046", "rfc3676", "rfc5147" ] } + puts text.xref_urls # => [ "http://www.iana.org/go/rfc2046", + # "http://www.iana.org/go/rfc3676", + # "http://www.iana.org/go/rfc5147" ] + + xtext = MIME::Type.new('x-text/x-plain') + puts xtext.media_type # => 'text' + puts xtext.raw_media_type # => 'x-text' + puts xtext.sub_type # => 'plain' + puts xtext.raw_sub_type # => 'x-plain' + puts xtext.complete? # => false + + puts MIME::Types.any? { |type| type.content_type == 'text/plain' } # => true + puts MIME::Types.all?(&:registered?) # => false + + # Various string representations of MIME types + qcelp = MIME::Types['audio/QCELP'].first # => audio/QCELP + puts qcelp.content_type # => 'audio/QCELP' + puts qcelp.simplified # => 'audio/qcelp' + + xwingz = MIME::Types['application/x-Wingz'].first # => application/x-Wingz + puts xwingz.content_type # => 'application/x-Wingz' + puts xwingz.simplified # => 'application/x-wingz' + +=== Columnar Store + +mime-types uses as its primary registry storage format a columnar storage +format reducing the default memory footprint. This is done by selectively +loading the data on a per-attribute basis. When the registry is first loaded +from the columnar store, only the canonical MIME content type and known +extensions and the MIME type will be connected to its loading registry. When +other data about the type is required (including +preferred_extension+, +obsolete?, and registered?) that data is loaded from its own +column file for all types in the registry. + +The load of any column data is performed with a Mutex to ensure that types are +updated safely in a multithreaded environment. Benchmarks show that while +columnar data loading is slower than the JSON store, it cuts the memory use by +a third over the JSON store. + +If you prefer to load all the data at once, this can be specified in your +application Gemfile as: + + gem 'mime-types', require: 'mime/types/full' + +Projects that do not use Bundler should +require+ the same: + + require 'mime/types/full' + +Libraries that use mime-types are discouraged from choosing the JSON store. + +For applications and clients that used mime-types 2.6 when the columnar store +was introduced, the require used previously will still work through at least +{version +4}[https://github.com/mime-types/ruby-mime-types/pull/96#issuecomment-100725400] +and possibly beyond; it is effectively an empty operation. You are recommended +to change your Gemfile as soon as is practical. + + require 'mime/types/columnar' + +Note that MIME::Type::Columnar and MIME::Types::Columnar are considered private +variant implementations of MIME::Type and MIME::Types and the specific +implementation should not be relied upon by consumers of the mime-types +library. Instead, depend on the public implementations (MIME::Type and +MIME::Types) only. + +=== Cached Storage + +mime-types supports a cache of MIME types using Marshal.dump. The +cache is invalidated for each version of the mime-types-data gem so that data +version 3.2015.1201 will not be reused with data version 3.2016.0101. If the +environment variable +RUBY_MIME_TYPES_CACHE+ is set to a cache file, mime-types +will attempt to load the MIME type registry from the cache file. If it cannot, +it will load the types normally and then saves the registry to the cache file. + +The caching works with both full stores and columnar stores. Only the data that +has been loaded prior to saving the cache will be stored. + +== mime-types Modified Semantic Versioning + +The mime-types library has one version number, but this single version number +tracks both API changes and registry data changes; this is not wholly +compatible with all aspects of {Semantic Versioning}[http://semver.org/]; +removing a MIME type from the registry *could* be considered a breaking change +under some interpretations of semantic versioning (as lookups for that +particular type would no longer work by default). + +mime-types uses a modified semantic versioning scheme. Given the version +MAJOR.MINOR: + +1. If an incompatible API (code) change is made, the MAJOR version will be + incremented, MINOR will be set to zero, and PATCH will be reset to the + implied zero. + +2. If an API (code) feature is added that does not break compatibility, the + MINOR version will be incremented and PATCH will be reset to the implied zero. + +3. If there is a bugfix to a feature added in the most recent MAJOR.MINOR + release, the implied PATCH value will be incremented resulting in + MAJOR.MINOR.PATCH. + +In practical terms, there will be fewer releases of mime-types focussing on +features because of the existence of the [mime-types-data][] gem, and if +features are marked deprecated in the course of mime-types 3.x, they will not +be removed until mime-types 4.x or possibly later. + +{Code of Conduct}[Code-of-Conduct_md.html] + +{Contributing}[Contributing_md.html] + +{Licence}[Licence_md.html] diff --git a/gems/3.3.2/gems/mime-types-3.5.1/Rakefile b/gems/3.3.2/gems/mime-types-3.5.1/Rakefile new file mode 100644 index 0000000..51254e5 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/Rakefile @@ -0,0 +1,230 @@ +require "rubygems" +require "hoe" +require "rake/clean" + +Hoe.plugin :cov +Hoe.plugin :doofus +Hoe.plugin :gemspec2 +Hoe.plugin :git2 +Hoe.plugin :minitest +Hoe.plugin :rubygems + +spec = Hoe.spec "mime-types" do + developer("Austin Ziegler", "halostatue@gmail.com") + + self.history_file = "History.md" + self.readme_file = "README.rdoc" + + license "MIT" + + require_ruby_version ">= 2.0" + + spec_extras[:metadata] = ->(val) { val["rubygems_mfa_required"] = "true" } + + extra_deps << ["mime-types-data", "~> 3.2015"] + + extra_dev_deps << ["hoe", ">= 3.0", "< 5"] + extra_dev_deps << ["hoe-doofus", "~> 1.0"] + extra_dev_deps << ["hoe-gemspec2", "~> 1.1"] + extra_dev_deps << ["hoe-git2", "~> 1.7"] + extra_dev_deps << ["hoe-rubygems", "~> 1.0"] + extra_dev_deps << ["minitest", "~> 5.0"] + extra_dev_deps << ["minitest-autotest", "~> 1.0"] + extra_dev_deps << ["minitest-bonus-assertions", "~> 3.0"] + extra_dev_deps << ["minitest-focus", "~> 1.0"] + extra_dev_deps << ["minitest-hooks", "~> 1.4"] + extra_dev_deps << ["rake", ">= 10.0", "< 14.0"] + extra_dev_deps << ["standard", "~> 1.0"] +end + +namespace :benchmark do + task :support do + %w[lib support].each { |path| + $LOAD_PATH.unshift(File.join(Rake.application.original_dir, path)) + } + end + + desc "Benchmark Load Times" + task :load, [:repeats] => "benchmark:support" do |_, args| + require "benchmarks/load" + Benchmarks::Load.report( + File.join(Rake.application.original_dir, "lib"), + args.repeats + ) + end + + desc "Allocation counts" + task :allocations, [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/load_allocations" + Benchmarks::LoadAllocations.report( + top_x: args.top_x, + mime_types_only: args.mime_types_only + ) + end + + desc "Columnar allocation counts" + task "allocations:columnar", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/load_allocations" + Benchmarks::LoadAllocations.report( + columnar: true, + top_x: args.top_x, + mime_types_only: args.mime_types_only + ) + end + + desc "Columnar allocation counts (full load)" + task "allocations:columnar:full", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/load_allocations" + Benchmarks::LoadAllocations.report( + columnar: true, + top_x: args.top_x, + mime_types_only: args.mime_types_only, + full: true + ) + end + + desc "Memory profiler" + task :memory, [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/memory_profiler" + Benchmarks::ProfileMemory.report( + mime_types_only: args.mime_types_only, + top_x: args.top_x + ) + end + + desc "Columnar memory profiler" + task "memory:columnar", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/memory_profiler" + Benchmarks::ProfileMemory.report( + columnar: true, + mime_types_only: args.mime_types_only, + top_x: args.top_x + ) + end + + desc "Columnar allocation counts (full load)" + task "memory:columnar:full", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/memory_profiler" + Benchmarks::ProfileMemory.report( + columnar: true, + full: true, + top_x: args.top_x, + mime_types_only: args.mime_types_only + ) + end + + desc "Object counts" + task objects: "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report + end + + desc "Columnar object counts" + task "objects:columnar" => "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report(columnar: true) + end + + desc "Columnar object counts (full load)" + task "objects:columnar:full" => "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report(columnar: true, full: true) + end +end + +namespace :profile do + directory "tmp/profile" + + CLEAN.add "tmp" + + def ruby_prof(script) + require "pathname" + output = Pathname("tmp/profile").join(script) + output.mkpath + script = Pathname("support/profile").join("#{script}.rb") + + args = [ + "-W0", + "-Ilib", + "-S", "ruby-prof", + "-R", "mime/types", + "-s", "self", + "-p", "multi", + "-f", output.to_s, + script.to_s + ] + ruby args.join(" ") + end + + task full: "tmp/profile" do + ruby_prof "full" + end + + task columnar: :support do + ruby_prof "columnar" + end + + task "columnar:full" => :support do + ruby_prof "columnar_full" + end +end + +if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0") + namespace :test do + desc "Run test coverage" + task :coverage do + spec.test_prelude = [ + 'require "simplecov"', + 'SimpleCov.start("test_frameworks") { command_name "Minitest" }', + 'gem "minitest"' + ].join("; ") + Rake::Task["test"].execute + end + end +end + +namespace :convert do + namespace :docs do + task :setup do + gem "rdoc" + require "rdoc/rdoc" + @doc_converter ||= RDoc::Markup::ToMarkdown.new + end + + FileList["*.rdoc"].each do |name| + rdoc = name + mark = "#{File.basename(name, ".rdoc")}.md" + + file mark => [rdoc, :setup] do |t| + puts "#{rdoc} => #{mark}" + File.binwrite(t.name, @doc_converter.convert(IO.read(t.prerequisites.first))) + end + + CLEAN.add mark + + task run: [mark] + end + end + + desc "Convert documentation from RDoc to Markdown" + task docs: "convert:docs:run" +end + +namespace :deps do + task :top, [:number] => "benchmark:support" do |_, args| + require "deps" + Deps.run(args) + end +end + +task :console do + arguments = %w[irb] + arguments.push(*spec.spec.require_paths.map { |dir| "-I#{dir}" }) + arguments.push("-r#{spec.spec.name.gsub("-", File::SEPARATOR)}") + unless system(*arguments) + error "Command failed: #{show_command}" + abort + end +end + +# vim: syntax=ruby diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime-types.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime-types.rb new file mode 100644 index 0000000..dcb87cf --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime-types.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "mime/types" diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type.rb new file mode 100644 index 0000000..d19a6a9 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type.rb @@ -0,0 +1,660 @@ +# frozen_string_literal: true + +## +module MIME +end + +# The definition of one MIME content-type. +# +# == Usage +# require 'mime/types' +# +# plaintext = MIME::Types['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.preferred_extension # => 'txt' +# puts text.friendly # => 'Text Document' +# puts text.i18n_key # => 'text.plain' +# +# puts text.encoding # => quoted-printable +# puts text.default_encoding # => quoted-printable +# puts text.binary? # => false +# puts text.ascii? # => true +# puts text.obsolete? # => false +# puts text.registered? # => true +# puts text.provisional? # => false +# puts text.complete? # => true +# +# puts text # => 'text/plain' +# +# puts text == 'text/plain' # => true +# puts 'text/plain' == text # => true +# puts text == 'text/x-plain' # => false +# puts 'text/x-plain' == text # => false +# +# puts MIME::Type.simplified('x-appl/x-zip') # => 'x-appl/x-zip' +# puts MIME::Type.i18n_key('x-appl/x-zip') # => 'x-appl.x-zip' +# +# puts text.like?('text/x-plain') # => true +# puts text.like?(MIME::Type.new('x-text/x-plain')) # => true +# +# puts text.xrefs.inspect # => { "rfc" => [ "rfc2046", "rfc3676", "rfc5147" ] } +# puts text.xref_urls # => [ "http://www.iana.org/go/rfc2046", +# # "http://www.iana.org/go/rfc3676", +# # "http://www.iana.org/go/rfc5147" ] +# +# xtext = MIME::Type.new('x-text/x-plain') +# puts xtext.media_type # => 'text' +# puts xtext.raw_media_type # => 'x-text' +# puts xtext.sub_type # => 'plain' +# puts xtext.raw_sub_type # => 'x-plain' +# puts xtext.complete? # => false +# +# puts MIME::Types.any? { |type| type.content_type == 'text/plain' } # => true +# puts MIME::Types.all?(&:registered?) # => false +# +# # Various string representations of MIME types +# qcelp = MIME::Types['audio/QCELP'].first # => audio/QCELP +# puts qcelp.content_type # => 'audio/QCELP' +# puts qcelp.simplified # => 'audio/qcelp' +# +# xwingz = MIME::Types['application/x-Wingz'].first # => application/x-Wingz +# puts xwingz.content_type # => 'application/x-Wingz' +# puts xwingz.simplified # => 'application/x-wingz' +class MIME::Type + # Reflects a MIME content-type specification that is not correctly + # formatted (it isn't +type+/+subtype+). + class InvalidContentType < ArgumentError + # :stopdoc: + def initialize(type_string) + @type_string = type_string + end + + def to_s + "Invalid Content-Type #{@type_string.inspect}" + end + # :startdoc: + end + + # Reflects an unsupported MIME encoding. + class InvalidEncoding < ArgumentError + # :stopdoc: + def initialize(encoding) + @encoding = encoding + end + + def to_s + "Invalid Encoding #{@encoding.inspect}" + end + # :startdoc: + end + + # The released version of the mime-types library. + VERSION = "3.5.1" + + include Comparable + + # :stopdoc: + # TODO verify mime-type character restrictions; I am pretty sure that this is + # too wide open. + MEDIA_TYPE_RE = %r{([-\w.+]+)/([-\w.+]*)}.freeze + I18N_RE = /[^[:alnum:]]/.freeze + BINARY_ENCODINGS = %w[base64 8bit].freeze + ASCII_ENCODINGS = %w[7bit quoted-printable].freeze + # :startdoc: + + private_constant :MEDIA_TYPE_RE, :I18N_RE, :BINARY_ENCODINGS, + :ASCII_ENCODINGS + + # Builds a MIME::Type object from the +content_type+, a MIME Content Type + # value (e.g., 'text/plain' or 'application/x-eruby'). The constructed object + # is yielded to an optional block for additional configuration, such as + # associating extensions and encoding information. + # + # * When provided a Hash or a MIME::Type, the MIME::Type will be + # constructed with #init_with. + # * When provided an Array, the MIME::Type will be constructed using + # the first element as the content type and the remaining flattened + # elements as extensions. + # * Otherwise, the content_type will be used as a string. + # + # Yields the newly constructed +self+ object. + def initialize(content_type) # :yields: self + @friendly = {} + @obsolete = @registered = @provisional = false + @preferred_extension = @docs = @use_instead = nil + self.extensions = [] + + case content_type + when Hash + init_with(content_type) + when Array + self.content_type = content_type.shift + self.extensions = content_type.flatten + when MIME::Type + init_with(content_type.to_h) + else + self.content_type = content_type + end + + self.encoding ||= :default + self.xrefs ||= {} + + yield self if block_given? + end + + # Indicates that a MIME type is like another type. This differs from + # == because x- prefixes are removed for this comparison. + def like?(other) + other = + if other.respond_to?(:simplified) + MIME::Type.simplified(other.simplified, remove_x_prefix: true) + else + MIME::Type.simplified(other.to_s, remove_x_prefix: true) + end + MIME::Type.simplified(simplified, remove_x_prefix: true) == other + end + + # Compares the +other+ 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.nil? + -1 + elsif other.respond_to?(:simplified) + simplified <=> other.simplified + else + filtered = "silent" if other == :silent + filtered ||= "true" if other == true + filtered ||= other.to_s + + simplified <=> MIME::Type.simplified(filtered) + end + end + + # Compares the +other+ 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. Complete definitions < incomplete definitions. + # 4. Current definitions < obsolete definitions. + # 5. Obselete with use-instead names < obsolete without. + # 6. Obsolete use-instead definitions are compared. + # + # While this method is public, its use is strongly discouraged by consumers + # of mime-types. In mime-types 3, this method is likely to see substantial + # revision and simplification to ensure current registered content types sort + # before unregistered or obsolete content types. + def priority_compare(other) + pc = simplified <=> other.simplified + if pc.zero? || !(extensions & other.extensions).empty? + pc = + if (reg = registered?) != other.registered? + reg ? -1 : 1 # registered < unregistered + elsif (comp = complete?) != other.complete? + comp ? -1 : 1 # complete < incomplete + elsif (obs = obsolete?) != other.obsolete? + obs ? 1 : -1 # current < obsolete + elsif obs && ((ui = use_instead) != (oui = other.use_instead)) + if ui.nil? + 1 + elsif oui.nil? + -1 + else + ui <=> oui + end + else + 0 + end + end + + pc + end + + # Returns +true+ if the +other+ object is a MIME::Type and the content types + # match. + def eql?(other) + other.is_a?(MIME::Type) && (self == other) + end + + # Returns a hash based on the #simplified value. + # + # This maintains the invariant that two #eql? instances must have the same + # #hash (although having the same #hash does *not* imply that the objects are + # #eql?). + # + # To see why, suppose a MIME::Type instance +a+ is compared to another object + # +b+, and that a.eql?(b) is true. By the definition of #eql?, + # we know the following: + # + # 1. +b+ is a MIME::Type instance itself. + # 2. a == b is true. + # + # Due to the first point, we know that +b+ should respond to the #simplified + # method. Thus, per the definition of #<=>, we know that +a.simplified+ must + # be equal to +b.simplified+, as compared by the <=> method corresponding to + # +a.simplified+. + # + # Presumably, if a.simplified <=> b.simplified is +0+, then + # +a.simplified+ has the same hash as +b.simplified+. So we assume it's + # suitable for #hash to delegate to #simplified in service of the #eql? + # invariant. + def hash + simplified.hash + end + + # Returns the whole MIME content-type string. + # + # The content type is a presentation value from the MIME type registry and + # should not be used for comparison. The case of the content type is + # preserved, and extension markers (x-) are kept. + # + # text/plain => text/plain + # x-chemical/x-pdb => x-chemical/x-pdb + # audio/QCELP => audio/QCELP + attr_reader :content_type + # A simplified form of the MIME content-type string, suitable for + # case-insensitive comparison, with the content_type converted to lowercase. + # + # text/plain => text/plain + # x-chemical/x-pdb => x-chemical/x-pdb + # audio/QCELP => audio/qcelp + attr_reader :simplified + # Returns the media type of the simplified MIME::Type. + # + # text/plain => text + # x-chemical/x-pdb => x-chemical + # audio/QCELP => audio + attr_reader :media_type + # Returns the media type of the unmodified MIME::Type. + # + # text/plain => text + # x-chemical/x-pdb => x-chemical + # audio/QCELP => audio + attr_reader :raw_media_type + # Returns the sub-type of the simplified MIME::Type. + # + # text/plain => plain + # x-chemical/x-pdb => pdb + # audio/QCELP => QCELP + attr_reader :sub_type + # Returns the media type of the unmodified MIME::Type. + # + # text/plain => plain + # x-chemical/x-pdb => x-pdb + # audio/QCELP => qcelp + attr_reader :raw_sub_type + + ## + # 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, +nil+ values removed, and made unique. + # + # :attr_accessor: extensions + def extensions + @extensions.to_a + end + + ## + def extensions=(value) # :nodoc: + @extensions = Set[*Array(value).flatten.compact].freeze + MIME::Types.send(:reindex_extensions, self) + end + + # Merge the +extensions+ provided into this MIME::Type. The extensions added + # will be merged uniquely. + def add_extensions(*extensions) + self.extensions += extensions + end + + ## + # The preferred extension for this MIME type. If one is not set and there are + # exceptions defined, the first extension will be used. + # + # When setting #preferred_extensions, if #extensions does not contain this + # extension, this will be added to #xtensions. + # + # :attr_accessor: preferred_extension + + ## + def preferred_extension + @preferred_extension || extensions.first + end + + ## + def preferred_extension=(value) # :nodoc: + add_extensions(value) if value + @preferred_extension = value + 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 + + ## + attr_reader :encoding + + ## + def encoding=(enc) # :nodoc: + if enc.nil? || (enc == :default) + @encoding = default_encoding + elsif BINARY_ENCODINGS.include?(enc) || ASCII_ENCODINGS.include?(enc) + @encoding = enc + else + fail InvalidEncoding, enc + end + end + + # Returns the default encoding for the MIME::Type based on the media type. + 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_accessor: use_instead + + ## + def use_instead + obsolete? ? @use_instead : nil + end + + ## + attr_writer :use_instead + + # Returns +true+ if the media type is obsolete. + attr_accessor :obsolete + alias_method :obsolete?, :obsolete + + # The documentation for this MIME::Type. + attr_accessor :docs + + # A friendly short description for this MIME::Type. + # + # call-seq: + # text_plain.friendly # => "Text File" + # text_plain.friendly('en') # => "Text File" + def friendly(lang = "en") + @friendly ||= {} + + case lang + when String, Symbol + @friendly[lang.to_s] + when Array + @friendly.update(Hash[*lang]) + when Hash + @friendly.update(lang) + else + fail ArgumentError, + "Expected a language or translation set, not #{lang.inspect}" + end + end + + # A key suitable for use as a lookup key for translations, such as with + # the I18n library. + # + # call-seq: + # text_plain.i18n_key # => "text.plain" + # 3gpp_xml.i18n_key # => "application.vnd-3gpp-bsf-xml" + # # from application/vnd.3gpp.bsf+xml + # x_msword.i18n_key # => "application.word" + # # from application/x-msword + attr_reader :i18n_key + + ## + # The cross-references list for this MIME::Type. + # + # :attr_accessor: xrefs + + ## + attr_reader :xrefs + + ## + def xrefs=(xrefs) # :nodoc: + @xrefs = MIME::Types::Container.new(xrefs) + end + + # The decoded cross-reference URL list for this MIME::Type. + def xref_urls + xrefs.flat_map { |type, values| + name = :"xref_url_for_#{type.tr("-", "_")}" + respond_to?(name, true) && xref_map(values, name) || values.to_a + } + end + + # Indicates whether the MIME type has been registered with IANA. + attr_accessor :registered + alias_method :registered?, :registered + + # Indicates whether the MIME type's registration with IANA is provisional. + attr_accessor :provisional + + # Indicates whether the MIME type's registration with IANA is provisional. + def provisional? + registered? && @provisional + end + + # 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? + BINARY_ENCODINGS.include?(encoding) + 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? + ASCII_ENCODINGS.include?(encoding) + end + + # Indicateswhether the MIME type is declared as a signature type. + attr_accessor :signature + alias_method :signature?, :signature + + # Returns +true+ if the MIME::Type specifies an extension list, + # indicating that it is a complete MIME::Type. + def complete? + !@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. This allows + # MIME::Type objects to appear on either side of a comparison. + # + # 'text/plain' == MIME::Type.new('text/plain') + def to_str + content_type + end + + # Converts the MIME::Type to a JSON string. + def to_json(*args) + require "json" + to_h.to_json(*args) + end + + # Converts the MIME::Type to a hash. The output of this method can also be + # used to initialize a MIME::Type. + def to_h + encode_with({}) + end + + # Populates the +coder+ with attributes about this record for + # serialization. The structure of +coder+ should match the structure used + # with #init_with. + # + # This method should be considered a private implementation detail. + def encode_with(coder) + coder["content-type"] = @content_type + coder["docs"] = @docs unless @docs.nil? || @docs.empty? + coder["friendly"] = @friendly unless @friendly.nil? || @friendly.empty? + coder["encoding"] = @encoding + coder["extensions"] = @extensions.to_a unless @extensions.empty? + coder["preferred-extension"] = @preferred_extension if @preferred_extension + if obsolete? + coder["obsolete"] = obsolete? + coder["use-instead"] = use_instead if use_instead + end + unless xrefs.empty? + {}.tap do |hash| + xrefs.each do |k, v| + hash[k] = v.to_a.sort + end + coder["xrefs"] = hash + end + end + coder["registered"] = registered? + coder["provisional"] = provisional? if provisional? + coder["signature"] = signature? if signature? + coder + end + + # Initialize an empty object from +coder+, which must contain the + # attributes necessary for initializing an empty object. + # + # This method should be considered a private implementation detail. + def init_with(coder) + self.content_type = coder["content-type"] + self.docs = coder["docs"] || "" + self.encoding = coder["encoding"] + self.extensions = coder["extensions"] || [] + self.preferred_extension = coder["preferred-extension"] + self.obsolete = coder["obsolete"] || false + self.registered = coder["registered"] || false + self.provisional = coder["provisional"] || false + self.signature = coder["signature"] + self.xrefs = coder["xrefs"] || {} + self.use_instead = coder["use-instead"] + + friendly(coder["friendly"] || {}) + end + + def inspect # :nodoc: + # We are intentionally lying here because MIME::Type::Columnar is an + # implementation detail. + "#" + end + + class << self + # MIME media types are case-insensitive, but are typically presented in a + # case-preserving format in the type registry. This method converts + # +content_type+ to lowercase. + # + # In previous versions of mime-types, this would also remove any extension + # prefix (x-). This is no longer default behaviour, but may be + # provided by providing a truth value to +remove_x_prefix+. + def simplified(content_type, remove_x_prefix: false) + simplify_matchdata(match(content_type), remove_x_prefix) + end + + # Converts a provided +content_type+ into a translation key suitable for + # use with the I18n library. + def i18n_key(content_type) + simplify_matchdata(match(content_type), joiner: ".") { |e| + e.gsub!(I18N_RE, "-") + } + end + + # Return a +MatchData+ object of the +content_type+ against pattern of + # media types. + def match(content_type) + case content_type + when MatchData + content_type + else + MEDIA_TYPE_RE.match(content_type) + end + end + + private + + def simplify_matchdata(matchdata, remove_x = false, joiner: "/") + return nil unless matchdata + + matchdata.captures.map { |e| + e.downcase! + e.sub!(/^x-/, "") if remove_x + yield e if block_given? + e + }.join(joiner) + end + end + + private + + def content_type=(type_string) + match = MEDIA_TYPE_RE.match(type_string) + fail InvalidContentType, type_string if match.nil? + + @content_type = intern_string(type_string) + @raw_media_type, @raw_sub_type = match.captures + @simplified = intern_string(MIME::Type.simplified(match)) + @i18n_key = intern_string(MIME::Type.i18n_key(match)) + @media_type, @sub_type = MEDIA_TYPE_RE.match(@simplified).captures + + @raw_media_type = intern_string(@raw_media_type) + @raw_sub_type = intern_string(@raw_sub_type) + @media_type = intern_string(@media_type) + @sub_type = intern_string(@sub_type) + end + + if String.method_defined?(:-@) + def intern_string(string) + -string + end + else + # MRI 2.2 and older don't have a method for string interning, + # so we simply freeze them for keeping a similar interface + def intern_string(string) + string.freeze + end + end + + def xref_map(values, helper) + values.map { |value| send(helper, value) } + end + + def xref_url_for_rfc(value) + "http://www.iana.org/go/%s" % value + end + + def xref_url_for_draft(value) + "http://www.iana.org/go/%s" % value.sub(/\ARFC/, "draft") + end + + def xref_url_for_rfc_errata(value) + "http://www.rfc-editor.org/errata_search.php?eid=%s" % value + end + + def xref_url_for_person(value) + "http://www.iana.org/assignments/media-types/media-types.xhtml#%s" % value + end + + def xref_url_for_template(value) + "http://www.iana.org/assignments/media-types/%s" % value + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type/columnar.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type/columnar.rb new file mode 100644 index 0000000..1b7c3ca --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/type/columnar.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "mime/type" + +# A version of MIME::Type that works hand-in-hand with a MIME::Types::Columnar +# container to load data by columns. +# +# When a field is has not yet been loaded, that data will be loaded for all +# types in the container before forwarding the message to MIME::Type. +# +# More information can be found in MIME::Types::Columnar. +# +# MIME::Type::Columnar is *not* intended to be created except by +# MIME::Types::Columnar containers. +class MIME::Type::Columnar < MIME::Type + def initialize(container, content_type, extensions) # :nodoc: + @container = container + self.content_type = content_type + self.extensions = extensions + end + + def self.column(*methods, file: nil) # :nodoc: + file ||= methods.first + + file_method = :"load_#{file}" + methods.each do |m| + define_method m do |*args| + @container.send(file_method) + super(*args) + end + end + end + + column :friendly + column :encoding, :encoding= + column :docs, :docs= + column :preferred_extension, :preferred_extension= + column :obsolete, :obsolete=, :obsolete?, :registered, :registered=, :registered?, :signature, :signature=, + :signature?, :provisional, :provisional=, :provisional?, file: "flags" + column :xrefs, :xrefs=, :xref_urls + column :use_instead, :use_instead= + + def encode_with(coder) # :nodoc: + @container.send(:load_friendly) + @container.send(:load_encoding) + @container.send(:load_docs) + @container.send(:load_flags) + @container.send(:load_use_instead) + @container.send(:load_xrefs) + @container.send(:load_preferred_extension) + super + end + + class << self + undef column + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types.rb new file mode 100644 index 0000000..bb0a3d0 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types.rb @@ -0,0 +1,233 @@ +# frozen_string_literal: true + +## +module MIME + ## + class Types + end +end + +require "mime/type" + +# MIME::Types is a registry of MIME types. It is both a class (created with +# MIME::Types.new) and a default registry (loaded automatically or through +# interactions with MIME::Types.[] and MIME::Types.type_for). +# +# == The Default mime-types Registry +# +# The default mime-types registry is loaded automatically when the library +# is required (require 'mime/types'), but it may be lazily loaded +# (loaded on first use) with the use of the environment variable +# +RUBY_MIME_TYPES_LAZY_LOAD+ having any value other than +false+. The +# initial startup is about 14× faster (~10 ms vs ~140 ms), but the +# registry will be loaded at some point in the future. +# +# The default mime-types registry can also be loaded from a Marshal cache +# file specific to the version of MIME::Types being loaded. This will be +# handled automatically with the use of a file referred to in the +# environment variable +RUBY_MIME_TYPES_CACHE+. MIME::Types will attempt to +# load the registry from this cache file (MIME::Type::Cache.load); if it +# cannot be loaded (because the file does not exist, there is an error, or +# the data is for a different version of mime-types), the default registry +# will be loaded from the normal JSON version and then the cache file will +# be *written* to the location indicated by +RUBY_MIME_TYPES_CACHE+. Cache +# file loads just over 4½× faster (~30 ms vs ~140 ms). +# loads. +# +# Notes: +# * The loading of the default registry is *not* atomic; when using a +# multi-threaded environment, it is recommended that lazy loading is not +# used and mime-types is loaded as early as possible. +# * Cache files should be specified per application in a multiprocess +# environment and should be initialized during deployment or before +# forking to minimize the chance that the multiple processes will be +# trying to write to the same cache file at the same time, or that two +# applications that are on different versions of mime-types would be +# thrashing the cache. +# * Unless cache files are preinitialized, the application using the +# mime-types cache file must have read/write permission to the cache file. +# +# == 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.provisional? # => false +# puts plaintext == 'text/plain' # => true +# puts MIME::Type.simplified('x-appl/x-zip') # => 'appl/zip' +# +class MIME::Types + # The release version of Ruby MIME::Types + VERSION = MIME::Type::VERSION + + include Enumerable + + # Creates a new MIME::Types registry. + def initialize + @type_variants = Container.new + @extension_index = Container.new + end + + # Returns the number of known type variants. + def count + @type_variants.values.inject(0) { |a, e| a + e.size } + end + + def inspect # :nodoc: + "#<#{self.class}: #{count} variants, #{@extension_index.count} extensions>" + end + + # Iterates through the type variants. + def each + if block_given? + @type_variants.each_value { |tv| tv.each { |t| yield t } } + else + enum_for(:each) + end + 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 :registered (finds only MIME::Types that are + # registered). 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. Current definitions sort before obsolete ones; + # 4. Obsolete definitions with use-instead clauses sort before those + # without; + # 5. Obsolete definitions use-instead clauses are compared. + # 6. Sort on name. + def [](type_id, complete: false, registered: false) + 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, complete, registered).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 there is no extension, the filename will be used + # as the matching criteria on its own. + # + # This will always return a merged, flatten, priority sorted, unique array. + # + # puts MIME::Types.type_for('citydesk.xml') + # => [application/xml, text/xml] + # puts MIME::Types.type_for('citydesk.gif') + # => [image/gif] + # puts MIME::Types.type_for(%w(citydesk.xml citydesk.gif)) + # => [application/xml, image/gif, text/xml] + def type_for(filename) + Array(filename).flat_map { |fn| + @extension_index[fn.chomp.downcase[/\.?([^.]*?)\z/m, 1]] + }.compact.inject(Set.new, :+).sort { |a, b| + a.priority_compare(b) + } + end + alias_method :of, :type_for + + # Add one or more MIME::Type objects to the set of known types. If the + # type is already known, a warning will be displayed. + # + # The last parameter may be the value :silent or +true+ which + # will suppress duplicate MIME type warnings. + def add(*types) + quiet = ((types.last == :silent) || (types.last == true)) + + types.each do |mime_type| + case mime_type + when true, false, nil, Symbol + nil + when MIME::Types + variants = mime_type.instance_variable_get(:@type_variants) + add(*variants.values.inject(Set.new, :+).to_a, quiet) + when Array + add(*mime_type, quiet) + else + add_type(mime_type, quiet) + end + end + end + + # Add a single MIME::Type object to the set of known types. If the +type+ is + # already known, a warning will be displayed. The +quiet+ parameter may be a + # truthy value to suppress that warning. + def add_type(type, quiet = false) + if !quiet && @type_variants[type.simplified].include?(type) + MIME::Types.logger.debug <<-WARNING.chomp.strip + Type #{type} is already registered as a variant of #{type.simplified}. + WARNING + end + + add_type_variant!(type) + index_extensions!(type) + end + + private + + def add_type_variant!(mime_type) + @type_variants.add(mime_type.simplified, mime_type) + end + + def reindex_extensions!(mime_type) + return unless @type_variants[mime_type.simplified].include?(mime_type) + + index_extensions!(mime_type) + end + + def index_extensions!(mime_type) + mime_type.extensions.each { |ext| @extension_index.add(ext, mime_type) } + end + + def prune_matches(matches, complete, registered) + matches.delete_if { |e| !e.complete? } if complete + matches.delete_if { |e| !e.registered? } if registered + matches + end + + def match(pattern) + @type_variants.select { |k, _| + k =~ pattern + }.values.inject(Set.new, :+) + end +end + +require "mime/types/cache" +require "mime/types/container" +require "mime/types/loader" +require "mime/types/logger" +require "mime/types/_columnar" +require "mime/types/registry" diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/_columnar.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/_columnar.rb new file mode 100644 index 0000000..9f8c132 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/_columnar.rb @@ -0,0 +1,137 @@ +# frozen_string_literal: true + +require "mime/type/columnar" + +# MIME::Types::Columnar is used to extend a MIME::Types container to load data +# by columns instead of from JSON or YAML. Column loads of MIME types loaded +# through the columnar store are synchronized with a Mutex. +# +# MIME::Types::Columnar is not intended to be used directly, but will be added +# to an instance of MIME::Types when it is loaded with +# MIME::Types::Loader#load_columnar. +module MIME::Types::Columnar + LOAD_MUTEX = Mutex.new # :nodoc: + + def self.extended(obj) # :nodoc: + super + obj.instance_variable_set(:@__mime_data__, []) + obj.instance_variable_set(:@__files__, Set.new) + end + + # Load the first column data file (type and extensions). + def load_base_data(path) # :nodoc: + @__root__ = path + + each_file_line("content_type", false) do |line| + line = line.split + content_type = line.shift + extensions = line + # content_type, *extensions = line.split + + type = MIME::Type::Columnar.new(self, content_type, extensions) + @__mime_data__ << type + add(type) + end + + self + end + + private + + def each_file_line(name, lookup = true) + LOAD_MUTEX.synchronize do + next if @__files__.include?(name) + + i = -1 + column = File.join(@__root__, "mime.#{name}.column") + + IO.readlines(column, encoding: "UTF-8").each do |line| + line.chomp! + + if lookup + (type = @__mime_data__[i += 1]) || next + yield type, line + else + yield line + end + end + + @__files__ << name + end + end + + def load_encoding + each_file_line("encoding") do |type, line| + pool ||= {} + type.instance_variable_set(:@encoding, (pool[line] ||= line)) + end + end + + def load_docs + each_file_line("docs") do |type, line| + type.instance_variable_set(:@docs, opt(line)) + end + end + + def load_preferred_extension + each_file_line("pext") do |type, line| + type.instance_variable_set(:@preferred_extension, opt(line)) + end + end + + def load_flags + each_file_line("flags") do |type, line| + line = line.split + type.instance_variable_set(:@obsolete, flag(line.shift)) + type.instance_variable_set(:@registered, flag(line.shift)) + type.instance_variable_set(:@signature, flag(line.shift)) + type.instance_variable_set(:@provisional, flag(line.shift)) + end + end + + def load_xrefs + each_file_line("xrefs") { |type, line| + type.instance_variable_set(:@xrefs, dict(line, array: true)) + } + end + + def load_friendly + each_file_line("friendly") { |type, line| + type.instance_variable_set(:@friendly, dict(line)) + } + end + + def load_use_instead + each_file_line("use_instead") do |type, line| + type.instance_variable_set(:@use_instead, opt(line)) + end + end + + def dict(line, array: false) + if line == "-" + {} + else + line.split("|").each_with_object({}) { |l, h| + k, v = l.split("^") + v = nil if v.empty? + h[k] = array ? Array(v) : v + } + end + end + + def arr(line) + if line == "-" + [] + else + line.split("|").flatten.compact.uniq + end + end + + def opt(line) + line unless line == "-" + end + + def flag(line) + line == "1" + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/cache.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/cache.rb new file mode 100644 index 0000000..aecbf7b --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/cache.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +MIME::Types::Cache = Struct.new(:version, :data) # :nodoc: + +# Caching of MIME::Types registries is advisable if you will be loading +# the default registry relatively frequently. With the class methods on +# MIME::Types::Cache, any MIME::Types registry can be marshaled quickly +# and easily. +# +# The cache is invalidated on a per-data-version basis; a cache file for +# version 3.2015.1118 will not be reused with version 3.2015.1201. +class << MIME::Types::Cache + # Attempts to load the cache from the file provided as a parameter or in + # the environment variable +RUBY_MIME_TYPES_CACHE+. Returns +nil+ if the + # file does not exist, if the file cannot be loaded, or if the data in + # the cache version is different than this version. + def load(cache_file = nil) + cache_file ||= ENV["RUBY_MIME_TYPES_CACHE"] + return nil unless cache_file && File.exist?(cache_file) + + cache = Marshal.load(File.binread(cache_file)) + if cache.version == MIME::Types::Data::VERSION + Marshal.load(cache.data) + else + MIME::Types.logger.error <<-WARNING.chomp.strip + Could not load MIME::Types cache: invalid version + WARNING + nil + end + rescue => e + MIME::Types.logger.error <<-WARNING.chomp.strip + Could not load MIME::Types cache: #{e} + WARNING + nil + end + + # Attempts to save the types provided to the cache file provided. + # + # If +types+ is not provided or is +nil+, the cache will contain the + # current MIME::Types default registry. + # + # If +cache_file+ is not provided or is +nil+, the cache will be written + # to the file specified in the environment variable + # +RUBY_MIME_TYPES_CACHE+. If there is no cache file specified either + # directly or through the environment, this method will return +nil+ + def save(types = nil, cache_file = nil) + cache_file ||= ENV["RUBY_MIME_TYPES_CACHE"] + return nil unless cache_file + + types ||= MIME::Types.send(:__types__) + + File.binwrite(cache_file, Marshal.dump(new(MIME::Types::Data::VERSION, Marshal.dump(types)))) + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/columnar.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/columnar.rb new file mode 100644 index 0000000..dcb87cf --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/columnar.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "mime/types" diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/container.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/container.rb new file mode 100644 index 0000000..441debe --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/container.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +require "set" +require "forwardable" + +# MIME::Types requires a serializable keyed container that returns an empty Set +# on a key miss. Hash#default_value cannot be used because, while it traverses +# the Marshal format correctly, it won't survive any other serialization +# format (plus, a default of a mutable object resuls in a shared mess). +# Hash#default_proc cannot be used without a wrapper because it prevents +# Marshal serialization (and doesn't survive the round-trip). +class MIME::Types::Container # :nodoc: + extend Forwardable + + def initialize(hash = {}) + @container = {} + merge!(hash) + end + + def [](key) + container[key] || EMPTY_SET + end + + def []=(key, value) + container[key] = + case value + when Set + value + else + Set[*value] + end + end + + def merge(other) + self.class.new(other) + end + + def merge!(other) + tap { + other = other.is_a?(MIME::Types::Container) ? other.container : other + container.merge!(other) + normalize + } + end + + def to_hash + container + end + + def_delegators :@container, + :==, + :count, + :each, + :each_value, + :empty?, + :flat_map, + :keys, + :select, + :values + + def add(key, value) + (container[key] ||= Set.new).add(value) + end + + def marshal_dump + {}.merge(container) + end + + def marshal_load(hash) + @container = hash + end + + def encode_with(coder) + container.each { |k, v| coder[k] = v.to_a } + end + + def init_with(coder) + @container = {} + coder.map.each { |k, v| container[k] = Set[*v] } + end + + protected + + attr_accessor :container + + def normalize + container.each do |k, v| + next if v.is_a?(Set) + + container[k] = Set[*v] + end + end + + EMPTY_SET = Set.new.freeze + private_constant :EMPTY_SET +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/deprecations.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/deprecations.rb new file mode 100644 index 0000000..dc869fa --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/deprecations.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require "mime/types/logger" + +# The namespace for MIME applications, tools, and libraries. +module MIME + ## + class Types + # Used to mark a method as deprecated in the mime-types interface. + def self.deprecated(klass, sym, message = nil, &block) # :nodoc: + level = + case klass + when Class, Module + "." + else + klass = klass.class + "#" + end + message = + case message + when :private, :protected + "and will be #{message}" + when nil + "and will be removed" + else + message + end + MIME::Types.logger.debug <<-WARNING.chomp.strip + #{caller(2..2).first}: #{klass}#{level}#{sym} is deprecated #{message}. + WARNING + + return unless block + block.call + end + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/full.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/full.rb new file mode 100644 index 0000000..a69e6bd --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/full.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +## +module MIME + ## + class Types + unless private_method_defined?(:load_mode) + class << self + private + + def load_mode + {columnar: false} + end + end + end + end +end + +require "mime/types" diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/loader.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/loader.rb new file mode 100644 index 0000000..d6450c5 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/loader.rb @@ -0,0 +1,159 @@ +# frozen_string_literal: true + +## +module MIME; end + +## +class MIME::Types; end + +require "mime/types/data" + +# This class is responsible for initializing the MIME::Types registry from +# the data files supplied with the mime-types library. +# +# The Loader will use one of the following paths: +# 1. The +path+ provided in its constructor argument; +# 2. The value of ENV['RUBY_MIME_TYPES_DATA']; or +# 3. The value of MIME::Types::Data::PATH. +# +# When #load is called, the +path+ will be searched recursively for all YAML +# (.yml or .yaml) files. By convention, there is one file for each media +# type (application.yml, audio.yml, etc.), but this is not required. +class MIME::Types::Loader + # The path that will be read for the MIME::Types files. + attr_reader :path + # The MIME::Types container instance that will be loaded. If not provided + # at initialization, a new MIME::Types instance will be constructed. + attr_reader :container + + # Creates a Loader object that can be used to load MIME::Types registries + # into memory, using YAML, JSON, or Columnar registry format loaders. + def initialize(path = nil, container = nil) + path = path || ENV["RUBY_MIME_TYPES_DATA"] || MIME::Types::Data::PATH + @container = container || MIME::Types.new + @path = File.expand_path(path) + end + + # Loads a MIME::Types registry from YAML files (*.yml or + # *.yaml) recursively found in +path+. + # + # It is expected that the YAML objects contained within the registry array + # will be tagged as !ruby/object:MIME::Type. + # + # Note that the YAML format is about 2½ times *slower* than the JSON format. + # + # NOTE: The purpose of this format is purely for maintenance reasons. + def load_yaml + Dir[yaml_path].sort.each do |f| + container.add(*self.class.load_from_yaml(f), :silent) + end + container + end + + # Loads a MIME::Types registry from JSON files (*.json) + # recursively found in +path+. + # + # It is expected that the JSON objects will be an array of hash objects. + # The JSON format is the registry format for the MIME types registry + # shipped with the mime-types library. + def load_json + Dir[json_path].sort.each do |f| + types = self.class.load_from_json(f) + container.add(*types, :silent) + end + container + end + + # Loads a MIME::Types registry from columnar files recursively found in + # +path+. + def load_columnar + require "mime/types/columnar" unless defined?(MIME::Types::Columnar) + container.extend(MIME::Types::Columnar) + container.load_base_data(path) + + container + end + + # Loads a MIME::Types registry. Loads from JSON files by default + # (#load_json). + # + # This will load from columnar files (#load_columnar) if columnar: + # true is provided in +options+ and there are columnar files in +path+. + def load(options = {columnar: false}) + if options[:columnar] && !Dir[columnar_path].empty? + load_columnar + else + load_json + end + end + + class << self + # Loads the default MIME::Type registry. + def load(options = {columnar: false}) + new.load(options) + end + + # Loads MIME::Types from a single YAML file. + # + # It is expected that the YAML objects contained within the registry + # array will be tagged as !ruby/object:MIME::Type. + # + # Note that the YAML format is about 2½ times *slower* than the JSON + # format. + # + # NOTE: The purpose of this format is purely for maintenance reasons. + def load_from_yaml(filename) + begin + require "psych" + rescue LoadError + nil + end + + require "yaml" + + if old_yaml? + YAML.safe_load(read_file(filename), [MIME::Type]) + else + YAML.safe_load(read_file(filename), permitted_classes: [MIME::Type]) + end + end + + # Loads MIME::Types from a single JSON file. + # + # It is expected that the JSON objects will be an array of hash objects. + # The JSON format is the registry format for the MIME types registry + # shipped with the mime-types library. + def load_from_json(filename) + require "json" + JSON.parse(read_file(filename)).map { |type| MIME::Type.new(type) } + end + + private + + def read_file(filename) + File.open(filename, "r:UTF-8:-", &:read) + end + + def old_yaml? + @old_yaml ||= + begin + require "rubygems/version" + Gem::Version.new(YAML::VERSION) < Gem::Version.new("3.1") + end + end + end + + private + + def yaml_path + File.join(path, "*.y{,a}ml") + end + + def json_path + File.join(path, "*.json") + end + + def columnar_path + File.join(path, "*.column") + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/logger.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/logger.rb new file mode 100644 index 0000000..894f47c --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/logger.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require "logger" + +## +module MIME + ## + class Types + class << self + # Configure the MIME::Types logger. This defaults to an instance of a + # logger that passes messages (unformatted) through to Kernel#warn. + attr_accessor :logger + end + + class WarnLogger < ::Logger # :nodoc: + class WarnLogDevice < ::Logger::LogDevice # :nodoc: + def initialize(*) + end + + def write(m) + Kernel.warn(m) + end + + def close + end + end + + def initialize(_one, _two = nil, _three = nil) + super nil + @logdev = WarnLogDevice.new + @formatter = ->(_s, _d, _p, m) { m } + end + end + + self.logger = WarnLogger.new(nil) + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/registry.rb b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/registry.rb new file mode 100644 index 0000000..eb27094 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/lib/mime/types/registry.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +class << MIME::Types + include Enumerable + + ## + def new(*) # :nodoc: + super.tap do |types| + __instances__.add types + end + end + + # MIME::Types#[] against the default MIME::Types registry. + def [](type_id, complete: false, registered: false) + __types__[type_id, complete: complete, registered: registered] + end + + # MIME::Types#count against the default MIME::Types registry. + def count + __types__.count + end + + # MIME::Types#each against the default MIME::Types registry. + def each + if block_given? + __types__.each { |t| yield t } + else + enum_for(:each) + end + end + + # MIME::Types#type_for against the default MIME::Types registry. + def type_for(filename) + __types__.type_for(filename) + end + alias_method :of, :type_for + + # MIME::Types#add against the default MIME::Types registry. + def add(*types) + __types__.add(*types) + end + + private + + def lazy_load? + return unless ENV.key?("RUBY_MIME_TYPES_LAZY_LOAD") + + MIME::Types.logger.debug <<-WARNING.chomp.strip + Lazy loading ($RUBY_MIME_TYPES_LAZY_LOAD) is deprecated and will be removed. + WARNING + + (lazy = ENV["RUBY_MIME_TYPES_LAZY_LOAD"]) && (lazy != "false") + end + + def __types__ + (defined?(@__types__) && @__types__) || load_default_mime_types + end + + unless private_method_defined?(:load_mode) + def load_mode + {columnar: true} + end + end + + def load_default_mime_types(mode = load_mode) + if (@__types__ = MIME::Types::Cache.load) + __instances__.add(@__types__) + else + @__types__ = MIME::Types::Loader.load(mode) + MIME::Types::Cache.save(@__types__) + end + @__types__ + end + + def __instances__ + @__instances__ ||= Set.new + end + + def reindex_extensions(type) + __instances__.each do |instance| + instance.send(:reindex_extensions!, type) + end + true + end +end + +## +class MIME::Types + load_default_mime_types(load_mode) unless lazy_load? +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/bad-fixtures/malformed b/gems/3.3.2/gems/mime-types-3.5.1/test/bad-fixtures/malformed new file mode 100644 index 0000000..2c716d4 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/bad-fixtures/malformed @@ -0,0 +1,9 @@ +!application.smil @smi,smil :8bit 'IANA,RFC4536 =use-instead:application/smil+xml +!audio/vnd.qcelp @qcp 'IANA,RFC3625 =use-instead:audio/QCELP +*!image/bmp @bmp =use-instead:image/x-bmp +*application/acad 'LTSW +*audio/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} +*image/pjpeg :base64 =Fixes a bug with IE6 and progressive JPEGs +application/1d-interleaved-parityfec 'IANA,RFC6015 +audio/1d-interleaved-parityfec 'IANA,RFC6015 +mac:application/x-apple-diskimage @dmg diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/json.json b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/json.json new file mode 100644 index 0000000..4c65663 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/json.json @@ -0,0 +1 @@ +[{"content-type":"application/smil","encoding":"8bit","extensions":["smi","smil"],"obsolete":true,"use-instead":"application/smil+xml","registered":true},{"content-type":"audio/vnd.qcelp","encoding":"base64","extensions":["qcp"],"obsolete":true,"use-instead":"audio/QCELP","registered":true},{"content-type":"image/bmp","encoding":"base64","extensions":["bmp"],"obsolete":true,"use-instead":"image/x-bmp","registered":false},{"content-type":"application/acad","encoding":"base64","registered":false},{"content-type":"audio/webm","encoding":"base64","extensions":["webm"],"registered":false},{"content-type":"image/pjpeg","docs":"Fixes a bug with IE6 and progressive JPEGs","encoding":"base64","registered":false},{"content-type":"application/1d-interleaved-parityfec","encoding":"base64","registered":true},{"content-type":"audio/1d-interleaved-parityfec","encoding":"base64","registered":true},{"content-type":"application/x-apple-diskimage","encoding":"base64","extensions":["dmg"],"registered":false}] diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/old-data b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/old-data new file mode 100644 index 0000000..0905137 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/old-data @@ -0,0 +1,9 @@ +!application/smil @smi,smil :8bit 'IANA,RFC4536 =use-instead:application/smil+xml +!audio/vnd.qcelp @qcp 'IANA,RFC3625 =use-instead:audio/QCELP +*!image/bmp @bmp =use-instead:image/x-bmp +*application/acad 'LTSW +*audio/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} +*image/pjpeg :base64 =Fixes a bug with IE6 and progressive JPEGs +application/1d-interleaved-parityfec 'IANA,RFC6015 +audio/1d-interleaved-parityfec 'IANA,RFC6015 +mac:application/x-apple-diskimage @dmg diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/yaml.yaml b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/yaml.yaml new file mode 100644 index 0000000..6e72bbf --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/fixture/yaml.yaml @@ -0,0 +1,55 @@ +--- +- !ruby/object:MIME::Type + content-type: application/smil + encoding: 8bit + extensions: + - smi + - smil + obsolete: true + use-instead: application/smil+xml + registered: true +- !ruby/object:MIME::Type + content-type: audio/vnd.qcelp + encoding: base64 + extensions: + - qcp + obsolete: true + use-instead: audio/QCELP + registered: true +- !ruby/object:MIME::Type + content-type: image/bmp + encoding: base64 + extensions: + - bmp + obsolete: true + use-instead: image/x-bmp + registered: false +- !ruby/object:MIME::Type + content-type: application/acad + encoding: base64 + registered: false +- !ruby/object:MIME::Type + content-type: audio/webm + encoding: base64 + extensions: + - webm + registered: false +- !ruby/object:MIME::Type + content-type: image/pjpeg + docs: Fixes a bug with IE6 and progressive JPEGs + encoding: base64 + registered: false +- !ruby/object:MIME::Type + content-type: application/1d-interleaved-parityfec + encoding: base64 + registered: true +- !ruby/object:MIME::Type + content-type: audio/1d-interleaved-parityfec + encoding: base64 + registered: true +- !ruby/object:MIME::Type + content-type: application/x-apple-diskimage + encoding: base64 + extensions: + - dmg + registered: false diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/minitest_helper.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/minitest_helper.rb new file mode 100644 index 0000000..44973e3 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/minitest_helper.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require "mime/type" +require "fileutils" + +gem "minitest" +require "minitest/focus" +require "minitest-bonus-assertions" +require "minitest/hooks" + +ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "yes" diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_type.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_type.rb new file mode 100644 index 0000000..25f0a07 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_type.rb @@ -0,0 +1,641 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Type do + def mime_type(content_type) + MIME::Type.new(content_type) { |mt| yield mt if block_given? } + end + + let(:x_appl_x_zip) { + mime_type("x-appl/x-zip") { |t| t.extensions = %w[zip zp] } + } + let(:text_plain) { mime_type("text/plain") } + let(:text_html) { mime_type("text/html") } + let(:image_jpeg) { mime_type("image/jpeg") } + let(:application_javascript) { + mime_type("application/javascript") do |js| + js.friendly("en" => "JavaScript") + js.xrefs = { + "rfc" => %w[rfc4239 rfc4239], + "template" => %w[application/javascript] + } + js.encoding = "8bit" + js.extensions = %w[js sj] + js.registered = true + end + } + let(:text_x_yaml) { + mime_type("text/x-yaml") do |yaml| + yaml.extensions = %w[yaml yml] + yaml.encoding = "8bit" + yaml.friendly("en" => "YAML Structured Document") + end + } + let(:text_x_yaml_with_docs) { + text_x_yaml.dup.tap do |yaml| + yaml.docs = "Test YAML" + end + } + + describe ".simplified" do + it "leaves normal types alone" do + assert_equal "text/plain", MIME::Type.simplified("text/plain") + end + + it "does not remove x- prefixes by default" do + assert_equal "application/x-msword", + MIME::Type.simplified("application/x-msword") + assert_equal "x-xyz/abc", MIME::Type.simplified("x-xyz/abc") + end + + it "removes x- prefixes when requested" do + assert_equal "application/msword", + MIME::Type.simplified("application/x-msword", remove_x_prefix: true) + assert_equal "xyz/abc", + MIME::Type.simplified("x-xyz/abc", remove_x_prefix: true) + end + + it "lowercases mixed-case types" do + assert_equal "text/vcard", MIME::Type.simplified("text/vCard") + end + + it "returns nil when the value provided is not a valid content type" do + assert_nil MIME::Type.simplified("text") + end + end + + describe ".i18n_key" do + it "converts text/plain to text.plain" do + assert_equal "text.plain", MIME::Type.i18n_key("text/plain") + end + + it "does not remove x-prefixes" do + assert_equal "application.x-msword", + MIME::Type.i18n_key("application/x-msword") + end + + it "converts text/vCard to text.vcard" do + assert_equal "text.vcard", MIME::Type.i18n_key("text/vCard") + end + + it "returns nil when the value provided is not a valid content type" do + assert_nil MIME::Type.i18n_key("text") + end + end + + describe ".new" do + it "fails if an invalid content type is provided" do + exception = assert_raises MIME::Type::InvalidContentType do + MIME::Type.new("apps") + end + assert_equal 'Invalid Content-Type "apps"', exception.to_s + end + + it "creates a valid content type just from a string" do + type = MIME::Type.new("text/x-yaml") + + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + end + + it "yields the content type in a block" do + MIME::Type.new("text/x-yaml") do |type| + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + end + end + + it "creates a valid content type from a hash" do + type = MIME::Type.new( + "content-type" => "text/x-yaml", + "obsolete" => true + ) + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + assert type.obsolete? + end + + it "creates a valid content type from an array" do + type = MIME::Type.new(%w[text/x-yaml yaml yml yz]) + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + assert_equal %w[yaml yml yz], type.extensions + end + end + + describe "#like?" do + it "compares two MIME::Types on #simplified values without x- prefixes" do + assert text_plain.like?(text_plain) + refute text_plain.like?(text_html) + end + + it "compares MIME::Type against string without x- prefixes" do + assert text_plain.like?(text_plain.to_s) + refute text_plain.like?(text_html.to_s) + end + end + + describe "#<=>" do + it "correctly compares identical types" do + assert_equal text_plain, text_plain + end + + it "correctly compares equivalent types" do + right = mime_type("text/Plain") + refute_same text_plain, right + assert_equal text_plain, right + end + + it "correctly compares types that sort earlier" do + refute_equal text_html, text_plain + assert_operator text_html, :<, text_plain + end + + it "correctly compares types that sort later" do + refute_equal text_plain, text_html + assert_operator text_plain, :>, text_html + end + + it "correctly compares types against equivalent strings" do + assert_equal text_plain, "text/plain" + end + + it "correctly compares types against strings that sort earlier" do + refute_equal text_html, "text/plain" + assert_operator text_html, :<, "text/plain" + end + + it "correctly compares types against strings that sort later" do + refute_equal text_plain, "text/html" + assert_operator text_plain, :>, "text/html" + end + + it "correctly compares against nil" do + refute_equal text_html, nil + assert_operator text_plain, :<, nil + end + end + + describe "#ascii?" do + it "defaults to true for text/* types" do + assert text_plain.ascii? + end + + it "defaults to false for non-text/* types" do + refute image_jpeg.ascii? + end + end + + describe "#binary?" do + it "defaults to false for text/* types" do + refute text_plain.binary? + end + + it "defaults to true for non-text/* types" do + assert image_jpeg.binary? + end + end + + describe "#complete?" do + it "is true when there are extensions" do + assert text_x_yaml.complete? + end + + it "is false when there are no extensions" do + refute mime_type("text/plain").complete? + end + end + + describe "#content_type" do + it "preserves the original case" do + assert_equal "text/plain", text_plain.content_type + assert_equal "text/vCard", mime_type("text/vCard").content_type + end + + it "does not remove x- prefixes" do + assert_equal "x-appl/x-zip", x_appl_x_zip.content_type + end + end + + describe "#default_encoding" do + it "is quoted-printable for text/* types" do + assert_equal "quoted-printable", text_plain.default_encoding + end + + it "is base64 for non-text/* types" do + assert_equal "base64", image_jpeg.default_encoding + end + end + + describe "#encoding, #encoding=" do + it "returns #default_encoding if not set explicitly" do + assert_equal "quoted-printable", text_plain.encoding + assert_equal "base64", image_jpeg.encoding + end + + it "returns the set value when set" do + text_plain.encoding = "8bit" + assert_equal "8bit", text_plain.encoding + end + + it "resets to the default encoding when set to nil or :default" do + text_plain.encoding = "8bit" + text_plain.encoding = nil + assert_equal text_plain.default_encoding, text_plain.encoding + text_plain.encoding = :default + assert_equal text_plain.default_encoding, text_plain.encoding + end + + it "raises a MIME::Type::InvalidEncoding for an invalid encoding" do + exception = assert_raises MIME::Type::InvalidEncoding do + text_plain.encoding = "binary" + end + assert_equal 'Invalid Encoding "binary"', exception.to_s + end + end + + describe "#eql?" do + it "is not true for a non-MIME::Type" do + refute text_plain.eql?("text/plain") + end + + it "is not true for a different MIME::Type" do + refute text_plain.eql?(image_jpeg) + end + + it "is true for an equivalent MIME::Type" do + assert text_plain.eql?(mime_type("text/Plain")) + end + + it "is true for an equivalent subclass of MIME::Type" do + subclass = Class.new(MIME::Type) + assert text_plain.eql?(subclass.new("text/plain")) + end + end + + describe "#hash" do + it "is the same between #eql? MIME::Type instances" do + assert_equal text_plain.hash, mime_type("text/plain").hash + end + + it "is the same between #eql? MIME::Type instances of different classes" do + subclass = Class.new(MIME::Type) + assert_equal text_plain.hash, subclass.new("text/plain").hash + end + + it "uses the #simplified value" do + assert_equal text_plain.hash, mime_type("text/Plain").hash + end + end + + describe "#extensions, #extensions=" do + it "returns an array of extensions" do + assert_equal %w[yaml yml], text_x_yaml.extensions + assert_equal %w[zip zp], x_appl_x_zip.extensions + end + + it "sets a single extension when provided a single value" do + text_x_yaml.extensions = "yaml" + assert_equal %w[yaml], text_x_yaml.extensions + end + + it "deduplicates extensions" do + text_x_yaml.extensions = %w[yaml yaml] + assert_equal %w[yaml], text_x_yaml.extensions + end + end + + describe "#add_extensions" do + it "does not modify extensions when provided nil" do + text_x_yaml.add_extensions(nil) + assert_equal %w[yaml yml], text_x_yaml.extensions + end + + it "remains deduplicated with duplicate values" do + text_x_yaml.add_extensions("yaml") + assert_equal %w[yaml yml], text_x_yaml.extensions + text_x_yaml.add_extensions(%w[yaml yz]) + assert_equal %w[yaml yml yz], text_x_yaml.extensions + end + end + + describe "#priority_compare" do + def assert_priority_less(left, right) + assert_equal(-1, left.priority_compare(right)) + end + + def assert_priority_same(left, right) + assert_equal 0, left.priority_compare(right) + end + + def assert_priority_more(left, right) + assert_equal 1, left.priority_compare(right) + end + + def assert_priority(left, middle, right) + assert_priority_less left, right + assert_priority_same left, middle + assert_priority_more right, left + end + + let(:text_1) { mime_type("text/1") } + let(:text_1p) { mime_type("text/1") } + let(:text_2) { mime_type("text/2") } + + it "sorts (1) based on the simplified type" do + assert_priority text_1, text_1p, text_2 + end + + it "sorts (2) based on extensions" do + text_1.extensions = ["foo", "bar"] + text_2.extensions = ["foo"] + + assert_priority_same text_1, text_2 + + text_2.registered = true + + assert_priority_more text_1, text_2 + end + + it "sorts (3) based on the registration state" do + text_1.registered = text_1p.registered = true + text_1b = mime_type(text_1) { |t| t.registered = false } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts (4) based on the completeness" do + text_1.extensions = text_1p.extensions = "1" + text_1b = mime_type(text_1) { |t| t.extensions = nil } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts (5) based on obsolete status" do + text_1.obsolete = text_1p.obsolete = false + text_1b = mime_type(text_1) { |t| t.obsolete = true } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts (5) based on the use-instead value" do + text_1.obsolete = text_1p.obsolete = true + text_1.use_instead = text_1p.use_instead = "abc/xyz" + text_1b = mime_type(text_1) { |t| t.use_instead = nil } + + assert_priority text_1, text_1p, text_1b + + text_1b.use_instead = "abc/zzz" + + assert_priority text_1, text_1p, text_1b + end + end + + describe "#raw_media_type" do + it "extracts the media type as case-preserved" do + assert_equal "Text", mime_type("Text/plain").raw_media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.raw_media_type) + end + end + + describe "#media_type" do + it "extracts the media type as lowercase" do + assert_equal "text", text_plain.media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.media_type) + end + end + + describe "#raw_media_type" do + it "extracts the media type as case-preserved" do + assert_equal "Text", mime_type("Text/plain").raw_media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.raw_media_type) + end + end + + describe "#sub_type" do + it "extracts the sub type as lowercase" do + assert_equal "plain", text_plain.sub_type + end + + it "does not remove x- prefixes" do + assert_equal("x-zip", x_appl_x_zip.sub_type) + end + end + + describe "#raw_sub_type" do + it "extracts the sub type as case-preserved" do + assert_equal "Plain", mime_type("text/Plain").raw_sub_type + end + + it "does not remove x- prefixes" do + assert_equal("x-zip", x_appl_x_zip.raw_sub_type) + end + end + + describe "#to_h" do + let(:t) { mime_type("a/b") } + + it "has the required keys (content-type, registered, encoding)" do + assert_has_keys t.to_h, %w[content-type registered encoding] + end + + it "has the docs key if there are documents" do + assert_has_keys mime_type(t) { |v| v.docs = "a" }.to_h, %w[docs] + end + + it "has the extensions key if set" do + assert_has_keys mime_type(t) { |v| v.extensions = "a" }.to_h, + "extensions" + end + + it "has the preferred-extension key if set" do + assert_has_keys mime_type(t) { |v| v.preferred_extension = "a" }.to_h, + "preferred-extension" + end + + it "has the obsolete key if set" do + assert_has_keys mime_type(t) { |v| v.obsolete = true }.to_h, "obsolete" + end + + it "has the obsolete and use-instead keys if set" do + assert_has_keys mime_type(t) { |v| + v.obsolete = true + v.use_instead = "c/d" + }.to_h, %w[obsolete use-instead] + end + + it "has the signature key if set" do + assert_has_keys mime_type(t) { |v| v.signature = true }.to_h, "signature" + end + end + + describe "#to_json" do + let(:expected_1) { + '{"content-type":"a/b","encoding":"base64","registered":false}' + } + let(:expected_2) { + '{"content-type":"a/b","encoding":"base64","registered":true,"provisional":true}' + } + + it "converts to JSON when requested" do + assert_equal expected_1, mime_type("a/b").to_json + end + + it "converts to JSON with provisional when requested" do + type = mime_type("a/b") do |t| + t.registered = true + t.provisional = true + end + assert_equal expected_2, type.to_json + end + end + + describe "#to_s, #to_str" do + it "represents itself as a string of the canonical content_type" do + assert_equal "text/plain", text_plain.to_s + end + + it "acts like a string of the canonical content_type for comparison" do + assert_equal text_plain, "text/plain" + end + + it "acts like a string for other purposes" do + assert_equal "stringy", "text/plain".sub(text_plain, "stringy") + end + end + + describe "#xrefs, #xrefs=" do + let(:expected) { + MIME::Types::Container.new("rfc" => Set["rfc1234", "rfc5678"]) + } + + it "returns the expected results" do + application_javascript.xrefs = { + "rfc" => %w[rfc5678 rfc1234 rfc1234] + } + + assert_equal expected, application_javascript.xrefs + end + end + + describe "#xref_urls" do + let(:expected) { + [ + "http://www.iana.org/go/draft1", + "http://www.iana.org/assignments/media-types/a/b", + "http://www.iana.org/assignments/media-types/media-types.xhtml#p-1", + "http://www.iana.org/go/rfc-1", + "http://www.rfc-editor.org/errata_search.php?eid=err-1", + "http://example.org", + "text" + ] + } + + let(:type) { + mime_type("a/b").tap do |t| + t.xrefs = { + "draft" => ["RFC1"], + "template" => ["a/b"], + "person" => ["p-1"], + "rfc" => ["rfc-1"], + "rfc-errata" => ["err-1"], + "uri" => ["http://example.org"], + "text" => ["text"] + } + end + } + + it "translates according to given rules" do + assert_equal expected, type.xref_urls + end + end + + describe "#use_instead" do + it "is nil unless the type is obsolete" do + assert_nil text_plain.use_instead + end + + it "is nil if not set and the type is obsolete" do + text_plain.obsolete = true + assert_nil text_plain.use_instead + end + + it "is a different type if set and the type is obsolete" do + text_plain.obsolete = true + text_plain.use_instead = "text/html" + assert_equal "text/html", text_plain.use_instead + end + end + + describe "#preferred_extension, #preferred_extension=" do + it "is nil when not set and there are no extensions" do + assert_nil text_plain.preferred_extension + end + + it "is the first extension when not set but there are extensions" do + assert_equal "yaml", text_x_yaml.preferred_extension + end + + it "is the extension provided when set" do + text_x_yaml.preferred_extension = "yml" + assert_equal "yml", text_x_yaml.preferred_extension + end + + it "is adds the preferred extension if it does not exist" do + text_x_yaml.preferred_extension = "yz" + assert_equal "yz", text_x_yaml.preferred_extension + assert_includes text_x_yaml.extensions, "yz" + end + end + + describe "#friendly" do + it "returns English by default" do + assert_equal "YAML Structured Document", text_x_yaml.friendly + end + + it "returns English when requested" do + assert_equal "YAML Structured Document", text_x_yaml.friendly("en") + assert_equal "YAML Structured Document", text_x_yaml.friendly(:en) + end + + it "returns nothing for an unknown language" do + assert_nil text_x_yaml.friendly("zz") + end + + it "merges new values from an array parameter" do + expected = {"en" => "Text files"} + assert_equal expected, text_plain.friendly(["en", "Text files"]) + expected.update("fr" => "des fichiers texte") + assert_equal expected, + text_plain.friendly(["fr", "des fichiers texte"]) + end + + it "merges new values from a hash parameter" do + expected = {"en" => "Text files"} + assert_equal expected, text_plain.friendly(expected) + french = {"fr" => "des fichiers texte"} + expected.update(french) + assert_equal expected, text_plain.friendly(french) + end + + it "raises an ArgumentError if an unknown value is provided" do + exception = assert_raises ArgumentError do + text_plain.friendly(1) + end + + assert_equal "Expected a language or translation set, not 1", + exception.message + end + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types.rb new file mode 100644 index 0000000..a0812a8 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types.rb @@ -0,0 +1,173 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types do + def mime_types + @mime_types ||= MIME::Types.new.tap { |mt| + mt.add MIME::Type.new(["text/plain", %w[txt]]), + MIME::Type.new(["image/jpeg", %w[jpg jpeg]]), + MIME::Type.new("application/x-wordperfect6.1"), + MIME::Type.new( + "content-type" => "application/x-www-form-urlencoded", + "registered" => true + ), + MIME::Type.new(["application/x-gzip", %w[gz]]), + MIME::Type.new( + "content-type" => "application/gzip", + "extensions" => "gz", + "registered" => true + ) + } + end + + describe "is enumerable" do + it "correctly uses an Enumerable method like #any?" do + assert(mime_types.any? { |type| type.content_type == "text/plain" }) + end + + it "implements each with no parameters to return an Enumerator" do + assert_kind_of Enumerator, mime_types.each + assert_kind_of Enumerator, mime_types.map + end + + it "will create a lazy enumerator" do + assert_kind_of Enumerator::Lazy, mime_types.lazy + assert_kind_of Enumerator::Lazy, mime_types.map.lazy + end + + it "is countable with an enumerator" do + assert_equal 6, mime_types.each.count + assert_equal 6, mime_types.lazy.count + end + end + + describe "#[]" do + it "can be searched with a MIME::Type" do + text_plain = MIME::Type.new("text/plain") + assert_includes mime_types[text_plain], "text/plain" + assert_equal 1, mime_types[text_plain].size + end + + it "can be searched with a regular expression" do + assert_includes mime_types[/plain$/], "text/plain" + assert_equal 1, mime_types[/plain$/].size + end + + it "sorts by priority with multiple matches" do + assert_equal %w[application/gzip application/x-gzip], mime_types[/gzip$/] + assert_equal 2, mime_types[/gzip$/].size + end + + it "can be searched with a string" do + assert_includes mime_types["text/plain"], "text/plain" + assert_equal 1, mime_types["text/plain"].size + end + + it "can be searched with the complete flag" do + assert_empty mime_types[ + "application/x-www-form-urlencoded", + complete: true + ] + assert_includes mime_types["text/plain", complete: true], "text/plain" + assert_equal 1, mime_types["text/plain", complete: true].size + end + + it "can be searched with the registered flag" do + assert_empty mime_types["application/x-wordperfect6.1", registered: true] + refute_empty mime_types[ + "application/x-www-form-urlencoded", + registered: true + ] + refute_empty mime_types[/gzip/, registered: true] + refute_equal mime_types[/gzip/], mime_types[/gzip/, registered: true] + end + + it "properly returns an empty result on a regular expression miss" do + assert_empty mime_types[/^foo/] + assert_empty mime_types[/^foo/, registered: true] + assert_empty mime_types[/^foo/, complete: true] + end + end + + describe "#add" do + let(:eruby) { MIME::Type.new("application/x-eruby") } + let(:jinja) { MIME::Type.new("application/jinja2") } + + it "successfully adds a new type" do + mime_types.add(eruby) + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "complains about adding a duplicate type" do + mime_types.add(eruby) + assert_output "", /is already registered as a variant/ do + mime_types.add(eruby) + end + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "does not complain about adding a duplicate type when quiet" do + mime_types.add(eruby) + assert_output "", "" do + mime_types.add(eruby, :silent) + end + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "successfully adds from an array" do + mime_types.add([eruby, jinja]) + assert_equal mime_types["application/x-eruby"], [eruby] + assert_equal mime_types["application/jinja2"], [jinja] + end + + it "successfully adds from another MIME::Types" do + mt = MIME::Types.new + mt.add(mime_types) + assert_equal mime_types.count, mt.count + + mime_types.each do |type| + assert_equal mt[type.content_type], [type] + end + end + end + + describe "#type_for" do + it "finds all types for a given extension" do + assert_equal %w[application/gzip application/x-gzip], + mime_types.type_for("gz") + end + + it "separates the extension from filenames" do + assert_equal %w[image/jpeg], mime_types.of(["foo.jpeg", "bar.jpeg"]) + end + + it "finds multiple extensions" do + assert_equal %w[image/jpeg text/plain], + mime_types.type_for(%w[foo.txt foo.jpeg]) + end + + it "does not find unknown extensions" do + keys = mime_types.instance_variable_get(:@extension_index).keys + assert_empty mime_types.type_for("zzz") + assert_equal keys, mime_types.instance_variable_get(:@extension_index).keys + end + + it "modifying type extensions causes reindexing" do + plain_text = mime_types["text/plain"].first + plain_text.add_extensions("xtxt") + assert_includes mime_types.type_for("xtxt"), "text/plain" + end + + it "handles newline characters correctly" do + assert_includes mime_types.type_for("test.pdf\n.txt"), "text/plain" + end + end + + describe "#count" do + it "can count the number of types inside" do + assert_equal 6, mime_types.count + end + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_cache.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_cache.rb new file mode 100644 index 0000000..48a8bb3 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_cache.rb @@ -0,0 +1,118 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +MUTEX = Mutex.new + +describe MIME::Types::Cache do + include Minitest::Hooks + + def around + require "fileutils" + + MUTEX.synchronize do + @cache_file = File.expand_path("../cache.tst", __FILE__) + ENV["RUBY_MIME_TYPES_CACHE"] = @cache_file + clear_cache_file + + super + + clear_cache_file + ENV.delete("RUBY_MIME_TYPES_CACHE") + end + end + + def reset_mime_types + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + def clear_cache_file + FileUtils.rm @cache_file if File.exist? @cache_file + end + + describe ".load" do + it "does not use cache when RUBY_MIME_TYPES_CACHE is unset" do + ENV.delete("RUBY_MIME_TYPES_CACHE") + assert_nil MIME::Types::Cache.load + end + + it "does not use cache when missing" do + assert_nil MIME::Types::Cache.load + end + + it "registers the data to be updated by #add_extensions" do + MIME::Types::Cache.save + reset_mime_types + assert_equal([], MIME::Types.type_for("foo.additional")) + html = MIME::Types["text/html"][0] + html.add_extensions("additional") + assert_equal([html], MIME::Types.type_for("foo.additional")) + end + + it "outputs an error when there is an invalid version" do + v = MIME::Types::Data::VERSION + MIME::Types::Data.send(:remove_const, :VERSION) + MIME::Types::Data.const_set(:VERSION, "0.0") + MIME::Types::Cache.save + MIME::Types::Data.send(:remove_const, :VERSION) + MIME::Types::Data.const_set(:VERSION, v) + MIME::Types.instance_variable_set(:@__types__, nil) + assert_output "", /MIME::Types cache: invalid version/ do + MIME::Types["text/html"] + end + end + + it "outputs an error when there is a marshal file incompatibility" do + MIME::Types::Cache.save + data = File.binread(@cache_file).reverse + File.binwrite(@cache_file, data) + MIME::Types.instance_variable_set(:@__types__, nil) + assert_output "", /incompatible marshal file format/ do + MIME::Types["text/html"] + end + end + end + + describe ".save" do + it "does not create cache when RUBY_MIME_TYPES_CACHE is unset" do + ENV.delete("RUBY_MIME_TYPES_CACHE") + assert_nil MIME::Types::Cache.save + end + + it "creates the cache " do + assert_equal(false, File.exist?(@cache_file)) + MIME::Types::Cache.save + assert_equal(true, File.exist?(@cache_file)) + end + + it "uses the cache" do + MIME::Types["text/html"].first.add_extensions("hex") + MIME::Types::Cache.save + MIME::Types.instance_variable_set(:@__types__, nil) + + assert_includes MIME::Types["text/html"].first.extensions, "hex" + + reset_mime_types + end + end +end + +describe MIME::Types::Container do + it "marshals and unmarshals correctly" do + container = MIME::Types::Container.new + container.add("xyz", "abc") + + # default proc should return Set[] + assert_equal(Set[], container["abc"]) + assert_equal(Set["abc"], container["xyz"]) + + marshalled = Marshal.dump(container) + loaded_container = Marshal.load(marshalled) + + # default proc should still return Set[] + assert_equal(Set[], loaded_container["abc"]) + assert_equal(Set["abc"], container["xyz"]) + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_class.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_class.rb new file mode 100644 index 0000000..08e9556 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_class.rb @@ -0,0 +1,164 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types, "registry" do + def setup + MIME::Types.send(:load_default_mime_types) + end + + describe "is enumerable" do + it "correctly uses an Enumerable method like #any?" do + assert(MIME::Types.any? { |type| type.content_type == "text/plain" }) + end + + it "implements each with no parameters to return an Enumerator" do + assert_kind_of Enumerator, MIME::Types.each + assert_kind_of Enumerator, MIME::Types.map + end + + it "will create a lazy enumerator" do + assert_kind_of Enumerator::Lazy, MIME::Types.lazy + assert_kind_of Enumerator::Lazy, MIME::Types.map.lazy + end + + it "is countable with an enumerator" do + assert MIME::Types.each.count > 999 + assert MIME::Types.lazy.count > 999 + end + end + + describe ".[]" do + it "can be searched with a MIME::Type" do + text_plain = MIME::Type.new("text/plain") + assert_includes MIME::Types[text_plain], "text/plain" + assert_equal 1, MIME::Types[text_plain].size + end + + it "can be searched with a regular expression" do + assert_includes MIME::Types[/plain$/], "text/plain" + assert_equal 1, MIME::Types[/plain$/].size + end + + it "sorts by priority with multiple matches" do + types = MIME::Types[/gzip$/].select { |t| + %w[application/gzip application/x-gzip multipart/x-gzip].include?(t) + } + # This is this way because of a new type ending with gzip that only + # appears in some data files. + assert_equal %w[application/gzip application/x-gzip multipart/x-gzip], types + assert_equal 3, types.size + end + + it "can be searched with a string" do + assert_includes MIME::Types["text/plain"], "text/plain" + assert_equal 1, MIME::Types["text/plain"].size + end + + it "can be searched with the complete flag" do + assert_empty MIME::Types[ + "application/x-www-form-urlencoded", + complete: true + ] + assert_includes MIME::Types["text/plain", complete: true], "text/plain" + assert_equal 1, MIME::Types["text/plain", complete: true].size + end + + it "can be searched with the registered flag" do + assert_empty MIME::Types["application/x-wordperfect6.1", registered: true] + refute_empty MIME::Types[ + "application/x-www-form-urlencoded", + registered: true + ] + refute_empty MIME::Types[/gzip/, registered: true] + refute_equal MIME::Types[/gzip/], MIME::Types[/gzip/, registered: true] + end + end + + describe ".type_for" do + it "finds all types for a given extension" do + assert_equal %w[application/gzip application/x-gzip], + MIME::Types.type_for("gz") + end + + it "separates the extension from filenames" do + assert_equal %w[image/jpeg], MIME::Types.of(["foo.jpeg", "bar.jpeg"]) + end + + it "finds multiple extensions" do + assert_equal %w[image/jpeg text/plain], + MIME::Types.type_for(%w[foo.txt foo.jpeg]) + end + + it "does not find unknown extensions" do + assert_empty MIME::Types.type_for("zzz") + end + + it "modifying type extensions causes reindexing" do + plain_text = MIME::Types["text/plain"].first + plain_text.add_extensions("xtxt") + assert_includes MIME::Types.type_for("xtxt"), "text/plain" + end + + it "handles newline characters correctly" do + assert_includes MIME::Types.type_for("test.pdf\n.txt"), "text/plain" + assert_includes MIME::Types.type_for("test.txt\n.pdf"), "application/pdf" + end + end + + describe ".count" do + it "can count the number of types inside" do + assert MIME::Types.count > 999 + end + end + + describe ".add" do + def setup + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + let(:eruby) { MIME::Type.new("application/x-eruby") } + let(:jinja) { MIME::Type.new("application/jinja2") } + + it "successfully adds a new type" do + MIME::Types.add(eruby) + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "complains about adding a duplicate type" do + MIME::Types.add(eruby) + assert_output "", /is already registered as a variant/ do + MIME::Types.add(eruby) + end + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "does not complain about adding a duplicate type when quiet" do + MIME::Types.add(eruby) + assert_silent do + MIME::Types.add(eruby, :silent) + end + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "successfully adds from an array" do + MIME::Types.add([eruby, jinja]) + assert_equal MIME::Types["application/x-eruby"], [eruby] + assert_equal MIME::Types["application/jinja2"], [jinja] + end + + it "successfully adds from another MIME::Types" do + old_count = MIME::Types.count + + mt = MIME::Types.new + mt.add(eruby) + + MIME::Types.add(mt) + assert_equal old_count + 1, MIME::Types.count + + assert_equal MIME::Types[eruby.content_type], [eruby] + end + end +end diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_lazy.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_lazy.rb new file mode 100644 index 0000000..04f81f6 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_lazy.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types, "lazy loading" do + def setup + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "true" + end + + def teardown + reset_mime_types + ENV.delete("RUBY_MIME_TYPES_LAZY_LOAD") + end + + def reset_mime_types + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + describe ".lazy_load?" do + it "is true when RUBY_MIME_TYPES_LAZY_LOAD is set" do + assert_output "", /RUBY_MIME_TYPES_LAZY_LOAD/ do + assert_equal true, MIME::Types.send(:lazy_load?) + end + end + + it "is nil when RUBY_MIME_TYPES_LAZY_LOAD is unset" do + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = nil + assert_output "", "" do + assert_nil MIME::Types.send(:lazy_load?) + end + end + + it "is false when RUBY_MIME_TYPES_LAZY_LOAD is false" do + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "false" + assert_output "", /RUBY_MIME_TYPES_LAZY_LOAD/ do + assert_equal false, MIME::Types.send(:lazy_load?) + end + end + end + + it "loads lazily when RUBY_MIME_TYPES_LAZY_LOAD is set" do + 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 diff --git a/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_loader.rb b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_loader.rb new file mode 100644 index 0000000..af5d851 --- /dev/null +++ b/gems/3.3.2/gems/mime-types-3.5.1/test/test_mime_types_loader.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types::Loader do + def setup + @path = File.expand_path("../fixture", __FILE__) + @loader = MIME::Types::Loader.new(@path) + @bad_path = File.expand_path("../bad-fixtures", __FILE__) + end + + def assert_correctly_loaded(types) + assert_includes(types, "application/1d-interleaved-parityfec") + assert_equal(%w[webm], types["audio/webm"].first.extensions) + refute(types["audio/webm"].first.registered?) + + assert_equal("Fixes a bug with IE6 and progressive JPEGs", + types["image/pjpeg"].first.docs) + + assert(types["audio/vnd.qcelp"].first.obsolete?) + assert_equal("audio/QCELP", types["audio/vnd.qcelp"].first.use_instead) + end + + it "loads YAML files correctly" do + assert_correctly_loaded @loader.load_yaml + end + + it "loads JSON files correctly" do + assert_correctly_loaded @loader.load_json + end +end diff --git a/gems/3.3.2/specifications/mime-types-3.5.1.gemspec b/gems/3.3.2/specifications/mime-types-3.5.1.gemspec new file mode 100644 index 0000000..e9ae38c --- /dev/null +++ b/gems/3.3.2/specifications/mime-types-3.5.1.gemspec @@ -0,0 +1,43 @@ +# -*- encoding: utf-8 -*- +# stub: mime-types 3.5.1 ruby lib + +Gem::Specification.new do |s| + s.name = "mime-types".freeze + s.version = "3.5.1".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "bug_tracker_uri" => "https://github.com/mime-types/ruby-mime-types/issues", "changelog_uri" => "https://github.com/mime-types/ruby-mime-types/blob/master/History.md", "homepage_uri" => "https://github.com/mime-types/ruby-mime-types/", "rubygems_mfa_required" => "true", "source_code_uri" => "https://github.com/mime-types/ruby-mime-types/" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Austin Ziegler".freeze] + s.date = "2023-08-22" + s.description = "The mime-types library provides a library and registry for information about\nMIME content type definitions. It can be used to determine defined filename\nextensions for MIME types, or to use filename extensions to look up the likely\nMIME type definitions.\n\nVersion 3.0 is a major release that requires Ruby 2.0 compatibility and removes\ndeprecated functions. The columnar registry format introduced in 2.6 has been\nmade the primary format; the registry data has been extracted from this library\nand put into {mime-types-data}[https://github.com/mime-types/mime-types-data].\nAdditionally, mime-types is now licensed exclusively under the MIT licence and\nthere is a code of conduct in effect. There are a number of other smaller\nchanges described in the History file.".freeze + s.email = ["halostatue@gmail.com".freeze] + s.extra_rdoc_files = ["Code-of-Conduct.md".freeze, "Contributing.md".freeze, "History.md".freeze, "Licence.md".freeze, "Manifest.txt".freeze, "README.rdoc".freeze] + s.files = ["Code-of-Conduct.md".freeze, "Contributing.md".freeze, "History.md".freeze, "Licence.md".freeze, "Manifest.txt".freeze, "README.rdoc".freeze] + s.homepage = "https://github.com/mime-types/ruby-mime-types/".freeze + s.licenses = ["MIT".freeze] + s.rdoc_options = ["--main".freeze, "README.rdoc".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze) + s.rubygems_version = "3.5.9".freeze + s.summary = "The mime-types library provides a library and registry for information about MIME content type definitions".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version + + s.specification_version = 4 + + s.add_runtime_dependency(%q.freeze, ["~> 3.2015".freeze]) + s.add_development_dependency(%q.freeze, ["~> 5.19".freeze]) + s.add_development_dependency(%q.freeze, [">= 3.0".freeze, "< 5".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.1".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.7".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 3.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.4".freeze]) + s.add_development_dependency(%q.freeze, [">= 10.0".freeze, "< 14.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, [">= 4.0".freeze, "< 7".freeze]) + s.add_development_dependency(%q.freeze, ["~> 0.21".freeze]) +end diff --git a/gems/cache/logger-1.7.0.gem b/gems/cache/logger-1.7.0.gem new file mode 100644 index 0000000..061f1cc Binary files /dev/null and b/gems/cache/logger-1.7.0.gem differ diff --git a/gems/cache/mime-types-3.7.0.gem b/gems/cache/mime-types-3.7.0.gem new file mode 100644 index 0000000..4430455 Binary files /dev/null and b/gems/cache/mime-types-3.7.0.gem differ diff --git a/gems/cache/mime-types-data-3.2025.0909.gem b/gems/cache/mime-types-data-3.2025.0909.gem new file mode 100644 index 0000000..a4edc17 Binary files /dev/null and b/gems/cache/mime-types-data-3.2025.0909.gem differ diff --git a/gems/cache/mini_magick-5.3.1.gem b/gems/cache/mini_magick-5.3.1.gem new file mode 100644 index 0000000..041f269 Binary files /dev/null and b/gems/cache/mini_magick-5.3.1.gem differ diff --git a/gems/cache/multipart-post-2.4.1.gem b/gems/cache/multipart-post-2.4.1.gem new file mode 100644 index 0000000..15bb46f Binary files /dev/null and b/gems/cache/multipart-post-2.4.1.gem differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/%3c%3c-i.ri b/gems/doc/logger-1.7.0/ri/Logger/%3c%3c-i.ri new file mode 100644 index 0000000..ddfdc0e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/%3c%3c-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Error/cdesc-Error.ri b/gems/doc/logger-1.7.0/ri/Logger/Error/cdesc-Error.ri new file mode 100644 index 0000000..84d04c7 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Error/cdesc-Error.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/call-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/call-i.ri new file mode 100644 index 0000000..48b6e86 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/call-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/cdesc-Formatter.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/cdesc-Formatter.ri new file mode 100644 index 0000000..518e229 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/cdesc-Formatter.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/datetime_format-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/datetime_format-i.ri new file mode 100644 index 0000000..816d67d Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/datetime_format-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/format_datetime-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/format_datetime-i.ri new file mode 100644 index 0000000..cc98159 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/format_datetime-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/msg2str-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/msg2str-i.ri new file mode 100644 index 0000000..6a909cb Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/msg2str-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Formatter/new-c.ri b/gems/doc/logger-1.7.0/ri/Logger/Formatter/new-c.ri new file mode 100644 index 0000000..2cc783e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Formatter/new-c.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/cdesc-LogDevice.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/cdesc-LogDevice.ri new file mode 100644 index 0000000..67af699 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/cdesc-LogDevice.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/close-i.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/close-i.ri new file mode 100644 index 0000000..a0fb77e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/close-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/dev-i.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/dev-i.ri new file mode 100644 index 0000000..293af2e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/dev-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/filename-i.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/filename-i.ri new file mode 100644 index 0000000..c544b30 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/filename-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/new-c.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/new-c.ri new file mode 100644 index 0000000..bef8914 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/new-c.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/reopen-i.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/reopen-i.ri new file mode 100644 index 0000000..d298121 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/reopen-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/LogDevice/write-i.ri b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/write-i.ri new file mode 100644 index 0000000..ca66fc3 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/LogDevice/write-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Period/cdesc-Period.ri b/gems/doc/logger-1.7.0/ri/Logger/Period/cdesc-Period.ri new file mode 100644 index 0000000..4ebde22 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Period/cdesc-Period.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Period/next_rotate_time-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Period/next_rotate_time-i.ri new file mode 100644 index 0000000..a542545 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Period/next_rotate_time-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Period/previous_period_end-i.ri b/gems/doc/logger-1.7.0/ri/Logger/Period/previous_period_end-i.ri new file mode 100644 index 0000000..1bd6676 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Period/previous_period_end-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Severity/cdesc-Severity.ri b/gems/doc/logger-1.7.0/ri/Logger/Severity/cdesc-Severity.ri new file mode 100644 index 0000000..73d245e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Severity/cdesc-Severity.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/Severity/coerce-c.ri b/gems/doc/logger-1.7.0/ri/Logger/Severity/coerce-c.ri new file mode 100644 index 0000000..a0eac86 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/Severity/coerce-c.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/ShiftingError/cdesc-ShiftingError.ri b/gems/doc/logger-1.7.0/ri/Logger/ShiftingError/cdesc-ShiftingError.ri new file mode 100644 index 0000000..0bbedd8 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/ShiftingError/cdesc-ShiftingError.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/add-i.ri b/gems/doc/logger-1.7.0/ri/Logger/add-i.ri new file mode 100644 index 0000000..bfb43c0 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/add-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/cdesc-Logger.ri b/gems/doc/logger-1.7.0/ri/Logger/cdesc-Logger.ri new file mode 100644 index 0000000..0286e9d Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/cdesc-Logger.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/close-i.ri b/gems/doc/logger-1.7.0/ri/Logger/close-i.ri new file mode 100644 index 0000000..04d639b Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/close-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/datetime_format%3d-i.ri b/gems/doc/logger-1.7.0/ri/Logger/datetime_format%3d-i.ri new file mode 100644 index 0000000..d406632 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/datetime_format%3d-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/datetime_format-i.ri b/gems/doc/logger-1.7.0/ri/Logger/datetime_format-i.ri new file mode 100644 index 0000000..06060ff Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/datetime_format-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/debug%21-i.ri b/gems/doc/logger-1.7.0/ri/Logger/debug%21-i.ri new file mode 100644 index 0000000..43b8081 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/debug%21-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/debug%3f-i.ri b/gems/doc/logger-1.7.0/ri/Logger/debug%3f-i.ri new file mode 100644 index 0000000..077a77a Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/debug%3f-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/debug-i.ri b/gems/doc/logger-1.7.0/ri/Logger/debug-i.ri new file mode 100644 index 0000000..4b3205d Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/debug-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/error%21-i.ri b/gems/doc/logger-1.7.0/ri/Logger/error%21-i.ri new file mode 100644 index 0000000..c7e5c9d Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/error%21-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/error%3f-i.ri b/gems/doc/logger-1.7.0/ri/Logger/error%3f-i.ri new file mode 100644 index 0000000..7391edd Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/error%3f-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/error-i.ri b/gems/doc/logger-1.7.0/ri/Logger/error-i.ri new file mode 100644 index 0000000..4da6aa2 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/error-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/fatal%21-i.ri b/gems/doc/logger-1.7.0/ri/Logger/fatal%21-i.ri new file mode 100644 index 0000000..f2b72b7 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/fatal%21-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/fatal%3f-i.ri b/gems/doc/logger-1.7.0/ri/Logger/fatal%3f-i.ri new file mode 100644 index 0000000..bf88a97 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/fatal%3f-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/fatal-i.ri b/gems/doc/logger-1.7.0/ri/Logger/fatal-i.ri new file mode 100644 index 0000000..ae74eb4 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/fatal-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/format_message-i.ri b/gems/doc/logger-1.7.0/ri/Logger/format_message-i.ri new file mode 100644 index 0000000..6cc529e Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/format_message-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/format_severity-i.ri b/gems/doc/logger-1.7.0/ri/Logger/format_severity-i.ri new file mode 100644 index 0000000..00face0 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/format_severity-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/formatter-i.ri b/gems/doc/logger-1.7.0/ri/Logger/formatter-i.ri new file mode 100644 index 0000000..07891bc Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/formatter-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/info%21-i.ri b/gems/doc/logger-1.7.0/ri/Logger/info%21-i.ri new file mode 100644 index 0000000..258be99 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/info%21-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/info%3f-i.ri b/gems/doc/logger-1.7.0/ri/Logger/info%3f-i.ri new file mode 100644 index 0000000..1cbeafa Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/info%3f-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/info-i.ri b/gems/doc/logger-1.7.0/ri/Logger/info-i.ri new file mode 100644 index 0000000..027a2f7 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/info-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/level%3d-i.ri b/gems/doc/logger-1.7.0/ri/Logger/level%3d-i.ri new file mode 100644 index 0000000..5eb6117 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/level%3d-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/level-i.ri b/gems/doc/logger-1.7.0/ri/Logger/level-i.ri new file mode 100644 index 0000000..f9d1fe6 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/level-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/level_key-i.ri b/gems/doc/logger-1.7.0/ri/Logger/level_key-i.ri new file mode 100644 index 0000000..630208d Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/level_key-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/level_override-i.ri b/gems/doc/logger-1.7.0/ri/Logger/level_override-i.ri new file mode 100644 index 0000000..4b63c39 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/level_override-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/log-i.ri b/gems/doc/logger-1.7.0/ri/Logger/log-i.ri new file mode 100644 index 0000000..f2aa06f Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/log-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/new-c.ri b/gems/doc/logger-1.7.0/ri/Logger/new-c.ri new file mode 100644 index 0000000..508598c Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/new-c.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/progname-i.ri b/gems/doc/logger-1.7.0/ri/Logger/progname-i.ri new file mode 100644 index 0000000..3465e9a --- /dev/null +++ b/gems/doc/logger-1.7.0/ri/Logger/progname-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" progname:ETI"Logger#progname;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"-Program name to include in log messages.;T: +@fileI"lib/logger.rb;T:0@omit_headings_from_table_of_contents_below0F@I" Logger;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/logger-1.7.0/ri/Logger/reopen-i.ri b/gems/doc/logger-1.7.0/ri/Logger/reopen-i.ri new file mode 100644 index 0000000..783ed35 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/reopen-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/sev_threshold%3d-i.ri b/gems/doc/logger-1.7.0/ri/Logger/sev_threshold%3d-i.ri new file mode 100644 index 0000000..a83001f Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/sev_threshold%3d-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/sev_threshold-i.ri b/gems/doc/logger-1.7.0/ri/Logger/sev_threshold-i.ri new file mode 100644 index 0000000..870506c Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/sev_threshold-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/unknown-i.ri b/gems/doc/logger-1.7.0/ri/Logger/unknown-i.ri new file mode 100644 index 0000000..40fca01 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/unknown-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/warn%21-i.ri b/gems/doc/logger-1.7.0/ri/Logger/warn%21-i.ri new file mode 100644 index 0000000..9b3f7ac Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/warn%21-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/warn%3f-i.ri b/gems/doc/logger-1.7.0/ri/Logger/warn%3f-i.ri new file mode 100644 index 0000000..8236df5 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/warn%3f-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/warn-i.ri b/gems/doc/logger-1.7.0/ri/Logger/warn-i.ri new file mode 100644 index 0000000..33c89ad Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/warn-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/Logger/with_level-i.ri b/gems/doc/logger-1.7.0/ri/Logger/with_level-i.ri new file mode 100644 index 0000000..92a4cdb Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/Logger/with_level-i.ri differ diff --git a/gems/doc/logger-1.7.0/ri/PathAttr/cdesc-PathAttr.ri b/gems/doc/logger-1.7.0/ri/PathAttr/cdesc-PathAttr.ri new file mode 100644 index 0000000..1b0f574 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/PathAttr/cdesc-PathAttr.ri differ diff --git a/gems/doc/logger-1.7.0/ri/cache.ri b/gems/doc/logger-1.7.0/ri/cache.ri new file mode 100644 index 0000000..e8335a9 Binary files /dev/null and b/gems/doc/logger-1.7.0/ri/cache.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/%3c%3d%3e-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/%3c%3d%3e-i.ri new file mode 100644 index 0000000..f5ad875 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/%3c%3d%3e-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/cdesc-Columnar.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/cdesc-Columnar.ri new file mode 100644 index 0000000..5ec37b0 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/cdesc-Columnar.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/update_sort_priority-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/update_sort_priority-i.ri new file mode 100644 index 0000000..5996847 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/Columnar/update_sort_priority-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidContentType/cdesc-InvalidContentType.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidContentType/cdesc-InvalidContentType.ri new file mode 100644 index 0000000..3088c89 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidContentType/cdesc-InvalidContentType.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidEncoding/cdesc-InvalidEncoding.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidEncoding/cdesc-InvalidEncoding.ri new file mode 100644 index 0000000..ec9d7ec Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/InvalidEncoding/cdesc-InvalidEncoding.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/add_extensions-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/add_extensions-i.ri new file mode 100644 index 0000000..33f7842 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/add_extensions-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/ascii%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/ascii%3f-i.ri new file mode 100644 index 0000000..b9319ff Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/ascii%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/binary%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/binary%3f-i.ri new file mode 100644 index 0000000..f4a5627 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/binary%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/cdesc-Type.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/cdesc-Type.ri new file mode 100644 index 0000000..c03d86e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/cdesc-Type.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/clear_sort_priority-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/clear_sort_priority-i.ri new file mode 100644 index 0000000..64f4d81 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/clear_sort_priority-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/complete%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/complete%3f-i.ri new file mode 100644 index 0000000..8e7109f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/complete%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type%3d-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type%3d-i.ri new file mode 100644 index 0000000..18784f8 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type%3d-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type-i.ri new file mode 100644 index 0000000..d179aa7 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/content_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/default_encoding-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/default_encoding-i.ri new file mode 100644 index 0000000..43f1596 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/default_encoding-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/docs-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/docs-i.ri new file mode 100644 index 0000000..3f8d442 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Type/docs-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" docs:ETI"MIME::Type#docs;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"+The documentation for this MIME::Type.;T: +@fileI"lib/mime/type.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Type;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/encode_with-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/encode_with-i.ri new file mode 100644 index 0000000..918f502 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/encode_with-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/encoding-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/encoding-i.ri new file mode 100644 index 0000000..5b14f68 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/encoding-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/eql%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/eql%3f-i.ri new file mode 100644 index 0000000..f12e3d8 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/eql%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/extensions-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/extensions-i.ri new file mode 100644 index 0000000..442fe03 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/extensions-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/friendly-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/friendly-i.ri new file mode 100644 index 0000000..71f6a3c Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/friendly-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/hash-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/hash-i.ri new file mode 100644 index 0000000..19b4f1f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/hash-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-c.ri new file mode 100644 index 0000000..e890e9b Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-i.ri new file mode 100644 index 0000000..5cb5bac Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/i18n_key-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/init_with-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/init_with-i.ri new file mode 100644 index 0000000..b962f4a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/init_with-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/intern_string-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/intern_string-i.ri new file mode 100644 index 0000000..d9de934 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/intern_string-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/like%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/like%3f-i.ri new file mode 100644 index 0000000..c714bc0 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/like%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/match-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/match-c.ri new file mode 100644 index 0000000..f69d292 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/match-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/media_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/media_type-i.ri new file mode 100644 index 0000000..6a1ef4f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/media_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/new-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/new-c.ri new file mode 100644 index 0000000..0df5a53 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/new-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3d-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3d-i.ri new file mode 100644 index 0000000..fd55ab3 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3d-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3f-i.ri new file mode 100644 index 0000000..2daad10 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete-i.ri new file mode 100644 index 0000000..4fe9ccb Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/obsolete-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/preferred_extension-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/preferred_extension-i.ri new file mode 100644 index 0000000..b9582ce Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/preferred_extension-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/priority_compare-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/priority_compare-i.ri new file mode 100644 index 0000000..bbfb1eb Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/priority_compare-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3d-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3d-i.ri new file mode 100644 index 0000000..a0b8293 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3d-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3f-i.ri new file mode 100644 index 0000000..48e21d0 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional-i.ri new file mode 100644 index 0000000..04f0b2e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/provisional-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_media_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_media_type-i.ri new file mode 100644 index 0000000..416fabc Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_media_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_sub_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_sub_type-i.ri new file mode 100644 index 0000000..387262a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/raw_sub_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3d-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3d-i.ri new file mode 100644 index 0000000..1a146ff Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3d-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3f-i.ri new file mode 100644 index 0000000..763f78e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered%3f-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered-i.ri new file mode 100644 index 0000000..87f4daf Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/registered-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature%3f-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature%3f-i.ri new file mode 100644 index 0000000..51e2202 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature%3f-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI"signature?:ETI"MIME::Type#signature?;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"DIndicateswhether the MIME type is declared as a signature type.;T: +@fileI"lib/mime/type.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Type;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature-i.ri new file mode 100644 index 0000000..2eb9f46 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Type/signature-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI"signature:ETI"MIME::Type#signature;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"DIndicateswhether the MIME type is declared as a signature type.;T: +@fileI"lib/mime/type.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Type;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-c.ri new file mode 100644 index 0000000..4982bfc Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-i.ri new file mode 100644 index 0000000..adfb96e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplified-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplify_matchdata-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplify_matchdata-c.ri new file mode 100644 index 0000000..f5b19d0 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/simplify_matchdata-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/sub_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/sub_type-i.ri new file mode 100644 index 0000000..1a50801 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/sub_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_h-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_h-i.ri new file mode 100644 index 0000000..eba84ea Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_h-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_json-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_json-i.ri new file mode 100644 index 0000000..a71c66d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_json-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_s-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_s-i.ri new file mode 100644 index 0000000..ecabf4e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_s-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_str-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_str-i.ri new file mode 100644 index 0000000..0e0442c Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/to_str-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/update_sort_priority-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/update_sort_priority-i.ri new file mode 100644 index 0000000..de2bf3f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/update_sort_priority-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/use_instead-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/use_instead-i.ri new file mode 100644 index 0000000..33740d1 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Type/use_instead-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI"use_instead:ETI"MIME::Type#use_instead;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OReturns the media type or types that should be used instead of this media ;TI"Ntype, if it is obsolete. If there is no replacement media type, or it is ;TI"*not obsolete, +nil+ will be returned.;T: +@fileI"lib/mime/type.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Type;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_map-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_map-i.ri new file mode 100644 index 0000000..9a5763e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_map-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_draft-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_draft-i.ri new file mode 100644 index 0000000..0d92bab Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_draft-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_person-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_person-i.ri new file mode 100644 index 0000000..e808b78 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_person-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc-i.ri new file mode 100644 index 0000000..9c989d7 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc_errata-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc_errata-i.ri new file mode 100644 index 0000000..a9cd2d6 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_rfc_errata-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_template-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_template-i.ri new file mode 100644 index 0000000..d9e11b8 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_url_for_template-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_urls-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_urls-i.ri new file mode 100644 index 0000000..fec6cd4 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xref_urls-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Type/xrefs-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xrefs-i.ri new file mode 100644 index 0000000..d9bd5c9 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Type/xrefs-i.ri @@ -0,0 +1,3 @@ +U:RDoc::Attr[iI" +xrefs:ETI"MIME::Type#xrefs;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"3The cross-references list for this MIME::Type.;T: +@fileI"lib/mime/type.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Type;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-c.ri new file mode 100644 index 0000000..f75a637 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-i.ri new file mode 100644 index 0000000..6616282 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/%5b%5d-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/cdesc-Cache.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/cdesc-Cache.ri new file mode 100644 index 0000000..acb4736 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/cdesc-Cache.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/load-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/load-c.ri new file mode 100644 index 0000000..c3f6d0a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/load-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/save-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/save-c.ri new file mode 100644 index 0000000..5c1f3f8 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Cache/save-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/arr-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/arr-i.ri new file mode 100644 index 0000000..4dff1cf Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/arr-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/cdesc-Columnar.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/cdesc-Columnar.ri new file mode 100644 index 0000000..8e00c33 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/cdesc-Columnar.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict-i.ri new file mode 100644 index 0000000..02bcf44 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_array-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_array-i.ri new file mode 100644 index 0000000..b304a62 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_array-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_extension_priority-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_extension_priority-i.ri new file mode 100644 index 0000000..c10a357 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/dict_extension_priority-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_byte-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_byte-i.ri new file mode 100644 index 0000000..d903947 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_byte-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_line-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_line-i.ri new file mode 100644 index 0000000..3ebdf91 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/each_file_line-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/flag-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/flag-i.ri new file mode 100644 index 0000000..e666b6f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/flag-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_docs-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_docs-i.ri new file mode 100644 index 0000000..1e7b709 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_docs-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_encoding-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_encoding-i.ri new file mode 100644 index 0000000..07d1bc1 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_encoding-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_flags-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_flags-i.ri new file mode 100644 index 0000000..e5e9237 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_flags-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_friendly-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_friendly-i.ri new file mode 100644 index 0000000..4125c7a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_friendly-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_preferred_extension-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_preferred_extension-i.ri new file mode 100644 index 0000000..21114ac Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_preferred_extension-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_use_instead-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_use_instead-i.ri new file mode 100644 index 0000000..0062b2f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_use_instead-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_xrefs-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_xrefs-i.ri new file mode 100644 index 0000000..e078ac4 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/load_xrefs-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/opt-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/opt-i.ri new file mode 100644 index 0000000..8be0a9d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Columnar/opt-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Container/cdesc-Container.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Container/cdesc-Container.ri new file mode 100644 index 0000000..d5ae053 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Container/cdesc-Container.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/cdesc-Loader.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/cdesc-Loader.ri new file mode 100644 index 0000000..8f67580 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/cdesc-Loader.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/columnar_path-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/columnar_path-i.ri new file mode 100644 index 0000000..d593333 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/columnar_path-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/container-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/container-i.ri new file mode 100644 index 0000000..1b00128 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/container-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI"container:ETI""MIME::Types::Loader#container;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MThe MIME::Types container instance that will be loaded. If not provided ;TI"Gat initialization, a new MIME::Types instance will be constructed.;T: +@fileI"lib/mime/types/loader.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Types::Loader;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/json_path-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/json_path-i.ri new file mode 100644 index 0000000..2591287 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/json_path-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-c.ri new file mode 100644 index 0000000..87de25b Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-i.ri new file mode 100644 index 0000000..f38b2f2 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_columnar-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_columnar-i.ri new file mode 100644 index 0000000..4d7a589 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_columnar-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_json-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_json-c.ri new file mode 100644 index 0000000..e154063 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_json-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_yaml-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_yaml-c.ri new file mode 100644 index 0000000..e33775a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_from_yaml-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_json-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_json-i.ri new file mode 100644 index 0000000..035e491 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_json-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_yaml-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_yaml-i.ri new file mode 100644 index 0000000..e03842c Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/load_yaml-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/new-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/new-c.ri new file mode 100644 index 0000000..8f04a4b Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/new-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/old_yaml%3f-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/old_yaml%3f-c.ri new file mode 100644 index 0000000..b1ae154 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/old_yaml%3f-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/path-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/path-i.ri new file mode 100644 index 0000000..a1c5ec8 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/path-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" path:ETI"MIME::Types::Loader#path;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I":The path that will be read for the MIME::Types files.;T: +@fileI"lib/mime/types/loader.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MIME::Types::Loader;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/read_file-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/read_file-c.ri new file mode 100644 index 0000000..31a3ebc Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/read_file-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/yaml_path-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/yaml_path-i.ri new file mode 100644 index 0000000..9d70c90 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/Loader/yaml_path-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/%3c%3c-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/%3c%3c-i.ri new file mode 100644 index 0000000..0edf8c6 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/%3c%3c-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/add-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/add-i.ri new file mode 100644 index 0000000..701f67f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/add-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/cdesc-NullLogger.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/cdesc-NullLogger.ri new file mode 100644 index 0000000..11c471d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/cdesc-NullLogger.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/close-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/close-i.ri new file mode 100644 index 0000000..139450d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/close-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/new-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/new-c.ri new file mode 100644 index 0000000..730978f Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/new-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/reopen-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/reopen-i.ri new file mode 100644 index 0000000..e31a2f8 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/NullLogger/reopen-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/WarnLogDevice/cdesc-WarnLogDevice.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/WarnLogDevice/cdesc-WarnLogDevice.ri new file mode 100644 index 0000000..6347c7e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/WarnLogDevice/cdesc-WarnLogDevice.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/cdesc-WarnLogger.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/cdesc-WarnLogger.ri new file mode 100644 index 0000000..91e7891 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/WarnLogger/cdesc-WarnLogger.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/__deprecation_logged%3f-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__deprecation_logged%3f-c.ri new file mode 100644 index 0000000..db27334 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__deprecation_logged%3f-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/__instances__-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__instances__-c.ri new file mode 100644 index 0000000..0f0c03a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__instances__-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/__types__-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__types__-c.ri new file mode 100644 index 0000000..d69279d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/__types__-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-c.ri new file mode 100644 index 0000000..3a34ca4 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-i.ri new file mode 100644 index 0000000..ef42f0c Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type-i.ri new file mode 100644 index 0000000..2d30bed Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type_variant%21-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type_variant%21-i.ri new file mode 100644 index 0000000..ece4d50 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/add_type_variant%21-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/cdesc-Types.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/cdesc-Types.ri new file mode 100644 index 0000000..b8cffbd Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/cdesc-Types.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-c.ri new file mode 100644 index 0000000..b5548c7 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-i.ri new file mode 100644 index 0000000..7eae3d2 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/count-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-c.ri new file mode 100644 index 0000000..3460e06 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-i.ri new file mode 100644 index 0000000..522e5cf Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/each-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/index_extensions%21-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/index_extensions%21-i.ri new file mode 100644 index 0000000..f114f8a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/index_extensions%21-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/lazy_load%3f-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/lazy_load%3f-c.ri new file mode 100644 index 0000000..3e9d56c Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/lazy_load%3f-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_default_mime_types-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_default_mime_types-c.ri new file mode 100644 index 0000000..34442cd Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_default_mime_types-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_mode-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_mode-c.ri new file mode 100644 index 0000000..d7ac801 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/load_mode-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger%3d-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger%3d-c.ri new file mode 100644 index 0000000..aca5b75 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger%3d-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger-c.ri new file mode 100644 index 0000000..488b974 --- /dev/null +++ b/gems/doc/mime-types-3.7.0/ri/MIME/Types/logger-c.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" logger:ETI"MIME::Types::logger;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"IConfigure the MIME::Types logger. This defaults to an instance of a ;TI"Glogger that passes messages (unformatted) through to Kernel#warn. ;TI":attr_accessor: logger;T: +@fileI"lib/mime/types/logger.rb;T:0@omit_headings_from_table_of_contents_below0T@I"MIME::Types;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/match-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/match-i.ri new file mode 100644 index 0000000..f8c9923 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/match-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/new-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/new-c.ri new file mode 100644 index 0000000..8bba31a Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/new-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-c.ri new file mode 100644 index 0000000..0d7e2ed Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-i.ri new file mode 100644 index 0000000..602bc26 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/of-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/prune_matches-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/prune_matches-i.ri new file mode 100644 index 0000000..d54e686 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/prune_matches-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions%21-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions%21-i.ri new file mode 100644 index 0000000..72c3763 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions%21-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions-c.ri new file mode 100644 index 0000000..b4cbe7d Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/reindex_extensions-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-c.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-c.ri new file mode 100644 index 0000000..49bd828 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-c.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-i.ri b/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-i.ri new file mode 100644 index 0000000..9b9dfd2 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/Types/type_for-i.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/MIME/cdesc-MIME.ri b/gems/doc/mime-types-3.7.0/ri/MIME/cdesc-MIME.ri new file mode 100644 index 0000000..e5a75fe Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/MIME/cdesc-MIME.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/cache.ri b/gems/doc/mime-types-3.7.0/ri/cache.ri new file mode 100644 index 0000000..4be475e Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/cache.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-CHANGELOG_md.ri b/gems/doc/mime-types-3.7.0/ri/page-CHANGELOG_md.ri new file mode 100644 index 0000000..ed61cee Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-CHANGELOG_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-CODE_OF_CONDUCT_md.ri b/gems/doc/mime-types-3.7.0/ri/page-CODE_OF_CONDUCT_md.ri new file mode 100644 index 0000000..74094fa Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-CODE_OF_CONDUCT_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTING_md.ri b/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTING_md.ri new file mode 100644 index 0000000..8ff0827 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTING_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTORS_md.ri b/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTORS_md.ri new file mode 100644 index 0000000..63d7016 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-CONTRIBUTORS_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-LICENCE_md.ri b/gems/doc/mime-types-3.7.0/ri/page-LICENCE_md.ri new file mode 100644 index 0000000..b9aafb1 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-LICENCE_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-Manifest_txt.ri b/gems/doc/mime-types-3.7.0/ri/page-Manifest_txt.ri new file mode 100644 index 0000000..9c5dcc4 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-Manifest_txt.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-README_md.ri b/gems/doc/mime-types-3.7.0/ri/page-README_md.ri new file mode 100644 index 0000000..e690a86 Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-README_md.ri differ diff --git a/gems/doc/mime-types-3.7.0/ri/page-SECURITY_md.ri b/gems/doc/mime-types-3.7.0/ri/page-SECURITY_md.ri new file mode 100644 index 0000000..8060bef Binary files /dev/null and b/gems/doc/mime-types-3.7.0/ri/page-SECURITY_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/Data/cdesc-Data.ri b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/Data/cdesc-Data.ri new file mode 100644 index 0000000..9622b56 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/Data/cdesc-Data.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/cdesc-Types.ri b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/cdesc-Types.ri new file mode 100644 index 0000000..f1a8d56 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/Types/cdesc-Types.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/MIME/cdesc-MIME.ri b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/cdesc-MIME.ri new file mode 100644 index 0000000..d962726 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/MIME/cdesc-MIME.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/cache.ri b/gems/doc/mime-types-data-3.2025.0909/ri/cache.ri new file mode 100644 index 0000000..6f2a2b1 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/cache.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-CHANGELOG_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-CHANGELOG_md.ri new file mode 100644 index 0000000..5ca9be4 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-CHANGELOG_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-CODE_OF_CONDUCT_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-CODE_OF_CONDUCT_md.ri new file mode 100644 index 0000000..74094fa Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-CODE_OF_CONDUCT_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTING_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTING_md.ri new file mode 100644 index 0000000..22dda36 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTING_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTORS_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTORS_md.ri new file mode 100644 index 0000000..1f96082 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-CONTRIBUTORS_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-LICENCE_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-LICENCE_md.ri new file mode 100644 index 0000000..d110412 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-LICENCE_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-Manifest_txt.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-Manifest_txt.ri new file mode 100644 index 0000000..8bed7e8 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-Manifest_txt.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-README_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-README_md.ri new file mode 100644 index 0000000..106748c Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-README_md.ri differ diff --git a/gems/doc/mime-types-data-3.2025.0909/ri/page-SECURITY_md.ri b/gems/doc/mime-types-data-3.2025.0909/ri/page-SECURITY_md.ri new file mode 100644 index 0000000..4f0eab8 Binary files /dev/null and b/gems/doc/mime-types-data-3.2025.0909/ri/page-SECURITY_md.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cdesc-Configuration.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cdesc-Configuration.ri new file mode 100644 index 0000000..b72a37b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cdesc-Configuration.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_env-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_env-i.ri new file mode 100644 index 0000000..cc0eb58 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_env-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_prefix-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_prefix-i.ri new file mode 100644 index 0000000..c1dedc1 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/cli_prefix-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/configure-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/configure-i.ri new file mode 100644 index 0000000..eaea5a3 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/configure-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/errors-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/errors-i.ri new file mode 100644 index 0000000..0401b65 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/errors-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/extended-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/extended-c.ri new file mode 100644 index 0000000..cfe97e5 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/extended-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/graphicsmagick-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/graphicsmagick-i.ri new file mode 100644 index 0000000..309f952 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/graphicsmagick-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/logger-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/logger-i.ri new file mode 100644 index 0000000..8784a2b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/logger-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/restricted_env-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/restricted_env-i.ri new file mode 100644 index 0000000..08c8e52 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/restricted_env-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/timeout-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/timeout-i.ri new file mode 100644 index 0000000..b339b0e Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/timeout-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/tmpdir-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/tmpdir-i.ri new file mode 100644 index 0000000..d43fb49 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/tmpdir-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/warnings-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/warnings-i.ri new file mode 100644 index 0000000..0a3b662 --- /dev/null +++ b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Configuration/warnings-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" warnings:ETI"'MiniMagick::Configuration#warnings;TI"RW;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"IIf set to `false`, it will not forward warnings from ImageMagick to ;TI"standard error.;T: +@fileI"%lib/mini_magick/configuration.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MiniMagick::Configuration;TcRDoc::NormalModule0 \ No newline at end of file diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%3d%3d-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%3d%3d-i.ri new file mode 100644 index 0000000..8921e4b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%3d%3d-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%5b%5d-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%5b%5d-i.ri new file mode 100644 index 0000000..c227dbd Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/%5b%5d-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/%5b%5d-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/%5b%5d-i.ri new file mode 100644 index 0000000..5941753 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/%5b%5d-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cdesc-Info.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cdesc-Info.ri new file mode 100644 index 0000000..518b630 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cdesc-Info.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cheap_info-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cheap_info-i.ri new file mode 100644 index 0000000..7c78944 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/cheap_info-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/clear-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/clear-i.ri new file mode 100644 index 0000000..1c2f27a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/clear-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/colorspace-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/colorspace-i.ri new file mode 100644 index 0000000..01349f5 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/colorspace-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/data-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/data-i.ri new file mode 100644 index 0000000..f99653b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/data-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/decode_comma_separated_ascii_characters-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/decode_comma_separated_ascii_characters-i.ri new file mode 100644 index 0000000..f2ce177 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/decode_comma_separated_ascii_characters-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/exif-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/exif-i.ri new file mode 100644 index 0000000..06bba7e Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/exif-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/identify-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/identify-i.ri new file mode 100644 index 0000000..92be318 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/identify-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/new-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/new-c.ri new file mode 100644 index 0000000..ddf1d6f Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/new-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/parse_warnings-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/parse_warnings-i.ri new file mode 100644 index 0000000..494aac8 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/parse_warnings-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/path-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/path-i.ri new file mode 100644 index 0000000..90f37d0 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/path-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw-i.ri new file mode 100644 index 0000000..be916a5 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw_exif-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw_exif-i.ri new file mode 100644 index 0000000..2a30bc6 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/raw_exif-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/resolution-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/resolution-i.ri new file mode 100644 index 0000000..b51e887 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/resolution-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/signature-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/signature-i.ri new file mode 100644 index 0000000..2a5d5b6 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/Info/signature-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/attribute-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/attribute-c.ri new file mode 100644 index 0000000..7a8d378 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/attribute-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/cdesc-Image.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/cdesc-Image.ri new file mode 100644 index 0000000..5401872 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/cdesc-Image.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/collapse%21-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/collapse%21-i.ri new file mode 100644 index 0000000..9f02839 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/collapse%21-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/colorspace-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/colorspace-i.ri new file mode 100644 index 0000000..bdb46ff Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/colorspace-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/combine_options-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/combine_options-i.ri new file mode 100644 index 0000000..1b0a28b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/combine_options-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/composite-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/composite-i.ri new file mode 100644 index 0000000..9b6d170 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/composite-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/create-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/create-c.ri new file mode 100644 index 0000000..b4d259f Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/create-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/data-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/data-i.ri new file mode 100644 index 0000000..6fae329 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/data-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/destroy%21-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/destroy%21-i.ri new file mode 100644 index 0000000..9a82def Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/destroy%21-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/dimensions-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/dimensions-i.ri new file mode 100644 index 0000000..b3b858c Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/dimensions-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/eql%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/eql%3f-i.ri new file mode 100644 index 0000000..9437a05 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/eql%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/exif-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/exif-i.ri new file mode 100644 index 0000000..d3e1b84 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/exif-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/format-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/format-i.ri new file mode 100644 index 0000000..1ba20a2 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/format-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/frames-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/frames-i.ri new file mode 100644 index 0000000..416aa52 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/frames-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_image_from_pixels-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_image_from_pixels-c.ri new file mode 100644 index 0000000..a06a7c2 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_image_from_pixels-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_pixels-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_pixels-i.ri new file mode 100644 index 0000000..677311c Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/get_pixels-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/hash-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/hash-i.ri new file mode 100644 index 0000000..20589af Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/hash-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/height-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/height-i.ri new file mode 100644 index 0000000..13d635d Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/height-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/human_size-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/human_size-i.ri new file mode 100644 index 0000000..00c9616 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/human_size-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/identify-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/identify-i.ri new file mode 100644 index 0000000..f16920a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/identify-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/import_pixels-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/import_pixels-c.ri new file mode 100644 index 0000000..be7c27f Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/import_pixels-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/info-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/info-i.ri new file mode 100644 index 0000000..85986e8 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/info-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/landscape%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/landscape%3f-i.ri new file mode 100644 index 0000000..1169d5a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/landscape%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layer%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layer%3f-i.ri new file mode 100644 index 0000000..e314d2c Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layer%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layers-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layers-i.ri new file mode 100644 index 0000000..b58f0ae Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/layers-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/method_missing-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/method_missing-i.ri new file mode 100644 index 0000000..181e018 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/method_missing-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/mogrify-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/mogrify-i.ri new file mode 100644 index 0000000..5f87b15 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/mogrify-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/new-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/new-c.ri new file mode 100644 index 0000000..ae53db7 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/new-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/open-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/open-c.ri new file mode 100644 index 0000000..0db49be Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/open-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/pages-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/pages-i.ri new file mode 100644 index 0000000..4caa8c3 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/pages-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/path-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/path-i.ri new file mode 100644 index 0000000..25eb183 --- /dev/null +++ b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/path-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" path:ETI"MiniMagick::Image#path;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I">@return [String] The location of the current working file;T: +@fileI"lib/mini_magick/image.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MiniMagick::Image;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/portrait%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/portrait%3f-i.ri new file mode 100644 index 0000000..bddbccd Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/portrait%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/read-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/read-c.ri new file mode 100644 index 0000000..65feafc Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/read-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/resolution-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/resolution-i.ri new file mode 100644 index 0000000..7eeacb0 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/resolution-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/respond_to_missing%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/respond_to_missing%3f-i.ri new file mode 100644 index 0000000..e3ff6a0 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/respond_to_missing%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/signature-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/signature-i.ri new file mode 100644 index 0000000..014939b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/signature-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/size-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/size-i.ri new file mode 100644 index 0000000..8d82e34 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/size-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/tempfile-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/tempfile-i.ri new file mode 100644 index 0000000..7aea82b --- /dev/null +++ b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/tempfile-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" tempfile:ETI"MiniMagick::Image#tempfile;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"5@return [Tempfile] The underlying temporary file;T: +@fileI"lib/mini_magick/image.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MiniMagick::Image;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/to_blob-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/to_blob-i.ri new file mode 100644 index 0000000..8b20715 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/to_blob-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/type-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/type-i.ri new file mode 100644 index 0000000..fba732a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/type-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/valid%3f-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/valid%3f-i.ri new file mode 100644 index 0000000..ec547f2 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/valid%3f-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/validate%21-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/validate%21-i.ri new file mode 100644 index 0000000..62d4e07 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/validate%21-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/width-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/width-i.ri new file mode 100644 index 0000000..f4976fc Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/width-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/write-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/write-i.ri new file mode 100644 index 0000000..b8ae6a7 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Image/write-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/cdesc-Shell.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/cdesc-Shell.ri new file mode 100644 index 0000000..d7e78ff Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/cdesc-Shell.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/execute-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/execute-i.ri new file mode 100644 index 0000000..216bcb3 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/execute-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/log-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/log-i.ri new file mode 100644 index 0000000..e85dc1e Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/log-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/run-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/run-i.ri new file mode 100644 index 0000000..1f1fa78 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Shell/run-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%2b-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%2b-i.ri new file mode 100644 index 0000000..46a9e2c Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%2b-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%3c%3c-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%3c%3c-i.ri new file mode 100644 index 0000000..17fdbbe Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/%3c%3c-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/args-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/args-i.ri new file mode 100644 index 0000000..8614408 --- /dev/null +++ b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/args-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" args:ETI"MiniMagick::Tool#args;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I" @private;T: +@fileI"lib/mini_magick/tool.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MiniMagick::Tool;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/call-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/call-i.ri new file mode 100644 index 0000000..49f4cbf Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/call-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/cdesc-Tool.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/cdesc-Tool.ri new file mode 100644 index 0000000..8de6791 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/cdesc-Tool.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/clone-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/clone-i.ri new file mode 100644 index 0000000..a588065 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/clone-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/command-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/command-i.ri new file mode 100644 index 0000000..abc78ab Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/command-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/executable-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/executable-i.ri new file mode 100644 index 0000000..f79c4b0 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/executable-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/merge%21-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/merge%21-i.ri new file mode 100644 index 0000000..146bff1 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/merge%21-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/method_missing-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/method_missing-i.ri new file mode 100644 index 0000000..66775f8 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/method_missing-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/name-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/name-i.ri new file mode 100644 index 0000000..e71205e --- /dev/null +++ b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/name-i.ri @@ -0,0 +1,2 @@ +U:RDoc::Attr[iI" name:ETI"MiniMagick::Tool#name;TI"R;T: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I" @private;T: +@fileI"lib/mini_magick/tool.rb;T:0@omit_headings_from_table_of_contents_below0F@I"MiniMagick::Tool;TcRDoc::NormalClass0 \ No newline at end of file diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/new-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/new-c.ri new file mode 100644 index 0000000..37ab14b Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/new-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stack-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stack-i.ri new file mode 100644 index 0000000..fac0319 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stack-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdin-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdin-i.ri new file mode 100644 index 0000000..bddb709 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdin-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdout-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdout-i.ri new file mode 100644 index 0000000..c538dc1 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Tool/stdout-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/cdesc-Utilities.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/cdesc-Utilities.ri new file mode 100644 index 0000000..4f4401d Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/cdesc-Utilities.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/tempfile-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/tempfile-i.ri new file mode 100644 index 0000000..4717656 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/tempfile-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/which-i.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/which-i.ri new file mode 100644 index 0000000..d501678 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/Utilities/which-i.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/VERSION/cdesc-VERSION.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/VERSION/cdesc-VERSION.ri new file mode 100644 index 0000000..d2d3292 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/VERSION/cdesc-VERSION.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cdesc-MiniMagick.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cdesc-MiniMagick.ri new file mode 100644 index 0000000..8ef2020 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cdesc-MiniMagick.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cli_version-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cli_version-c.ri new file mode 100644 index 0000000..85d9ceb Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/cli_version-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/imagemagick7%3f-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/imagemagick7%3f-c.ri new file mode 100644 index 0000000..07d3b8a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/imagemagick7%3f-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/MiniMagick/version-c.ri b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/version-c.ri new file mode 100644 index 0000000..8459bc1 Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/MiniMagick/version-c.ri differ diff --git a/gems/doc/mini_magick-5.3.1/ri/cache.ri b/gems/doc/mini_magick-5.3.1/ri/cache.ri new file mode 100644 index 0000000..45cd84a Binary files /dev/null and b/gems/doc/mini_magick-5.3.1/ri/cache.ri differ diff --git a/gems/gems/logger-1.7.0/.document b/gems/gems/logger-1.7.0/.document new file mode 100644 index 0000000..e2b9569 --- /dev/null +++ b/gems/gems/logger-1.7.0/.document @@ -0,0 +1,4 @@ +BSDL +COPYING +README.md +lib/ diff --git a/gems/gems/logger-1.7.0/.rdoc_options b/gems/gems/logger-1.7.0/.rdoc_options new file mode 100644 index 0000000..2d29a05 --- /dev/null +++ b/gems/gems/logger-1.7.0/.rdoc_options @@ -0,0 +1,3 @@ +--- +main_page: README.md +title: Documentation for Logger diff --git a/gems/gems/logger-1.7.0/BSDL b/gems/gems/logger-1.7.0/BSDL new file mode 100644 index 0000000..66d9359 --- /dev/null +++ b/gems/gems/logger-1.7.0/BSDL @@ -0,0 +1,22 @@ +Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/gems/gems/logger-1.7.0/COPYING b/gems/gems/logger-1.7.0/COPYING new file mode 100644 index 0000000..48e5a96 --- /dev/null +++ b/gems/gems/logger-1.7.0/COPYING @@ -0,0 +1,56 @@ +Ruby is copyrighted free software by Yukihiro Matsumoto . +You can redistribute it and/or modify it under either the terms of the +2-clause BSDL (see the file BSDL), or the conditions below: + +1. You may make and give away verbatim copies of the source form of the + software without restriction, provided that you duplicate all of the + original copyright notices and associated disclaimers. + +2. You may modify your copy of the software in any way, 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 by allowing + the author to include your modifications in the software. + + b. use the modified software only within your corporation or + organization. + + c. give non-standard binaries non-standard names, with + instructions on where to get the original software distribution. + + d. make other distribution arrangements with the author. + +3. You may distribute the software in object code or binary form, + provided that you do at least ONE of the following: + + a. distribute the binaries and library files of the software, + together with instructions (in the manual page or equivalent) + on where to get the original distribution. + + b. accompany the distribution with the machine-readable source of + the software. + + c. give non-standard binaries non-standard names, with + instructions on where to get the original software distribution. + + d. make other distribution arrangements with the author. + +4. You may modify and include the part of the software into any other + software (possibly commercial). But some files in the distribution + are not written by the author, so that they are not under these terms. + + For the list of those files and their copying conditions, see the + file LEGAL. + +5. The scripts and library files supplied as input to or produced as + output from the software do not automatically fall under the + copyright of the software, but belong to whomever generated them, + and may be sold commercially, and may be aggregated with this + software. + +6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. diff --git a/gems/gems/logger-1.7.0/README.md b/gems/gems/logger-1.7.0/README.md new file mode 100644 index 0000000..ceb1a21 --- /dev/null +++ b/gems/gems/logger-1.7.0/README.md @@ -0,0 +1,104 @@ +# Logger + +Logger is a simple but powerful logging utility to output messages in your Ruby program. + +Logger has the following features: + + * Print messages to different levels such as `info` and `error` + * Auto-rolling of log files + * Setting the format of log messages + * Specifying a program name in conjunction with the message + +## Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'logger' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install logger + +## Usage + +### Simple Example + +```ruby +require 'logger' + +# Create a Logger that prints to STDOUT +log = Logger.new(STDOUT) +log.debug("Created Logger") + +log.info("Program finished") + +# Create a Logger that prints to STDERR +error_log = Logger.new(STDERR) +error_log = error_log.error("fatal error") +``` + +## Development + +After checking out the repo, run the following to install dependencies. + +``` +$ bin/setup +``` + +Then, run the tests as: + +``` +$ rake test +``` + +To install this gem onto your local machine, run + +``` +$ rake install +``` + +To release a new version, update the version number in `lib/logger/version.rb`, and then run + +``` +$ rake release +``` + +which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Advanced Development + +### Run tests of a specific file + +``` +$ ruby test/logger/test_logger.rb +``` + +### Run tests filtering test methods by a name + +`--name` option is available as: + +``` +$ ruby test/logger/test_logger.rb --name test_lshift +``` + +### Publish documents to GitHub Pages + +``` +$ rake gh-pages +``` + +Then, git commit and push the generated HTMLs onto `gh-pages` branch. + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/logger. + +## License + +The gem is available as open source under the terms of the [BSD-2-Clause](BSDL). diff --git a/gems/gems/logger-1.7.0/lib/logger.rb b/gems/gems/logger-1.7.0/lib/logger.rb new file mode 100644 index 0000000..4911a3f --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger.rb @@ -0,0 +1,789 @@ +# frozen_string_literal: true +# logger.rb - simple logging utility +# Copyright (C) 2000-2003, 2005, 2008, 2011 NAKAMURA, Hiroshi . +# +# Documentation:: NAKAMURA, Hiroshi and Gavin Sinclair +# License:: +# You can redistribute it and/or modify it under the same terms of Ruby's +# license; either the dual license version in 2003, or any later version. +# Revision:: $Id$ +# +# A simple system for logging messages. See Logger for more documentation. + +require 'fiber' +require 'monitor' +require 'rbconfig' + +require_relative 'logger/version' +require_relative 'logger/formatter' +require_relative 'logger/log_device' +require_relative 'logger/severity' +require_relative 'logger/errors' + +# \Class \Logger provides a simple but sophisticated logging utility that +# you can use to create one or more +# {event logs}[https://en.wikipedia.org/wiki/Logging_(software)#Event_logs] +# for your program. +# Each such log contains a chronological sequence of entries +# that provides a record of the program's activities. +# +# == About the Examples +# +# All examples on this page assume that \Logger has been required: +# +# require 'logger' +# +# == Synopsis +# +# Create a log with Logger.new: +# +# # Single log file. +# logger = Logger.new('t.log') +# # Size-based rotated logging: 3 10-megabyte files. +# logger = Logger.new('t.log', 3, 10485760) +# # Period-based rotated logging: daily (also allowed: 'weekly', 'monthly'). +# logger = Logger.new('t.log', 'daily') +# # Log to an IO stream. +# logger = Logger.new($stdout) +# +# Add entries (level, message) with Logger#add: +# +# logger.add(Logger::DEBUG, 'Maximal debugging info') +# logger.add(Logger::INFO, 'Non-error information') +# logger.add(Logger::WARN, 'Non-error warning') +# logger.add(Logger::ERROR, 'Non-fatal error') +# logger.add(Logger::FATAL, 'Fatal error') +# logger.add(Logger::UNKNOWN, 'Most severe') +# +# Close the log with Logger#close: +# +# logger.close +# +# == Entries +# +# You can add entries with method Logger#add: +# +# logger.add(Logger::DEBUG, 'Maximal debugging info') +# logger.add(Logger::INFO, 'Non-error information') +# logger.add(Logger::WARN, 'Non-error warning') +# logger.add(Logger::ERROR, 'Non-fatal error') +# logger.add(Logger::FATAL, 'Fatal error') +# logger.add(Logger::UNKNOWN, 'Most severe') +# +# These shorthand methods also add entries: +# +# logger.debug('Maximal debugging info') +# logger.info('Non-error information') +# logger.warn('Non-error warning') +# logger.error('Non-fatal error') +# logger.fatal('Fatal error') +# logger.unknown('Most severe') +# +# When you call any of these methods, +# the entry may or may not be written to the log, +# depending on the entry's severity and on the log level; +# see {Log Level}[rdoc-ref:Logger@Log+Level] +# +# An entry always has: +# +# - A severity (the required argument to #add). +# - An automatically created timestamp. +# +# And may also have: +# +# - A message. +# - A program name. +# +# Example: +# +# logger = Logger.new($stdout) +# logger.add(Logger::INFO, 'My message.', 'mung') +# # => I, [2022-05-07T17:21:46.536234 #20536] INFO -- mung: My message. +# +# The default format for an entry is: +# +# "%s, [%s #%d] %5s -- %s: %s\n" +# +# where the values to be formatted are: +# +# - \Severity (one letter). +# - Timestamp. +# - Process id. +# - \Severity (word). +# - Program name. +# - Message. +# +# You can use a different entry format by: +# +# - Setting a custom format proc (affects following entries); +# see {formatter=}[Logger.html#attribute-i-formatter]. +# - Calling any of the methods above with a block +# (affects only the one entry). +# Doing so can have two benefits: +# +# - Context: the block can evaluate the entire program context +# and create a context-dependent message. +# - Performance: the block is not evaluated unless the log level +# permits the entry actually to be written: +# +# logger.error { my_slow_message_generator } +# +# Contrast this with the string form, where the string is +# always evaluated, regardless of the log level: +# +# logger.error("#{my_slow_message_generator}") +# +# === \Severity +# +# The severity of a log entry has two effects: +# +# - Determines whether the entry is selected for inclusion in the log; +# see {Log Level}[rdoc-ref:Logger@Log+Level]. +# - Indicates to any log reader (whether a person or a program) +# the relative importance of the entry. +# +# === Timestamp +# +# The timestamp for a log entry is generated automatically +# when the entry is created. +# +# The logged timestamp is formatted by method +# {Time#strftime}[https://docs.ruby-lang.org/en/master/Time.html#method-i-strftime] +# using this format string: +# +# '%Y-%m-%dT%H:%M:%S.%6N' +# +# Example: +# +# logger = Logger.new($stdout) +# logger.add(Logger::INFO) +# # => I, [2022-05-07T17:04:32.318331 #20536] INFO -- : nil +# +# You can set a different format using method #datetime_format=. +# +# === Message +# +# The message is an optional argument to an entry method: +# +# logger = Logger.new($stdout) +# logger.add(Logger::INFO, 'My message') +# # => I, [2022-05-07T18:15:37.647581 #20536] INFO -- : My message +# +# For the default entry formatter, Logger::Formatter, +# the message object may be: +# +# - A string: used as-is. +# - An Exception: message.message is used. +# - Anything else: message.inspect is used. +# +# *Note*: Logger::Formatter does not escape or sanitize +# the message passed to it. +# Developers should be aware that malicious data (user input) +# may be in the message, and should explicitly escape untrusted data. +# +# You can use a custom formatter to escape message data; +# see the example at {formatter=}[Logger.html#attribute-i-formatter]. +# +# === Program Name +# +# The program name is an optional argument to an entry method: +# +# logger = Logger.new($stdout) +# logger.add(Logger::INFO, 'My message', 'mung') +# # => I, [2022-05-07T18:17:38.084716 #20536] INFO -- mung: My message +# +# The default program name for a new logger may be set in the call to +# Logger.new via optional keyword argument +progname+: +# +# logger = Logger.new('t.log', progname: 'mung') +# +# The default program name for an existing logger may be set +# by a call to method #progname=: +# +# logger.progname = 'mung' +# +# The current program name may be retrieved with method +# {progname}[Logger.html#attribute-i-progname]: +# +# logger.progname # => "mung" +# +# == Log Level +# +# The log level setting determines whether an entry is actually +# written to the log, based on the entry's severity. +# +# These are the defined severities (least severe to most severe): +# +# logger = Logger.new($stdout) +# logger.add(Logger::DEBUG, 'Maximal debugging info') +# # => D, [2022-05-07T17:57:41.776220 #20536] DEBUG -- : Maximal debugging info +# logger.add(Logger::INFO, 'Non-error information') +# # => I, [2022-05-07T17:59:14.349167 #20536] INFO -- : Non-error information +# logger.add(Logger::WARN, 'Non-error warning') +# # => W, [2022-05-07T18:00:45.337538 #20536] WARN -- : Non-error warning +# logger.add(Logger::ERROR, 'Non-fatal error') +# # => E, [2022-05-07T18:02:41.592912 #20536] ERROR -- : Non-fatal error +# logger.add(Logger::FATAL, 'Fatal error') +# # => F, [2022-05-07T18:05:24.703931 #20536] FATAL -- : Fatal error +# logger.add(Logger::UNKNOWN, 'Most severe') +# # => A, [2022-05-07T18:07:54.657491 #20536] ANY -- : Most severe +# +# The default initial level setting is Logger::DEBUG, the lowest level, +# which means that all entries are to be written, regardless of severity: +# +# logger = Logger.new($stdout) +# logger.level # => 0 +# logger.add(0, "My message") +# # => D, [2022-05-11T15:10:59.773668 #20536] DEBUG -- : My message +# +# You can specify a different setting in a new logger +# using keyword argument +level+ with an appropriate value: +# +# logger = Logger.new($stdout, level: Logger::ERROR) +# logger = Logger.new($stdout, level: 'error') +# logger = Logger.new($stdout, level: :error) +# logger.level # => 3 +# +# With this level, entries with severity Logger::ERROR and higher +# are written, while those with lower severities are not written: +# +# logger = Logger.new($stdout, level: Logger::ERROR) +# logger.add(3) +# # => E, [2022-05-11T15:17:20.933362 #20536] ERROR -- : nil +# logger.add(2) # Silent. +# +# You can set the log level for an existing logger +# with method #level=: +# +# logger.level = Logger::ERROR +# +# These shorthand methods also set the level: +# +# logger.debug! # => 0 +# logger.info! # => 1 +# logger.warn! # => 2 +# logger.error! # => 3 +# logger.fatal! # => 4 +# +# You can retrieve the log level with method #level. +# +# logger.level = Logger::ERROR +# logger.level # => 3 +# +# These methods return whether a given +# level is to be written: +# +# logger.level = Logger::ERROR +# logger.debug? # => false +# logger.info? # => false +# logger.warn? # => false +# logger.error? # => true +# logger.fatal? # => true +# +# == Log File Rotation +# +# By default, a log file is a single file that grows indefinitely +# (until explicitly closed); there is no file rotation. +# +# To keep log files to a manageable size, +# you can use _log_ _file_ _rotation_, which uses multiple log files: +# +# - Each log file has entries for a non-overlapping +# time interval. +# - Only the most recent log file is open and active; +# the others are closed and inactive. +# +# === Size-Based Rotation +# +# For size-based log file rotation, call Logger.new with: +# +# - Argument +logdev+ as a file path. +# - Argument +shift_age+ with a positive integer: +# the number of log files to be in the rotation. +# - Argument +shift_size+ as a positive integer: +# the maximum size (in bytes) of each log file; +# defaults to 1048576 (1 megabyte). +# +# Examples: +# +# logger = Logger.new('t.log', 3) # Three 1-megabyte files. +# logger = Logger.new('t.log', 5, 10485760) # Five 10-megabyte files. +# +# For these examples, suppose: +# +# logger = Logger.new('t.log', 3) +# +# Logging begins in the new log file, +t.log+; +# the log file is "full" and ready for rotation +# when a new entry would cause its size to exceed +shift_size+. +# +# The first time +t.log+ is full: +# +# - +t.log+ is closed and renamed to +t.log.0+. +# - A new file +t.log+ is opened. +# +# The second time +t.log+ is full: +# +# - +t.log.0 is renamed as +t.log.1+. +# - +t.log+ is closed and renamed to +t.log.0+. +# - A new file +t.log+ is opened. +# +# Each subsequent time that +t.log+ is full, +# the log files are rotated: +# +# - +t.log.1+ is removed. +# - +t.log.0 is renamed as +t.log.1+. +# - +t.log+ is closed and renamed to +t.log.0+. +# - A new file +t.log+ is opened. +# +# === Periodic Rotation +# +# For periodic rotation, call Logger.new with: +# +# - Argument +logdev+ as a file path. +# - Argument +shift_age+ as a string period indicator. +# +# Examples: +# +# logger = Logger.new('t.log', 'daily') # Rotate log files daily. +# logger = Logger.new('t.log', 'weekly') # Rotate log files weekly. +# logger = Logger.new('t.log', 'monthly') # Rotate log files monthly. +# +# Example: +# +# logger = Logger.new('t.log', 'daily') +# +# When the given period expires: +# +# - The base log file, +t.log+ is closed and renamed +# with a date-based suffix such as +t.log.20220509+. +# - A new log file +t.log+ is opened. +# - Nothing is removed. +# +# The default format for the suffix is '%Y%m%d', +# which produces a suffix similar to the one above. +# You can set a different format using create-time option +# +shift_period_suffix+; +# see details and suggestions at +# {Time#strftime}[https://docs.ruby-lang.org/en/master/Time.html#method-i-strftime]. +# +class Logger + _, name, rev = %w$Id$ + if name + name = name.chomp(",v") + else + name = File.basename(__FILE__) + end + rev ||= "v#{VERSION}" + ProgName = "#{name}/#{rev}" + + include Severity + + # Logging severity threshold (e.g. Logger::INFO). + def level + level_override[level_key] || @level + end + + # Sets the log level; returns +severity+. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + # Argument +severity+ may be an integer, a string, or a symbol: + # + # logger.level = Logger::ERROR # => 3 + # logger.level = 3 # => 3 + # logger.level = 'error' # => "error" + # logger.level = :error # => :error + # + # Logger#sev_threshold= is an alias for Logger#level=. + # + def level=(severity) + @level = Severity.coerce(severity) + end + + # Adjust the log level during the block execution for the current Fiber only + # + # logger.with_level(:debug) do + # logger.debug { "Hello" } + # end + def with_level(severity) + prev, level_override[level_key] = level, Severity.coerce(severity) + begin + yield + ensure + if prev + level_override[level_key] = prev + else + level_override.delete(level_key) + end + end + end + + # Program name to include in log messages. + attr_accessor :progname + + # Sets the date-time format. + # + # Argument +datetime_format+ should be either of these: + # + # - A string suitable for use as a format for method + # {Time#strftime}[https://docs.ruby-lang.org/en/master/Time.html#method-i-strftime]. + # - +nil+: the logger uses '%Y-%m-%dT%H:%M:%S.%6N'. + # + def datetime_format=(datetime_format) + @default_formatter.datetime_format = datetime_format + end + + # Returns the date-time format; see #datetime_format=. + # + def datetime_format + @default_formatter.datetime_format + end + + # Sets or retrieves the logger entry formatter proc. + # + # When +formatter+ is +nil+, the logger uses Logger::Formatter. + # + # When +formatter+ is a proc, a new entry is formatted by the proc, + # which is called with four arguments: + # + # - +severity+: The severity of the entry. + # - +time+: A Time object representing the entry's timestamp. + # - +progname+: The program name for the entry. + # - +msg+: The message for the entry (string or string-convertible object). + # + # The proc should return a string containing the formatted entry. + # + # This custom formatter uses + # {String#dump}[https://docs.ruby-lang.org/en/master/String.html#method-i-dump] + # to escape the message string: + # + # logger = Logger.new($stdout, progname: 'mung') + # original_formatter = logger.formatter || Logger::Formatter.new + # logger.formatter = proc { |severity, time, progname, msg| + # original_formatter.call(severity, time, progname, msg.dump) + # } + # logger.add(Logger::INFO, "hello \n ''") + # logger.add(Logger::INFO, "\f\x00\xff\\\"") + # + # Output: + # + # I, [2022-05-13T13:16:29.637488 #8492] INFO -- mung: "hello \n ''" + # I, [2022-05-13T13:16:29.637610 #8492] INFO -- mung: "\f\x00\xFF\\\"" + # + attr_accessor :formatter + + alias sev_threshold level + alias sev_threshold= level= + + # Returns +true+ if the log level allows entries with severity + # Logger::DEBUG to be written, +false+ otherwise. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def debug?; level <= DEBUG; end + + # Sets the log level to Logger::DEBUG. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def debug!; self.level = DEBUG; end + + # Returns +true+ if the log level allows entries with severity + # Logger::INFO to be written, +false+ otherwise. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def info?; level <= INFO; end + + # Sets the log level to Logger::INFO. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def info!; self.level = INFO; end + + # Returns +true+ if the log level allows entries with severity + # Logger::WARN to be written, +false+ otherwise. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def warn?; level <= WARN; end + + # Sets the log level to Logger::WARN. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def warn!; self.level = WARN; end + + # Returns +true+ if the log level allows entries with severity + # Logger::ERROR to be written, +false+ otherwise. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def error?; level <= ERROR; end + + # Sets the log level to Logger::ERROR. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def error!; self.level = ERROR; end + + # Returns +true+ if the log level allows entries with severity + # Logger::FATAL to be written, +false+ otherwise. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def fatal?; level <= FATAL; end + + # Sets the log level to Logger::FATAL. + # See {Log Level}[rdoc-ref:Logger@Log+Level]. + # + def fatal!; self.level = FATAL; end + + # :call-seq: + # Logger.new(logdev, shift_age = 0, shift_size = 1048576, **options) + # + # With the single argument +logdev+, + # returns a new logger with all default options: + # + # Logger.new('t.log') # => # + # + # Argument +logdev+ must be one of: + # + # - A string filepath: entries are to be written + # to the file at that path; if the file at that path exists, + # new entries are appended. + # - An IO stream (typically $stdout, $stderr. or + # an open file): entries are to be written to the given stream. + # - +nil+ or +File::NULL+: no entries are to be written. + # + # Argument +shift_age+ must be one of: + # + # - The number of log files to be in the rotation. + # See {Size-Based Rotation}[rdoc-ref:Logger@Size-Based+Rotation]. + # - A string period indicator. + # See {Periodic Rotation}[rdoc-ref:Logger@Periodic+Rotation]. + # + # Argument +shift_size+ is the maximum size (in bytes) of each log file. + # See {Size-Based Rotation}[rdoc-ref:Logger@Size-Based+Rotation]. + # + # Examples: + # + # Logger.new('t.log') + # Logger.new($stdout) + # + # The keyword options are: + # + # - +level+: sets the log level; default value is Logger::DEBUG. + # See {Log Level}[rdoc-ref:Logger@Log+Level]: + # + # Logger.new('t.log', level: Logger::ERROR) + # + # - +progname+: sets the default program name; default is +nil+. + # See {Program Name}[rdoc-ref:Logger@Program+Name]: + # + # Logger.new('t.log', progname: 'mung') + # + # - +formatter+: sets the entry formatter; default is +nil+. + # See {formatter=}[Logger.html#attribute-i-formatter]. + # + # - +datetime_format+: sets the format for entry timestamp; + # default is +nil+. + # See #datetime_format=. + # + # - +binmode+: sets whether the logger writes in binary mode; + # default is +false+. + # + # - +shift_period_suffix+: sets the format for the filename suffix + # for periodic log file rotation; default is '%Y%m%d'. + # See {Periodic Rotation}[rdoc-ref:Logger@Periodic+Rotation]. + # + # - +reraise_write_errors+: An array of exception classes, which will + # be reraised if there is an error when writing to the log device. + # The default is to swallow all exceptions raised. + # - +skip_header+: If +true+, prevents the logger from writing a header + # when creating a new log file. The default is +false+, meaning + # the header will be written as usual. + # + def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG, + progname: nil, formatter: nil, datetime_format: nil, + binmode: false, shift_period_suffix: '%Y%m%d', + reraise_write_errors: [], skip_header: false) + self.level = level + self.progname = progname + @default_formatter = Formatter.new + self.datetime_format = datetime_format + self.formatter = formatter + @logdev = nil + @level_override = {} + if logdev && logdev != File::NULL + @logdev = LogDevice.new(logdev, shift_age: shift_age, + shift_size: shift_size, + shift_period_suffix: shift_period_suffix, + binmode: binmode, + reraise_write_errors: reraise_write_errors, + skip_header: skip_header) + end + end + + # Sets the logger's output stream: + # + # - If +logdev+ is +nil+, reopens the current output stream. + # - If +logdev+ is a filepath, opens the indicated file for append. + # - If +logdev+ is an IO stream + # (usually $stdout, $stderr, or an open File object), + # opens the stream for append. + # + # Example: + # + # logger = Logger.new('t.log') + # logger.add(Logger::ERROR, 'one') + # logger.close + # logger.add(Logger::ERROR, 'two') # Prints 'log writing failed. closed stream' + # logger.reopen + # logger.add(Logger::ERROR, 'three') + # logger.close + # File.readlines('t.log') + # # => + # # ["# Logfile created on 2022-05-12 14:21:19 -0500 by logger.rb/v1.5.0\n", + # # "E, [2022-05-12T14:21:27.596726 #22428] ERROR -- : one\n", + # # "E, [2022-05-12T14:23:05.847241 #22428] ERROR -- : three\n"] + # + def reopen(logdev = nil, shift_age = nil, shift_size = nil, shift_period_suffix: nil, binmode: nil) + @logdev&.reopen(logdev, shift_age: shift_age, shift_size: shift_size, + shift_period_suffix: shift_period_suffix, binmode: binmode) + self + end + + # Creates a log entry, which may or may not be written to the log, + # depending on the entry's severity and on the log level. + # See {Log Level}[rdoc-ref:Logger@Log+Level] + # and {Entries}[rdoc-ref:Logger@Entries] for details. + # + # Examples: + # + # logger = Logger.new($stdout, progname: 'mung') + # logger.add(Logger::INFO) + # logger.add(Logger::ERROR, 'No good') + # logger.add(Logger::ERROR, 'No good', 'gnum') + # + # Output: + # + # I, [2022-05-12T16:25:31.469726 #36328] INFO -- mung: mung + # E, [2022-05-12T16:25:55.349414 #36328] ERROR -- mung: No good + # E, [2022-05-12T16:26:35.841134 #36328] ERROR -- gnum: No good + # + # These convenience methods have implicit severity: + # + # - #debug. + # - #info. + # - #warn. + # - #error. + # - #fatal. + # - #unknown. + # + def add(severity, message = nil, progname = nil) + severity ||= UNKNOWN + if @logdev.nil? or severity < level + return true + end + if progname.nil? + progname = @progname + end + if message.nil? + if block_given? + message = yield + else + message = progname + progname = @progname + end + end + @logdev.write( + format_message(format_severity(severity), Time.now, progname, message)) + true + end + alias log add + + # Writes the given +msg+ to the log with no formatting; + # returns the number of characters written, + # or +nil+ if no log device exists: + # + # logger = Logger.new($stdout) + # logger << 'My message.' # => 10 + # + # Output: + # + # My message. + # + def <<(msg) + @logdev&.write(msg) + end + + # Equivalent to calling #add with severity Logger::DEBUG. + # + def debug(progname = nil, &block) + add(DEBUG, nil, progname, &block) + end + + # Equivalent to calling #add with severity Logger::INFO. + # + def info(progname = nil, &block) + add(INFO, nil, progname, &block) + end + + # Equivalent to calling #add with severity Logger::WARN. + # + def warn(progname = nil, &block) + add(WARN, nil, progname, &block) + end + + # Equivalent to calling #add with severity Logger::ERROR. + # + def error(progname = nil, &block) + add(ERROR, nil, progname, &block) + end + + # Equivalent to calling #add with severity Logger::FATAL. + # + def fatal(progname = nil, &block) + add(FATAL, nil, progname, &block) + end + + # Equivalent to calling #add with severity Logger::UNKNOWN. + # + def unknown(progname = nil, &block) + add(UNKNOWN, nil, progname, &block) + end + + # Closes the logger; returns +nil+: + # + # logger = Logger.new('t.log') + # logger.close # => nil + # logger.info('foo') # Prints "log writing failed. closed stream" + # + # Related: Logger#reopen. + def close + @logdev&.close + end + +private + + # \Severity label for logging (max 5 chars). + SEV_LABEL = %w(DEBUG INFO WARN ERROR FATAL ANY).freeze + + def format_severity(severity) + SEV_LABEL[severity] || 'ANY' + end + + # Guarantee the existence of this ivar even when subclasses don't call the superclass constructor. + def level_override + unless defined?(@level_override) + bad = self.class.instance_method(:initialize) + file, line = bad.source_location + Kernel.warn <<~";;;", uplevel: 2 + Logger not initialized properly + #{file}:#{line}: info: #{bad.owner}\##{bad.name}: \ + does not call super probably + ;;; + end + @level_override ||= {} + end + + def level_key + Fiber.current + end + + def format_message(severity, datetime, progname, msg) + (@formatter || @default_formatter).call(severity, datetime, progname, msg) + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/errors.rb b/gems/gems/logger-1.7.0/lib/logger/errors.rb new file mode 100644 index 0000000..8858179 --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/errors.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Logger + # not used after 1.2.7. just for compat. + class Error < RuntimeError # :nodoc: + end + class ShiftingError < Error # :nodoc: + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/formatter.rb b/gems/gems/logger-1.7.0/lib/logger/formatter.rb new file mode 100644 index 0000000..c634dbf --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/formatter.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class Logger + # Default formatter for log messages. + class Formatter + Format = "%.1s, [%s #%d] %5s -- %s: %s\n" + DatetimeFormat = "%Y-%m-%dT%H:%M:%S.%6N" + + attr_accessor :datetime_format + + def initialize + @datetime_format = nil + end + + def call(severity, time, progname, msg) + sprintf(Format, severity, format_datetime(time), Process.pid, severity, progname, msg2str(msg)) + end + + private + + def format_datetime(time) + time.strftime(@datetime_format || DatetimeFormat) + end + + def msg2str(msg) + case msg + when ::String + msg + when ::Exception + "#{ msg.message } (#{ msg.class })\n#{ msg.backtrace.join("\n") if msg.backtrace }" + else + msg.inspect + end + end + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/log_device.rb b/gems/gems/logger-1.7.0/lib/logger/log_device.rb new file mode 100644 index 0000000..e16f3b7 --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/log_device.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +require_relative 'period' + +class Logger + # Device used for logging messages. + class LogDevice + include Period + + attr_reader :dev + attr_reader :filename + include MonitorMixin + + def initialize( + log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, + binmode: false, reraise_write_errors: [], skip_header: false + ) + @dev = @filename = @shift_age = @shift_size = @shift_period_suffix = nil + @binmode = binmode + @reraise_write_errors = reraise_write_errors + @skip_header = skip_header + mon_initialize + set_dev(log) + set_file(shift_age, shift_size, shift_period_suffix) if @filename + end + + def write(message) + handle_write_errors("writing") do + synchronize do + if @shift_age and @dev.respond_to?(:stat) + handle_write_errors("shifting") {check_shift_log} + end + handle_write_errors("writing") {@dev.write(message)} + end + end + end + + def close + begin + synchronize do + @dev.close rescue nil + end + rescue Exception + @dev.close rescue nil + end + end + + def reopen(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: nil) + # reopen the same filename if no argument, do nothing for IO + log ||= @filename if @filename + @binmode = binmode unless binmode.nil? + if log + synchronize do + if @filename and @dev + @dev.close rescue nil # close only file opened by Logger + @filename = nil + end + set_dev(log) + set_file(shift_age, shift_size, shift_period_suffix) if @filename + end + end + self + end + + private + + # :stopdoc: + + MODE = File::WRONLY | File::APPEND + # TruffleRuby < 24.2 does not have File::SHARE_DELETE + if File.const_defined? :SHARE_DELETE + MODE_TO_OPEN = MODE | File::SHARE_DELETE | File::BINARY + else + MODE_TO_OPEN = MODE | File::BINARY + end + MODE_TO_CREATE = MODE_TO_OPEN | File::CREAT | File::EXCL + + def set_dev(log) + if log.respond_to?(:write) and log.respond_to?(:close) + @dev = log + if log.respond_to?(:path) and path = log.path + if File.exist?(path) + @filename = path + end + end + else + @dev = open_logfile(log) + @filename = log + end + end + + def set_file(shift_age, shift_size, shift_period_suffix) + @shift_age = shift_age || @shift_age || 7 + @shift_size = shift_size || @shift_size || 1048576 + @shift_period_suffix = shift_period_suffix || @shift_period_suffix || '%Y%m%d' + + unless @shift_age.is_a?(Integer) + base_time = @dev.respond_to?(:stat) ? @dev.stat.mtime : Time.now + @next_rotate_time = next_rotate_time(base_time, @shift_age) + end + end + + if MODE_TO_OPEN == MODE + def fixup_mode(dev) + dev + end + else + def fixup_mode(dev) + return dev if @binmode + dev.autoclose = false + old_dev = dev + dev = File.new(dev.fileno, mode: MODE, path: dev.path) + old_dev.close + PathAttr.set_path(dev, filename) if defined?(PathAttr) + dev + end + end + + def open_logfile(filename) + begin + dev = File.open(filename, MODE_TO_OPEN) + rescue Errno::ENOENT + create_logfile(filename) + else + dev = fixup_mode(dev) + dev.sync = true + dev.binmode if @binmode + dev + end + end + + def create_logfile(filename) + begin + logdev = File.open(filename, MODE_TO_CREATE) + logdev.flock(File::LOCK_EX) + logdev = fixup_mode(logdev) + logdev.sync = true + logdev.binmode if @binmode + add_log_header(logdev) unless @skip_header + logdev.flock(File::LOCK_UN) + logdev + rescue Errno::EEXIST + # file is created by another process + open_logfile(filename) + end + end + + def handle_write_errors(mesg) + yield + rescue *@reraise_write_errors + raise + rescue + warn("log #{mesg} failed. #{$!}") + end + + def add_log_header(file) + file.write( + "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName] + ) if file.size == 0 + end + + def check_shift_log + if @shift_age.is_a?(Integer) + # Note: always returns false if '0'. + if @filename && (@shift_age > 0) && (@dev.stat.size > @shift_size) + lock_shift_log { shift_log_age } + end + else + now = Time.now + if now >= @next_rotate_time + @next_rotate_time = next_rotate_time(now, @shift_age) + lock_shift_log { shift_log_period(previous_period_end(now, @shift_age)) } + end + end + end + + def lock_shift_log + retry_limit = 8 + retry_sleep = 0.1 + begin + File.open(@filename, MODE_TO_OPEN) do |lock| + lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file + if File.identical?(@filename, lock) and File.identical?(lock, @dev) + yield # log shifting + else + # log shifted by another process (i-node before locking and i-node after locking are different) + @dev.close rescue nil + @dev = open_logfile(@filename) + end + end + true + rescue Errno::ENOENT + # @filename file would not exist right after #rename and before #create_logfile + if retry_limit <= 0 + warn("log rotation inter-process lock failed. #{$!}") + else + sleep retry_sleep + retry_limit -= 1 + retry_sleep *= 2 + retry + end + end + rescue + warn("log rotation inter-process lock failed. #{$!}") + end + + def shift_log_age + (@shift_age-3).downto(0) do |i| + if FileTest.exist?("#{@filename}.#{i}") + File.rename("#{@filename}.#{i}", "#{@filename}.#{i+1}") + end + end + shift_log_file("#{@filename}.0") + end + + def shift_log_period(period_end) + suffix = period_end.strftime(@shift_period_suffix) + age_file = "#{@filename}.#{suffix}" + if FileTest.exist?(age_file) + # try to avoid filename crash caused by Timestamp change. + idx = 0 + # .99 can be overridden; avoid too much file search with 'loop do' + while idx < 100 + idx += 1 + age_file = "#{@filename}.#{suffix}.#{idx}" + break unless FileTest.exist?(age_file) + end + end + shift_log_file(age_file) + end + + def shift_log_file(shifted) + stat = @dev.stat + @dev.close rescue nil + File.rename(@filename, shifted) + @dev = create_logfile(@filename) + mode, uid, gid = stat.mode, stat.uid, stat.gid + begin + @dev.chmod(mode) if mode + mode = nil + @dev.chown(uid, gid) + rescue Errno::EPERM + if mode + # failed to chmod, probably nothing can do more. + elsif uid + uid = nil + retry # to change gid only + end + end + return true + end + end +end + +File.open(__FILE__) do |f| + File.new(f.fileno, autoclose: false, path: "").path +rescue IOError + module PathAttr # :nodoc: + attr_reader :path + + def self.set_path(file, path) + file.extend(self).instance_variable_set(:@path, path) + end + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/period.rb b/gems/gems/logger-1.7.0/lib/logger/period.rb new file mode 100644 index 0000000..a0359de --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/period.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +class Logger + module Period + module_function + + SiD = 24 * 60 * 60 + + def next_rotate_time(now, shift_age) + case shift_age + when 'daily', :daily + t = Time.mktime(now.year, now.month, now.mday) + SiD + when 'weekly', :weekly + t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday) + when 'monthly', :monthly + t = Time.mktime(now.year, now.month, 1) + SiD * 32 + return Time.mktime(t.year, t.month, 1) + when 'now', 'everytime', :now, :everytime + return now + else + raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime" + end + if t.hour.nonzero? or t.min.nonzero? or t.sec.nonzero? + hour = t.hour + t = Time.mktime(t.year, t.month, t.mday) + t += SiD if hour > 12 + end + t + end + + def previous_period_end(now, shift_age) + case shift_age + when 'daily', :daily + t = Time.mktime(now.year, now.month, now.mday) - SiD / 2 + when 'weekly', :weekly + t = Time.mktime(now.year, now.month, now.mday) - (SiD * now.wday + SiD / 2) + when 'monthly', :monthly + t = Time.mktime(now.year, now.month, 1) - SiD / 2 + when 'now', 'everytime', :now, :everytime + return now + else + raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime" + end + Time.mktime(t.year, t.month, t.mday, 23, 59, 59) + end + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/severity.rb b/gems/gems/logger-1.7.0/lib/logger/severity.rb new file mode 100644 index 0000000..e96fb0d --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/severity.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +class Logger + # Logging severity. + module Severity + # Low-level information, mostly for developers. + DEBUG = 0 + # Generic (useful) information about system operation. + INFO = 1 + # A warning. + WARN = 2 + # A handleable error condition. + ERROR = 3 + # An unhandleable error that results in a program crash. + FATAL = 4 + # An unknown message that should always be logged. + UNKNOWN = 5 + + LEVELS = { + "debug" => DEBUG, + "info" => INFO, + "warn" => WARN, + "error" => ERROR, + "fatal" => FATAL, + "unknown" => UNKNOWN, + } + private_constant :LEVELS + + def self.coerce(severity) + if severity.is_a?(Integer) + severity + else + key = severity.to_s.downcase + LEVELS[key] || raise(ArgumentError, "invalid log level: #{severity}") + end + end + end +end diff --git a/gems/gems/logger-1.7.0/lib/logger/version.rb b/gems/gems/logger-1.7.0/lib/logger/version.rb new file mode 100644 index 0000000..0d74bec --- /dev/null +++ b/gems/gems/logger-1.7.0/lib/logger/version.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class Logger + VERSION = "1.7.0" +end diff --git a/gems/gems/mime-types-3.7.0/CHANGELOG.md b/gems/gems/mime-types-3.7.0/CHANGELOG.md new file mode 100644 index 0000000..a6d02df --- /dev/null +++ b/gems/gems/mime-types-3.7.0/CHANGELOG.md @@ -0,0 +1,413 @@ +# Changelog + +## 3.7.0 / 2025-05-07 + +- Deprecated `MIME::Type#priority_compare`. In a future release, this will be + will be renamed to `MIME::Type#<=>`. This method is used in tight loops, so + there is no warning message for either `MIME::Type#priority_compare` or + `MIME::Type#<=>`. + +- Improved the performance of sorting by eliminating the complex comparison flow + from `MIME::Type#priority_compare`. The old version shows under 600 i/s, and + the new version shows over 900 i/s. In sorting the full set of MIME data, + there are three differences between the old and new versions; after + comparison, these differences are considered acceptable. + +- Simplified the default compare implementation (`MIME::Type#<=>`) to use the + new `MIME::Type#priority_compare` operation and simplify the fallback to + `String` comparison. This _may_ result in exceptions where there had been + none, as explicit support for several special values (which should have caused + errors in any case) have been removed. + +- When sorting the result of `MIME::Types#type_for`, provided a priority boost + if one of the target extensions is the type's preferred extension. This means + that for the case in [#148][issue-148], when getting the type for `foo.webm`, + the type `video/webm` will be returned before the type `audio/webm`, because + `.webm` is the preferred extension for `video/webm` but not `audio/webm` + (which has a preferred extension of `.weba`). Added tests to ensure MIME types + are retrieved in a stable order (which is alphabetical). + +## 3.6.2 / 2025-03-25 + +- Updated the reference to the changelog in the README, fixing RubyGems metadata + on the next release. Fixed in [#189][pull-189] by nna774. + +- Daniel Watkins fixed an error in the repo tag for this release because the + modified gemspec was not included in the release. Fixed in [#196][pull-196]. + +## 3.6.1 / 2025-03-15 + +- Restructure project structure to be more consistent with mime-types-data. + +- Increased GitHub action security. Added Ruby 3.4, dropped macOS 12, added + macOS 15. + +- Added [trusted publishing][tp] for fully automated releases. + +- Added `MIME::Types::NullLogger` to completely silence MIME::Types logging. + +- Improved the development experience with updates to the Gemfile. + +- Worked around various issues with the benchmarks and profiling code. + +- Removed Forwardable from MIME::Types::Container. + +- Added coverage support (back). + +## 3.6.0 / 2024-10-02 + +- 2 deprecations: + + - Array-based MIME::Type initialization + - String-based MIME::Type initialization + + Use of these these will result in deprecation warnings. + +- Added `logger` to the gemspec to suppress a bundled gem warning with Ruby + 3.3.5. This warning should not be showing up until Ruby 3.4.0 is released and + will be suppressed in Ruby 3.3.6. + +- Reworked the deprecation message code to be somewhat more flexible and allow + for outputting certain warnings once. Because there will be at least one other + release after 3.6, we do not need to make the type initialization deprecations + frequent with this release. + +## 3.5.2 / 2024-01-02 + +There are no primary code changes, but we are releasing this as an update as +there are some validation changes and updated code with formatting. + +- Dependency and CI updates: + + - Masato Nakamura added Ruby 3.3 to the CI workflow in [#179][pull-179]. + + - Fixed regressions in standard formatting in [#180][pull-180]. + + - Removed `minitest-bonus-assertions` because of a bundler resolution issue. + Created a better replacement in-line. + +## 3.5.1 / 2023-08-21 + +- 1 bug fix: + + - Better handle possible line-termination strings (legal in Unix filenames) + such as `\n` in `MIME::Types.type_for`. Reported by ooooooo-q in + [#177][issue-177], resolved in [#178][pull-178]. + +## 3.5.0 / 2023-08-07 + +- 1 minor enhancement: + + - Robb Shecter changed the default log level for duplicate type variant from + `warn` to `debug` in [#170][pull-170]. This works because + `MIME::Types.logger` is intended to fit the `::Logger` interface, and the + default logger (`WarnLogger`) is a subclass of `::Logger` that passes + through to `Kernel.warn`. + + - Further consideration has changed cache load messages from `warn` to + `error` and deprecation messages from `warn` to `debug`. + +- 1 bug fix: + + - Added a definition of `MIME::Type#hash`. Contributed by Alex Vondrak in + [#167][pull-167], fixing [#166][issue-166]. + +- Dependency and CI updates: + + - Update the .github/workflows/ci.yml workflow to test Ruby 3.2 and more + reliably test certain combinations rather than depending on exclusions. + + - Change `.standard.yml` configuration to format for Ruby 2.3 as certain files + are not properly detected with Ruby 2.0. + + - Change from `hoe-git` to `hoe-git2` to support Hoe version 4. + + - Apply `standardrb --fix`. + + - The above changes have resulted in the Soft deprecation of Ruby versions + below 2.6. Any errors reported for Ruby versions 2.0, 2.1, 2.2, 2.3, 2.4, + and 2.5 will be resolved, but maintaining CI for these versions is + unsustainable. + +## 3.4.1 / 2021-11-16 + +- 1 bug fix: + + - Fixed a Ruby < 2.3 incompatibility introduced by the use of standardrb, + where `<<-` heredocs were converted to `<<~` heredocs. These have been + reverted back to `<<-` with the indentation kept and a `.strip` call to + prevent excess whitespace. + +## 3.4.0 / 2021-11-15 + +- 1 minor enhancement: + + - Added a new field to `MIME::Type` for checking provisional registrations + from IANA. [#157] + +- Documentation: + + - Kevin Menard synced the documentation so that all examples are correct. + [#153] + +- Administrivia: + + - Added Ruby 3.0 to the CI test matrix. Added `windows/jruby` to the CI + exclusion list; it refuses to run successfully. + - Removed the Travis CI configuration and changed it to Github Workflows + [#150][pull-150]. Removed Coveralls configuration. + - Igor Victor added TruffleRuby to the Travis CI configuration. [#149] + - Koichi ITO loosened an excessively tight dependency. [#147] + - Started using `standardrb` for Ruby formatting and validation. + - Moved `deps:top` functionality to a support file. + +## 3.3.1 / 2019-12-26 + +- 1 minor bug fix: + + - Al Snow fixed a warning with MIME::Types::Logger producing a warning because + Ruby 2.7 introduces numbered block parameters. Because of the way that the + MIME::Types::Logger works for deprecation messages, the initializer + parameters had been named `_1`, `_2`, and `_3`. This has now been resolved. + [#146] + +- Administrivia: + + - Olle Jonsson removed an outdated Travis configuration option. + [#142][pull-142] + +## 3.3 / 2019-09-04 + +- 1 minor enhancement: + + - Jean Boussier reduced memory usage for Ruby versions 2.3 or higher by + interning various string values in each type. This is done with a + backwards-compatible call that _freezes_ the strings on older versions of + Ruby. [#141] + +- Administrivia: + + - Nicholas La Roux updated Travis build configurations. [#139] + +## 3.2.2 / 2018-08-12 + +- Hiroto Fukui removed a stray `debugger` statement that I had used in producing + v3.2.1. [#137] + +## 3.2.1 / 2018-08-12 + +- A few bugs related to MIME::Types::Container and its use in the + mime-types-data helper tools reared their head because I released 3.2 before + verifying against mime-types-data. + +## 3.2 / 2018-08-12 + +- 2 minor enhancements + + - Janko Marohnić contributed a change to `MIME::Type#priority_order` that + should improve on strict sorting when dealing with MIME types that appear to + be in the same family even if strict sorting would cause an unregistered + type to be sorted first. [#132] + + - Dillon Welch contributed a change that added `frozen_string_literal: true` + to files so that modern Rubies can automatically reduce duplicate string + allocations. [#135] + +- 2 bug fixes + + - Burke Libbey fixed a problem with cached data loading. [#126] + + - Resolved an issue where Enumerable#inject returns `nil` when provided an + empty enumerable and a default value has not been provided. This is because + when Enumerable#inject isn't provided a starting value, the first value is + used as the default value. In every case where this error was happening, the + result was supposed to be an array containing Set objects so they can be + reduced to a single Set. [#117][issue-117], [#127][issue-127], + [#134][issue-134] + + - Fixed an uncontrolled growth bug in MIME::Types::Container where a key miss + would create a new entry with an empty Set in the container. This was + working as designed (this particular feature was heavily used during + MIME::Type registry construction), but the design was flawed in that it did + not have any way of determining the difference between construction and + querying. This would mean that, if you have a function in your web app that + queries the MIME::Types registry by extension, the extension registry would + grow uncontrollably. [#136] + +- Deprecations: + + - Lazy loading (`$RUBY_MIME_TYPES_LAZY_LOAD`) has been deprecated. + +- Documentation Changes: + + - Supporting files are now Markdown instead of rdoc, except for the README. + + - The history file has been modified to remove all history prior to 3.0. This + history can be found in previous commits. + + - A spelling error was corrected by Edward Betts ([#129][pull-129]). + +- Administrivia: + + - CI configuration for more modern versions of Ruby were added by Nicolas + Leger ([#130][pull-130]), Jun Aruga ([#125][pull-125]), and Austin Ziegler. + Removed ruby-head-clang and rbx (Rubinius) from CI. + + - Fixed tests which were asserting equality against nil, which will become an + error in Minitest 6. + +## 3.1 / 2016-05-22 + +- 1 documentation change: + + - Tim Smith (@tas50) updated the build badges to be SVGs to improve + readability on high-density (retina) screens with pull request + [#112][pull-112]. + +- 3 bug fixes + + - A test for `MIME::Types::Cache` fails under Ruby 2.3 because of frozen + strings, [#118][pull-118]. This has been fixed. + + - The JSON data has been incorrectly encoded since the release of mime-types 3 + on the `xrefs` field, because of the switch to using a Set to store + cross-reference information. This has been fixed. + + - A tentative fix for [#117][issue-117] has been applied, removing the only + circular require dependencies that exist (and for which there was code to + prevent, but the current fix is simpler). I have no way to verify this fix + and depending on how things are loaded by `delayed_job`, this fix may not be + sufficient. + +- 1 governance change + + - Updated to Contributor Covenant 1.4. + +## 3.0 / 2015-11-21 + +- 2 governance changes + + - This project and the related mime-types-data project are now exclusively MIT + licensed. Resolves [#95][pull-95]. + + - All projects under the mime-types organization now have a standard code of + conduct adapted from the [Contributor Covenant][contributor covenant]. This + text can be found in the [Code of Conduct][code of conduct] file. + +- 3 major changes + + - All methods deprecated in mime-types 2.x have been removed. + + - mime-types now requires Ruby 2.0 compatibility or later. Resolves + [#97][pull-97]. + + - The registry data has been removed from mime-types and put into + mime-types-data, maintained and released separately. It can be found at + [mime-types-data][mime-types-data]. + +- 17 minor changes: + + - `MIME::Type` changes: + + - Changed the way that simplified types representations are created to + reflect the fact that `x-` prefixes are no longer considered special + according to IANA. A simplified MIME type is case-folded to lowercase. A + new keyword parameter, `remove_x_prefix`, can be provided to remove `x-` + prefixes. + + - Improved initialization with an Array works so that extensions do not need + to be wrapped in another array. This means that `%w(text/yaml yaml yml)` + works in the same way that `['text/yaml', %w(yaml yml)]` did (and still + does). + + - Changed `priority_compare` to conform with attributes that no longer + exist. + + - Changed the internal implementation of extensions to use a frozen Set. + + - When extensions are set or modified with `add_extensions`, the primary + registry will be informed of a need to re-index extensions. Resolves + [#84][pull-84]. + + - The preferred extension can be set explicitly. If not set, it will be the + first extension. If the preferred extension is not in the extension list, + it will be added. + + - Improved how xref URLs are generated. + + - Converted `obsolete`, `registered` and `signature` to `attr_accessors`. + + - `MIME::Types` changes: + + - Modified `MIME::Types.new` to track instances of `MIME::Types` so that + they can be told to reindex the extensions as necessary. + + - Removed `data_version` attribute. + + - Changed `#[]` so that the `complete` and `registered` flags are keywords + instead of a generic options parameter. + + - Extracted the class methods to a separate file. + + - Changed the container implementation to use a Set instead of an Array to + prevent data duplication. Resolves [#79][pull-79]. + + - `MIME::Types::Cache` changes: + + - Caching is now based on the data gem version instead of the mime-types + version. + + - Caching is compatible with columnar registry stores. + + - `MIME::Types::Loader` changes: + + - `MIME::Types::Loader::PATH` has been removed and replaced with + `MIME::Types::Data::PATH` from the mime-types-data gem. The environment + variable `RUBY_MIME_TYPES_DATA` is still used. + + - Support for the long-deprecated mime-types v1 format has been removed. + + - The registry is default loaded from the columnar store by default. The + internal format of the columnar store has changed; many of the boolean + flags are now loaded from a single file. Resolves [#85][pull-85]. + +[code of conduct]: CODE_OF_CONDUCT.md +[contributor covenant]: http://contributor-covenant.org +[issue-117]: https://github.com/mime-types/ruby-mime-types/issues/117 +[issue-127]: https://github.com/mime-types/ruby-mime-types/issues/127 +[issue-134]: https://github.com/mime-types/ruby-mime-types/issues/134 +[issue-136]: https://github.com/mime-types/ruby-mime-types/issues/136 +[issue-148]: https://github.com/mime-types/ruby-mime-types/issues/148 +[issue-166]: https://github.com/mime-types/ruby-mime-types/issues/166 +[issue-177]: https://github.com/mime-types/ruby-mime-types/issues/177 +[mime-types-data]: https://github.com/mime-types/mime-types-data +[pull-112]: https://github.com/mime-types/ruby-mime-types/pull/112 +[pull-118]: https://github.com/mime-types/ruby-mime-types/pull/118 +[pull-125]: https://github.com/mime-types/ruby-mime-types/pull/125 +[pull-126]: https://github.com/mime-types/ruby-mime-types/pull/126 +[pull-129]: https://github.com/mime-types/ruby-mime-types/pull/129 +[pull-130]: https://github.com/mime-types/ruby-mime-types/pull/130 +[pull-132]: https://github.com/mime-types/ruby-mime-types/pull/132 +[pull-135]: https://github.com/mime-types/ruby-mime-types/pull/135 +[pull-137]: https://github.com/mime-types/ruby-mime-types/pull/137 +[pull-139]: https://github.com/mime-types/ruby-mime-types/pull/139 +[pull-141]: https://github.com/mime-types/ruby-mime-types/pull/141 +[pull-142]: https://github.com/mime-types/ruby-mime-types/pull/142 +[pull-146]: https://github.com/mime-types/ruby-mime-types/pull/146 +[pull-147]: https://github.com/mime-types/ruby-mime-types/pull/147 +[pull-149]: https://github.com/mime-types/ruby-mime-types/pull/149 +[pull-150]: https://github.com/mime-types/ruby-mime-types/pull/150 +[pull-153]: https://github.com/mime-types/ruby-mime-types/pull/153 +[pull-167]: https://github.com/mime-types/ruby-mime-types/pull/167 +[pull-170]: https://github.com/mime-types/ruby-mime-types/pull/170 +[pull-178]: https://github.com/mime-types/ruby-mime-types/pull/178 +[pull-179]: https://github.com/mime-types/ruby-mime-types/pull/179 +[pull-180]: https://github.com/mime-types/ruby-mime-types/pull/180 +[pull-189]: https://github.com/mime-types/ruby-mime-types/pull/189 +[pull-196]: https://github.com/mime-types/ruby-mime-types/pull/196 +[pull-79]: https://github.com/mime-types/ruby-mime-types/pull/79 +[pull-84]: https://github.com/mime-types/ruby-mime-types/pull/84 +[pull-85]: https://github.com/mime-types/ruby-mime-types/pull/85 +[pull-95]: https://github.com/mime-types/ruby-mime-types/pull/95 +[pull-97]: https://github.com/mime-types/ruby-mime-types/pull/97 +[tp]: https://guides.rubygems.org/trusted-publishing/ diff --git a/gems/gems/mime-types-3.7.0/CODE_OF_CONDUCT.md b/gems/gems/mime-types-3.7.0/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..184b5fb --- /dev/null +++ b/gems/gems/mime-types-3.7.0/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances of + any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, + without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at [INSERT CONTACT +METHOD]. All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +. Translations are available at +. + +[homepage]: https://www.contributor-covenant.org +[Mozilla CoC]: https://github.com/mozilla/diversity diff --git a/gems/gems/mime-types-3.7.0/CONTRIBUTING.md b/gems/gems/mime-types-3.7.0/CONTRIBUTING.md new file mode 100644 index 0000000..98cc09e --- /dev/null +++ b/gems/gems/mime-types-3.7.0/CONTRIBUTING.md @@ -0,0 +1,93 @@ +# Contributing + +Contribution to mime-types is encouraged in any form: a bug report, a feature +request, or code contributions. There are a few DOs and DON'Ts for +contributions. + +- DO: + + - Keep the coding style that already exists for any updated Ruby code (support + or otherwise). I use [Standard Ruby][standardrb] for linting and formatting. + + - Use thoughtfully-named topic branches for contributions. Rebase your commits + into logical chunks as necessary. + + - Use [quality commit messages][qcm]. + + - Add your name or GitHub handle to `CONTRIBUTORS.md` and a record in the + `CHANGELOG.md` as a separate commit from your main change. (Follow the style + in the `CHANGELOG.md` and provide a link to your PR.) + + - Add or update tests as appropriate for your change. The test suite is + written with [minitest][minitest]. + + - Add or update documentation as appropriate for your change. The + documentation is RDoc; mime-types does not use extensions that may be + present in alternative documentation generators. + +- DO NOT: + + - Modify `VERSION` in `lib/mime/types/version.rb`. When your patch is accepted + and a release is made, the version will be updated at that point. + + - Modify `mime-types.gemspec`; it is a generated file. (You _may_ use + `rake gemspec` to regenerate it if your change involves metadata related to + gem itself). + + - Modify the `Gemfile`. + +## Adding or Modifying MIME Types + +The mime-types registry is managed in [mime-types-data][mtd]. + +## Test Dependencies + +mime-types uses Ryan Davis's [Hoe][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` will do. + +To assist with the installation of the development dependencies for mime-types, +I have provided the simplest possible Gemfile pointing to the (generated) +`mime-types.gemspec` file. This will permit you to do `bundle install` to get +the development dependencies. + +You can run tests with code coverage analysis by running `rake coverage`. + +## Benchmarks + +mime-types offers several benchmark tasks to measure different measures of +performance. + +There is a repeated load test, measuring how long it takes to start and load +mime-types with its full registry. By default, it runs fifty loops and uses the +built-in benchmark library: + +- `rake benchmark:load` + +There are two loaded object count benchmarks (for normal and columnar loads). +These use `ObjectSpace.count_objects`. + +- `rake benchmark:objects` +- `rake benchmark:objects:columnar` + +## 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//ruby-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 mime-types/ruby-mime-types and describe what + your change does and the why you think it should be merged. + +[hoe]: https://github.com/seattlerb/hoe +[minitest]: https://github.com/seattlerb/minitest +[mtd]: https://github.com/mime-types/mime-types-data +[qcm]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[standardrb]: https://github.com/standardrb/standard diff --git a/gems/gems/mime-types-3.7.0/CONTRIBUTORS.md b/gems/gems/mime-types-3.7.0/CONTRIBUTORS.md new file mode 100644 index 0000000..30b4dee --- /dev/null +++ b/gems/gems/mime-types-3.7.0/CONTRIBUTORS.md @@ -0,0 +1,52 @@ +# Contributors + +- Austin Ziegler created mime-types. + +Thanks to everyone else who has contributed to mime-types over the years: + +- Aaron Patterson +- Aggelos Avgerinos +- Al Snow +- Alex Vondrak +- Andre Pankratz +- Andy Brody +- Arnaud Meuret +- Brandon Galbraith +- Burke Libbey +- Chris Gat +- Daniel Watkins +- David Genord +- Dillon Welch +- Edward Betts +- Eric Marden +- Garret Alfert +- Godfrey Chan +- Greg Brockman +- Hans de Graaff +- Henrik Hodne +- Igor Victor +- Janko Marohnić +- Jean Boussier +- Jeremy Evans +- Juanito Fatas +- Jun Aruga +- Keerthi Siva +- Ken Ip +- Kevin Menard +- Koichi ITO +- Łukasz Śliwa +- Martin d'Allens +- Masato Nakamura +- Mauricio Linhares +- Nana Kugayama +- Nicholas La Roux +- Nicolas Leger +- nycvotes-dev +- Olle Jonsson +- Postmodern +- Richard Hirner +- Richard Hurt +- Richard Schneeman +- Robb Shecter +- Tibor Szolár +- Todd Carrico diff --git a/gems/gems/mime-types-3.7.0/LICENCE.md b/gems/gems/mime-types-3.7.0/LICENCE.md new file mode 100644 index 0000000..60ccaa1 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/LICENCE.md @@ -0,0 +1,24 @@ +# Licence + +- Copyright 2003-2025 Austin Ziegler and contributors. + +The software in this repository is made available under the MIT license. + +## MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of +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. diff --git a/gems/gems/mime-types-3.7.0/Manifest.txt b/gems/gems/mime-types-3.7.0/Manifest.txt new file mode 100644 index 0000000..5f6a440 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/Manifest.txt @@ -0,0 +1,34 @@ +CHANGELOG.md +CODE_OF_CONDUCT.md +CONTRIBUTING.md +CONTRIBUTORS.md +LICENCE.md +Manifest.txt +README.md +Rakefile +SECURITY.md +lib/mime-types.rb +lib/mime/type.rb +lib/mime/type/columnar.rb +lib/mime/types.rb +lib/mime/types/_columnar.rb +lib/mime/types/cache.rb +lib/mime/types/columnar.rb +lib/mime/types/container.rb +lib/mime/types/deprecations.rb +lib/mime/types/full.rb +lib/mime/types/loader.rb +lib/mime/types/logger.rb +lib/mime/types/registry.rb +lib/mime/types/version.rb +test/bad-fixtures/malformed +test/fixture/json.json +test/fixture/old-data +test/fixture/yaml.yaml +test/minitest_helper.rb +test/test_mime_type.rb +test/test_mime_types.rb +test/test_mime_types_cache.rb +test/test_mime_types_class.rb +test/test_mime_types_lazy.rb +test/test_mime_types_loader.rb diff --git a/gems/gems/mime-types-3.7.0/README.md b/gems/gems/mime-types-3.7.0/README.md new file mode 100644 index 0000000..0ebf4f7 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/README.md @@ -0,0 +1,200 @@ +# mime-types for Ruby + +- home :: https://github.com/mime-types/ruby-mime-types/ +- issues :: https://github.com/mime-types/ruby-mime-types/issues +- code :: https://github.com/mime-types/ruby-mime-types/ +- rdoc :: http://rdoc.info/gems/mime-types/ +- changelog :: + https://github.com/mime-types/ruby-mime-types/blob/main/CHANGELOG.md +- continuous integration :: [![Build Status][ci-badge]][ci-workflow] +- test coverage :: [![Coverage][coveralls-badge]][coveralls] + +## Description + +The mime-types library provides a library and registry for information about +MIME content type definitions. It can be used to determine defined filename +extensions for MIME types, or to use filename extensions to look up the likely +MIME type definitions. + +Version 3.0 is a major release that requires Ruby 2.0 compatibility and removes +deprecated functions. The columnar registry format introduced in 2.6 has been +made the primary format; the registry data has been extracted from this library +and put into [mime-types-data][data]. Additionally, mime-types is now licensed +exclusively under the MIT licence and there is a code of conduct in effect. +There are a number of other smaller changes described in the History file. + +### About MIME Media Types + +MIME content types are used in MIME-compliant communications, as in e-mail or +HTTP traffic, to indicate the type of content which is transmitted. The +mime-types library provides the ability for detailed information about MIME +entities (provided as an enumerable collection of MIME::Type objects) to be +determined and used. There are many types defined by RFCs and vendors, so the +list is long but by definition incomplete; don't hesitate to add additional type +definitions. MIME type definitions found in mime-types are from RFCs, W3C +recommendations, the [IANA Media Types registry][registry], and user +contributions. It conforms to RFCs 2045 and 2231. + +### mime-types 3.x + +Users are encouraged to upgrade to mime-types 3.x as soon as is practical. +mime-types 3.x requires Ruby 2.0 compatibility and a simpler licensing scheme. + +## 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. + +```ruby +require 'mime/types' + +plaintext = MIME::Types['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.preferred_extension # => 'txt' +puts text.friendly # => 'Text Document' +puts text.i18n_key # => 'text.plain' + +puts text.encoding # => quoted-printable +puts text.default_encoding # => quoted-printable +puts text.binary? # => false +puts text.ascii? # => true +puts text.obsolete? # => false +puts text.registered? # => true +puts text.provisional? # => false +puts text.complete? # => true + +puts text # => 'text/plain' + +puts text == 'text/plain' # => true +puts 'text/plain' == text # => true +puts text == 'text/x-plain' # => false +puts 'text/x-plain' == text # => false + +puts MIME::Type.simplified('x-appl/x-zip') # => 'x-appl/x-zip' +puts MIME::Type.i18n_key('x-appl/x-zip') # => 'x-appl.x-zip' + +puts text.like?('text/x-plain') # => true +puts text.like?(MIME::Type.new('x-text/x-plain')) # => true + +puts text.xrefs.inspect # => { "rfc" => [ "rfc2046", "rfc3676", "rfc5147" ] } +puts text.xref_urls # => [ "http://www.iana.org/go/rfc2046", + # "http://www.iana.org/go/rfc3676", + # "http://www.iana.org/go/rfc5147" ] + +xtext = MIME::Type.new('x-text/x-plain') +puts xtext.media_type # => 'text' +puts xtext.raw_media_type # => 'x-text' +puts xtext.sub_type # => 'plain' +puts xtext.raw_sub_type # => 'x-plain' +puts xtext.complete? # => false + +puts MIME::Types.any? { |type| type.content_type == 'text/plain' } # => true +puts MIME::Types.all?(&:registered?) # => false + +# Various string representations of MIME types +qcelp = MIME::Types['audio/QCELP'].first # => audio/QCELP +puts qcelp.content_type # => 'audio/QCELP' +puts qcelp.simplified # => 'audio/qcelp' + +xwingz = MIME::Types['application/x-Wingz'].first # => application/x-Wingz +puts xwingz.content_type # => 'application/x-Wingz' +puts xwingz.simplified # => 'application/x-wingz' +``` + +### Columnar Store + +mime-types uses as its primary registry storage format a columnar storage format +reducing the default memory footprint. This is done by selectively loading the +data on a per-attribute basis. When the registry is first loaded from the +columnar store, only the canonical MIME content type and known extensions and +the MIME type will be connected to its loading registry. When other data about +the type is required (including `preferred_extension`, `obsolete?`, and +`registered?`) that data is loaded from its own column file for all types in the +registry. + +The load of any column data is performed with a Mutex to ensure that types are +updated safely in a multithreaded environment. Benchmarks show that while +columnar data loading is slower than the JSON store, it cuts the memory use by a +third over the JSON store. + +If you prefer to load all the data at once, this can be specified in your +application Gemfile as: + +```ruby +gem 'mime-types', require: 'mime/types/full' +``` + +Projects that do not use Bundler should `require` the same: + +```ruby +require 'mime/types/full' +``` + +Libraries that use mime-types are discouraged from choosing the JSON store. + +For applications and clients that used mime-types 2.6 when the columnar store +was introduced, the require used previously will still work through at least +[version 4][pull-96-comment] and possibly beyond; it is effectively an empty +operation. You are recommended to change your Gemfile as soon as is practical. + +```ruby +require 'mime/types/columnar' +``` + +Note that MIME::Type::Columnar and MIME::Types::Columnar are considered private +variant implementations of MIME::Type and MIME::Types and the specific +implementation should not be relied upon by consumers of the mime-types library. +Instead, depend on the public implementations (MIME::Type and MIME::Types) only. + +### Cached Storage + +mime-types supports a cache of MIME types using `Marshal.dump`. The cache is +invalidated for each version of the mime-types-data gem so that data version +3.2015.1201 will not be reused with data version 3.2016.0101. If the environment +variable `RUBY_MIME_TYPES_CACHE` is set to a cache file, mime-types will attempt +to load the MIME type registry from the cache file. If it cannot, it will load +the types normally and then saves the registry to the cache file. + +The caching works with both full stores and columnar stores. Only the data that +has been loaded prior to saving the cache will be stored. + +## mime-types Modified Semantic Versioning + +The mime-types library has one version number, but this single version number +tracks both API changes and registry data changes; this is not wholly compatible +with all aspects of [Semantic Versioning][semver]; removing a MIME type from the +registry _could_ be considered a breaking change under some interpretations of +semantic versioning (as lookups for that particular type would no longer work by +default). + +mime-types itself uses a modified semantic versioning scheme. Given the version +`MAJOR.MINOR`: + +1. If an incompatible API (code) change is made, the `MAJOR` version will be + incremented and both `MINOR` and `PATCH` will be set to zero. Major version + updates will also generally break Ruby version compatibility guarantees. + +2. If an API (code) feature is added that does not break compatibility, the + `MINOR` version will be incremented and `PATCH` will be set to zero. + +3. If there is a bug fix to a feature added in the most recent `MAJOR.MINOR` + release, the `PATCH` value will be incremented. + +In practical terms, there will be fewer releases of mime-types focussing on +features because of the existence of the [mime-types-data][data] gem, and if +features are marked deprecated in the course of mime-types 3.x, they will not be +removed until mime-types 4.x or possibly later. + +[pull-96-comment]: https://github.com/mime-types/ruby-mime-types/pull/96#issuecomment-100725400 +[semver]: https://semver.org +[data]: https://github.com/mime-types/mime-types-data +[ci-badge]: https://github.com/mime-types/ruby-mime-types/actions/workflows/ci.yml/badge.svg +[ci-workflow]: https://github.com/mime-types/ruby-mime-types/actions/workflows/ci.yml +[coveralls-badge]: https://coveralls.io/repos/mime-types/ruby-mime-types/badge.svg?branch=main&service=github +[coveralls]: https://coveralls.io/github/mime-types/ruby-mime-types?branch=main +[registry]: https://www.iana.org/assignments/media-types/media-types.xhtml diff --git a/gems/gems/mime-types-3.7.0/Rakefile b/gems/gems/mime-types-3.7.0/Rakefile new file mode 100644 index 0000000..c995b1e --- /dev/null +++ b/gems/gems/mime-types-3.7.0/Rakefile @@ -0,0 +1,201 @@ +require "rubygems" +require "hoe" +require "rake/clean" +require "minitest" +require "minitest/test_task" + +Hoe.plugin :halostatue +Hoe.plugin :rubygems + +Hoe.plugins.delete :debug +Hoe.plugins.delete :newb +Hoe.plugins.delete :publish +Hoe.plugins.delete :signing +Hoe.plugins.delete :test + +spec = Hoe.spec "mime-types" do + developer("Austin Ziegler", "halostatue@gmail.com") + + self.trusted_release = ENV["rubygems_release_gem"] == "true" + + require_ruby_version ">= 2.0" + + license "MIT" + + spec_extras[:metadata] = ->(val) { + val.merge!({"rubygems_mfa_required" => "true"}) + } + + extra_deps << ["mime-types-data", "~> 3.2025", ">= 3.2025.0507"] + extra_deps << ["logger", ">= 0"] + + extra_dev_deps << ["hoe", "~> 4.0"] + extra_dev_deps << ["hoe-halostatue", "~> 2.0"] + extra_dev_deps << ["hoe-rubygems", "~> 1.0"] + extra_dev_deps << ["minitest", "~> 5.0"] + extra_dev_deps << ["minitest-autotest", "~> 1.0"] + extra_dev_deps << ["minitest-focus", "~> 1.0"] + extra_dev_deps << ["minitest-hooks", "~> 1.4"] + extra_dev_deps << ["rake", ">= 10.0", "< 14"] + extra_dev_deps << ["rdoc", ">= 0.0"] + extra_dev_deps << ["standard", "~> 1.0"] +end + +Minitest::TestTask.create :test +Minitest::TestTask.create :coverage do |t| + formatters = <<-RUBY.split($/).join(" ") + SimpleCov::Formatter::MultiFormatter.new([ + SimpleCov::Formatter::HTMLFormatter, + SimpleCov::Formatter::LcovFormatter, + SimpleCov::Formatter::SimpleFormatter + ]) + RUBY + t.test_prelude = <<-RUBY.split($/).join("; ") + require "simplecov" + require "simplecov-lcov" + + SimpleCov::Formatter::LcovFormatter.config do |config| + config.report_with_single_file = true + config.lcov_file_name = "lcov.info" + end + + SimpleCov.start "test_frameworks" do + enable_coverage :branch + primary_coverage :branch + formatter #{formatters} + end + RUBY +end + +task default: :test + +namespace :benchmark do + task :support do + %w[lib support].each { |path| + $LOAD_PATH.unshift(File.join(Rake.application.original_dir, path)) + } + end + + desc "Benchmark Load Times" + task :load, [:repeats] => "benchmark:support" do |_, args| + require "benchmarks/load" + Benchmarks::Load.report( + File.join(Rake.application.original_dir, "lib"), + args.repeats + ) + end + + desc "Memory profiler" + task :memory, [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/profile_memory" + Benchmarks::ProfileMemory.report( + mime_types_only: args.mime_types_only, + top_x: args.top_x + ) + end + + desc "Columnar memory profiler" + task "memory:columnar", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/profile_memory" + Benchmarks::ProfileMemory.report( + columnar: true, + mime_types_only: args.mime_types_only, + top_x: args.top_x + ) + end + + desc "Columnar allocation counts (full load)" + task "memory:columnar:full", [:top_x, :mime_types_only] => "benchmark:support" do |_, args| + require "benchmarks/profile_memory" + Benchmarks::ProfileMemory.report( + columnar: true, + full: true, + top_x: args.top_x, + mime_types_only: args.mime_types_only + ) + end + + desc "Object counts" + task objects: "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report + end + + desc "Columnar object counts" + task "objects:columnar" => "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report(columnar: true) + end + + desc "Columnar object counts (full load)" + task "objects:columnar:full" => "benchmark:support" do + require "benchmarks/object_counts" + Benchmarks::ObjectCounts.report(columnar: true, full: true) + end +end + +namespace :profile do + task full: "benchmark:support" do + require "profile" + profile_full + end + + task columnar: "benchmark:support" do + require "profile" + profile_columnar + end + + task "columnar:full" => "benchmark:support" do + require "profile" + profile_columnar_full + end +end + +namespace :convert do + namespace :docs do + task :setup do + gem "rdoc" + require "rdoc/rdoc" + @doc_converter ||= RDoc::Markup::ToMarkdown.new + end + + FileList["*.rdoc"].each do |name| + rdoc = name + mark = "#{File.basename(name, ".rdoc")}.md" + + file mark => [rdoc, :setup] do |t| + puts "#{rdoc} => #{mark}" + File.binwrite(t.name, @doc_converter.convert(IO.read(t.prerequisites.first))) + end + + CLEAN.add mark + + task run: [mark] + end + end + + desc "Convert documentation from RDoc to Markdown" + task docs: "convert:docs:run" +end + +task :version do + require "mime/types/version" + puts MIME::Types::VERSION +end + +namespace :deps do + task :top, [:number] => "benchmark:support" do |_, args| + require "deps" + Deps.run(args) + end +end + +task :console do + arguments = %w[irb] + arguments.push(*spec.spec.require_paths.map { |dir| "-I#{dir}" }) + arguments.push("-r#{spec.spec.name.gsub("-", File::SEPARATOR)}") + unless system(*arguments) + error "Command failed: #{show_command}" + abort + end +end diff --git a/gems/gems/mime-types-3.7.0/SECURITY.md b/gems/gems/mime-types-3.7.0/SECURITY.md new file mode 100644 index 0000000..25e1cf1 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/SECURITY.md @@ -0,0 +1,7 @@ +# mime-types Security + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). Tidelift will +coordinate the fix and disclosure. diff --git a/gems/gems/mime-types-3.7.0/lib/mime-types.rb b/gems/gems/mime-types-3.7.0/lib/mime-types.rb new file mode 100644 index 0000000..dcb87cf --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime-types.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "mime/types" diff --git a/gems/gems/mime-types-3.7.0/lib/mime/type.rb b/gems/gems/mime-types-3.7.0/lib/mime/type.rb new file mode 100644 index 0000000..5e46de8 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/type.rb @@ -0,0 +1,746 @@ +# frozen_string_literal: true + +## +module MIME +end + +require "mime/types/deprecations" + +# The definition of one MIME content-type. +# +# == Usage +# require "mime/types" +# +# plaintext = MIME::Types["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.preferred_extension # => "txt" +# puts text.friendly # => "Text Document" +# puts text.i18n_key # => "text.plain" +# +# puts text.encoding # => quoted-printable +# puts text.default_encoding # => quoted-printable +# puts text.binary? # => false +# puts text.ascii? # => true +# puts text.obsolete? # => false +# puts text.registered? # => true +# puts text.provisional? # => false +# puts text.complete? # => true +# +# puts text # => "text/plain" +# +# puts text == "text/plain" # => true +# puts "text/plain" == text # => true +# puts text == "text/x-plain" # => false +# puts "text/x-plain" == text # => false +# +# puts MIME::Type.simplified("x-appl/x-zip") # => "x-appl/x-zip" +# puts MIME::Type.i18n_key("x-appl/x-zip") # => "x-appl.x-zip" +# +# puts text.like?("text/x-plain") # => true +# puts text.like?(MIME::Type.new("content-type" => "x-text/x-plain")) # => true +# +# puts text.xrefs.inspect # => { "rfc" => [ "rfc2046", "rfc3676", "rfc5147" ] } +# puts text.xref_urls # => [ "http://www.iana.org/go/rfc2046", +# # "http://www.iana.org/go/rfc3676", +# # "http://www.iana.org/go/rfc5147" ] +# +# xtext = MIME::Type.new("x-text/x-plain") +# puts xtext.media_type # => "text" +# puts xtext.raw_media_type # => "x-text" +# puts xtext.sub_type # => "plain" +# puts xtext.raw_sub_type # => "x-plain" +# puts xtext.complete? # => false +# +# puts MIME::Types.any? { |type| type.content_type == "text/plain" } # => true +# puts MIME::Types.all?(&:registered?) # => false +# +# # Various string representations of MIME types +# qcelp = MIME::Types["audio/QCELP"].first # => audio/QCELP +# puts qcelp.content_type # => "audio/QCELP" +# puts qcelp.simplified # => "audio/qcelp" +# +# xwingz = MIME::Types["application/x-Wingz"].first # => application/x-Wingz +# puts xwingz.content_type # => "application/x-Wingz" +# puts xwingz.simplified # => "application/x-wingz" +class MIME::Type + # Reflects a MIME content-type specification that is not correctly + # formatted (it is not +type+/+subtype+). + class InvalidContentType < ArgumentError + # :stopdoc: + def initialize(type_string) + @type_string = type_string + end + + def to_s + "Invalid Content-Type #{@type_string.inspect}" + end + # :startdoc: + end + + # Reflects an unsupported MIME encoding. + class InvalidEncoding < ArgumentError + # :stopdoc: + def initialize(encoding) + @encoding = encoding + end + + def to_s + "Invalid Encoding #{@encoding.inspect}" + end + # :startdoc: + end + + include Comparable + + # :stopdoc: + # Full conformance with RFC 6838 §4.2 (the recommendation for < 64 characters is not + # enforced or reported because MIME::Types mostly deals with registered data). RFC 4288 + # §4.2 does not restrict the first character to alphanumeric, but the total length of + # each part is limited to 127 characters. RFCC 2045 §5.1 does not restrict the character + # composition except for whitespace, but MIME::Type was always more strict than this. + restricted_name_first = "[0-9a-zA-Z]" + restricted_name_chars = "[-!#{$&}^_.+0-9a-zA-Z]{0,126}" + restricted_name = "#{restricted_name_first}#{restricted_name_chars}" + MEDIA_TYPE_RE = %r{(#{restricted_name})/(#{restricted_name})}.freeze + I18N_RE = /[^[:alnum:]]/.freeze + BINARY_ENCODINGS = %w[base64 8bit].freeze + ASCII_ENCODINGS = %w[7bit quoted-printable].freeze + # :startdoc: + + private_constant :MEDIA_TYPE_RE, :I18N_RE, :BINARY_ENCODINGS, + :ASCII_ENCODINGS + + # Builds a MIME::Type object from the +content_type+, a MIME Content Type + # value (e.g., "text/plain" or "application/x-eruby"). The constructed object + # is yielded to an optional block for additional configuration, such as + # associating extensions and encoding information. + # + # * When provided a Hash or a MIME::Type, the MIME::Type will be + # constructed with #init_with. + # + # There are two deprecated initialization forms: + # + # * When provided an Array, the MIME::Type will be constructed using + # the first element as the content type and the remaining flattened + # elements as extensions. + # * Otherwise, the content_type will be used as a string. + # + # Yields the newly constructed +self+ object. + def initialize(content_type) # :yields: self + @friendly = {} + @obsolete = @registered = @provisional = false + @preferred_extension = @docs = @use_instead = @__sort_priority = nil + + self.extensions = [] + + case content_type + when Hash + init_with(content_type) + when Array + MIME::Types.deprecated( + class: MIME::Type, + method: :new, + pre: "when called with an Array", + once: true + ) + self.content_type = content_type.shift + self.extensions = content_type.flatten + when MIME::Type + init_with(content_type.to_h) + else + MIME::Types.deprecated( + class: MIME::Type, + method: :new, + pre: "when called with a String", + once: true + ) + self.content_type = content_type + end + + self.encoding ||= :default + self.xrefs ||= {} + + yield self if block_given? + + update_sort_priority + end + + # Indicates that a MIME type is like another type. This differs from + # == because x- prefixes are removed for this comparison. + def like?(other) + other = + if other.respond_to?(:simplified) + MIME::Type.simplified(other.simplified, remove_x_prefix: true) + else + MIME::Type.simplified(other.to_s, remove_x_prefix: true) + end + MIME::Type.simplified(simplified, remove_x_prefix: true) == other + end + + # Compares the +other+ 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. + # + # Note that this implementation of #<=> is deprecated and will be changed + # in the next major version to be the same as #priority_compare. + # + # Note that MIME::Types no longer compare against nil. + def <=>(other) + return priority_compare(other) if other.is_a?(MIME::Type) + simplified <=> other + end + + # Compares the +other+ MIME::Type using a pre-computed sort priority value, + # then the simplified representation for an alphabetical sort. + # + # For the next major version of MIME::Types, this method will become #<=> and + # #priority_compare will be removed. + def priority_compare(other) + if (cmp = __sort_priority <=> other.__sort_priority) == 0 + simplified <=> other.simplified + else + cmp + end + end + + # Uses a modified pre-computed sort priority value based on whether one of the provided + # extensions is the preferred extension for a type. + # + # This is an internal function. If an extension provided is a preferred extension either + # for this instance or the compared instance, the corresponding extension has its top + # _extension_ bit cleared from its sort priority. That means that a type with between + # 0 and 8 extensions will be treated as if it had 9 extensions. + def __extension_priority_compare(other, exts) # :nodoc: + tsp = __sort_priority + + if exts.include?(preferred_extension) && tsp & 0b1000 != 0 + tsp = tsp & 0b11110111 | 0b0111 + end + + osp = other.__sort_priority + + if exts.include?(other.preferred_extension) && osp & 0b1000 != 0 + osp = osp & 0b11110111 | 0b0111 + end + + if (cmp = tsp <=> osp) == 0 + simplified <=> other.simplified + else + cmp + end + end + + # Returns +true+ if the +other+ object is a MIME::Type and the content types + # match. + def eql?(other) + other.is_a?(MIME::Type) && (self == other) + end + + # Returns a hash based on the #simplified value. + # + # This maintains the invariant that two #eql? instances must have the same + # #hash (although having the same #hash does *not* imply that the objects are + # #eql?). + # + # To see why, suppose a MIME::Type instance +a+ is compared to another object + # +b+, and that a.eql?(b) is true. By the definition of #eql?, + # we know the following: + # + # 1. +b+ is a MIME::Type instance itself. + # 2. a == b is true. + # + # Due to the first point, we know that +b+ should respond to the #simplified + # method. Thus, per the definition of #<=>, we know that +a.simplified+ must + # be equal to +b.simplified+, as compared by the <=> method corresponding to + # +a.simplified+. + # + # Presumably, if a.simplified <=> b.simplified is +0+, then + # +a.simplified+ has the same hash as +b.simplified+. So we assume it is + # suitable for #hash to delegate to #simplified in service of the #eql? + # invariant. + def hash + simplified.hash + end + + # The computed sort priority value. This is _not_ intended to be used by most + # callers. + def __sort_priority # :nodoc: + update_sort_priority if !instance_variable_defined?(:@__sort_priority) || @__sort_priority.nil? + @__sort_priority + end + + # Returns the whole MIME content-type string. + # + # The content type is a presentation value from the MIME type registry and + # should not be used for comparison. The case of the content type is + # preserved, and extension markers (x-) are kept. + # + # text/plain => text/plain + # x-chemical/x-pdb => x-chemical/x-pdb + # audio/QCELP => audio/QCELP + attr_reader :content_type + # A simplified form of the MIME content-type string, suitable for + # case-insensitive comparison, with the content_type converted to lowercase. + # + # text/plain => text/plain + # x-chemical/x-pdb => x-chemical/x-pdb + # audio/QCELP => audio/qcelp + attr_reader :simplified + # Returns the media type of the simplified MIME::Type. + # + # text/plain => text + # x-chemical/x-pdb => x-chemical + # audio/QCELP => audio + attr_reader :media_type + # Returns the media type of the unmodified MIME::Type. + # + # text/plain => text + # x-chemical/x-pdb => x-chemical + # audio/QCELP => audio + attr_reader :raw_media_type + # Returns the sub-type of the simplified MIME::Type. + # + # text/plain => plain + # x-chemical/x-pdb => pdb + # audio/QCELP => QCELP + attr_reader :sub_type + # Returns the media type of the unmodified MIME::Type. + # + # text/plain => plain + # x-chemical/x-pdb => x-pdb + # audio/QCELP => qcelp + attr_reader :raw_sub_type + + ## + # 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, +nil+ values removed, and made unique. + # + # :attr_accessor: extensions + def extensions + @extensions.to_a + end + + ## + def extensions=(value) # :nodoc: + clear_sort_priority + @extensions = Set[*Array(value).flatten.compact].freeze + MIME::Types.send(:reindex_extensions, self) + end + + # Merge the +extensions+ provided into this MIME::Type. The extensions added + # will be merged uniquely. + def add_extensions(*extensions) + self.extensions += extensions + end + + ## + # The preferred extension for this MIME type. If one is not set and there are + # exceptions defined, the first extension will be used. + # + # When setting #preferred_extensions, if #extensions does not contain this + # extension, this will be added to #extensions. + # + # :attr_accessor: preferred_extension + + ## + def preferred_extension + @preferred_extension || extensions.first + end + + ## + def preferred_extension=(value) # :nodoc: + add_extensions(value) if value + @preferred_extension = value + 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 + + ## + attr_reader :encoding + + ## + def encoding=(enc) # :nodoc: + if enc.nil? || (enc == :default) + @encoding = default_encoding + elsif BINARY_ENCODINGS.include?(enc) || ASCII_ENCODINGS.include?(enc) + @encoding = enc + else + fail InvalidEncoding, enc + end + end + + # Returns the default encoding for the MIME::Type based on the media type. + 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_accessor: use_instead + + ## + def use_instead + obsolete? ? @use_instead : nil + end + + ## + attr_writer :use_instead + + # Returns +true+ if the media type is obsolete. + # + # :attr_accessor: obsolete + attr_reader :obsolete + alias_method :obsolete?, :obsolete + + ## + def obsolete=(value) + clear_sort_priority + @obsolete = !!value + end + + # The documentation for this MIME::Type. + attr_accessor :docs + + # A friendly short description for this MIME::Type. + # + # call-seq: + # text_plain.friendly # => "Text File" + # text_plain.friendly("en") # => "Text File" + def friendly(lang = "en") + @friendly ||= {} + + case lang + when String, Symbol + @friendly[lang.to_s] + when Array + @friendly.update(Hash[*lang]) + when Hash + @friendly.update(lang) + else + fail ArgumentError, + "Expected a language or translation set, not #{lang.inspect}" + end + end + + # A key suitable for use as a lookup key for translations, such as with + # the I18n library. + # + # call-seq: + # text_plain.i18n_key # => "text.plain" + # 3gpp_xml.i18n_key # => "application.vnd-3gpp-bsf-xml" + # # from application/vnd.3gpp.bsf+xml + # x_msword.i18n_key # => "application.word" + # # from application/x-msword + attr_reader :i18n_key + + ## + # The cross-references list for this MIME::Type. + # + # :attr_accessor: xrefs + + ## + attr_reader :xrefs + + ## + def xrefs=(xrefs) # :nodoc: + @xrefs = MIME::Types::Container.new(xrefs) + end + + # The decoded cross-reference URL list for this MIME::Type. + def xref_urls + xrefs.flat_map { |type, values| + name = :"xref_url_for_#{type.tr("-", "_")}" + respond_to?(name, true) && xref_map(values, name) || values.to_a + } + end + + # Indicates whether the MIME type has been registered with IANA. + # + # :attr_accessor: registered + attr_reader :registered + alias_method :registered?, :registered + + ## + def registered=(value) + clear_sort_priority + @registered = !!value + end + + # Indicates whether the MIME type's registration with IANA is provisional. + # + # :attr_accessor: provisional + attr_reader :provisional + + ## + def provisional=(value) + clear_sort_priority + @provisional = !!value + end + + # Indicates whether the MIME type's registration with IANA is provisional. + def provisional? + registered? && @provisional + end + + # 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? + BINARY_ENCODINGS.include?(encoding) + 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? + ASCII_ENCODINGS.include?(encoding) + end + + # Indicateswhether the MIME type is declared as a signature type. + attr_accessor :signature + alias_method :signature?, :signature + + # Returns +true+ if the MIME::Type specifies an extension list, + # indicating that it is a complete MIME::Type. + def complete? + !@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. This allows + # MIME::Type objects to appear on either side of a comparison. + # + # "text/plain" == MIME::Type.new("content-type" => "text/plain") + def to_str + content_type + end + + # Converts the MIME::Type to a JSON string. + def to_json(*args) + require "json" + to_h.to_json(*args) + end + + # Converts the MIME::Type to a hash. The output of this method can also be + # used to initialize a MIME::Type. + def to_h + encode_with({}) + end + + # Populates the +coder+ with attributes about this record for + # serialization. The structure of +coder+ should match the structure used + # with #init_with. + # + # This method should be considered a private implementation detail. + def encode_with(coder) + coder["content-type"] = @content_type + coder["docs"] = @docs unless @docs.nil? || @docs.empty? + coder["friendly"] = @friendly unless @friendly.nil? || @friendly.empty? + coder["encoding"] = @encoding + coder["extensions"] = @extensions.to_a unless @extensions.empty? + coder["preferred-extension"] = @preferred_extension if @preferred_extension + if obsolete? + coder["obsolete"] = obsolete? + coder["use-instead"] = use_instead if use_instead + end + unless xrefs.empty? + {}.tap do |hash| + xrefs.each do |k, v| + hash[k] = v.to_a.sort + end + coder["xrefs"] = hash + end + end + coder["registered"] = registered? + coder["provisional"] = provisional? if provisional? + coder["signature"] = signature? if signature? + coder["sort-priority"] = __sort_priority || 0b11111111 + coder + end + + # Initialize an empty object from +coder+, which must contain the + # attributes necessary for initializing an empty object. + # + # This method should be considered a private implementation detail. + def init_with(coder) + @__sort_priority = 0 + self.content_type = coder["content-type"] + self.docs = coder["docs"] || "" + self.encoding = coder["encoding"] + self.extensions = coder["extensions"] || [] + self.preferred_extension = coder["preferred-extension"] + self.obsolete = coder["obsolete"] || false + self.registered = coder["registered"] || false + self.provisional = coder["provisional"] || false + self.signature = coder["signature"] + self.xrefs = coder["xrefs"] || {} + self.use_instead = coder["use-instead"] + + friendly(coder["friendly"] || {}) + + update_sort_priority + end + + def inspect # :nodoc: + # We are intentionally lying here because MIME::Type::Columnar is an + # implementation detail. + "#" + end + + class << self + # MIME media types are case-insensitive, but are typically presented in a + # case-preserving format in the type registry. This method converts + # +content_type+ to lowercase. + # + # In previous versions of mime-types, this would also remove any extension + # prefix (x-). This is no longer default behaviour, but may be + # provided by providing a truth value to +remove_x_prefix+. + def simplified(content_type, remove_x_prefix: false) + simplify_matchdata(match(content_type), remove_x_prefix) + end + + # Converts a provided +content_type+ into a translation key suitable for + # use with the I18n library. + def i18n_key(content_type) + simplify_matchdata(match(content_type), joiner: ".") { |e| + e.gsub!(I18N_RE, "-") + } + end + + # Return a +MatchData+ object of the +content_type+ against pattern of + # media types. + def match(content_type) + case content_type + when MatchData + content_type + else + MEDIA_TYPE_RE.match(content_type) + end + end + + private + + def simplify_matchdata(matchdata, remove_x = false, joiner: "/") + return nil unless matchdata + + matchdata.captures.map { |e| + e.downcase! + e.sub!(/^x-/, "") if remove_x + yield e if block_given? + e + }.join(joiner) + end + end + + private + + def clear_sort_priority + @__sort_priority = nil + end + + # Update the __sort_priority value. Lower numbers sort better, so the + # bitmapping may seem a little odd. The _best_ sort priority is 0. + # + # | bit | meaning | details | + # | --- | --------------- | --------- | + # | 7 | obsolete | 1 if true | + # | 6 | provisional | 1 if true | + # | 5 | registered | 0 if true | + # | 4 | complete | 0 if true | + # | 3 | # of extensions | see below | + # | 2 | # of extensions | see below | + # | 1 | # of extensions | see below | + # | 0 | # of extensions | see below | + # + # The # of extensions is marked as the number of extensions subtracted from + # 16, to a minimum of 0. + def update_sort_priority + extension_count = @extensions.length + obsolete = (instance_variable_defined?(:@obsolete) && @obsolete) ? 1 << 7 : 0 + provisional = (instance_variable_defined?(:@provisional) && @provisional) ? 1 << 6 : 0 + registered = (instance_variable_defined?(:@registered) && @registered) ? 0 : 1 << 5 + complete = extension_count.nonzero? ? 0 : 1 << 4 + extension_count = [0, 16 - extension_count].max + + @__sort_priority = obsolete | registered | provisional | complete | extension_count + end + + def content_type=(type_string) + match = MEDIA_TYPE_RE.match(type_string) + fail InvalidContentType, type_string if match.nil? + + @content_type = intern_string(type_string) + @raw_media_type, @raw_sub_type = match.captures + @simplified = intern_string(MIME::Type.simplified(match)) + @i18n_key = intern_string(MIME::Type.i18n_key(match)) + @media_type, @sub_type = MEDIA_TYPE_RE.match(@simplified).captures + + @raw_media_type = intern_string(@raw_media_type) + @raw_sub_type = intern_string(@raw_sub_type) + @media_type = intern_string(@media_type) + @sub_type = intern_string(@sub_type) + end + + if String.method_defined?(:-@) + def intern_string(string) + -string + end + else + # MRI 2.2 and older do not have a method for string interning, + # so we simply freeze them for keeping a similar interface + def intern_string(string) + string.freeze + end + end + + def xref_map(values, helper) + values.map { |value| send(helper, value) } + end + + def xref_url_for_rfc(value) + "http://www.iana.org/go/%s" % value + end + + def xref_url_for_draft(value) + "http://www.iana.org/go/%s" % value.sub(/\ARFC/, "draft") + end + + def xref_url_for_rfc_errata(value) + "http://www.rfc-editor.org/errata_search.php?eid=%s" % value + end + + def xref_url_for_person(value) + "http://www.iana.org/assignments/media-types/media-types.xhtml#%s" % value + end + + def xref_url_for_template(value) + "http://www.iana.org/assignments/media-types/%s" % value + end +end + +require "mime/types/version" diff --git a/gems/gems/mime-types-3.7.0/lib/mime/type/columnar.rb b/gems/gems/mime-types-3.7.0/lib/mime/type/columnar.rb new file mode 100644 index 0000000..7006fab --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/type/columnar.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +require "mime/type" + +# A version of MIME::Type that works hand-in-hand with a MIME::Types::Columnar +# container to load data by columns. +# +# When a field is has not yet been loaded, that data will be loaded for all +# types in the container before forwarding the message to MIME::Type. +# +# More information can be found in MIME::Types::Columnar. +# +# MIME::Type::Columnar is *not* intended to be created except by +# MIME::Types::Columnar containers. +class MIME::Type::Columnar < MIME::Type + def initialize(container, content_type, extensions) # :nodoc: + @container = container + @__priority_penalty = nil + self.content_type = content_type + @extensions = Set[*Array(extensions).flatten.compact].freeze + clear_sort_priority + end + + def self.column(*methods, file: nil) # :nodoc: + file ||= methods.first + + file_method = :"load_#{file}" + methods.each do |m| + define_method m do |*args| + @container.send(file_method) + super(*args) + end + end + end + + column :friendly + column :encoding, :encoding= + column :docs, :docs= + column :preferred_extension, :preferred_extension= + column :obsolete, :obsolete=, :obsolete?, :registered, :registered=, :registered?, :signature, :signature=, + :signature?, :provisional, :provisional=, :provisional?, file: "flags" + column :xrefs, :xrefs=, :xref_urls + column :use_instead, :use_instead= + + def encode_with(coder) # :nodoc: + @container.send(:load_friendly) + @container.send(:load_encoding) + @container.send(:load_docs) + @container.send(:load_flags) + @container.send(:load_use_instead) + @container.send(:load_xrefs) + @container.send(:load_preferred_extension) + super + end + + def update_sort_priority + if @container.__fully_loaded? + super + else + obsolete = (@__sort_priority & (1 << 7)) != 0 + registered = (@__sort_priority & (1 << 5)) == 0 + + @__priority_penalty = (obsolete ? 3 : 0) + (registered ? 0 : 2) + end + end + + class << self + undef column + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types.rb b/gems/gems/mime-types-3.7.0/lib/mime/types.rb new file mode 100644 index 0000000..c251232 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types.rb @@ -0,0 +1,243 @@ +# frozen_string_literal: true + +## +module MIME + ## + class Types + end +end + +require "mime/type" + +# MIME::Types is a registry of MIME types. It is both a class (created with +# MIME::Types.new) and a default registry (loaded automatically or through +# interactions with MIME::Types.[] and MIME::Types.type_for). +# +# == The Default mime-types Registry +# +# The default mime-types registry is loaded automatically when the library +# is required (require 'mime/types'), but it may be lazily loaded +# (loaded on first use) with the use of the environment variable +# +RUBY_MIME_TYPES_LAZY_LOAD+ having any value other than +false+. The +# initial startup is about 14× faster (~10 ms vs ~140 ms), but the +# registry will be loaded at some point in the future. +# +# The default mime-types registry can also be loaded from a Marshal cache +# file specific to the version of MIME::Types being loaded. This will be +# handled automatically with the use of a file referred to in the +# environment variable +RUBY_MIME_TYPES_CACHE+. MIME::Types will attempt to +# load the registry from this cache file (MIME::Type::Cache.load); if it +# cannot be loaded (because the file does not exist, there is an error, or +# the data is for a different version of mime-types), the default registry +# will be loaded from the normal JSON version and then the cache file will +# be *written* to the location indicated by +RUBY_MIME_TYPES_CACHE+. Cache +# file loads just over 4½× faster (~30 ms vs ~140 ms). +# loads. +# +# Notes: +# * The loading of the default registry is *not* atomic; when using a +# multi-threaded environment, it is recommended that lazy loading is not +# used and mime-types is loaded as early as possible. +# * Cache files should be specified per application in a multiprocess +# environment and should be initialized during deployment or before +# forking to minimize the chance that the multiple processes will be +# trying to write to the same cache file at the same time, or that two +# applications that are on different versions of mime-types would be +# thrashing the cache. +# * Unless cache files are preinitialized, the application using the +# mime-types cache file must have read/write permission to the cache file. +# +# == 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.provisional? # => false +# puts plaintext == 'text/plain' # => true +# puts MIME::Type.simplified('x-appl/x-zip') # => 'appl/zip' +# +class MIME::Types + include Enumerable + + # Creates a new MIME::Types registry. + def initialize + @type_variants = Container.new + @extension_index = Container.new + end + + # Returns the number of known type variants. + def count + @type_variants.values.inject(0) { |a, e| a + e.size } + end + + def inspect # :nodoc: + "#<#{self.class}: #{count} variants, #{@extension_index.count} extensions>" + end + + # Iterates through the type variants. + def each + if block_given? + @type_variants.each_value { |tv| tv.each { |t| yield t } } + else + enum_for(:each) + end + 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 :registered (finds only MIME::Types that are + # registered). 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. Current definitions sort before obsolete ones; + # 4. Obsolete definitions with use-instead clauses sort before those + # without; + # 5. Obsolete definitions use-instead clauses are compared. + # 6. Sort on name. + def [](type_id, complete: false, registered: false) + 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, complete, registered).sort + end + + # Return the list of MIME::Types which belongs to the file based on its + # filename extension. If there is no extension, the filename will be used + # as the matching criteria on its own. + # + # This will always return a merged, flatten, priority sorted, unique array. + # + # puts MIME::Types.type_for('citydesk.xml') + # => [application/xml, text/xml] + # puts MIME::Types.type_for('citydesk.gif') + # => [image/gif] + # puts MIME::Types.type_for(%w(citydesk.xml citydesk.gif)) + # => [application/xml, image/gif, text/xml] + def type_for(filename) + wanted = Array(filename).map { |fn| fn.chomp.downcase[/\.?([^.]*?)\z/m, 1] } + + wanted + .flat_map { |ext| @extension_index[ext] } + .compact + .reduce(Set.new, :+) + .sort { |a, b| + a.__extension_priority_compare(b, wanted) + } + end + alias_method :of, :type_for + + # Add one or more MIME::Type objects to the set of known types. If the + # type is already known, a warning will be displayed. + # + # The last parameter may be the value :silent or +true+ which + # will suppress duplicate MIME type warnings. + def add(*types) + quiet = (types.last == :silent) || (types.last == true) + + types.each do |mime_type| + case mime_type + when true, false, nil, Symbol + nil + when MIME::Types + variants = mime_type.instance_variable_get(:@type_variants) + add(*variants.values.inject(Set.new, :+).to_a, quiet) + when Array + add(*mime_type, quiet) + else + add_type(mime_type, quiet) + end + end + end + + # Add a single MIME::Type object to the set of known types. If the +type+ is + # already known, a warning will be displayed. The +quiet+ parameter may be a + # truthy value to suppress that warning. + def add_type(type, quiet = false) + if !quiet && @type_variants[type.simplified].include?(type) + MIME::Types.logger.debug <<-WARNING.chomp.strip + Type #{type} is already registered as a variant of #{type.simplified}. + WARNING + end + + add_type_variant!(type) + index_extensions!(type) + end + + def __fully_loaded? # :nodoc: + true + end + + private + + def add_type_variant!(mime_type) + @type_variants.add(mime_type.simplified, mime_type) + end + + def reindex_extensions!(mime_type) + return unless @type_variants[mime_type.simplified].include?(mime_type) + + index_extensions!(mime_type) + end + + def index_extensions!(mime_type) + mime_type.extensions.each { |ext| @extension_index.add(ext, mime_type) } + end + + def prune_matches(matches, complete, registered) + matches.delete_if { |e| !e.complete? } if complete + matches.delete_if { |e| !e.registered? } if registered + matches + end + + def match(pattern) + @type_variants.select { |k, _| + k =~ pattern + }.values.inject(Set.new, :+) + end + + # def stable_sort(list) + # list.lazy.each_with_index.sort { |(a, ai), (b, bi)| + # a.priority_compare(b).nonzero? || ai <=> bi + # }.map(&:first) + # end +end + +require "mime/types/cache" +require "mime/types/container" +require "mime/types/loader" +require "mime/types/logger" +require "mime/types/_columnar" +require "mime/types/registry" +require "mime/types/version" diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/_columnar.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/_columnar.rb new file mode 100644 index 0000000..766617e --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/_columnar.rb @@ -0,0 +1,184 @@ +# frozen_string_literal: true + +require "mime/type/columnar" + +# MIME::Types::Columnar is used to extend a MIME::Types container to load data +# by columns instead of from JSON or YAML. Column loads of MIME types loaded +# through the columnar store are synchronized with a Mutex. +# +# MIME::Types::Columnar is not intended to be used directly, but will be added +# to an instance of MIME::Types when it is loaded with +# MIME::Types::Loader#load_columnar. +module MIME::Types::Columnar + LOAD_MUTEX = Mutex.new # :nodoc: + + def self.extended(obj) # :nodoc: + super + obj.instance_variable_set(:@__mime_data__, []) + obj.instance_variable_set(:@__files__, Set.new) + end + + def __fully_loaded? # :nodoc: + @__files__.size == 10 + end + + # Load the first column data file (type and extensions). + def load_base_data(path) # :nodoc: + @__root__ = path + + each_file_line("content_type", false) do |line| + line = line.split + content_type = line.shift + extensions = line + + type = MIME::Type::Columnar.new(self, content_type, extensions) + @__mime_data__ << type + add(type) + end + + each_file_byte("spri") do |type, byte| + type.instance_variable_set(:@__sort_priority, byte) + end + + self + end + + private + + def each_file_line(name, lookup = true) + LOAD_MUTEX.synchronize do + next if @__files__.include?(name) + + i = -1 + column = File.join(@__root__, "mime.#{name}.column") + + IO.readlines(column, encoding: "UTF-8").each do |line| + line.chomp! + + if lookup + (type = @__mime_data__[i += 1]) || next + yield type, line + else + yield line + end + end + + @__files__ << name + end + end + + def each_file_byte(name) + LOAD_MUTEX.synchronize do + next if @__files__.include?(name) + + i = -1 + + filename = File.join(@__root__, "mime.#{name}.column") + + next unless File.exist?(filename) + + IO.binread(filename).unpack("C*").each do |byte| + (type = @__mime_data__[i += 1]) || next + yield type, byte + end + + @__files__ << name + end + end + + def load_encoding + each_file_line("encoding") do |type, line| + pool ||= {} + type.instance_variable_set(:@encoding, pool[line] ||= line) + end + end + + def load_docs + each_file_line("docs") do |type, line| + type.instance_variable_set(:@docs, opt(line)) + end + end + + def load_preferred_extension + each_file_line("pext") do |type, line| + type.instance_variable_set(:@preferred_extension, opt(line)) + end + end + + def load_flags + each_file_line("flags") do |type, line| + line = line.split + type.instance_variable_set(:@obsolete, flag(line.shift)) + type.instance_variable_set(:@registered, flag(line.shift)) + type.instance_variable_set(:@signature, flag(line.shift)) + type.instance_variable_set(:@provisional, flag(line.shift)) + end + end + + def load_xrefs + each_file_line("xrefs") { |type, line| + type.instance_variable_set(:@xrefs, dict(line, transform: :array)) + } + end + + def load_friendly + each_file_line("friendly") { |type, line| + type.instance_variable_set(:@friendly, dict(line)) + } + end + + def load_use_instead + each_file_line("use_instead") do |type, line| + type.instance_variable_set(:@use_instead, opt(line)) + end + end + + def dict(line, transform: nil) + if line == "-" + {} + else + line.split("|").each_with_object({}) { |l, h| + k, v = l.split("^") + v = nil if v.empty? + + if transform + send(:"dict_#{transform}", h, k, v) + else + h[k] = v + end + } + end + end + + def dict_extension_priority(h, k, v) + return if v.nil? + + v = v.to_i if v.is_a?(String) + v = v.trunc if v.is_a?(Float) + v = [[-20, v].max, 20].min + + return if v.zero? + + h[k] = v + end + + def dict_array(h, k, v) + h[k] = Array(v) + end + + def arr(line) + if line == "-" + [] + else + line.split("|").flatten.compact.uniq + end + end + + def opt(line) + line unless line == "-" + end + + def flag(line) + line == "1" + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/cache.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/cache.rb new file mode 100644 index 0000000..aecbf7b --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/cache.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +MIME::Types::Cache = Struct.new(:version, :data) # :nodoc: + +# Caching of MIME::Types registries is advisable if you will be loading +# the default registry relatively frequently. With the class methods on +# MIME::Types::Cache, any MIME::Types registry can be marshaled quickly +# and easily. +# +# The cache is invalidated on a per-data-version basis; a cache file for +# version 3.2015.1118 will not be reused with version 3.2015.1201. +class << MIME::Types::Cache + # Attempts to load the cache from the file provided as a parameter or in + # the environment variable +RUBY_MIME_TYPES_CACHE+. Returns +nil+ if the + # file does not exist, if the file cannot be loaded, or if the data in + # the cache version is different than this version. + def load(cache_file = nil) + cache_file ||= ENV["RUBY_MIME_TYPES_CACHE"] + return nil unless cache_file && File.exist?(cache_file) + + cache = Marshal.load(File.binread(cache_file)) + if cache.version == MIME::Types::Data::VERSION + Marshal.load(cache.data) + else + MIME::Types.logger.error <<-WARNING.chomp.strip + Could not load MIME::Types cache: invalid version + WARNING + nil + end + rescue => e + MIME::Types.logger.error <<-WARNING.chomp.strip + Could not load MIME::Types cache: #{e} + WARNING + nil + end + + # Attempts to save the types provided to the cache file provided. + # + # If +types+ is not provided or is +nil+, the cache will contain the + # current MIME::Types default registry. + # + # If +cache_file+ is not provided or is +nil+, the cache will be written + # to the file specified in the environment variable + # +RUBY_MIME_TYPES_CACHE+. If there is no cache file specified either + # directly or through the environment, this method will return +nil+ + def save(types = nil, cache_file = nil) + cache_file ||= ENV["RUBY_MIME_TYPES_CACHE"] + return nil unless cache_file + + types ||= MIME::Types.send(:__types__) + + File.binwrite(cache_file, Marshal.dump(new(MIME::Types::Data::VERSION, Marshal.dump(types)))) + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/columnar.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/columnar.rb new file mode 100644 index 0000000..dcb87cf --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/columnar.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "mime/types" diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/container.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/container.rb new file mode 100644 index 0000000..88e7efc --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/container.rb @@ -0,0 +1,126 @@ +# frozen_string_literal: true + +require "set" + +# MIME::Types requires a serializable keyed container that returns an empty Set +# on a key miss. Hash#default_value cannot be used because, while it traverses +# the Marshal format correctly, it will not survive any other serialization +# format (plus, a default of a mutable object resuls in a shared mess). +# Hash#default_proc cannot be used without a wrapper because it prevents +# Marshal serialization (and does not survive the round-trip). +class MIME::Types::Container # :nodoc: + def initialize(hash = {}) + @container = {} + merge!(hash) + end + + def [](key) + container[key] || EMPTY_SET + end + + def []=(key, value) + container[key] = + case value + when Set + value + else + Set[*value] + end + end + + def merge(other) + self.class.new(other) + end + + def merge!(other) + tap { + other = other.is_a?(MIME::Types::Container) ? other.container : other + container.merge!(other) + normalize + } + end + + def to_hash + container + end + + def ==(other) + container == other + end + + def count(*args, &block) + if args.size == 0 + container.count + elsif block + container.count(&block) + else + container.count(args.first) + end + end + + def each_pair(&block) + container.each_pair(&block) + end + + alias_method :each, :each_pair + + def each_value(&block) + container.each_value(&block) + end + + def empty? + container.empty? + end + + def flat_map(&block) + container.flat_map(&block) + end + + def keys + container.keys + end + + def values + container.values + end + + def select(&block) + container.select(&block) + end + + def add(key, value) + (container[key] ||= Set.new).add(value) + end + + def marshal_dump + {}.merge(container) + end + + def marshal_load(hash) + @container = hash + end + + def encode_with(coder) + container.each { |k, v| coder[k] = v.to_a } + end + + def init_with(coder) + @container = {} + coder.map.each { |k, v| container[k] = Set[*v] } + end + + protected + + attr_accessor :container + + def normalize + container.each do |k, v| + next if v.is_a?(Set) + + container[k] = Set[*v] + end + end + + EMPTY_SET = Set.new.freeze + private_constant :EMPTY_SET +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/deprecations.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/deprecations.rb new file mode 100644 index 0000000..944aee4 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/deprecations.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "mime/types/logger" + +class << MIME::Types + # Used to mark a method as deprecated in the mime-types interface. + def deprecated(options = {}, &block) # :nodoc: + message = + if options[:message] + options[:message] + else + klass = options.fetch(:class) + + msep = case klass + when Class, Module + "." + else + klass = klass.class + "#" + end + + method = "#{klass}#{msep}#{options.fetch(:method)}" + pre = " #{options[:pre]}" if options[:pre] + post = case options[:next] + when :private, :protected + " and will be made #{options[:next]}" + when :removed + " and will be removed" + when nil, "" + nil + else + " #{options[:next]}" + end + + <<-WARNING.chomp.strip + #{caller(2..2).first}: #{klass}#{msep}#{method}#{pre} is deprecated#{post}. + WARNING + end + + if !__deprecation_logged?(message, options[:once]) + MIME::Types.logger.__send__(options[:level] || :debug, message) + end + + return unless block + block.call + end + + private + + def __deprecation_logged?(message, once) + return false unless once + + @__deprecations_logged = {} unless defined?(@__deprecations_logged) + @__deprecations_logged.key?(message) + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/full.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/full.rb new file mode 100644 index 0000000..a69e6bd --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/full.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +## +module MIME + ## + class Types + unless private_method_defined?(:load_mode) + class << self + private + + def load_mode + {columnar: false} + end + end + end + end +end + +require "mime/types" diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/loader.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/loader.rb new file mode 100644 index 0000000..7336c25 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/loader.rb @@ -0,0 +1,159 @@ +# frozen_string_literal: true + +## +module MIME; end + +## +class MIME::Types; end + +require "mime/types/data" + +# This class is responsible for initializing the MIME::Types registry from +# the data files supplied with the mime-types library. +# +# The Loader will use one of the following paths: +# 1. The +path+ provided in its constructor argument; +# 2. The value of ENV["RUBY_MIME_TYPES_DATA"]; or +# 3. The value of MIME::Types::Data::PATH. +# +# When #load is called, the +path+ will be searched recursively for all YAML +# (.yml or .yaml) files. By convention, there is one file for each media +# type (application.yml, audio.yml, etc.), but this is not required. +class MIME::Types::Loader + # The path that will be read for the MIME::Types files. + attr_reader :path + # The MIME::Types container instance that will be loaded. If not provided + # at initialization, a new MIME::Types instance will be constructed. + attr_reader :container + + # Creates a Loader object that can be used to load MIME::Types registries + # into memory, using YAML, JSON, or Columnar registry format loaders. + def initialize(path = nil, container = nil) + path = path || ENV["RUBY_MIME_TYPES_DATA"] || MIME::Types::Data::PATH + @container = container || MIME::Types.new + @path = File.expand_path(path) + end + + # Loads a MIME::Types registry from YAML files (*.yml or + # *.yaml) recursively found in +path+. + # + # It is expected that the YAML objects contained within the registry array + # will be tagged as !ruby/object:MIME::Type. + # + # Note that the YAML format is about 2½ times *slower* than the JSON format. + # + # NOTE: The purpose of this format is purely for maintenance reasons. + def load_yaml + Dir[yaml_path].sort.each do |f| + container.add(*self.class.load_from_yaml(f), :silent) + end + container + end + + # Loads a MIME::Types registry from JSON files (*.json) + # recursively found in +path+. + # + # It is expected that the JSON objects will be an array of hash objects. + # The JSON format is the registry format for the MIME types registry + # shipped with the mime-types library. + def load_json + Dir[json_path].sort.each do |f| + types = self.class.load_from_json(f) + container.add(*types, :silent) + end + container + end + + # Loads a MIME::Types registry from columnar files recursively found in + # +path+. + def load_columnar + require "mime/types/columnar" unless defined?(MIME::Types::Columnar) + container.extend(MIME::Types::Columnar) + container.load_base_data(path) + + container + end + + # Loads a MIME::Types registry. Loads from JSON files by default + # (#load_json). + # + # This will load from columnar files (#load_columnar) if columnar: + # true is provided in +options+ and there are columnar files in +path+. + def load(options = {columnar: true}) + if options[:columnar] && !Dir[columnar_path].empty? + load_columnar + else + load_json + end + end + + class << self + # Loads the default MIME::Type registry. + def load(options = {columnar: false}) + new.load(options) + end + + # Loads MIME::Types from a single YAML file. + # + # It is expected that the YAML objects contained within the registry + # array will be tagged as !ruby/object:MIME::Type. + # + # Note that the YAML format is about 2½ times *slower* than the JSON + # format. + # + # NOTE: The purpose of this format is purely for maintenance reasons. + def load_from_yaml(filename) + begin + require "psych" + rescue LoadError + nil + end + + require "yaml" + + if old_yaml? + YAML.safe_load(read_file(filename), [MIME::Type]) + else + YAML.safe_load(read_file(filename), permitted_classes: [MIME::Type]) + end + end + + # Loads MIME::Types from a single JSON file. + # + # It is expected that the JSON objects will be an array of hash objects. + # The JSON format is the registry format for the MIME types registry + # shipped with the mime-types library. + def load_from_json(filename) + require "json" + JSON.parse(read_file(filename)).map { |type| MIME::Type.new(type) } + end + + private + + def read_file(filename) + File.open(filename, "r:UTF-8:-", &:read) + end + + def old_yaml? + @old_yaml ||= + begin + require "rubygems/version" + Gem::Version.new(YAML::VERSION) < Gem::Version.new("3.1") + end + end + end + + private + + def yaml_path + File.join(path, "*.y{,a}ml") + end + + def json_path + File.join(path, "*.json") + end + + def columnar_path + File.join(path, "*.column") + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/logger.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/logger.rb new file mode 100644 index 0000000..eaa2887 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/logger.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +require "logger" + +## +module MIME + ## + class Types + class << self + # Configure the MIME::Types logger. This defaults to an instance of a + # logger that passes messages (unformatted) through to Kernel#warn. + # :attr_accessor: logger + attr_reader :logger + + ## + def logger=(logger) # :nodoc + @logger = + if logger.nil? + NullLogger.new + else + logger + end + end + end + + class WarnLogger < ::Logger # :nodoc: + class WarnLogDevice < ::Logger::LogDevice # :nodoc: + def initialize(*) + end + + def write(m) + Kernel.warn(m) + end + + def close + end + end + + def initialize(*) + super(nil) + @logdev = WarnLogDevice.new + @formatter = ->(_s, _d, _p, m) { m } + end + end + + class NullLogger < ::Logger + def initialize(*) + super(nil) + @logdev = nil + end + + def reopen(_) + self + end + + def <<(_) + end + + def close + end + + def add(_severity, _message = nil, _progname = nil) + end + end + + self.logger = WarnLogger.new + end +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/registry.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/registry.rb new file mode 100644 index 0000000..5010d31 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/registry.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +require "mime/types/deprecations" + +class << MIME::Types + include Enumerable + + ## + def new(*) # :nodoc: + super.tap do |types| + __instances__.add types + end + end + + # MIME::Types#[] against the default MIME::Types registry. + def [](type_id, complete: false, registered: false) + __types__[type_id, complete: complete, registered: registered] + end + + # MIME::Types#count against the default MIME::Types registry. + def count + __types__.count + end + + # MIME::Types#each against the default MIME::Types registry. + def each + if block_given? + __types__.each { |t| yield t } + else + enum_for(:each) + end + end + + # MIME::Types#type_for against the default MIME::Types registry. + def type_for(filename) + __types__.type_for(filename) + end + alias_method :of, :type_for + + # MIME::Types#add against the default MIME::Types registry. + def add(*types) + __types__.add(*types) + end + + private + + def lazy_load? + return unless ENV.key?("RUBY_MIME_TYPES_LAZY_LOAD") + + deprecated( + message: "Lazy loading ($RUBY_MIME_TYPES_LAZY_LOAD) is deprecated and will be removed." + ) + + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] != "false" + end + + def __types__ + (defined?(@__types__) && @__types__) || load_default_mime_types + end + + unless private_method_defined?(:load_mode) + def load_mode + {columnar: true} + end + end + + def load_default_mime_types(mode = load_mode) + if (@__types__ = MIME::Types::Cache.load) + __instances__.add(@__types__) + else + @__types__ = MIME::Types::Loader.load(mode) + MIME::Types::Cache.save(@__types__) + end + @__types__ + end + + def __instances__ + @__instances__ ||= Set.new + end + + def reindex_extensions(type) + __instances__.each do |instance| + instance.send(:reindex_extensions!, type) + end + true + end +end + +## +class MIME::Types + load_default_mime_types(load_mode) unless lazy_load? +end diff --git a/gems/gems/mime-types-3.7.0/lib/mime/types/version.rb b/gems/gems/mime-types-3.7.0/lib/mime/types/version.rb new file mode 100644 index 0000000..b36cd15 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/lib/mime/types/version.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +## +module MIME + class Types + # The released version of the mime-types library. + VERSION = "3.7.0" + end + + class Type + # The released version of the mime-types library. + VERSION = MIME::Types::VERSION + end +end diff --git a/gems/gems/mime-types-3.7.0/test/bad-fixtures/malformed b/gems/gems/mime-types-3.7.0/test/bad-fixtures/malformed new file mode 100644 index 0000000..2c716d4 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/bad-fixtures/malformed @@ -0,0 +1,9 @@ +!application.smil @smi,smil :8bit 'IANA,RFC4536 =use-instead:application/smil+xml +!audio/vnd.qcelp @qcp 'IANA,RFC3625 =use-instead:audio/QCELP +*!image/bmp @bmp =use-instead:image/x-bmp +*application/acad 'LTSW +*audio/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} +*image/pjpeg :base64 =Fixes a bug with IE6 and progressive JPEGs +application/1d-interleaved-parityfec 'IANA,RFC6015 +audio/1d-interleaved-parityfec 'IANA,RFC6015 +mac:application/x-apple-diskimage @dmg diff --git a/gems/gems/mime-types-3.7.0/test/fixture/json.json b/gems/gems/mime-types-3.7.0/test/fixture/json.json new file mode 100644 index 0000000..4c65663 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/fixture/json.json @@ -0,0 +1 @@ +[{"content-type":"application/smil","encoding":"8bit","extensions":["smi","smil"],"obsolete":true,"use-instead":"application/smil+xml","registered":true},{"content-type":"audio/vnd.qcelp","encoding":"base64","extensions":["qcp"],"obsolete":true,"use-instead":"audio/QCELP","registered":true},{"content-type":"image/bmp","encoding":"base64","extensions":["bmp"],"obsolete":true,"use-instead":"image/x-bmp","registered":false},{"content-type":"application/acad","encoding":"base64","registered":false},{"content-type":"audio/webm","encoding":"base64","extensions":["webm"],"registered":false},{"content-type":"image/pjpeg","docs":"Fixes a bug with IE6 and progressive JPEGs","encoding":"base64","registered":false},{"content-type":"application/1d-interleaved-parityfec","encoding":"base64","registered":true},{"content-type":"audio/1d-interleaved-parityfec","encoding":"base64","registered":true},{"content-type":"application/x-apple-diskimage","encoding":"base64","extensions":["dmg"],"registered":false}] diff --git a/gems/gems/mime-types-3.7.0/test/fixture/old-data b/gems/gems/mime-types-3.7.0/test/fixture/old-data new file mode 100644 index 0000000..0905137 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/fixture/old-data @@ -0,0 +1,9 @@ +!application/smil @smi,smil :8bit 'IANA,RFC4536 =use-instead:application/smil+xml +!audio/vnd.qcelp @qcp 'IANA,RFC3625 =use-instead:audio/QCELP +*!image/bmp @bmp =use-instead:image/x-bmp +*application/acad 'LTSW +*audio/webm @webm '{WebM=http://www.webmproject.org/code/specs/container/} +*image/pjpeg :base64 =Fixes a bug with IE6 and progressive JPEGs +application/1d-interleaved-parityfec 'IANA,RFC6015 +audio/1d-interleaved-parityfec 'IANA,RFC6015 +mac:application/x-apple-diskimage @dmg diff --git a/gems/gems/mime-types-3.7.0/test/fixture/yaml.yaml b/gems/gems/mime-types-3.7.0/test/fixture/yaml.yaml new file mode 100644 index 0000000..6e72bbf --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/fixture/yaml.yaml @@ -0,0 +1,55 @@ +--- +- !ruby/object:MIME::Type + content-type: application/smil + encoding: 8bit + extensions: + - smi + - smil + obsolete: true + use-instead: application/smil+xml + registered: true +- !ruby/object:MIME::Type + content-type: audio/vnd.qcelp + encoding: base64 + extensions: + - qcp + obsolete: true + use-instead: audio/QCELP + registered: true +- !ruby/object:MIME::Type + content-type: image/bmp + encoding: base64 + extensions: + - bmp + obsolete: true + use-instead: image/x-bmp + registered: false +- !ruby/object:MIME::Type + content-type: application/acad + encoding: base64 + registered: false +- !ruby/object:MIME::Type + content-type: audio/webm + encoding: base64 + extensions: + - webm + registered: false +- !ruby/object:MIME::Type + content-type: image/pjpeg + docs: Fixes a bug with IE6 and progressive JPEGs + encoding: base64 + registered: false +- !ruby/object:MIME::Type + content-type: application/1d-interleaved-parityfec + encoding: base64 + registered: true +- !ruby/object:MIME::Type + content-type: audio/1d-interleaved-parityfec + encoding: base64 + registered: true +- !ruby/object:MIME::Type + content-type: application/x-apple-diskimage + encoding: base64 + extensions: + - dmg + registered: false diff --git a/gems/gems/mime-types-3.7.0/test/minitest_helper.rb b/gems/gems/mime-types-3.7.0/test/minitest_helper.rb new file mode 100644 index 0000000..fc2ddd0 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/minitest_helper.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +gem "minitest" +require "minitest/focus" +require "minitest/hooks" + +require "fileutils" + +require "mime/type" +ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "yes" diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_type.rb b/gems/gems/mime-types-3.7.0/test/test_mime_type.rb new file mode 100644 index 0000000..1190ced --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_type.rb @@ -0,0 +1,659 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Type do + def mime_type(content_type) + MIME::Type.new(content_type) { |mt| yield mt if block_given? } + end + + let(:x_appl_x_zip) { + mime_type("content-type" => "x-appl/x-zip") { |t| t.extensions = %w[zip zp] } + } + let(:text_plain) { mime_type("content-type" => "text/plain") } + let(:text_html) { mime_type("content-type" => "text/html") } + let(:image_jpeg) { mime_type("content-type" => "image/jpeg") } + let(:application_javascript) { + mime_type("content-type" => "application/javascript") do |js| + js.friendly("en" => "JavaScript") + js.xrefs = { + "rfc" => %w[rfc4239 rfc4239], + "template" => %w[application/javascript] + } + js.encoding = "8bit" + js.extensions = %w[js sj] + js.registered = true + end + } + let(:text_x_yaml) { + mime_type("content-type" => "text/x-yaml") do |yaml| + yaml.extensions = %w[yaml yml] + yaml.encoding = "8bit" + yaml.friendly("en" => "YAML Structured Document") + end + } + let(:text_x_yaml_with_docs) { + text_x_yaml.dup.tap do |yaml| + yaml.docs = "Test YAML" + end + } + + describe ".simplified" do + it "leaves normal types alone" do + assert_equal "text/plain", MIME::Type.simplified("text/plain") + end + + it "does not remove x- prefixes by default" do + assert_equal "application/x-msword", + MIME::Type.simplified("application/x-msword") + assert_equal "x-xyz/abc", MIME::Type.simplified("x-xyz/abc") + end + + it "removes x- prefixes when requested" do + assert_equal "application/msword", + MIME::Type.simplified("application/x-msword", remove_x_prefix: true) + assert_equal "xyz/abc", + MIME::Type.simplified("x-xyz/abc", remove_x_prefix: true) + end + + it "lowercases mixed-case types" do + assert_equal "text/vcard", MIME::Type.simplified("text/vCard") + end + + it "returns nil when the value provided is not a valid content type" do + assert_nil MIME::Type.simplified("text") + end + end + + describe ".i18n_key" do + it "converts text/plain to text.plain" do + assert_equal "text.plain", MIME::Type.i18n_key("text/plain") + end + + it "does not remove x-prefixes" do + assert_equal "application.x-msword", + MIME::Type.i18n_key("application/x-msword") + end + + it "converts text/vCard to text.vcard" do + assert_equal "text.vcard", MIME::Type.i18n_key("text/vCard") + end + + it "returns nil when the value provided is not a valid content type" do + assert_nil MIME::Type.i18n_key("text") + end + end + + describe ".new" do + it "fails if an invalid content type is provided" do + exception = assert_raises MIME::Type::InvalidContentType do + MIME::Type.new("content-type" => "apps") + end + assert_equal 'Invalid Content-Type "apps"', exception.to_s + end + + it "creates a valid content type just from a string" do + assert_output "", /MIME::Type.new when called with a String is deprecated\./ do + type = MIME::Type.new("text/x-yaml") + + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + end + end + + it "yields the content type in a block" do + MIME::Type.new("content-type" => "text/x-yaml") do |type| + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + end + end + + it "creates a valid content type from a hash" do + type = MIME::Type.new( + "content-type" => "text/x-yaml", + "obsolete" => true + ) + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + assert type.obsolete? + end + + it "creates a valid content type from an array" do + assert_output "", /MIME::Type.new when called with an Array is deprecated\./ do + type = MIME::Type.new(%w[text/x-yaml yaml yml yz]) + assert_instance_of MIME::Type, type + assert_equal "text/x-yaml", type.content_type + assert_equal %w[yaml yml yz], type.extensions + end + end + end + + describe "#like?" do + it "compares two MIME::Types on #simplified values without x- prefixes" do + assert text_plain.like?(text_plain) + refute text_plain.like?(text_html) + end + + it "compares MIME::Type against string without x- prefixes" do + assert text_plain.like?(text_plain.to_s) + refute text_plain.like?(text_html.to_s) + end + end + + describe "#<=>" do + it "correctly compares identical types" do + assert_equal text_plain, text_plain + end + + it "correctly compares equivalent types" do + right = mime_type("content-type" => "text/Plain") + refute_same text_plain, right + assert_equal text_plain, right + end + + it "correctly compares types that sort earlier" do + refute_equal text_html, text_plain + assert_operator text_html, :<, text_plain + end + + it "correctly compares types that sort later" do + refute_equal text_plain, text_html + assert_operator text_plain, :>, text_html + end + + it "correctly compares types against equivalent strings" do + assert_equal text_plain, "text/plain" + end + + it "correctly compares types against strings that sort earlier" do + refute_equal text_html, "text/plain" + assert_operator text_html, :<, "text/plain" + end + + it "correctly compares types against strings that sort later" do + refute_equal text_plain, "text/html" + assert_operator text_plain, :>, "text/html" + end + end + + describe "#ascii?" do + it "defaults to true for text/* types" do + assert text_plain.ascii? + end + + it "defaults to false for non-text/* types" do + refute image_jpeg.ascii? + end + end + + describe "#binary?" do + it "defaults to false for text/* types" do + refute text_plain.binary? + end + + it "defaults to true for non-text/* types" do + assert image_jpeg.binary? + end + end + + describe "#complete?" do + it "is true when there are extensions" do + assert text_x_yaml.complete? + end + + it "is false when there are no extensions" do + refute mime_type("content-type" => "text/plain").complete? + end + end + + describe "#content_type" do + it "preserves the original case" do + assert_equal "text/plain", text_plain.content_type + assert_equal "text/vCard", mime_type("content-type" => "text/vCard").content_type + end + + it "does not remove x- prefixes" do + assert_equal "x-appl/x-zip", x_appl_x_zip.content_type + end + end + + describe "#default_encoding" do + it "is quoted-printable for text/* types" do + assert_equal "quoted-printable", text_plain.default_encoding + end + + it "is base64 for non-text/* types" do + assert_equal "base64", image_jpeg.default_encoding + end + end + + describe "#encoding, #encoding=" do + it "returns #default_encoding if not set explicitly" do + assert_equal "quoted-printable", text_plain.encoding + assert_equal "base64", image_jpeg.encoding + end + + it "returns the set value when set" do + text_plain.encoding = "8bit" + assert_equal "8bit", text_plain.encoding + end + + it "resets to the default encoding when set to nil or :default" do + text_plain.encoding = "8bit" + text_plain.encoding = nil + assert_equal text_plain.default_encoding, text_plain.encoding + text_plain.encoding = :default + assert_equal text_plain.default_encoding, text_plain.encoding + end + + it "raises a MIME::Type::InvalidEncoding for an invalid encoding" do + exception = assert_raises MIME::Type::InvalidEncoding do + text_plain.encoding = "binary" + end + assert_equal 'Invalid Encoding "binary"', exception.to_s + end + end + + describe "#eql?" do + it "is not true for a non-MIME::Type" do + refute text_plain.eql?("text/plain") + end + + it "is not true for a different MIME::Type" do + refute text_plain.eql?(image_jpeg) + end + + it "is true for an equivalent MIME::Type" do + assert text_plain.eql?(mime_type("content-type" => "text/Plain")) + end + + it "is true for an equivalent subclass of MIME::Type" do + subclass = Class.new(MIME::Type) + assert text_plain.eql?(subclass.new("content-type" => "text/plain")) + end + end + + describe "#hash" do + it "is the same between #eql? MIME::Type instances" do + assert_equal text_plain.hash, mime_type("content-type" => "text/plain").hash + end + + it "is the same between #eql? MIME::Type instances of different classes" do + subclass = Class.new(MIME::Type) + assert_equal text_plain.hash, subclass.new("content-type" => "text/plain").hash + end + + it "uses the #simplified value" do + assert_equal text_plain.hash, mime_type("content-type" => "text/Plain").hash + end + end + + describe "#extensions, #extensions=" do + it "returns an array of extensions" do + assert_equal %w[yaml yml], text_x_yaml.extensions + assert_equal %w[zip zp], x_appl_x_zip.extensions + end + + it "sets a single extension when provided a single value" do + text_x_yaml.extensions = "yaml" + assert_equal %w[yaml], text_x_yaml.extensions + end + + it "deduplicates extensions" do + text_x_yaml.extensions = %w[yaml yaml] + assert_equal %w[yaml], text_x_yaml.extensions + end + end + + describe "#add_extensions" do + it "does not modify extensions when provided nil" do + text_x_yaml.add_extensions(nil) + assert_equal %w[yaml yml], text_x_yaml.extensions + end + + it "remains deduplicated with duplicate values" do + text_x_yaml.add_extensions("yaml") + assert_equal %w[yaml yml], text_x_yaml.extensions + text_x_yaml.add_extensions(%w[yaml yz]) + assert_equal %w[yaml yml yz], text_x_yaml.extensions + end + end + + describe "#priority_compare" do + def priority(type) + priority = "OpRceXtN" + .chars + .zip(("%08b" % type.__sort_priority).chars) + .map { |e| e.join(":") } + .join(" ") + + "#{type} (#{priority} / #{type.__sort_priority})" + end + + def assert_priority_less(left, right) + assert_equal(-1, left.priority_compare(right), "#{priority(left)} is not less than #{priority(right)}") + end + + def assert_priority_same(left, right) + assert_equal 0, left.priority_compare(right), "#{priority(left)} is not equal to #{priority(right)}" + end + + def assert_priority_more(left, right) + assert_equal 1, left.priority_compare(right), "#{priority(left)} is not more than #{priority(right)}" + end + + def assert_priority(left, middle, right) + assert_priority_less left, right + assert_priority_same left, middle + assert_priority_more right, middle + end + + let(:text_1) { mime_type("content-type" => "text/1") } + let(:text_1p) { mime_type("content-type" => "text/1") } + let(:text_2) { mime_type("content-type" => "text/2") } + + it "sorts based on the simplified type when the sort priorities are the same" do + assert_priority text_1, text_1p, text_2 + end + + it "sorts obsolete types higher than non-obsolete types" do + text_1.obsolete = text_1p.obsolete = false + text_1b = mime_type(text_1) { |t| t.obsolete = true } + + assert_priority_less text_1, text_1b + + assert_priority text_1, text_1p, text_1b + end + + it "sorts provisional types higher than non-provisional types" do + text_1.provisional = text_1p.provisional = false + text_1b = mime_type(text_1) { |t| t.provisional = true } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts (3) based on the registration state" do + text_1.registered = text_1p.registered = true + text_1b = mime_type(text_1) { |t| t.registered = false } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts (4) based on the completeness" do + text_1.extensions = text_1p.extensions = "1" + text_1b = mime_type(text_1) { |t| t.extensions = nil } + + assert_priority text_1, text_1p, text_1b + end + + it "sorts based on extensions (more extensions sort lower)" do + text_1.extensions = ["foo", "bar"] + text_2.extensions = ["foo"] + + assert_priority_less text_1, text_2 + end + end + + describe "#raw_media_type" do + it "extracts the media type as case-preserved" do + assert_equal "Text", mime_type("content-type" => "Text/plain").raw_media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.raw_media_type) + end + end + + describe "#media_type" do + it "extracts the media type as lowercase" do + assert_equal "text", text_plain.media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.media_type) + end + end + + describe "#raw_media_type" do + it "extracts the media type as case-preserved" do + assert_equal "Text", mime_type("content-type" => "Text/plain").raw_media_type + end + + it "does not remove x- prefixes" do + assert_equal("x-appl", x_appl_x_zip.raw_media_type) + end + end + + describe "#sub_type" do + it "extracts the sub type as lowercase" do + assert_equal "plain", text_plain.sub_type + end + + it "does not remove x- prefixes" do + assert_equal("x-zip", x_appl_x_zip.sub_type) + end + end + + describe "#raw_sub_type" do + it "extracts the sub type as case-preserved" do + assert_equal "Plain", mime_type("content-type" => "text/Plain").raw_sub_type + end + + it "does not remove x- prefixes" do + assert_equal("x-zip", x_appl_x_zip.raw_sub_type) + end + end + + describe "#to_h" do + let(:t) { mime_type("content-type" => "a/b") } + + def assert_has_keys(wanted_keys, actual, msg = nil) + wanted_keys = Array(wanted_keys).uniq.sort + actual_keys = if actual.is_a?(Hash) + actual.keys + else + actual.to_h.keys + end + + missing = wanted_keys - actual_keys + pretty_wanted_keys = (wanted_keys + actual_keys).uniq.sort + + msg = message(msg) { + "#{mu_pp(actual)} is missing attribute values\n#{diff(pretty_wanted_keys, actual_keys)}" + } + + assert missing.empty?, msg + end + + it "has the required keys (content-type, registered, encoding)" do + assert_has_keys %w[content-type registered encoding], t + end + + it "has the docs key if there are documents" do + assert_has_keys "docs", mime_type(t) { |v| v.docs = "a" } + end + + it "has the extensions key if set" do + assert_has_keys "extensions", mime_type(t) { |v| v.extensions = "a" } + end + + it "has the preferred-extension key if set" do + assert_has_keys "preferred-extension", mime_type(t) { |v| v.preferred_extension = "a" } + end + + it "has the obsolete key if set" do + assert_has_keys "obsolete", mime_type(t) { |v| v.obsolete = true } + end + + it "has the obsolete and use-instead keys if set" do + assert_has_keys %w[obsolete use-instead], mime_type(t) { |v| + v.obsolete = true + v.use_instead = "c/d" + } + end + + it "has the signature key if set" do + assert_has_keys "signature", mime_type(t) { |v| v.signature = true } + end + end + + describe "#to_json" do + let(:expected_1) { + '{"content-type":"a/b","encoding":"base64","registered":false,"sort-priority":48}' + } + let(:expected_2) { + '{"content-type":"a/b","encoding":"base64","registered":true,"provisional":true,"sort-priority":80}' + } + + it "converts to JSON when requested" do + assert_equal expected_1, mime_type("content-type" => "a/b").to_json + end + + it "converts to JSON with provisional when requested" do + type = mime_type("content-type" => "a/b") do |t| + t.registered = true + t.provisional = true + end + assert_equal expected_2, type.to_json + end + end + + describe "#to_s, #to_str" do + it "represents itself as a string of the canonical content_type" do + assert_equal "text/plain", text_plain.to_s + end + + it "acts like a string of the canonical content_type for comparison" do + assert_equal text_plain, "text/plain" + end + + it "acts like a string for other purposes" do + assert_equal "stringy", "text/plain".sub(text_plain, "stringy") + end + end + + describe "#xrefs, #xrefs=" do + let(:expected) { + MIME::Types::Container.new("rfc" => Set["rfc1234", "rfc5678"]) + } + + it "returns the expected results" do + application_javascript.xrefs = { + "rfc" => %w[rfc5678 rfc1234 rfc1234] + } + + assert_equal expected, application_javascript.xrefs + end + end + + describe "#xref_urls" do + let(:expected) { + [ + "http://www.iana.org/go/draft1", + "http://www.iana.org/assignments/media-types/a/b", + "http://www.iana.org/assignments/media-types/media-types.xhtml#p-1", + "http://www.iana.org/go/rfc-1", + "http://www.rfc-editor.org/errata_search.php?eid=err-1", + "http://example.org", + "text" + ] + } + + let(:type) { + mime_type("content-type" => "a/b").tap do |t| + t.xrefs = { + "draft" => ["RFC1"], + "template" => ["a/b"], + "person" => ["p-1"], + "rfc" => ["rfc-1"], + "rfc-errata" => ["err-1"], + "uri" => ["http://example.org"], + "text" => ["text"] + } + end + } + + it "translates according to given rules" do + assert_equal expected, type.xref_urls + end + end + + describe "#use_instead" do + it "is nil unless the type is obsolete" do + assert_nil text_plain.use_instead + end + + it "is nil if not set and the type is obsolete" do + text_plain.obsolete = true + assert_nil text_plain.use_instead + end + + it "is a different type if set and the type is obsolete" do + text_plain.obsolete = true + text_plain.use_instead = "text/html" + assert_equal "text/html", text_plain.use_instead + end + end + + describe "#preferred_extension, #preferred_extension=" do + it "is nil when not set and there are no extensions" do + assert_nil text_plain.preferred_extension + end + + it "is the first extension when not set but there are extensions" do + assert_equal "yaml", text_x_yaml.preferred_extension + end + + it "is the extension provided when set" do + text_x_yaml.preferred_extension = "yml" + assert_equal "yml", text_x_yaml.preferred_extension + end + + it "is adds the preferred extension if it does not exist" do + text_x_yaml.preferred_extension = "yz" + assert_equal "yz", text_x_yaml.preferred_extension + assert_includes text_x_yaml.extensions, "yz" + end + end + + describe "#friendly" do + it "returns English by default" do + assert_equal "YAML Structured Document", text_x_yaml.friendly + end + + it "returns English when requested" do + assert_equal "YAML Structured Document", text_x_yaml.friendly("en") + assert_equal "YAML Structured Document", text_x_yaml.friendly(:en) + end + + it "returns nothing for an unknown language" do + assert_nil text_x_yaml.friendly("zz") + end + + it "merges new values from an array parameter" do + expected = {"en" => "Text files"} + assert_equal expected, text_plain.friendly(["en", "Text files"]) + expected.update("fr" => "des fichiers texte") + assert_equal expected, + text_plain.friendly(["fr", "des fichiers texte"]) + end + + it "merges new values from a hash parameter" do + expected = {"en" => "Text files"} + assert_equal expected, text_plain.friendly(expected) + french = {"fr" => "des fichiers texte"} + expected.update(french) + assert_equal expected, text_plain.friendly(french) + end + + it "raises an ArgumentError if an unknown value is provided" do + exception = assert_raises ArgumentError do + text_plain.friendly(1) + end + + assert_equal "Expected a language or translation set, not 1", + exception.message + end + end +end diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_types.rb b/gems/gems/mime-types-3.7.0/test/test_mime_types.rb new file mode 100644 index 0000000..c4c5af2 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_types.rb @@ -0,0 +1,173 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types do + def mime_types + @mime_types ||= MIME::Types.new.tap { |mt| + mt.add( + MIME::Type.new("content-type" => "text/plain", "extensions" => %w[txt]), + MIME::Type.new("content-type" => "image/jpeg", "extensions" => %w[jpg jpeg]), + MIME::Type.new("content-type" => "application/x-wordperfect6.1"), + MIME::Type.new("content-type" => "application/x-www-form-urlencoded", "registered" => true), + MIME::Type.new("content-type" => "application/x-gzip", "extensions" => %w[gz]), + MIME::Type.new("content-type" => "application/gzip", "extensions" => "gz", "registered" => true), + *MIME::Types.type_for("foo.webm") + ) + } + end + + describe "is enumerable" do + it "correctly uses an Enumerable method like #any?" do + assert(mime_types.any? { |type| type.content_type == "text/plain" }) + end + + it "implements each with no parameters to return an Enumerator" do + assert_kind_of Enumerator, mime_types.each + assert_kind_of Enumerator, mime_types.map + end + + it "will create a lazy enumerator" do + assert_kind_of Enumerator::Lazy, mime_types.lazy + assert_kind_of Enumerator::Lazy, mime_types.map.lazy + end + + it "is countable with an enumerator" do + assert_equal 8, mime_types.each.count + assert_equal 8, mime_types.lazy.count + end + end + + describe "#[]" do + it "can be searched with a MIME::Type" do + text_plain = MIME::Type.new("content-type" => "text/plain") + assert_includes mime_types[text_plain], "text/plain" + assert_equal 1, mime_types[text_plain].size + end + + it "can be searched with a regular expression" do + assert_includes mime_types[/plain$/], "text/plain" + assert_equal 1, mime_types[/plain$/].size + end + + it "sorts by priority with multiple matches" do + assert_equal %w[application/gzip application/x-gzip], mime_types[/gzip$/] + assert_equal 2, mime_types[/gzip$/].size + end + + it "can be searched with a string" do + assert_includes mime_types["text/plain"], "text/plain" + assert_equal 1, mime_types["text/plain"].size + end + + it "can be searched with the complete flag" do + assert_empty mime_types[ + "application/x-www-form-urlencoded", + complete: true + ] + assert_includes mime_types["text/plain", complete: true], "text/plain" + assert_equal 1, mime_types["text/plain", complete: true].size + end + + it "can be searched with the registered flag" do + assert_empty mime_types["application/x-wordperfect6.1", registered: true] + refute_empty mime_types[ + "application/x-www-form-urlencoded", + registered: true + ] + refute_empty mime_types[/gzip/, registered: true] + refute_equal mime_types[/gzip/], mime_types[/gzip/, registered: true] + end + + it "properly returns an empty result on a regular expression miss" do + assert_empty mime_types[/^foo/] + assert_empty mime_types[/^foo/, registered: true] + assert_empty mime_types[/^foo/, complete: true] + end + end + + describe "#add" do + let(:eruby) { MIME::Type.new("content-type" => "application/x-eruby") } + let(:jinja) { MIME::Type.new("content-type" => "application/jinja2") } + + it "successfully adds a new type" do + mime_types.add(eruby) + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "complains about adding a duplicate type" do + mime_types.add(eruby) + assert_output "", /is already registered as a variant/ do + mime_types.add(eruby) + end + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "does not complain about adding a duplicate type when quiet" do + mime_types.add(eruby) + assert_output "", "" do + mime_types.add(eruby, :silent) + end + assert_equal mime_types["application/x-eruby"], [eruby] + end + + it "successfully adds from an array" do + mime_types.add([eruby, jinja]) + assert_equal mime_types["application/x-eruby"], [eruby] + assert_equal mime_types["application/jinja2"], [jinja] + end + + it "successfully adds from another MIME::Types" do + mt = MIME::Types.new + mt.add(mime_types) + assert_equal mime_types.count, mt.count + + mime_types.each do |type| + assert_equal mt[type.content_type], [type] + end + end + end + + describe "#type_for" do + it "finds all types for a given extension" do + assert_equal %w[application/gzip application/x-gzip], + mime_types.type_for("gz") + end + + it "separates the extension from filenames" do + assert_equal %w[image/jpeg], mime_types.of(["foo.jpeg", "bar.jpeg"]) + end + + it "finds multiple extensions" do + assert_equal %w[text/plain image/jpeg], + mime_types.type_for(%w[foo.txt foo.jpeg]) + end + + it "does not find unknown extensions" do + keys = mime_types.instance_variable_get(:@extension_index).keys + assert_empty mime_types.type_for("zzz") + assert_equal keys, mime_types.instance_variable_get(:@extension_index).keys + end + + it "modifying type extensions causes reindexing" do + plain_text = mime_types["text/plain"].first + plain_text.add_extensions("xtxt") + assert_includes mime_types.type_for("xtxt"), "text/plain" + end + + it "handles newline characters correctly" do + assert_includes mime_types.type_for("test.pdf\n.txt"), "text/plain" + end + + it "returns a stable order for types with equal priority" do + assert_equal %w[text/x-vcalendar text/x-vcard], MIME::Types[/text\/x-vca/] + end + end + + describe "#count" do + it "can count the number of types inside" do + assert_equal 8, mime_types.count + end + end +end diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_types_cache.rb b/gems/gems/mime-types-3.7.0/test/test_mime_types_cache.rb new file mode 100644 index 0000000..48a8bb3 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_types_cache.rb @@ -0,0 +1,118 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +MUTEX = Mutex.new + +describe MIME::Types::Cache do + include Minitest::Hooks + + def around + require "fileutils" + + MUTEX.synchronize do + @cache_file = File.expand_path("../cache.tst", __FILE__) + ENV["RUBY_MIME_TYPES_CACHE"] = @cache_file + clear_cache_file + + super + + clear_cache_file + ENV.delete("RUBY_MIME_TYPES_CACHE") + end + end + + def reset_mime_types + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + def clear_cache_file + FileUtils.rm @cache_file if File.exist? @cache_file + end + + describe ".load" do + it "does not use cache when RUBY_MIME_TYPES_CACHE is unset" do + ENV.delete("RUBY_MIME_TYPES_CACHE") + assert_nil MIME::Types::Cache.load + end + + it "does not use cache when missing" do + assert_nil MIME::Types::Cache.load + end + + it "registers the data to be updated by #add_extensions" do + MIME::Types::Cache.save + reset_mime_types + assert_equal([], MIME::Types.type_for("foo.additional")) + html = MIME::Types["text/html"][0] + html.add_extensions("additional") + assert_equal([html], MIME::Types.type_for("foo.additional")) + end + + it "outputs an error when there is an invalid version" do + v = MIME::Types::Data::VERSION + MIME::Types::Data.send(:remove_const, :VERSION) + MIME::Types::Data.const_set(:VERSION, "0.0") + MIME::Types::Cache.save + MIME::Types::Data.send(:remove_const, :VERSION) + MIME::Types::Data.const_set(:VERSION, v) + MIME::Types.instance_variable_set(:@__types__, nil) + assert_output "", /MIME::Types cache: invalid version/ do + MIME::Types["text/html"] + end + end + + it "outputs an error when there is a marshal file incompatibility" do + MIME::Types::Cache.save + data = File.binread(@cache_file).reverse + File.binwrite(@cache_file, data) + MIME::Types.instance_variable_set(:@__types__, nil) + assert_output "", /incompatible marshal file format/ do + MIME::Types["text/html"] + end + end + end + + describe ".save" do + it "does not create cache when RUBY_MIME_TYPES_CACHE is unset" do + ENV.delete("RUBY_MIME_TYPES_CACHE") + assert_nil MIME::Types::Cache.save + end + + it "creates the cache " do + assert_equal(false, File.exist?(@cache_file)) + MIME::Types::Cache.save + assert_equal(true, File.exist?(@cache_file)) + end + + it "uses the cache" do + MIME::Types["text/html"].first.add_extensions("hex") + MIME::Types::Cache.save + MIME::Types.instance_variable_set(:@__types__, nil) + + assert_includes MIME::Types["text/html"].first.extensions, "hex" + + reset_mime_types + end + end +end + +describe MIME::Types::Container do + it "marshals and unmarshals correctly" do + container = MIME::Types::Container.new + container.add("xyz", "abc") + + # default proc should return Set[] + assert_equal(Set[], container["abc"]) + assert_equal(Set["abc"], container["xyz"]) + + marshalled = Marshal.dump(container) + loaded_container = Marshal.load(marshalled) + + # default proc should still return Set[] + assert_equal(Set[], loaded_container["abc"]) + assert_equal(Set["abc"], container["xyz"]) + end +end diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_types_class.rb b/gems/gems/mime-types-3.7.0/test/test_mime_types_class.rb new file mode 100644 index 0000000..05494dd --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_types_class.rb @@ -0,0 +1,170 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types, "registry" do + def setup + MIME::Types.send(:load_default_mime_types) + end + + describe "is enumerable" do + it "correctly uses an Enumerable method like #any?" do + assert(MIME::Types.any? { |type| type.content_type == "text/plain" }) + end + + it "implements each with no parameters to return an Enumerator" do + assert_kind_of Enumerator, MIME::Types.each + assert_kind_of Enumerator, MIME::Types.map + end + + it "will create a lazy enumerator" do + assert_kind_of Enumerator::Lazy, MIME::Types.lazy + assert_kind_of Enumerator::Lazy, MIME::Types.map.lazy + end + + it "is countable with an enumerator" do + assert MIME::Types.each.count > 999 + assert MIME::Types.lazy.count > 999 + end + end + + describe ".[]" do + it "can be searched with a MIME::Type" do + text_plain = MIME::Type.new("content-type" => "text/plain") + assert_includes MIME::Types[text_plain], "text/plain" + assert_equal 1, MIME::Types[text_plain].size + end + + it "can be searched with a regular expression" do + assert_includes MIME::Types[/plain$/], "text/plain" + assert_equal 1, MIME::Types[/plain$/].size + end + + it "sorts by priority with multiple matches" do + types = MIME::Types[/gzip$/].select { |t| + %w[application/gzip application/x-gzip multipart/x-gzip].include?(t) + } + # This is this way because of a new type ending with gzip that only + # appears in some data files. + assert_equal %w[application/gzip multipart/x-gzip application/x-gzip], types + assert_equal 3, types.size + end + + it "can be searched with a string" do + assert_includes MIME::Types["text/plain"], "text/plain" + assert_equal 1, MIME::Types["text/plain"].size + end + + it "can be searched with the complete flag" do + assert_empty MIME::Types[ + "application/x-www-form-urlencoded", + complete: true + ] + assert_includes MIME::Types["text/plain", complete: true], "text/plain" + assert_equal 1, MIME::Types["text/plain", complete: true].size + end + + it "can be searched with the registered flag" do + assert_empty MIME::Types["application/x-wordperfect6.1", registered: true] + refute_empty MIME::Types[ + "application/x-www-form-urlencoded", + registered: true + ] + refute_empty MIME::Types[/gzip/, registered: true] + refute_equal MIME::Types[/gzip/], MIME::Types[/gzip/, registered: true] + end + end + + describe ".type_for" do + it "finds all types for a given extension" do + assert_equal %w[application/gzip application/x-gzip], + MIME::Types.type_for("gz") + end + + it "separates the extension from filenames" do + assert_equal %w[image/jpeg], MIME::Types.of(["foo.jpeg", "bar.jpeg"]) + end + + it "finds multiple extensions ordered by the filename list" do + result = MIME::Types.type_for(%w[foo.txt foo.jpeg]) + + # assert_equal %w[text/plain image/jpeg], MIME::Types.type_for(%w[foo.txt foo.jpeg]) + assert_equal %w[text/plain image/jpeg], result + end + + it "does not find unknown extensions" do + assert_empty MIME::Types.type_for("zzz") + end + + it "modifying type extensions causes reindexing" do + plain_text = MIME::Types["text/plain"].first + plain_text.add_extensions("xtxt") + assert_includes MIME::Types.type_for("xtxt"), "text/plain" + end + + it "handles newline characters correctly" do + assert_includes MIME::Types.type_for("test.pdf\n.txt"), "text/plain" + assert_includes MIME::Types.type_for("test.txt\n.pdf"), "application/pdf" + end + + it "returns a stable order for types with equal priority" do + assert_equal %w[text/x-vcalendar text/x-vcard], MIME::Types[/text\/x-vca/] + end + end + + describe ".count" do + it "can count the number of types inside" do + assert MIME::Types.count > 999 + end + end + + describe ".add" do + def setup + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + let(:eruby) { MIME::Type.new("content-type" => "application/x-eruby") } + let(:jinja) { MIME::Type.new("content-type" => "application/jinja2") } + + it "successfully adds a new type" do + MIME::Types.add(eruby) + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "complains about adding a duplicate type" do + MIME::Types.add(eruby) + assert_output "", /is already registered as a variant/ do + MIME::Types.add(eruby) + end + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "does not complain about adding a duplicate type when quiet" do + MIME::Types.add(eruby) + assert_silent do + MIME::Types.add(eruby, :silent) + end + assert_equal MIME::Types["application/x-eruby"], [eruby] + end + + it "successfully adds from an array" do + MIME::Types.add([eruby, jinja]) + assert_equal MIME::Types["application/x-eruby"], [eruby] + assert_equal MIME::Types["application/jinja2"], [jinja] + end + + it "successfully adds from another MIME::Types" do + old_count = MIME::Types.count + + mt = MIME::Types.new + mt.add(eruby) + + MIME::Types.add(mt) + assert_equal old_count + 1, MIME::Types.count + + assert_equal MIME::Types[eruby.content_type], [eruby] + end + end +end diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_types_lazy.rb b/gems/gems/mime-types-3.7.0/test/test_mime_types_lazy.rb new file mode 100644 index 0000000..04f81f6 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_types_lazy.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types, "lazy loading" do + def setup + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "true" + end + + def teardown + reset_mime_types + ENV.delete("RUBY_MIME_TYPES_LAZY_LOAD") + end + + def reset_mime_types + MIME::Types.instance_variable_set(:@__types__, nil) + MIME::Types.send(:load_default_mime_types) + end + + describe ".lazy_load?" do + it "is true when RUBY_MIME_TYPES_LAZY_LOAD is set" do + assert_output "", /RUBY_MIME_TYPES_LAZY_LOAD/ do + assert_equal true, MIME::Types.send(:lazy_load?) + end + end + + it "is nil when RUBY_MIME_TYPES_LAZY_LOAD is unset" do + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = nil + assert_output "", "" do + assert_nil MIME::Types.send(:lazy_load?) + end + end + + it "is false when RUBY_MIME_TYPES_LAZY_LOAD is false" do + ENV["RUBY_MIME_TYPES_LAZY_LOAD"] = "false" + assert_output "", /RUBY_MIME_TYPES_LAZY_LOAD/ do + assert_equal false, MIME::Types.send(:lazy_load?) + end + end + end + + it "loads lazily when RUBY_MIME_TYPES_LAZY_LOAD is set" do + 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 diff --git a/gems/gems/mime-types-3.7.0/test/test_mime_types_loader.rb b/gems/gems/mime-types-3.7.0/test/test_mime_types_loader.rb new file mode 100644 index 0000000..af5d851 --- /dev/null +++ b/gems/gems/mime-types-3.7.0/test/test_mime_types_loader.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +require "mime/types" +require "minitest_helper" + +describe MIME::Types::Loader do + def setup + @path = File.expand_path("../fixture", __FILE__) + @loader = MIME::Types::Loader.new(@path) + @bad_path = File.expand_path("../bad-fixtures", __FILE__) + end + + def assert_correctly_loaded(types) + assert_includes(types, "application/1d-interleaved-parityfec") + assert_equal(%w[webm], types["audio/webm"].first.extensions) + refute(types["audio/webm"].first.registered?) + + assert_equal("Fixes a bug with IE6 and progressive JPEGs", + types["image/pjpeg"].first.docs) + + assert(types["audio/vnd.qcelp"].first.obsolete?) + assert_equal("audio/QCELP", types["audio/vnd.qcelp"].first.use_instead) + end + + it "loads YAML files correctly" do + assert_correctly_loaded @loader.load_yaml + end + + it "loads JSON files correctly" do + assert_correctly_loaded @loader.load_json + end +end diff --git a/gems/gems/mime-types-data-3.2025.0909/CHANGELOG.md b/gems/gems/mime-types-data-3.2025.0909/CHANGELOG.md new file mode 100644 index 0000000..4856176 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/CHANGELOG.md @@ -0,0 +1,740 @@ +# MIME Types Changes by Version + + + +## 3.2025.0909 / 2025-09-09 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0902 / 2025-09-02 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0826 / 2025-08-26 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0819 / 2025-08-19 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0812 / 2025-08-12 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0805 / 2025-08-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + +## 3.2025.0729 / 2025-07-29 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the [Apache httpd media registry][httpd], + and the [Apache Tika media registry][tika] as of the release date. + + + +- Remove `.doc` from `text/plain`: The use of `.doc` for `text/plain` documents + is mostly a holdover from VAX VMS where the default wasn't `.txt` but `.doc`. + The world now thinks that `.doc` mostly means `application/msword` even though + that format is obsolete by almost twenty years. Closes + [ruby-mime-types#224][ruby-mime-types#224] with [#191][pull-191]. + +- Handle promoted and withdrawn provisional IANA media types. Closes + [#54][issue-54] with [#192][pull-192]. + + The logic is three relatively simple phases: + + 1. When loading an existing registry grouping (such as + `types/application.yaml`), we mark any type that is `provisional` as + `obsolete`. This indicates that we consider any provisional type as + potentially withdrawn (and therefore obsolete). + 2. When processing existing regular types, we clear both `provisional` and + `obsolete` flags so that a type promoted from provisional is now a regular + registry entry. + 3. After merging the current list of registry entries, we _clear_ + `provisional` if the type is marked both `provisional` and `obsolete`, + indicating that the provisional type has been withdrawn. + + These heuristics match several types which have been promoted and withdrawn + since the handling of provisional types was improved with [#53][pull-53]. + +## 3.2025.0722 / 2025-07-22 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0715 / 2025-07-15 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0708 / 2025-07-08 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0701 / 2025-07-01 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0624 / 2025-06-24 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0617 / 2025-06-17 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0610 / 2025-06-10 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0603 / 2025-06-03 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0527 / 2025-05-27 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0520 / 2025-05-20 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0514 / 2025-05-14 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional], the + [Apache httpd media registry][httpd], and the + [Apache Tika media registry][tika] as of the release date. + +## 3.2025.0507 / 2025-05-07 + +- Added new data for pre-computed priority sorting. This new data requires Ruby + mime-types 3.7.0 or later to manage data but is ignored by older versions of + mime-types. + +- Added a parser for the [Apache Tika media registry][tika] to enrich the media + definitions, mostly by adding new patterns for media type extensions. This + parser: + + 1. Parses the current `tika-mimetypes.xml` from the main branch of + [Tika][tika] on GitHub. + + 2. Skips over any `mime-type` record that has attributes. That is, any record + which looks like `media/subtype;format=foo` or `media/subtype;version=2` + will be skipped. Support for attributes does not currently exist in the + mime-types library. + + 3. Extracts the `glob` entries for use in the `extensions` field. Globs that + use `*` in the middle of a filename are excluded, because that's now how + the Ruby MIME::Types field works (I could add a new `glob` field, but that + will take a bit more work). + + 4. Updates the `extensions` field for any existing MIME::Type or creates new + unregistered (not defined in IANA) types for new ones. + +- Updated the history body to reflect the new data source for updates. + +- Some details were removed from older CHANGELOG entries relating to updated + MIME types from more or less automated processes. + +## 3.2025.0506 / 2025-05-06 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0429 / 2025-04-29 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0422 / 2025-04-22 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0408 / 2025-04-08 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0402 / 2025-04-02 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0325 / 2025-03-25 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0318 / 2025-03-18 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0304 / 2025-03-04 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2025.0220 / 2025-02-20 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added [trusted publishing][tp] for fully automated releases. Developed by + Samuel Giddins in [#109][pull-109], merged manually with some updates. + +## 3.2025.0204 / 2025-02-04 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added the Changelog URL to the README so that RubyGems.org is updated with the + `changelog_uri` on release. Contributed by Mark Young in [#96][pull-96]. + +- Fixed an issue with automated releases that added thousands of files because + `vendor/` was no longer ignored. + +- Fixed the automated release builder process to handle the case when the + `automatic-release` tag is followed by a `## NEXT / YYYY-MM-DD` header so that + changes merged normally are picked up on automatic releases. [#98][pull-98] + +## 3.2025.0107 / 2025-01-07 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Restructured documentation for how I prefer to manage Hoe projects now. + +- Reworked the Rakefile because all data updates are now managed by GitHub + Actions and should not be managed manually any longer. + + - `rake release:prepare` now does the same work as `rake release:gha`, but + does not commit or create a pull request. + + - `rake convert` no longer has any subtasks. + + - `rake update` has been removed with no replacement. + +- Updated `.hoerc` to properly exclude `support/` and `types/` from the + manifest. + +## 3.2024.1203 / 2024-12-03 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.1105 / 2024-11-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.1001 / 2024-10-01 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0903 / 2024-09-03 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0820 / 2024-08-20 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added `.jxl` extension for `image/jxl`. Contributed by Shane Eskritt in + [#81][pull-81]. + +## 3.2024.0806 / 2024-08-06 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0702 / 2024-07-02 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + + - This update adds a new `haptics/` group with three media types defined. + +- Moved extensions from `audio/x-aac` to `audio/aac` and mark `audio/x-aac` as + obsolete. Based on [#77][pull-77] by Samuel Williams. + + - Made the same changes for `audio/flac` and `audio/matroska`. + +## 3.2024.0604 / 2024-06-04 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Internal changes: + + - Update to latest version of Rubygems for testing. + + - Remove restriction on Pysch version as that does not work well with current + Rubies. + + - Fix a bug with the history generation on automatic updates. + +## 3.2024.0507 / 2024-05-07 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0402 / 2024-04-02 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0305 / 2024-03-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0206 / 2024-02-06 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2024.0102 / 2024-01-02 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.1205 / 2023-12-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.1107 / 2023-11-07 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.1003 / 2023-10-03 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.0905 / 2023-09-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.0808 / 2023-08-08 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2023.0218.1 / 2023-02-18 + +- When this data library was created in 2015, I made the decision based on + information available to deprecate `text/javascript` in favour of + `application/javascript`. Since the previous update (2022-01-05), IANA has + officially deprecated `application/javascript` in favour of `text/javascript`. + Samuel Williams discovered this in [#55][issue-55] by noting that all `js` + types were marked obsolete in version 3.2023.0218. + + A hot fix has been applied to resolve this. However, note that + `application/javascript` will not be returned by default, only + `text/javascript`. + +## 3.2023.0218 / 2023-02-18 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Mohammed Gad added the `jfif` file extension for `image/jpeg` text format. + [#52][pull-52] + +- Reworked the loading of IANA provisional media registries to merge them into + the top-level media-type registries instead of a standalone registry file. + [#53][pull-53] originally identified by Chris Salzberg in [#50][pull-50]. + + It is worth noting that this is an _imperfect_ solution as if a media type is + provisionally registered and withdrawn, it will linger in the registry with no + clean way of identifying them at the moment. See [#54][issue-54]. + + This release also fixes [ruby-mime-types#163][ruby-mime-types#163], where logs + show "Type `application/netcdf` is already registered as a variant of + `application/netcdf`". + +## 3.2022.0105 / 2022-01-05 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Fixed an incorrect definition of `image/bmp`, which had been marked obsolete + and later registered. Fixed [#48][issue-48], found by William T. Nelson. + +## 3.2021.1115 / 2021-11-15 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added conversion utilities that support the `mini_mime` data format. These + have been ported from the [mini\_mime][mini_mime] repository. [#47][pull-47] + +- Added IANA provisional media registries. Added some notes to CONTRIBUTING + about the transient nature of the provisional registration data. This was + triggered in part by a pull request by Jon Sneyers. Thanks! [#45][pull-45], + [#43][pull-43] + +## 3.2021.0901 / 2021-09-01 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added file extension for `WebVTT` text format. [#46][pull-46] + +## 3.2021.0704 / 2021-07-04 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +## 3.2021.0225 / 2021-02-25 + +- Updated registry entries from the IANA [media registry][registry] and + [provisional media registry][provisional] and the + [Apache httpd media registry][httpd] as of the release date. + +- Added file extension for `AVIF` video format. [#40][pull-40] + +## 3.2021.0212 / 2021-02-12 + +- Updated the IANA media registry entries as of release date. + +- Added a new rake task (`release:automatic`) that downloads and converts the + data from Apache httpd and IANA registries; if there are changes detected, it + updates the release version, changelog, manifest, and `gemspec` and commits + the changes to git. + +## 3.2020.1104 / 2020-11-04 + +- Updated the IANA media registry entries as of release date. + +- Added `application/x-zip-compressed`. [#36][pull-36] + +- Updated the contributing guide to include information about the release + process as described in [#18][issue-18] + +- Corrected a misspelling of Yoran Brondsema's name. Sorry, Yoran. + [#35][pull-35] + +## 3.2020.0512 / 2020-05-12 + +- Updated the IANA media registry entries as of release date. + +- Added file extensions for `HEIC` image types. [#34][pull-34] + +## 3.2020.0425 / 2020-04-25 + +- Updated the IANA media registry entries as of release date. + +- Added several RAW image types based on data from GNOME RAW Thumbnailer. + [#33][pull-33] fixing [#32][issue-32] + +- Added `audio/wav`. [#31][pull-31] + +- Added a type for Smarttech notebook files. [#30][pull-30] + +- Added an alias for audio/m4a files. [#29][pull-29] + +- Added application/x-ms-dos-executable. [#28][pull-28] + +## 3.2019.1009 / 2019-10-09 + +- Updated the IANA media registry entries as of release date. + +- Reordered the `.ai` extension so that it is not the preferred extension for + `application/pdf` [#24][pull-24] + +## 3.2019.0904 / 2019-09-04 + +- Updated the IANA media registry entries as of release date. + +- Moved the `.ai` extension from `application/postscript` to `application/pdf`. + [#23][pull-23] fixing [#22][issue-22] + +## 3.2019.0331 / 2019-03-31 + +- Updated the IANA media registry entries as of release date. + +- Added support for `application/wasm` with extension `.wasm`. [#21][pull-21] + +- Fixed `application/ecmascript` extensions. [#20][pull-20] + +## 3.2018.0812 / 2018-08-12 + +- Added `.xsd` extension to `text/xml`. [pull-10][pull-10] + +- Added `.js` and `.mjs` extensions to `text/ecmascript` and `text/javascript`. + [#11][pull-11] + +- Added `.ipa` extension to `application/octet-stream`. [#12][pull-12] + +- Moved extensions `.markdown` and `.md` and added `.mkd` extension to + `text/markdown`. [#13][pull-13] + +- Because of a bug found with mime-types 3 before 3.2.1, this version requires + mime-types 3.2 or later to manage data. + +- Updated the IANA media registry entries as of release date. The biggest major + change here is the addition of the `font/` top-level media type. + +- MIME type changes not introduced by pull requests will no longer be + individually tracked. + +- Clarified that the YAML editable format is not shipped with the Ruby gem for + size considerations. + +## 3.2016.0521 / 2016-05-21 + +- Updated the known extension list for `application/octet-stream` and + `application/pgp-encrypted` to include `gpg` as an extension. Fixes + [#3][pull-3] by Tao Guo ([@taonic](https://github.com/taonic)). + +- Updated the IANA media registry entries as of release date. + +- This version requires mime-types 3.1 or later to manage data because of an + issue with JSON data encoding for the `xrefs` field. + +## 3.2016.0221 / 2016-02-21 + +- Updated the known extensions list for audio/mp4. + +- Updated to [Contributor Covenant 1.4][code of conduct]. + +- Shift the support code in this repository to be developed with Ruby 2.3. This + involves: + + - Adding `frozen_string_literal: true` to all Ruby files. + - Applied some recommended readability and performance suggestions from + Rubocop. Ignored some style recommendations, too. + - Replaced some cases of `foo.bar rescue nil` with `foo&.bar`. + +## 3.2015.1120 / 2015-11-20 + +- Extracted from [ruby-mime-types][rmt]. +- Added a [Code of Conduct][Code of Conduct]. +- The versioning has changed to be semantic on format plus date in two parts. + + - All registry formats have been updated to remove deprecated data. + - The columnar format has been updated to store three boolean flags in a + single flags file. + +- Updated the conversion and management utilities to work with ruby-mime-types + 3.x. + +- Updated the IANA media registry entries as of release date. + +## 2.6.2 / 2015-09-13 + +- Updated the IANA media registry entries as of release date. + +## 2.6 / 2015-05-25 + +- Steven Michael Thomas + ([@stevenmichaelthomas](https://github.com/stevenmichaelthomas)) added `woff2` + as an extension to `application/font-woff`, + [ruby-mime-types#99][ruby-mime-types#99]. +- Updated the IANA media registry entries as of release date. + +## 2.5 / 2015-04-25 + +- Updated the IANA media registry entries as of release date. + +- Andy Brody ([@ab](https://github.com/ab)) fixed a pair of embarrassing typos + in `text/csv` and `text/tab-separated-values`, + [ruby-mime-types#89](https://github.com/mime-types/ruby-mime-types/pull/89). + +- Aggelos Avgerinos ([@eavgerinos](https://github.com/eavgerinos)) added the + unregistered MIME type `image/x-ms-bmp` with the extension `bmp`, + [ruby-mime-types#90](https://github.com/mime-types/ruby-mime-types/pull/90). + +## 2.4.2 / 2014-10-15 + +- Added `application/vnd.ms-outlook` as an unregistered MIME type with the + extension `msg`. Provided by [@keerthisiv](https://github.com/keerthisiv) in + [ruby-mime-types#72](https://github.com/mime-types/ruby-mime-types/pull/72). + +## 2.4.1 / 2014-10-07 + +- Changed the sort order of many of the extensions to restore behaviour from + mime-types 1.25.1. +- Added `friendly` MIME::Type descriptions where known. +- Added `reg`, `ps1`, and `vbs` extensions to `application/x-msdos-program` and + `application/x-msdownload`. +- Updated the IANA media registry entries as of release date. + +## 2.3 / 2014-05-23 + +- Updated the IANA media registry entries as of release date. + +## 2.2 / 2014-03-14 + +- Added `.sj` to `application/javascript` as provided by Brandon Galbraith + ([@brandongalbraith](https://github.com/brandongalbraith)) in + [ruby-mime-types#58](https://github.com/mime-types/ruby-mime-types/pull/58). + +- Marked `application/excel` and `application/x-excel` as obsolete in favour of + `application/vnd.ms-excel` per + [ruby-mime-types#60](https://github.com/mime-types/ruby-mime-types/pull/60). + +- Merged duplicate MIME types into the registered MIME type. The only difference + between the MIME types was capitalization; the MIME type registry is + case-preserving. + +- Updated the IANA media registry entries as of release date. + +## 2.1 / 2014-01-25 + +- The IANA media type registry format changed, resulting in updates to most of + the 1,427 registered MIME types. + - Many registered MIME types have had some metadata updates due to the change + in the IANA registry format. + - MIME types having a publicly available registry application now include a + link to that file in references. + - Added `xrefs` data as discovered (see the API changes noted above). + +- The Apache httpd mime types configuration has been added to track additional + common but unregistered MIME types and known extensions for those MIME types. + This has affected many of the available MIME types. + +- Merged the non-standard VMS platform `text/plain` with the standard + `text/plain`. + +[code of conduct]: CODE_OF_CONDUCT.md +[httpd]: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +[issue-18]: https://github.com/mime-types/mime-types-data/issues/18 +[issue-22]: https://github.com/mime-types/mime-types-data/issues/22 +[issue-32]: https://github.com/mime-types/mime-types-data/issues/32 +[issue-48]: https://github.com/mime-types/mime-types-data/issues/48 +[issue-54]: https://github.com/mime-types/mime-types-data/issues/54 +[issue-55]: https://github.com/mime-types/mime-types-data/issues/55 +[mini_mime]: https://github.com/discourse/mini_mime/issues/41 +[provisional]: https://www.iana.org/assignments/provisional-standard-media-types/provisional-standard-media-types.xml +[pull-109]: https://github.com/mime-types/mime-types-data/pull/109 +[pull-10]: https://github.com/mime-types/mime-types-data/pull/10 +[pull-11]: https://github.com/mime-types/mime-types-data/pull/11 +[pull-12]: https://github.com/mime-types/mime-types-data/pull/12 +[pull-13]: https://github.com/mime-types/mime-types-data/pull/13 +[pull-191]: https://github.com/mime-types/mime-types-data/pull/191 +[pull-192]: https://github.com/mime-types/mime-types-data/pull/192 +[pull-20]: https://github.com/mime-types/mime-types-data/pull/20 +[pull-21]: https://github.com/mime-types/mime-types-data/pull/21 +[pull-23]: https://github.com/mime-types/mime-types-data/pull/23 +[pull-24]: https://github.com/mime-types/mime-types-data/pull/24 +[pull-28]: https://github.com/mime-types/mime-types-data/pull/28 +[pull-29]: https://github.com/mime-types/mime-types-data/pull/29 +[pull-30]: https://github.com/mime-types/mime-types-data/pull/30 +[pull-31]: https://github.com/mime-types/mime-types-data/pull/31 +[pull-33]: https://github.com/mime-types/mime-types-data/pull/33 +[pull-34]: https://github.com/mime-types/mime-types-data/pull/34 +[pull-35]: https://github.com/mime-types/mime-types-data/pull/35 +[pull-36]: https://github.com/mime-types/mime-types-data/pull/36 +[pull-3]: https://github.com/mime-types/mime-types-data/pull/3 +[pull-40]: https://github.com/mime-types/mime-types-data/pull/40 +[pull-43]: https://github.com/mime-types/mime-types-data/pull/43 +[pull-45]: https://github.com/mime-types/mime-types-data/pull/45 +[pull-46]: https://github.com/mime-types/mime-types-data/pull/46 +[pull-47]: https://github.com/mime-types/mime-types-data/pull/47 +[pull-50]: https://github.com/mime-types/mime-types-data/pull/50 +[pull-52]: https://github.com/mime-types/mime-types-data/pull/52 +[pull-53]: https://github.com/mime-types/mime-types-data/pull/53 +[pull-77]: https://github.com/mime-types/mime-types-data/pull/77 +[pull-81]: https://github.com/mime-types/mime-types-data/pull/81 +[pull-96]: https://github.com/mime-types/mime-types-data/pull/96 +[pull-98]: https://github.com/mime-types/mime-types-data/pull/98 +[registry]: https://www.iana.org/assignments/media-types/media-types.xml +[rmt]: https://github.com/mime-types/ruby-mime-types +[ruby-mime-types#163]: https://github.com/mime-types/ruby-mime-types/issues/163 +[ruby-mime-types#224]: https://github.com/mime-types/ruby-mime-types/pull/224 +[ruby-mime-types#99]: https://github.com/mime-types/ruby-mime-types/pull/99 +[tika]: https://github.com/apache/tika/blob/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml +[tp]: https://guides.rubygems.org/trusted-publishing/ diff --git a/gems/gems/mime-types-data-3.2025.0909/CODE_OF_CONDUCT.md b/gems/gems/mime-types-data-3.2025.0909/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..184b5fb --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances of + any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, + without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at [INSERT CONTACT +METHOD]. All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +. Translations are available at +. + +[homepage]: https://www.contributor-covenant.org +[Mozilla CoC]: https://github.com/mozilla/diversity diff --git a/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTING.md b/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTING.md new file mode 100644 index 0000000..a07c0a2 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTING.md @@ -0,0 +1,150 @@ +# Contributing + +Contribution to mime-types-data is encouraged in any form: a bug report, new +MIME type definitions, or additional code to help manage the MIME types. There +are a few DOs and DON'Ts for contributions. + +- DO: + + - Keep the coding style that already exists for any updated Ruby code (support + or otherwise). I use [Standard Ruby][standardrb] for linting and formatting. + + - Use thoughtfully-named topic branches for contributions. Rebase your commits + into logical chunks as necessary. + + - Use [quality commit messages][qcm]. + + - Add your name or GitHub handle to `CONTRIBUTORS.md` and a record in the + `CHANGELOG.md` as a separate commit from your main change. (Follow the style + in the `CHANGELOG.md` and provide a link to your PR.) + +- DO NOT: + + - Modify `VERSION` in `lib/mime/types/data.rb`. When your patch is accepted + and a release is made, the version will be updated at that point. Most + likely, once merged, your release will be rolled into the next automatic + release. + + - Modify `mime-types-data.gemspec`; it is a generated file. (You _may_ use + `rake gemspec` to regenerate it if your change involves metadata related to + gem itself). + + - Modify the `Gemfile`. + + - Modify any files in `data/`. Any changes to be captured here will be + automatically updated on the next release. + +Although mime-types-data was extracted from the [Ruby mime-types][rmt] gem and +the support files are written in Ruby, the _target_ of mime-types-data is any +implementation that wishes to use the data as a MIME types registry, so I am +particularly interested in tools that will create a mime-types-data package for +other languages. + +## Adding or Modifying MIME Types + +The Ruby mime-types gem loads its data from files encoded in the `data` +directory in this gem by loading `mime-types-data` and reading +MIME::Types::Data::PATH. These files are compiled files from the collection of +data in the `types` directory. + +> [!WARNING] +> +> Pull requests that include changes to files in `data/` will require amendment +> to revert these files. + +New or modified MIME types should be edited in the appropriate YAML file under +`types`. The format is as shown below for the `application/xml` MIME type in +`types/application.yml`. + +```yaml +- !ruby/object:MIME::Type + content-type: application/xml + encoding: 8bit + extensions: + - xml + - xsl + references: + - IANA + - RFC3023 + xrefs: + rfc: + - rfc3023 + registered: true +``` + +There are other fields that can be added, matching the fields discussed in the +documentation for MIME::Type. Pull requests for MIME types should just contain +the changes to the YAML files for the new or modified MIME types; I will convert +the YAML files to JSON prior to a new release. I would rather not have to verify +that the JSON matches the YAML changes, which is why it is not necessary to +convert for the pull request. + +If you are making a change for a private fork, use `rake convert:yaml:json` to +convert the YAML to JSON, or `rake convert:yaml:columnar` to convert it to the +new columnar format. + +### Updating Types from the IANA or Apache Lists + +If you are maintaining a private fork and wish to update your copy of the MIME +types registry used by this gem, you can do this with the rake tasks: + +```sh +$ rake mime:iana +$ rake mime:apache +``` + +#### A Note on Provisional Types + +Provisionally registered types from IANA are contained in the `types/*.yaml` +files. Per IANA, + +> This registry, unlike some other provisional IANA registries, is only for +> temporary use. Entries in this registry are either finalized and moved to the +> main media types registry or are abandoned and deleted. Entries in this +> registry are suitable for use for development and test purposes only. + +Provisional types are rewritten when updated, so pull requests to manually +customize provisional types (such as with extensions) are considered lower +priority. It is recommended that any updates required to the data be performed +in your application if you require provisional types. + +## The Release Process + +The release process is almost completely automated, where upstream MIME types +will be updated weekly (on Tuesdays) and be presented in a reviewable pull +request. Once merged, the release will be automatically published to RubyGems. + +With the addition of [trusted publishing][tp], there should no longer be a need +for manual releases outside of the update cycle. Pull requests merged between +cycles will be released on the next cycle. + +If it becomes necessary to perform a manual release, IANA updates should be +performed manually. + +1. Review any outstanding issues or pull requests to see if anything needs to be + addressed. This is necessary because there is no automated source for + extensions for the thousands of MIME entries. (Suggestions and/or pull + requests for same would be deeply appreciated.) +2. `bundle install` +3. Review the changes to make sure that the changes are sane. The IANA data + source changes from time to time, resulting in big changes or even a broken + step 4. (The most recent change was the addition of the `font/*` top-level + category.) +4. Write up the changes in `CHANGELOG.md`. If any PRs have been merged, these + should be noted specifically and contributions should be added in + `Contributing.md`. +5. Ensure that the `VERSION` in `lib/mime/types/data.rb` is updated with the + current date UTC. +6. Run `rake gemspec` to ensure that `mime-types.gemspec` has been updated. +7. Commit the changes and push to GitHub. The automated trusted publishing + workflow will pick up the changes. + +This list is based on issue [#18][issue-18]. + +[hoe]: https://github.com/seattlerb/hoe +[issue-18]: https://github.com/mime-types/mime-types-data/issues/18 +[qcm]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[release-gem]: https://github.com/rubygems/release-gem +[rmt]: https://github.com/mime-types/ruby-mime-types/ +[standardrb]: https://github.com/standardrb/standard +[tp]: https://guides.rubygems.org/trusted-publishing/ diff --git a/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTORS.md b/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTORS.md new file mode 100644 index 0000000..3967663 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/CONTRIBUTORS.md @@ -0,0 +1,54 @@ +# Contributors + +- Austin Ziegler created mime-types. + +Thanks to everyone else who has contributed to mime-types: + +- Aaron Patterson +- Aggelos Avgerinos +- Alessio Parma +- Alex Balhatchet +- Andre Pankratz +- Andrey Eremin +- Andy Brody +- Arnaud Meuret +- Bradley Meck +- Brandon Galbraith +- Chris Gat +- Chris Salzberg +- David Genord +- Eric Marden +- Garret Alfert +- Godfrey Chan +- Greg Brockman +- Hans de Graaff +- Henrik Hodne +- Jeremy Evans +- John Gardner +- Jon Sneyers +- Jonas Petersen +- Juanito Fatas +- Keerthi Siva +- Ken Ip +- Łukasz Śliwa +- Lucia +- Mark Young +- Martin d'Allens +- Mauricio Linhares +- Mohammed Gad +- Myk Klemme +- nycvotes-dev +- Postmodern +- Richard Hirner +- Richard Hurt +- Richard Schneeman +- Robert Buchberger +- Samuel Giddins +- Samuel Williams +- Sergio Baptista +- Shane Eskritt +- Tao Guo +- Thomas Leese +- Tibor Szolár +- Todd Carrico +- Yoran Brondsema diff --git a/gems/gems/mime-types-data-3.2025.0909/LICENCE.md b/gems/gems/mime-types-data-3.2025.0909/LICENCE.md new file mode 100644 index 0000000..1c4e269 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/LICENCE.md @@ -0,0 +1,24 @@ +## Licence + +- Copyright 2003–2025 Austin Ziegler and other contributors. + +The software in this repository is made available under the MIT license. + +### MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of +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. diff --git a/gems/gems/mime-types-data-3.2025.0909/Manifest.txt b/gems/gems/mime-types-data-3.2025.0909/Manifest.txt new file mode 100644 index 0000000..80ea8c2 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/Manifest.txt @@ -0,0 +1,23 @@ +CHANGELOG.md +CODE_OF_CONDUCT.md +CONTRIBUTING.md +CONTRIBUTORS.md +LICENCE.md +Manifest.txt +README.md +Rakefile +SECURITY.md +data/content_type_mime.db +data/ext_mime.db +data/mime-types.json +data/mime.content_type.column +data/mime.docs.column +data/mime.encoding.column +data/mime.flags.column +data/mime.friendly.column +data/mime.pext.column +data/mime.spri.column +data/mime.use_instead.column +data/mime.xrefs.column +lib/mime-types-data.rb +lib/mime/types/data.rb diff --git a/gems/gems/mime-types-data-3.2025.0909/README.md b/gems/gems/mime-types-data-3.2025.0909/README.md new file mode 100644 index 0000000..f858647 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/README.md @@ -0,0 +1,81 @@ +# mime-types-data + +- home :: https://github.com/mime-types/mime-types-data/ +- issues :: https://github.com/mime-types/mime-types-data/issues +- code :: https://github.com/mime-types/mime-types-data/ +- changelog :: + https://github.com/mime-types/mime-types-data/blob/main/CHANGELOG.md + +## Description + +mime-types-data provides a registry for information about MIME media type +definitions. It can be used with the Ruby mime-types library or other software +to determine defined filename extensions for MIME types, or to use filename +extensions to look up the likely MIME type definitions. + +### About MIME Media Types + +MIME media types are used in MIME-compliant communications, as in e-mail or HTTP +traffic, to indicate the type of content which is transmitted. The registry +provided in mime-types-data contains detailed information about MIME entities. +There are many types defined by RFCs and vendors, so the list is long but +invariably; don't hesitate to offer additional type definitions for +consideration. MIME type definitions found in mime-types are from RFCs, W3C +recommendations, the [IANA Media Types registry][registry], the +[Apache httpd registry][httpd], the [Apache Tika media registry][tika] and user +contributions. It conforms to RFCs 2045 and 2231. + +### Data Formats Supported in this Registry + +This registry contains the MIME media types in four formats: + +- A YAML format matching the Ruby mime-types library objects (MIME::Type). This + is the primary user-editable format for developers. It is _not_ shipped with + the gem due to size considerations. +- A JSON format converted from the YAML format. Prior to Ruby mime-types 3.0, + this was the main consumption format and is still recommended for any + implementation that does not wish to implement the columnar format, which has + a significant implementation effort cost. +- An encoded text format splitting the data for each MIME type across multiple + files. This columnar data format reduces the minimal data load substantially, + resulting in a performance improvement at the cost of more complex code for + loading the data on-demand. This is the default format for Ruby mime-types + 3.0. +- An encoded text format for use with [`mini_mime`][minimime]. This can be + enabled with: + + ```ruby + MiniMime::Configuration.ext_db_path = + File.join(MIME::Types::Data::PATH, "ext_mime.db") + MiniMime::Configuration.content_type_db_path = + File.join(MIME::Types::Data::PATH, "content_type_mime.db") + ``` + +## mime-types-data Modified Semantic Versioning + +mime-types-data uses a [Semantic Versioning][semver] scheme heavily modified +with [Calendar Versioning][calver] aspects to indicate that the data formats +compatibility based on a `SCHEMA` version and the date of the data update: +`SCHEMA.YEAR.MONTHDAY`. + +1. If an incompatible data format change is made to any of the supported + formats, `SCHEMA` will be incremented. The current `SCHEMA` is 3, supporting + the YAML, JSON, columnar, and mini-mime formats required for Ruby mime-types + 3.0. + +2. When the data is updated, the `YEAR.MONTHDAY` combination will be updated. An + update on the last day of October 2025 would be written as `2025.1031`, + resulting in the full version of `3.2025.1031`. + +3. If multiple versions of the data need to be released on the same day due to + error, there will be an additional `REVISION` field incremented on the end of + the version. Thus, if three revisions need to be published on October 31st, + 2015, the last release would be `3.2015.1031.2` (remember that the first + release has an implied `0`.) + +[registry]: https://www.iana.org/assignments/media-types/media-types.xml +[semver]: http://semver.org/ +[minimime]: https://github.com/discourse/mini_mime +[httpd]: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +[tika]: https://github.com/apache/tika/blob/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml +[calver]: https://calver.org diff --git a/gems/gems/mime-types-data-3.2025.0909/Rakefile b/gems/gems/mime-types-data-3.2025.0909/Rakefile new file mode 100644 index 0000000..cd2fabb --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/Rakefile @@ -0,0 +1,105 @@ +# frozen_string_literal: true + +require "rubygems" +require "hoe" +require "rake/clean" + +$LOAD_PATH.unshift("lib", "support") + +Hoe.plugin :halostatue + +Hoe.plugins.delete :debug +Hoe.plugins.delete :newb +Hoe.plugins.delete :publish +Hoe.plugins.delete :signing + +Hoe.spec "mime-types-data" do + developer("Austin Ziegler", "halostatue@gmail.com") + + self.trusted_release = ENV["rubygems_release_gem"] == "true" + + require_ruby_version ">= 2.0" + + license "MIT" + + spec_extras[:metadata] = ->(val) { + val.merge!({"rubygems_mfa_required" => "true"}) + } + + extra_dev_deps << ["hoe", "~> 4.0"] + extra_dev_deps << ["hoe-halostatue", "~> 2.0"] + extra_dev_deps << ["mime-types", "> 3.6.2", "< 5"] + extra_dev_deps << ["nokogiri", "~> 1.6"] + extra_dev_deps << ["rake", ">= 10.0", "< 14"] + extra_dev_deps << ["standard", "~> 1.0"] +end + +namespace :mime do + desc "Download the current MIME type registrations from IANA." + task :iana, [:destination] do |_, args| + require "iana_registry" + IANARegistry.download(to: args.destination) + end + + desc "Download the current MIME type configuration from Apache httpd." + task :apache, [:destination] do |_, args| + require "apache_mime_types" + ApacheMIMETypes.download(to: args.destination) + end + + desc "Download the current MIME type configuration from Apache Tika." + task :tika, [:destination] do |_, args| + require "tika_mime_types" + TikeMIMETypes.download(to: args.destination) + end +end + +task :version do + require "mime/types/data" + puts MIME::Types::Data::VERSION +end + +namespace :release do + desc "Prepare a new release" + task :prepare do + require "prepare_release" + + PrepareRelease.new + .download_and_convert + .write_updated_version + .write_updated_history + .rake_git_manifest + .rake_gemspec + end + + desc "Prepare a new release for use with GitHub Actions" + task :gha do + require "prepare_release" + + PrepareRelease.new + .download_and_convert + .write_updated_version + .write_updated_history + .rake_git_manifest + .rake_gemspec + .as_gha_vars + end +end + +desc "Full data conversion for release" +task :convert do + require "prepare_release" + + PrepareRelease.new.convert_types +end + +task "convert:upgrade" do + require "convert" + Convert.from_yaml_to_yaml +end + +Rake::Task["gem"].prerequisites.unshift("convert") +Rake::Task["gem"].prerequisites.unshift("git:manifest") +Rake::Task["gem"].prerequisites.unshift("gemspec") + +# vim: syntax=ruby diff --git a/gems/gems/mime-types-data-3.2025.0909/SECURITY.md b/gems/gems/mime-types-data-3.2025.0909/SECURITY.md new file mode 100644 index 0000000..23390a6 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/SECURITY.md @@ -0,0 +1,7 @@ +# mime-types-data Security + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). Tidelift will +coordinate the fix and disclosure. diff --git a/gems/gems/mime-types-data-3.2025.0909/data/content_type_mime.db b/gems/gems/mime-types-data-3.2025.0909/data/content_type_mime.db new file mode 100644 index 0000000..5fa4cc8 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/content_type_mime.db @@ -0,0 +1,1074 @@ +ez application/andrew-inset base64 +aw application/applixware base64 +atom application/atom+xml 8bit +atomcat application/atomcat+xml 8bit +atomsvc application/atomsvc+xml 8bit +bpm application/bizagi-modeler base64 +cbor application/cbor base64 +ccxml application/ccxml+xml base64 +cdmia application/cdmi-capability base64 +cdmic application/cdmi-container base64 +cdmid application/cdmi-domain base64 +cdmio application/cdmi-object base64 +cdmiq application/cdmi-queue base64 +cdr application/coreldraw base64 +mpd application/dash+xml base64 +davmount application/davmount+xml base64 +dcm application/dicom base64 +dif application/dif+xml base64 +dbk application/docbook+xml base64 +dssc application/dssc+der base64 +xdssc application/dssc+xml base64 +ecma application/ecmascript base64 +emma application/emma+xml base64 +hdr application/envi.hdr base64 +epub application/epub+zip base64 +exi application/exi base64 +fits application/fits base64 +pfr application/font-tdpfr base64 +gml application/gml+xml base64 +gpx application/gpx+xml base64 +gxf application/gxf base64 +gz application/gzip base64 +hwpx application/hwp+zip base64 +stk application/hyperstudio base64 +ink application/inkml+xml base64 +ipfix application/ipfix base64 +jar application/java-archive base64 +ser application/java-serialized-object base64 +js application/javascript 8bit +json application/json 8bit +jsonml application/jsonml+json base64 +lostxml application/lost+xml base64 +hqx application/mac-binhex40 8bit +mads application/mads+xml base64 +webmanifest application/manifest+json base64 +mrc application/marc base64 +mrcx application/marcxml+xml base64 +ma application/mathematica base64 +mathml application/mathml+xml base64 +mbox application/mbox base64 +mscml application/mediaservercontrol+xml base64 +metalink application/metalink+xml base64 +meta4 application/metalink4+xml base64 +mets application/mets+xml base64 +mods application/mods+xml base64 +m21 application/mp21 base64 +mp4 application/mp4 base64 +doc application/msword base64 +mxf application/mxf base64 +bin application/octet-stream base64 +oda application/oda base64 +opf application/oebps-package+xml base64 +ogx application/ogg base64 +omdoc application/omdoc+xml base64 +onepkg application/onenote base64 +xer application/patch-ops-error+xml base64 +pdf application/pdf base64 +asc application/pgp-signature base64 +prf application/pics-rules base64 +p10 application/pkcs10 base64 +p7m application/pkcs7-mime base64 +p7s application/pkcs7-signature base64 +p8 application/pkcs8 base64 +cer application/pkix-cert base64 +crl application/pkix-crl base64 +pkipath application/pkix-pkipath base64 +pki application/pkixcmp base64 +pls application/pls+xml base64 +eps application/postscript 8bit +prql application/prql base64 +cw application/prs.cww base64 +rnd application/prs.nprend base64 +pskcxml application/pskc+xml base64 +rdf application/rdf+xml 8bit +rif application/reginfo+xml base64 +rnc application/relax-ng-compact-syntax base64 +rl application/resource-lists+xml base64 +rld application/resource-lists-diff+xml base64 +rs application/rls-services+xml base64 +gbr application/rpki-ghostbusters base64 +mft application/rpki-manifest base64 +roa application/rpki-roa base64 +rsd application/rsd+xml base64 +rss application/rss+xml base64 +rtf application/rtf base64 +sbml application/sbml+xml base64 +scq application/scvp-cv-request base64 +scs application/scvp-cv-response base64 +spq application/scvp-vp-request base64 +sdp application/sdp base64 +srl application/sereal base64 +setpay application/set-payment-initiation base64 +setreg application/set-registration-initiation base64 +soc application/sgml-open-catalog base64 +shf application/shf+xml base64 +siv application/sieve base64 +sldprt application/sldworks base64 +smi application/smil+xml 8bit +rq application/sparql-query base64 +srx application/sparql-results+xml base64 +gram application/srgs base64 +grxml application/srgs+xml base64 +sru application/sru+xml base64 +ssdl application/ssdl+xml base64 +ssml application/ssml+xml base64 +tei application/tei+xml base64 +tfi application/thraud+xml base64 +tsd application/timestamped-data base64 +ttml application/ttml+xml base64 +pwn application/vnd.3M.Post-it-Notes base64 +plb application/vnd.3gpp.pic-bw-large base64 +psb application/vnd.3gpp.pic-bw-small base64 +pvb application/vnd.3gpp.pic-bw-var base64 +sms application/vnd.3gpp.sms base64 +tcap application/vnd.3gpp2.tcap base64 +gph application/vnd.FloGraphIt base64 +zmm application/vnd.HandHeld-Entertainment+xml base64 +kne application/vnd.Kinar base64 +mwf application/vnd.MFER base64 +daf application/vnd.Mobius.DAF base64 +dis application/vnd.Mobius.DIS base64 +mbk application/vnd.Mobius.MBK base64 +mqy application/vnd.Mobius.MQY base64 +msl application/vnd.Mobius.MSL base64 +plc application/vnd.Mobius.PLC base64 +txf application/vnd.Mobius.TXF base64 +qxd application/vnd.Quark.QuarkXPress 8bit +twd application/vnd.SimTech-MindMapper base64 +aso application/vnd.accpac.simply.aso base64 +imp application/vnd.accpac.simply.imp base64 +acu application/vnd.acucobol base64 +atc application/vnd.acucorp 7bit +aet application/vnd.adobe.aftereffects.template base64 +air application/vnd.adobe.air-application-installer-package+zip base64 +fcdt application/vnd.adobe.formscentral.fcdt base64 +fxp application/vnd.adobe.fxp base64 +idml application/vnd.adobe.indesign-idml-package base64 +xdp application/vnd.adobe.xdp+xml base64 +xfdf application/vnd.adobe.xfdf base64 +ahead application/vnd.ahead.space base64 +azf application/vnd.airzip.filesecure.azf base64 +azs application/vnd.airzip.filesecure.azs base64 +azw application/vnd.amazon.ebook base64 +acc application/vnd.americandynamics.acc base64 +ami application/vnd.amiga.ami base64 +apk application/vnd.android.package-archive base64 +cii application/vnd.anser-web-certificate-issue-initiation base64 +fti application/vnd.anser-web-funds-transfer-initiation base64 +atx application/vnd.antix.game-component base64 +mpkg application/vnd.apple.installer+xml base64 +key application/vnd.apple.keynote base64 +m3u8 application/vnd.apple.mpegurl base64 +numbers application/vnd.apple.numbers base64 +pages application/vnd.apple.pages base64 +pkpass application/vnd.apple.pkpass base64 +swi application/vnd.aristanetworks.swi base64 +iota application/vnd.astraea-software.iota base64 +aep application/vnd.audiograph base64 +mpm application/vnd.blueice.multipass base64 +bmi application/vnd.bmi base64 +rep application/vnd.businessobjects base64 +cdxml application/vnd.chemdraw+xml base64 +mmd application/vnd.chipnuts.karaoke-mmd base64 +cdy application/vnd.cinderella base64 +cla application/vnd.claymore base64 +rp9 application/vnd.cloanto.rp9 base64 +c4d application/vnd.clonk.c4group base64 +c11amc application/vnd.cluetrust.cartomobile-config base64 +c11amz application/vnd.cluetrust.cartomobile-config-pkg base64 +csp application/vnd.commonspace base64 +cdbcmsg application/vnd.contact.cmsg base64 +cmc application/vnd.cosmocaller base64 +clkx application/vnd.crick.clicker base64 +clkk application/vnd.crick.clicker.keyboard base64 +clkp application/vnd.crick.clicker.palette base64 +clkt application/vnd.crick.clicker.template base64 +clkw application/vnd.crick.clicker.wordbank base64 +wbs application/vnd.criticaltools.wbs+xml base64 +pml application/vnd.ctc-posml base64 +ppd application/vnd.cups-ppd base64 +curl application/vnd.curl base64 +car application/vnd.curl.car base64 +pcurl application/vnd.curl.pcurl base64 +dart application/vnd.dart base64 +rdz application/vnd.data-vision.rdz base64 +uvd application/vnd.dece.data base64 +uvt application/vnd.dece.ttml+xml base64 +uvvx application/vnd.dece.unspecified base64 +uvvz application/vnd.dece.zip base64 +fe_launch application/vnd.denovo.fcselayout-link base64 +dna application/vnd.dna base64 +mlp application/vnd.dolby.mlp base64 +dpg application/vnd.dpgraph base64 +dfac application/vnd.dreamfactory base64 +kpxx application/vnd.ds-keypoint base64 +ait application/vnd.dvb.ait base64 +svc application/vnd.dvb.service base64 +geo application/vnd.dynageo base64 +mag application/vnd.ecowin.chart base64 +nml application/vnd.enliven base64 +esf application/vnd.epson.esf base64 +msf application/vnd.epson.msf base64 +qam application/vnd.epson.quickanime base64 +slt application/vnd.epson.salt base64 +ssf application/vnd.epson.ssf base64 +es3 application/vnd.eszigno3+xml base64 +asice application/vnd.etsi.asic-e+zip base64 +asics application/vnd.etsi.asic-s+zip base64 +ez2 application/vnd.ezpix-album base64 +ez3 application/vnd.ezpix-package base64 +fdf application/vnd.fdf base64 +mseed application/vnd.fdsn.mseed base64 +dataless application/vnd.fdsn.seed base64 +ftc application/vnd.fluxtime.clip base64 +frm application/vnd.framemaker base64 +fnc application/vnd.frogans.fnc base64 +ltf application/vnd.frogans.ltf base64 +fsc application/vnd.fsc.weblaunch 7bit +oas application/vnd.fujitsu.oasys base64 +oa2 application/vnd.fujitsu.oasys2 base64 +oa3 application/vnd.fujitsu.oasys3 base64 +fg5 application/vnd.fujitsu.oasysgp base64 +bh2 application/vnd.fujitsu.oasysprs base64 +ddd application/vnd.fujixerox.ddd base64 +xdw application/vnd.fujixerox.docuworks base64 +xbd application/vnd.fujixerox.docuworks.binder base64 +fzs application/vnd.fuzzysheet base64 +txd application/vnd.genomatix.tuxedo base64 +ggb application/vnd.geogebra.file base64 +ggs application/vnd.geogebra.slides base64 +ggt application/vnd.geogebra.tool base64 +gex application/vnd.geometry-explorer base64 +gxt application/vnd.geonext base64 +g2w application/vnd.geoplan base64 +g3w application/vnd.geospace base64 +gmx application/vnd.gmx base64 +kml application/vnd.google-earth.kml+xml 8bit +kmz application/vnd.google-earth.kmz 8bit +gqf application/vnd.grafeq base64 +gac application/vnd.groove-account base64 +ghf application/vnd.groove-help base64 +gim application/vnd.groove-identity-message base64 +grv application/vnd.groove-injector base64 +gtm application/vnd.groove-tool-message base64 +tpl application/vnd.groove-tool-template base64 +vcg application/vnd.groove-vcard base64 +hal application/vnd.hal+xml base64 +hbci application/vnd.hbci base64 +les application/vnd.hhe.lesson-player base64 +plt application/vnd.hp-HPGL base64 +pcl application/vnd.hp-PCL base64 +pclxl application/vnd.hp-PCLXL base64 +hpid application/vnd.hp-hpid base64 +hps application/vnd.hp-hps base64 +jlt application/vnd.hp-jlyt base64 +sfd-hdstx application/vnd.hydrostatix.sof-data base64 +mpy application/vnd.ibm.MiniPay base64 +emm application/vnd.ibm.electronic-media base64 +afp application/vnd.ibm.modcap base64 +irm application/vnd.ibm.rights-management base64 +sc application/vnd.ibm.secure-container base64 +icc application/vnd.iccprofile base64 +igl application/vnd.igloader base64 +ivp application/vnd.immervision-ivp base64 +ivu application/vnd.immervision-ivu base64 +igm application/vnd.insors.igm base64 +xpw application/vnd.intercon.formnet base64 +i2g application/vnd.intergeo base64 +qbo application/vnd.intu.qbo base64 +qfx application/vnd.intu.qfx base64 +nar application/vnd.iptc.g2.newsmessage+xml base64 +rcprofile application/vnd.ipunplugged.rcprofile base64 +irp application/vnd.irepository.package+xml base64 +xpr application/vnd.is-xpr base64 +fcs application/vnd.isac.fcs base64 +jam application/vnd.jam base64 +hprof application/vnd.java.hprof base64 +txt application/vnd.java.hprof.text base64 +rms application/vnd.jcp.javame.midlet-rms base64 +jisp application/vnd.jisp base64 +joda application/vnd.joost.joda-archive base64 +ktr application/vnd.kahootz base64 +karbon application/vnd.kde.karbon base64 +chrt application/vnd.kde.kchart base64 +kfo application/vnd.kde.kformula base64 +flw application/vnd.kde.kivio base64 +kon application/vnd.kde.kontour base64 +kpr application/vnd.kde.kpresenter base64 +ksp application/vnd.kde.kspread base64 +kwd application/vnd.kde.kword base64 +htke application/vnd.kenameaapp base64 +kia application/vnd.kidspiration base64 +skd application/vnd.koan base64 +sse application/vnd.kodak-descriptor base64 +lasxml application/vnd.las.las+xml base64 +lbd application/vnd.llamagraphics.life-balance.desktop base64 +lbe application/vnd.llamagraphics.life-balance.exchange+xml base64 +wks application/vnd.lotus-1-2-3 base64 +apr application/vnd.lotus-approach base64 +pre application/vnd.lotus-freelance base64 +nsf application/vnd.lotus-notes base64 +org application/vnd.lotus-organizer base64 +scm application/vnd.lotus-screencam base64 +lwp application/vnd.lotus-wordpro base64 +portpkg application/vnd.macports.portpkg base64 +mcd application/vnd.mcd base64 +mc1 application/vnd.medcalcdata base64 +cdkey application/vnd.mediastation.cdkey base64 +mfm application/vnd.mfmp base64 +flo application/vnd.micrografx.flo base64 +igx application/vnd.micrografx.igx base64 +mif application/vnd.mif base64 +mmp application/vnd.mindjet.mindmanager base64 +mpn application/vnd.mophun.application base64 +mpc application/vnd.mophun.certificate base64 +xul application/vnd.mozilla.xul+xml base64 +cil application/vnd.ms-artgalry base64 +asf application/vnd.ms-asf base64 +cab application/vnd.ms-cab-compressed base64 +xls application/vnd.ms-excel base64 +xlam application/vnd.ms-excel.addin.macroEnabled.12 base64 +xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12 base64 +xlsm application/vnd.ms-excel.sheet.macroEnabled.12 base64 +xltm application/vnd.ms-excel.template.macroEnabled.12 base64 +eot application/vnd.ms-fontobject base64 +chm application/vnd.ms-htmlhelp base64 +ims application/vnd.ms-ims base64 +lrm application/vnd.ms-lrm base64 +msg application/vnd.ms-outlook base64 +pst application/vnd.ms-outlook-pst base64 +3mf application/vnd.ms-package.3dmanufacturing-3dmodel+xml base64 +cat application/vnd.ms-pki.seccat base64 +stl application/vnd.ms-pki.stl base64 +ppt application/vnd.ms-powerpoint base64 +ppam application/vnd.ms-powerpoint.addin.macroEnabled.12 base64 +pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12 base64 +sldm application/vnd.ms-powerpoint.slide.macroEnabled.12 base64 +ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12 base64 +potm application/vnd.ms-powerpoint.template.macroEnabled.12 base64 +mpp application/vnd.ms-project base64 +vsdx application/vnd.ms-visio.drawing base64 +vsdm application/vnd.ms-visio.drawing.macroEnabled.12 base64 +vssx application/vnd.ms-visio.stencil base64 +vssm application/vnd.ms-visio.stencil.macroEnabled.12 base64 +vstx application/vnd.ms-visio.template base64 +vstm application/vnd.ms-visio.template.macroEnabled.12 base64 +docm application/vnd.ms-word.document.macroEnabled.12 base64 +dotm application/vnd.ms-word.template.macroEnabled.12 base64 +wcm application/vnd.ms-works base64 +wpl application/vnd.ms-wpl base64 +oxps application/vnd.ms-xpsdocument 8bit +msa application/vnd.msa-disk-image base64 +mseq application/vnd.mseq base64 +mus application/vnd.musician base64 +msty application/vnd.muvee.style base64 +taglet application/vnd.mynfc base64 +ent application/vnd.nervana base64 +nlu application/vnd.neurolanguage.nlu base64 +nitf application/vnd.nitf base64 +nnd application/vnd.noblenet-directory base64 +nns application/vnd.noblenet-sealer base64 +nnw application/vnd.noblenet-web base64 +ngdat application/vnd.nokia.n-gage.data base64 +n-gage application/vnd.nokia.n-gage.symbian.install base64 +rpst application/vnd.nokia.radio-preset base64 +rpss application/vnd.nokia.radio-presets base64 +edm application/vnd.novadigm.EDM base64 +edx application/vnd.novadigm.EDX base64 +ext application/vnd.novadigm.EXT base64 +odb application/vnd.oasis.opendocument.base base64 +odc application/vnd.oasis.opendocument.chart-template base64 +fodp application/vnd.oasis.opendocument.flat.presentation base64 +fods application/vnd.oasis.opendocument.flat.spreadsheet base64 +fodt application/vnd.oasis.opendocument.flat.text base64 +odf application/vnd.oasis.opendocument.formula-template base64 +odg application/vnd.oasis.opendocument.graphics base64 +otg application/vnd.oasis.opendocument.graphics-template base64 +odi application/vnd.oasis.opendocument.image-template base64 +odp application/vnd.oasis.opendocument.presentation base64 +otp application/vnd.oasis.opendocument.presentation-template base64 +ods application/vnd.oasis.opendocument.spreadsheet base64 +ots application/vnd.oasis.opendocument.spreadsheet-template base64 +odt application/vnd.oasis.opendocument.text base64 +odm application/vnd.oasis.opendocument.text-master base64 +ott application/vnd.oasis.opendocument.text-template base64 +oth application/vnd.oasis.opendocument.text-web base64 +xo application/vnd.olpc-sugar base64 +dd2 application/vnd.oma.dd2+xml base64 +bau application/vnd.openofficeorg.autotext base64 +oxt application/vnd.openofficeorg.extension base64 +pptx application/vnd.openxmlformats-officedocument.presentationml.presentation base64 +sldx application/vnd.openxmlformats-officedocument.presentationml.slide base64 +ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow base64 +potx application/vnd.openxmlformats-officedocument.presentationml.template base64 +xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet base64 +xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template base64 +docx application/vnd.openxmlformats-officedocument.wordprocessingml.document base64 +dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template base64 +mgp application/vnd.osgeo.mapguide.package base64 +dp application/vnd.osgi.dp base64 +esa application/vnd.osgi.subsystem base64 +prc application/vnd.palm base64 +paw application/vnd.pawaafile base64 +str application/vnd.pg.format base64 +ei6 application/vnd.pg.osasli base64 +efif application/vnd.picsel base64 +wg application/vnd.pmi.widget base64 +plf application/vnd.pocketlearn base64 +pbd application/vnd.powerbuilder6 base64 +box application/vnd.previewsystems.box base64 +mgz application/vnd.proteus.magazine base64 +qps application/vnd.publishare-delta-tree base64 +pti application/vnd.pvi.ptid1 base64 +bed application/vnd.realvnc.bed base64 +mxl application/vnd.recordare.musicxml base64 +musicxml application/vnd.recordare.musicxml+xml base64 +cryptonote application/vnd.rig.cryptonote base64 +cod application/vnd.rim.cod base64 +rm application/vnd.rn-realmedia base64 +rmvb application/vnd.rn-realmedia-vbr base64 +link66 application/vnd.route66.link66+xml base64 +st application/vnd.sailingtracker.track base64 +sdoc application/vnd.sealed.doc base64 +seml application/vnd.sealed.eml base64 +smht application/vnd.sealed.mht base64 +sppt application/vnd.sealed.ppt base64 +sxls application/vnd.sealed.xls base64 +stml application/vnd.sealedmedia.softseal.html base64 +spdf application/vnd.sealedmedia.softseal.pdf base64 +see application/vnd.seemail base64 +sema application/vnd.sema base64 +semd application/vnd.semd base64 +semf application/vnd.semf base64 +ifm application/vnd.shana.informed.formdata base64 +itp application/vnd.shana.informed.formtemplate base64 +iif application/vnd.shana.informed.interchange base64 +ipk application/vnd.shana.informed.package base64 +mmf application/vnd.smaf base64 +teacher application/vnd.smart.teacher base64 +sdkd application/vnd.solent.sdkm+xml base64 +dxp application/vnd.spotfire.dxp base64 +sfs application/vnd.spotfire.sfs base64 +sdc application/vnd.stardivision.calc base64 +sds application/vnd.stardivision.chart base64 +sda application/vnd.stardivision.draw base64 +sdd application/vnd.stardivision.impress base64 +sdf application/vnd.stardivision.math base64 +sdw application/vnd.stardivision.writer base64 +sgl application/vnd.stardivision.writer-global base64 +smzip application/vnd.stepmania.package base64 +sm application/vnd.stepmania.stepchart base64 +sxc application/vnd.sun.xml.calc base64 +stc application/vnd.sun.xml.calc.template base64 +sxd application/vnd.sun.xml.draw base64 +std application/vnd.sun.xml.draw.template base64 +sxi application/vnd.sun.xml.impress base64 +sti application/vnd.sun.xml.impress.template base64 +sxm application/vnd.sun.xml.math base64 +sxw application/vnd.sun.xml.writer base64 +sxg application/vnd.sun.xml.writer.global base64 +stw application/vnd.sun.xml.writer.template base64 +sus application/vnd.sus-calendar base64 +svd application/vnd.svd base64 +sis application/vnd.symbian.install base64 +xsm application/vnd.syncml+xml base64 +xdm application/vnd.syncml.dm+xml base64 +tao application/vnd.tao.intent-module-archive base64 +cap application/vnd.tcpdump.pcap base64 +pcapng application/vnd.tcpdump.pcapng base64 +tmo application/vnd.tmobile-livetv base64 +tpt application/vnd.trid.tpt base64 +mxs application/vnd.triscape.mxs base64 +tra application/vnd.trueapp base64 +ufd application/vnd.ufdl base64 +utz application/vnd.uiq.theme base64 +umj application/vnd.umajin base64 +unityweb application/vnd.unity base64 +uoml application/vnd.uoml+xml base64 +vcx application/vnd.vcx base64 +vsc application/vnd.vidsoft.vidconference 8bit +vsd application/vnd.visio base64 +vis application/vnd.visionary base64 +vsf application/vnd.vsf base64 +sic application/vnd.wap.sic base64 +slc application/vnd.wap.slc base64 +wbxml application/vnd.wap.wbxml base64 +wmlc application/vnd.wap.wmlc base64 +wmlsc application/vnd.wap.wmlscriptc base64 +wtb application/vnd.webturbo base64 +nbp application/vnd.wolfram.player base64 +wl application/vnd.wolfram.wl base64 +wpd application/vnd.wordperfect base64 +wqd application/vnd.wqd base64 +stf application/vnd.wt.stf base64 +wv application/vnd.wv.csp+wbxml base64 +xar application/vnd.xara base64 +xfdl application/vnd.xfdl base64 +hvd application/vnd.yamaha.hv-dic base64 +hvs application/vnd.yamaha.hv-script base64 +hvp application/vnd.yamaha.hv-voice base64 +osf application/vnd.yamaha.openscoreformat base64 +osfpvg application/vnd.yamaha.openscoreformat.osfpvg+xml base64 +saf application/vnd.yamaha.smaf-audio base64 +spf application/vnd.yamaha.smaf-phrase base64 +cmp application/vnd.yellowriver-custom-menu base64 +zir application/vnd.zul base64 +zaz application/vnd.zzazz.deck+xml base64 +vxml application/voicexml+xml base64 +warc application/warc base64 +gz application/warc+gz base64 +wasm application/wasm 8bit +wif application/watcherinfo+xml base64 +wgt application/widget base64 +wsdl application/wsdl+xml base64 +wspolicy application/wspolicy+xml base64 +wk application/x-123 base64 +7z application/x-7z-compressed base64 +bck application/x-VMSBACKUP base64 +wz application/x-Wingz base64 +abw application/x-abiword base64 +ace application/x-ace-compressed base64 +indd application/x-adobe-indesign base64 +inx application/x-adobe-indesign-interchange base64 +amf application/x-amf base64 +adf application/x-amiga-disk-format base64 +dmg application/x-apple-diskimage base64 +cwk application/x-appleworks base64 +ar application/x-archive base64 +arj application/x-arj base64 +las application/x-asprs base64 +aab application/x-authorware-bin base64 +aam application/x-authorware-map base64 +aas application/x-authorware-seg base64 +axx application/x-axcrypt base64 +bcpio application/x-bcpio base64 +bib application/x-bibtex-text-file base64 +torrent application/x-bittorrent base64 +bleep application/x-bleeper base64 +blb application/x-blorb base64 +br application/x-brotli base64 +bz application/x-bzip base64 +boz application/x-bzip2 base64 +cb7 application/x-cbr base64 +cda application/x-cdf base64 +vcd application/x-cdlink base64 +cfs application/x-cfs-compressed base64 +chat application/x-chat base64 +pgn application/x-chess-pgn base64 +crx application/x-chrome-extension base64 +z application/x-compressed base64 +nsc application/x-conference base64 +shw application/x-corelpresentations base64 +cpio application/x-cpio base64 +csh application/x-csh 8bit +csm application/x-cu-seeme base64 +dbf application/x-dbf base64 +deb application/x-debian-package base64 +dex application/x-dex base64 +dgc application/x-dgc-compressed base64 +dcr application/x-director base64 +wad application/x-doom base64 +ncx application/x-dtbncx+xml base64 +dtb application/x-dtbook+xml base64 +res application/x-dtbresource+xml base64 +ifo application/x-dvd-ifo base64 +dvi application/x-dvi base64 +enw application/x-endnote-refer base64 +ens application/x-endnote-style base64 +evy application/x-envoy base64 +hfa application/x-erdas-hfa base64 +lyr application/x-esri-layer base64 +eva application/x-eva base64 +fb2 application/x-fictionbook+xml base64 +fp7 application/x-filemaker base64 +afm application/x-font-adobe-metric base64 +bdf application/x-font-bdf base64 +gsf application/x-font-ghostscript base64 +psf application/x-font-linux-psf base64 +pcf application/x-font-pcf base64 +snf application/x-font-snf base64 +afm application/x-font-type1 base64 +arc application/x-freearc base64 +spl application/x-futuresplash base64 +gca application/x-gca-compressed base64 +gpkg application/x-geopackage base64 +ulx application/x-glulx base64 +gnucash application/x-gnucash base64 +gnumeric application/x-gnumeric base64 +gramps application/x-gramps-xml base64 +grb application/x-grib base64 +gtar application/x-gtar base64 +gp4 application/x-guitar-pro base64 +hdf application/x-hdf base64 +hep application/x-hep base64 +rhtml application/x-html+ruby 8bit +php application/x-httpd-php 8bit +ibooks application/x-ibooks+zip base64 +ica application/x-ica base64 +imagemap application/x-imagemap 8bit +iso application/x-iso9660-image base64 +jnilib application/x-java-jnilib base64 +jnlp application/x-java-jnlp-file base64 +jks application/x-java-keystore base64 +pack application/x-java-pack200 base64 +jdf application/x-jeol-jdf base64 +kil application/x-killustrator base64 +ltx application/x-latex 8bit +lz4 application/x-lz4 base64 +lz application/x-lzip base64 +lzma application/x-lzma base64 +cpt application/x-mac-compactpro base64 +mat application/x-matlab-data base64 +memgraph application/x-memgraph base64 +mie application/x-mie base64 +mobi application/x-mobipocket-ebook base64 +application application/x-ms-application base64 +msi application/x-ms-installer base64 +lnk application/x-ms-shortcut base64 +wmd application/x-ms-wmd base64 +xbap application/x-ms-xbap base64 +mda application/x-msaccess base64 +obd application/x-msbinder base64 +crd application/x-mscardfile base64 +clp application/x-msclip base64 +bat application/x-msdownload base64 +m13 application/x-msmediaview base64 +emz application/x-msmetafile base64 +mny application/x-msmoney base64 +pub application/x-mspublisher base64 +scd application/x-msschedule base64 +trm application/x-msterminal base64 +wri application/x-mswrite base64 +myi application/x-mysql-misam-compressed-index base64 +myd application/x-mysql-misam-data base64 +nes application/x-nesrom base64 +nc application/x-netcdf base64 +pac application/x-ns-proxy-autoconfig base64 +nzb application/x-nzb base64 +scad application/x-openscad base64 +oex application/x-opera-extension base64 +pm application/x-pagemaker base64 +parquet application/x-parquet base64 +p12 application/x-pkcs12 base64 +p7b application/x-pkcs7-certificates base64 +p7r application/x-pkcs7-certreqresp base64 +mpx application/x-project base64 +prt application/x-prt base64 +py application/x-python 8bit +wq1 application/x-quattro-pro base64 +qtl application/x-quicktimeplayer base64 +rar application/x-rar-compressed base64 +ris application/x-research-info-systems base64 +toast application/x-roxio-toast base64 +rb application/x-ruby 8bit +sas application/x-sas base64 +sa7 application/x-sas-access base64 +st7 application/x-sas-audit base64 +sas7bbak application/x-sas-backup base64 +sc7 application/x-sas-catalog base64 +sd7 application/x-sas-data base64 +si7 application/x-sas-data-index base64 +sd2 application/x-sas-data-v6 base64 +s7m application/x-sas-dmdb base64 +sf7 application/x-sas-fdb base64 +sr7 application/x-sas-itemstor base64 +sm7 application/x-sas-mddb base64 +ss7 application/x-sas-program-data base64 +sp7 application/x-sas-putility base64 +stx application/x-sas-transport base64 +su7 application/x-sas-utility base64 +sv7 application/x-sas-view base64 +xpt application/x-sas-xport base64 +sfdu application/x-sfdu base64 +sh application/x-sh 8bit +shp application/x-shapefile base64 +shar application/x-shar 8bit +swf application/x-shockwave-flash base64 +sib application/x-sibelius base64 +xap application/x-silverlight-app base64 +notebook application/x-smarttech-notebook base64 +sz application/x-snappy-framed base64 +tzx application/x-spectrum-tzx base64 +sav application/x-spss base64 +sql application/x-sql base64 +do application/x-stata-do base64 +dta application/x-stata-dta base64 +sit application/x-stuffit base64 +sitx application/x-stuffitx base64 +srt application/x-subrip base64 +sv4cpio application/x-sv4cpio base64 +sv4crc application/x-sv4crc base64 +t3 application/x-t3vm-image base64 +gam application/x-tads base64 +tar application/x-tar base64 +tex application/x-tex 8bit +tfm application/x-tex-tfm base64 +vf application/x-tex-virtual-font base64 +texinfo application/x-texinfo 8bit +obj application/x-tgif base64 +ear application/x-tika-java-enterprise-archive base64 +war application/x-tika-java-web-archive base64 +xlr application/x-tika-msworks-spreadsheet base64 +tmx application/x-tmx base64 +tbk application/x-toolbook base64 +uc2 application/x-uc2-compressed base64 +ustar application/x-ustar base64 +vmdk application/x-vmdk base64 +src application/x-wais-source base64 +webapp application/x-web-app-manifest+json base64 +webarchive application/x-webarchive base64 +crt application/x-x509-ca-cert base64 +fig application/x-xfig base64 +xlf application/x-xliff+xml base64 +xlz application/x-xliff+zip base64 +xmind application/x-xmind base64 +xpi application/x-xpinstall base64 +xz application/x-xz base64 +z1 application/x-zmachine base64 +zoo application/x-zoo base64 +xaml application/xaml+xml base64 +xdf application/xcap-diff+xml base64 +xenc application/xenc+xml base64 +xht application/xhtml+xml 8bit +xml application/xml 8bit +xop application/xop+xml base64 +xpl application/xproc+xml base64 +xq application/xquery base64 +xslfo application/xslfo+xml base64 +xslt application/xslt+xml base64 +xspf application/xspf+xml base64 +mxml application/xv+xml base64 +yang application/yang base64 +yin application/yin+xml base64 +zip application/zip base64 +zst application/zstd base64 +amr audio/AMR base64 +awb audio/AMR-WB base64 +evc audio/EVRC base64 +l16 audio/L16 base64 +smv audio/SMV base64 +aac audio/aac base64 +ac3 audio/ac3 base64 +adp audio/adpcm base64 +au audio/basic base64 +flac audio/flac base64 +mka audio/matroska base64 +kar audio/midi base64 +mp4 audio/mp4 base64 +mpga audio/mpeg base64 +oga audio/ogg base64 +s3m audio/s3m base64 +sil audio/silk base64 +asnd audio/vnd.adobe.soundbooth base64 +uva audio/vnd.dece.audio base64 +eol audio/vnd.digital-winds 7bit +dra audio/vnd.dra base64 +dts audio/vnd.dts base64 +dtshd audio/vnd.dts.hd base64 +plj audio/vnd.everad.plj base64 +lvp audio/vnd.lucent.voice base64 +pya audio/vnd.ms-playready.media.pya base64 +mxmf audio/vnd.nokia.mobile-xmf base64 +vbk audio/vnd.nortel.vbk base64 +ecelp4800 audio/vnd.nuera.ecelp4800 base64 +ecelp7470 audio/vnd.nuera.ecelp7470 base64 +ecelp9600 audio/vnd.nuera.ecelp9600 base64 +qcp audio/vnd.qcelp base64 +rip audio/vnd.rip base64 +smp3 audio/vnd.sealedmedia.softseal.mpeg base64 +wav audio/vnd.wave base64 +weba audio/webm base64 +aif audio/x-aiff base64 +caf audio/x-caf base64 +mod audio/x-mod base64 +m3u audio/x-mpegurl base64 +wax audio/x-ms-wax base64 +wma audio/x-ms-wma base64 +wmv audio/x-ms-wmv base64 +ra audio/x-pn-realaudio base64 +rmp audio/x-pn-realaudio-plugin base64 +psf1 audio/x-psf base64 +sap audio/x-sap base64 +xm audio/xm base64 +cdx chemical/x-cdx base64 +cif chemical/x-cif base64 +cmdf chemical/x-cmdf base64 +cml chemical/x-cml base64 +csml chemical/x-csml base64 +ttc font/collection base64 +otf font/otf base64 +ttf font/ttf base64 +woff font/woff base64 +woff2 font/woff2 base64 +exr image/aces base64 +avif image/avif base64 +bmp image/bmp base64 +cgm image/cgm base64 +emf image/emf base64 +g3 image/g3fax base64 +gif image/gif base64 +heic image/heic base64 +heics image/heic-sequence base64 +heif image/heif base64 +heifs image/heif-sequence base64 +icns image/icns base64 +ief image/ief base64 +jp2 image/jp2 base64 +jpeg image/jpeg base64 +jpm image/jpm base64 +jpx image/jpx base64 +jxl image/jxl base64 +ktx image/ktx base64 +png image/png base64 +btif image/prs.btif base64 +sgi image/sgi base64 +svg image/svg+xml 8bit +tiff image/tiff base64 +psd image/vnd.adobe.photoshop base64 +ppj image/vnd.adobe.premiere base64 +uvg image/vnd.dece.graphic base64 +dgn image/vnd.dgn base64 +djvu image/vnd.djvu base64 +sub image/vnd.dvb.subtitle base64 +dwg image/vnd.dwg base64 +dxb image/vnd.dxb base64 +dxf image/vnd.dxf base64 +fbs image/vnd.fastbidsheet base64 +fpx image/vnd.fpx base64 +fst image/vnd.fst base64 +mmr image/vnd.fujixerox.edmics-mmr base64 +rlc image/vnd.fujixerox.edmics-rlc base64 +pgb image/vnd.globalgraphics.pgb base64 +ico image/vnd.microsoft.icon base64 +mdi image/vnd.ms-modi base64 +wdp image/vnd.ms-photo base64 +npx image/vnd.net-fpx base64 +wbmp image/vnd.wap.wbmp base64 +xif image/vnd.xiff base64 +dcx image/vnd.zbrush.dcx base64 +pcx image/vnd.zbrush.pcx base64 +webp image/webp base64 +wmf image/wmf base64 +3ds image/x-3ds base64 +dng image/x-adobe-dng base64 +bpg image/x-bpg base64 +cr2 image/x-canon-cr2 base64 +cr3 image/x-canon-cr3 base64 +crw image/x-canon-crw base64 +ras image/x-cmu-raster base64 +cmx image/x-cmx base64 +xcfbz2 image/x-compressed-xcf base64 +dpx image/x-dpx base64 +erf image/x-epson-erf base64 +fh image/x-freehand base64 +raf image/x-fuji-raf base64 +3fr image/x-hasselblad-3fr base64 +jb2 image/x-jbig2 base64 +j2c image/x-jp2-codestream base64 +mrw image/x-minolta-mrw base64 +sid image/x-mrsid-image base64 +orf image/x-olympus-orf base64 +psp image/x-paintshoppro base64 +pct image/x-pict base64 +pnm image/x-portable-anymap base64 +pam image/x-portable-arbitrarymap base64 +pbm image/x-portable-bitmap base64 +pgm image/x-portable-graymap base64 +ppm image/x-portable-pixmap base64 +bay image/x-raw-casio base64 +fff image/x-raw-imacon base64 +k25 image/x-raw-kodak base64 +mos image/x-raw-leaf base64 +pxn image/x-raw-logitech base64 +mef image/x-raw-mamiya base64 +nef image/x-raw-nikon base64 +raw image/x-raw-panasonic base64 +pef image/x-raw-pentax base64 +iiq image/x-raw-phaseone base64 +rwz image/x-raw-rawzor base64 +r3d image/x-raw-red base64 +x3f image/x-raw-sigma base64 +arw image/x-raw-sony base64 +rgb image/x-rgb base64 +tga image/x-tga base64 +dgn image/x-vnd.dgn base64 +xbm image/x-xbitmap 7bit +xcf image/x-xcf base64 +xpm image/x-xpixmap 8bit +xwd image/x-xwindowdump base64 +eml message/rfc822 8bit +emlx message/x-emlx base64 +e57 model/e57 base64 +igs model/iges base64 +msh model/mesh base64 +dae model/vnd.collada+xml base64 +dwf model/vnd.dwf base64 +dwfx model/vnd.dwfx+xps base64 +gdl model/vnd.gdl base64 +gtw model/vnd.gtw base64 +x_b model/vnd.parasolid.transmit.binary base64 +x_t model/vnd.parasolid.transmit.text quoted-printable +vtu model/vnd.vtu base64 +wrl model/vrml base64 +x3db model/x3d+binary base64 +x3dv model/x3d+vrml base64 +x3d model/x3d+xml base64 +mht multipart/related base64 +asp text/asp quoted-printable +aspx text/aspdotnet quoted-printable +appcache text/cache-manifest quoted-printable +ics text/calendar quoted-printable +css text/css 8bit +csv text/csv 8bit +html text/html 8bit +iso19139 text/iso19139+xml quoted-printable +js text/javascript quoted-printable +markdown text/markdown quoted-printable +.htaccess text/plain quoted-printable +dsc text/prs.lines.tag quoted-printable +rtx text/richtext 8bit +sgml text/sgml quoted-printable +tsv text/tab-separated-values quoted-printable +t text/troff 8bit +ttl text/turtle quoted-printable +uri text/uri-list quoted-printable +vcard text/vcard quoted-printable +dcurl text/vnd.curl.dcurl quoted-printable +mcurl text/vnd.curl.mcurl quoted-printable +scurl text/vnd.curl.scurl quoted-printable +fly text/vnd.fly quoted-printable +flx text/vnd.fmi.flexstor quoted-printable +gv text/vnd.graphviz quoted-printable +3dml text/vnd.in3d.3dml quoted-printable +spot text/vnd.in3d.spot quoted-printable +anpa text/vnd.iptc.anpa quoted-printable +ccc text/vnd.net2phone.commcenter.command quoted-printable +jad text/vnd.sun.j2me.app-descriptor 8bit +si text/vnd.wap.si quoted-printable +sl text/vnd.wap.sl quoted-printable +wml text/vnd.wap.wml quoted-printable +wmls text/vnd.wap.wmlscript quoted-printable +vtt text/vtt quoted-printable +as text/x-actionscript quoted-printable +ada text/x-ada quoted-printable +applescript text/x-applescript quoted-printable +asciidoc text/x-asciidoc quoted-printable +asm text/x-asm quoted-printable +aj text/x-aspectj quoted-printable +awk text/x-awk quoted-printable +bas text/x-basic quoted-printable +c text/x-c quoted-printable +hpp text/x-c++hdr quoted-printable +cpp text/x-c++src quoted-printable +cgi text/x-cgi quoted-printable +clj text/x-clojure quoted-printable +cbl text/x-cobol quoted-printable +coffee text/x-coffeescript quoted-printable +cfm text/x-coldfusion quoted-printable +cl text/x-common-lisp quoted-printable +config text/x-config quoted-printable +cs text/x-csharp quoted-printable +d text/x-d quoted-printable +diff text/x-diff quoted-printable +e text/x-eiffel quoted-printable +el text/x-emacs-lisp quoted-printable +erl text/x-erlang quoted-printable +exp text/x-expect quoted-printable +4th text/x-forth quoted-printable +f text/x-fortran quoted-printable +go text/x-go quoted-printable +groovy text/x-groovy quoted-printable +haml text/x-haml quoted-printable +hs text/x-haskell quoted-printable +hx text/x-haxe quoted-printable +idl text/x-idl quoted-printable +ini text/x-ini quoted-printable +properties text/x-java-properties quoted-printable +java text/x-java-source quoted-printable +jsp text/x-jsp quoted-printable +less text/x-less quoted-printable +l text/x-lex quoted-printable +lua text/x-lua quoted-printable +makefile text/x-makefile quoted-printable +ml text/x-ml quoted-printable +m3 text/x-modula quoted-printable +nfo text/x-nfo quoted-printable +m text/x-objcsrc quoted-printable +ocaml text/x-ocaml quoted-printable +opml text/x-opml quoted-printable +p text/x-pascal quoted-printable +pl text/x-perl quoted-printable +php text/x-php quoted-printable +pro text/x-prolog quoted-printable +rexx text/x-rexx quoted-printable +r text/x-rsrc quoted-printable +rest text/x-rst quoted-printable +scala text/x-scala quoted-printable +sed text/x-sed quoted-printable +etx text/x-setext quoted-printable +sfv text/x-sfv quoted-printable +itk text/x-tcl quoted-printable +uu text/x-uuencode quoted-printable +cls text/x-vbasic quoted-printable +vb text/x-vbdotnet quoted-printable +vcs text/x-vcalendar 8bit +vcf text/x-vcard 8bit +v text/x-verilog quoted-printable +vhd text/x-vhdl quoted-printable +md text/x-web-markdown quoted-printable +y text/x-yacc quoted-printable +yaml text/x-yaml 8bit +dtd text/xml 8bit +3gp video/3gpp base64 +3g2 video/3gpp2 base64 +dv video/DV base64 +h261 video/H261 base64 +h263 video/H263 base64 +h264 video/H264 base64 +jpgv video/JPEG base64 +mj2 video/MJ2 base64 +bdm video/MP2T base64 +m4s video/iso.segment base64 +mp4 video/mp4 base64 +mp2 video/mpeg base64 +ogg video/ogg base64 +qt video/quicktime base64 +uvh video/vnd.dece.hd base64 +uvm video/vnd.dece.mobile base64 +uvp video/vnd.dece.pd base64 +uvs video/vnd.dece.sd base64 +uvv video/vnd.dece.video base64 +dvb video/vnd.dvb.file base64 +fvt video/vnd.fvt base64 +mxu video/vnd.mpegurl 8bit +pyv video/vnd.ms-playready.media.pyv base64 +nim video/vnd.nokia.interleaved-multimedia base64 +mp4 video/vnd.objectvideo base64 +s11 video/vnd.sealed.mpeg1 base64 +smpg video/vnd.sealed.mpeg4 base64 +sswf video/vnd.sealed.swf base64 +smov video/vnd.sealedmedia.softseal.mov base64 +uvu video/vnd.uvvu.mp4 base64 +viv video/vnd.vivo base64 +drc video/x-dirac base64 +dl video/x-dl base64 +flc video/x-flc base64 +fli video/x-fli base64 +flv video/x-flv base64 +gl video/x-gl base64 +ivf video/x-ivf base64 +jng video/x-jng base64 +mk3d video/x-matroska base64 +mng video/x-mng base64 +mjpg video/x-motion-jpeg base64 +asx video/x-ms-asf base64 +vob video/x-ms-vob base64 +wm video/x-ms-wm base64 +wmx video/x-ms-wmx base64 +wvx video/x-ms-wvx base64 +avi video/x-msvideo base64 +ogm video/x-ogm base64 +movie video/x-sgi-movie base64 +xyz x-chemical/x-xyz base64 +ice x-conference/x-cooltalk base64 diff --git a/gems/gems/mime-types-data-3.2025.0909/data/ext_mime.db b/gems/gems/mime-types-data-3.2025.0909/data/ext_mime.db new file mode 100644 index 0000000..422f938 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/ext_mime.db @@ -0,0 +1,1611 @@ +.htaccess text/plain quoted-printable +123 application/vnd.lotus-1-2-3 base64 +3dml text/vnd.in3d.3dml quoted-printable +3ds image/x-3ds base64 +3fr image/x-hasselblad-3fr base64 +3g2 video/3gpp2 base64 +3gp video/3gpp base64 +3gpp video/3gpp base64 +3gpp2 video/3gpp2 base64 +3mf application/vnd.ms-package.3dmanufacturing-3dmodel+xml base64 +4th text/x-forth quoted-printable +7z application/x-7z-compressed base64 +@dir application/x-director base64 +@dxr application/x-director base64 +a application/x-archive base64 +aab application/x-authorware-bin base64 +aac audio/aac base64 +aam application/x-authorware-map base64 +aart text/plain quoted-printable +aas application/x-authorware-seg base64 +abs-linkmap text/plain quoted-printable +abs-menulinks text/plain quoted-printable +abw application/x-abiword base64 +ac text/plain quoted-printable +ac3 audio/ac3 base64 +acc application/vnd.americandynamics.acc base64 +accdb application/x-msaccess base64 +ace application/x-ace-compressed base64 +acfm application/x-font-adobe-metric base64 +acu application/vnd.acucobol base64 +acutc application/vnd.acucorp 7bit +ad text/x-asciidoc quoted-printable +ad.txt text/x-asciidoc quoted-printable +ada text/x-ada quoted-printable +adb text/x-ada quoted-printable +adf application/x-amiga-disk-format base64 +adoc text/x-asciidoc quoted-printable +adoc.txt text/x-asciidoc quoted-printable +adp audio/adpcm base64 +ads text/x-ada quoted-printable +aep application/vnd.audiograph base64 +aet application/vnd.adobe.aftereffects.template base64 +afm application/x-font-type1 base64 +afp application/vnd.ibm.modcap base64 +ahead application/vnd.ahead.space base64 +ai application/postscript 8bit +aif audio/x-aiff base64 +aifc audio/x-aiff base64 +aiff audio/x-aiff base64 +air application/vnd.adobe.air-application-installer-package+zip base64 +ait application/vnd.dvb.ait base64 +aj text/x-aspectj quoted-printable +al text/x-perl quoted-printable +am text/plain quoted-printable +amf application/x-amf base64 +amfm application/x-font-adobe-metric base64 +ami application/vnd.amiga.ami base64 +amr audio/AMR base64 +ani application/octet-stream base64 +anpa text/vnd.iptc.anpa quoted-printable +apk application/vnd.android.package-archive base64 +appcache text/cache-manifest quoted-printable +applescript text/x-applescript quoted-printable +application application/x-ms-application base64 +apr application/vnd.lotus-approach base64 +apt text/plain quoted-printable +ar application/x-archive base64 +arc application/x-freearc base64 +arj application/x-arj base64 +arw image/x-raw-sony base64 +as text/x-actionscript quoted-printable +asc text/plain quoted-printable +asciidoc text/x-asciidoc quoted-printable +asf application/vnd.ms-asf base64 +asice application/vnd.etsi.asic-e+zip base64 +asics application/vnd.etsi.asic-s+zip base64 +asm text/x-asm quoted-printable +asnd audio/vnd.adobe.soundbooth base64 +aso application/vnd.accpac.simply.aso base64 +asp text/asp quoted-printable +aspx text/aspdotnet quoted-printable +asx video/x-ms-asf base64 +atc application/vnd.acucorp 7bit +atom application/atom+xml 8bit +atomcat application/atomcat+xml 8bit +atomsvc application/atomsvc+xml 8bit +atx application/vnd.antix.game-component base64 +au audio/basic base64 +avi video/x-msvideo base64 +avif image/avif base64 +aw application/applixware base64 +awb audio/AMR-WB base64 +awk text/x-awk quoted-printable +axx application/x-axcrypt base64 +azf application/vnd.airzip.filesecure.azf base64 +azs application/vnd.airzip.filesecure.azs base64 +azw application/vnd.amazon.ebook base64 +bas text/x-basic quoted-printable +bash application/x-sh 8bit +bat application/x-msdownload base64 +bau application/vnd.openofficeorg.autotext base64 +bay image/x-raw-casio base64 +bck application/x-VMSBACKUP base64 +bcpio application/x-bcpio base64 +bdf application/x-font-bdf base64 +bdm video/MP2T base64 +bed application/vnd.realvnc.bed base64 +bh2 application/vnd.fujitsu.oasysprs base64 +bib application/x-bibtex-text-file base64 +bibtex application/x-bibtex-text-file base64 +bin application/octet-stream base64 +bkm application/vnd.nervana base64 +blb application/x-blorb base64 +bleep application/x-bleeper base64 +blorb application/x-blorb base64 +bmi application/vnd.bmi base64 +bmp image/bmp base64 +book application/vnd.framemaker base64 +box application/vnd.previewsystems.box base64 +boz application/x-bzip2 base64 +bpd application/vnd.hbci base64 +bpg image/x-bpg base64 +bpk application/octet-stream base64 +bpm application/bizagi-modeler base64 +br application/x-brotli base64 +brotli application/x-brotli base64 +bsh text/plain quoted-printable +btif image/prs.btif base64 +bup application/x-dvd-ifo base64 +bz application/x-bzip base64 +bz2 application/x-bzip2 base64 +c text/plain quoted-printable +c++ text/x-c++src quoted-printable +c11amc application/vnd.cluetrust.cartomobile-config base64 +c11amz application/vnd.cluetrust.cartomobile-config-pkg base64 +c4d application/vnd.clonk.c4group base64 +c4f application/vnd.clonk.c4group base64 +c4g application/vnd.clonk.c4group base64 +c4p application/vnd.clonk.c4group base64 +c4u application/vnd.clonk.c4group base64 +cab application/vnd.ms-cab-compressed base64 +caf audio/x-caf base64 +cap application/vnd.tcpdump.pcap base64 +car application/vnd.curl.car base64 +cat application/vnd.ms-pki.seccat base64 +cb7 application/x-cbr base64 +cba application/x-cbr base64 +cbl text/x-cobol quoted-printable +cbor application/cbor base64 +cbr application/x-cbr base64 +cbt application/x-cbr base64 +cbz application/x-cbr base64 +cc text/plain quoted-printable +ccc text/vnd.net2phone.commcenter.command quoted-printable +cct application/x-director base64 +ccxml application/ccxml+xml base64 +cda application/x-cdf base64 +cdbcmsg application/vnd.contact.cmsg base64 +cdf application/x-netcdf base64 +cdkey application/vnd.mediastation.cdkey base64 +cdmia application/cdmi-capability base64 +cdmic application/cdmi-container base64 +cdmid application/cdmi-domain base64 +cdmio application/cdmi-object base64 +cdmiq application/cdmi-queue base64 +cdr application/coreldraw base64 +cdx chemical/x-cdx base64 +cdxml application/vnd.chemdraw+xml base64 +cdy application/vnd.cinderella base64 +cel image/vnd.dgn base64 +cer application/pkix-cert base64 +cfc text/x-coldfusion quoted-printable +cfg text/x-config quoted-printable +cfm text/x-coldfusion quoted-printable +cfml text/x-coldfusion quoted-printable +cfs application/x-cfs-compressed base64 +cgi text/x-cgi quoted-printable +cgm image/cgm base64 +chat application/x-chat base64 +chm application/vnd.ms-htmlhelp base64 +chrt application/vnd.kde.kchart base64 +cif chemical/x-cif base64 +cii application/vnd.anser-web-certificate-issue-initiation base64 +cil application/vnd.ms-artgalry base64 +cjs text/javascript quoted-printable +cl text/x-common-lisp quoted-printable +cla application/vnd.claymore base64 +class application/octet-stream base64 +classpath text/plain quoted-printable +clj text/x-clojure quoted-printable +clkk application/vnd.crick.clicker.keyboard base64 +clkp application/vnd.crick.clicker.palette base64 +clkt application/vnd.crick.clicker.template base64 +clkw application/vnd.crick.clicker.wordbank base64 +clkx application/vnd.crick.clicker base64 +clp application/x-msclip base64 +clpi video/MP2T base64 +cls text/x-vbasic quoted-printable +cmc application/vnd.cosmocaller base64 +cmd application/x-msdownload base64 +cmdf chemical/x-cmdf base64 +cml chemical/x-cml base64 +cmp application/vnd.yellowriver-custom-menu base64 +cmx image/x-cmx base64 +cnd text/plain quoted-printable +cob text/x-cobol quoted-printable +cod application/vnd.rim.cod base64 +coffee text/x-coffeescript quoted-printable +com application/x-msdownload base64 +conf text/plain quoted-printable +config text/x-config quoted-printable +cpi video/MP2T base64 +cpio application/x-cpio base64 +cpp text/plain quoted-printable +cpt application/x-mac-compactpro base64 +cr2 image/x-canon-cr2 base64 +cr3 image/x-canon-cr3 base64 +crd application/x-mscardfile base64 +crl application/pkix-crl base64 +crt application/x-x509-ca-cert base64 +crw image/x-canon-crw base64 +crx application/x-chrome-extension base64 +cryptonote application/vnd.rig.cryptonote base64 +cs text/x-csharp quoted-printable +csh application/x-csh 8bit +csm application/x-cu-seeme base64 +csml chemical/x-csml base64 +csp application/vnd.commonspace base64 +css text/css 8bit +cst application/x-director base64 +csv text/csv 8bit +cu application/x-cu-seeme base64 +curl application/vnd.curl base64 +cw application/prs.cww base64 +cwiki text/plain quoted-printable +cwk application/x-appleworks base64 +cww application/prs.cww base64 +cxt application/x-director base64 +cxx text/x-c quoted-printable +d text/x-d quoted-printable +dae model/vnd.collada+xml base64 +daf application/vnd.Mobius.DAF base64 +dart application/vnd.dart base64 +dat text/plain quoted-printable +data text/plain quoted-printable +dataless application/vnd.fdsn.seed base64 +davmount application/davmount+xml base64 +dbase application/x-dbf base64 +dbase3 application/x-dbf base64 +dbf application/x-dbf base64 +dbk application/docbook+xml base64 +dcl text/plain quoted-printable +dcm application/dicom base64 +dcr application/x-director base64 +dcs image/x-raw-kodak base64 +dcurl text/vnd.curl.dcurl quoted-printable +dcx image/vnd.zbrush.dcx base64 +dd2 application/vnd.oma.dd2+xml base64 +ddd application/vnd.fujixerox.ddd base64 +deb application/x-debian-package base64 +def text/plain quoted-printable +deploy application/octet-stream base64 +der application/x-x509-ca-cert base64 +dex application/x-dex base64 +dfac application/vnd.dreamfactory base64 +dgc application/x-dgc-compressed base64 +dgn image/x-vnd.dgn base64 +dgnlib image/vnd.dgn base64 +dib image/bmp base64 +dic text/x-c quoted-printable +dif application/dif+xml base64 +diff text/x-diff quoted-printable +dir application/x-director base64 +dis application/vnd.Mobius.DIS base64 +dist application/octet-stream base64 +distz application/octet-stream base64 +djv image/vnd.djvu base64 +djvu image/vnd.djvu base64 +dl video/x-dl base64 +dll application/octet-stream base64 +dmg application/x-apple-diskimage base64 +dmp application/vnd.tcpdump.pcap base64 +dms application/octet-stream base64 +dna application/vnd.dna base64 +dng image/x-adobe-dng base64 +do application/x-stata-do base64 +doc application/msword base64 +docm application/vnd.ms-word.document.macroEnabled.12 base64 +docx application/vnd.openxmlformats-officedocument.wordprocessingml.document base64 +dot application/msword base64 +dotm application/vnd.ms-word.template.macroEnabled.12 base64 +dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template base64 +dp application/vnd.osgi.dp base64 +dpg application/vnd.dpgraph base64 +dpr text/x-pascal quoted-printable +dpx image/x-dpx base64 +dra audio/vnd.dra base64 +drc video/x-dirac base64 +drf image/x-raw-kodak base64 +dsc text/prs.lines.tag quoted-printable +dsp text/plain quoted-printable +dssc application/dssc+der base64 +dsw text/plain quoted-printable +dta application/x-stata-dta base64 +dtb application/x-dtbook+xml base64 +dtd text/xml 8bit +dts audio/vnd.dts base64 +dtshd audio/vnd.dts.hd base64 +dump application/octet-stream base64 +dv video/DV base64 +dvb video/vnd.dvb.file base64 +dvi application/x-dvi base64 +dwf model/vnd.dwf base64 +dwfx model/vnd.dwfx+xps base64 +dwg image/vnd.dwg base64 +dxb image/vnd.dxb base64 +dxf image/vnd.dxf base64 +dxp application/vnd.spotfire.dxp base64 +dxr application/x-director base64 +dylib application/octet-stream base64 +e text/x-eiffel quoted-printable +e57 model/e57 base64 +ear application/x-tika-java-enterprise-archive base64 +ecelp4800 audio/vnd.nuera.ecelp4800 base64 +ecelp7470 audio/vnd.nuera.ecelp7470 base64 +ecelp9600 audio/vnd.nuera.ecelp9600 base64 +ecma application/ecmascript base64 +edm application/vnd.novadigm.EDM base64 +edx application/vnd.novadigm.EDX base64 +efif application/vnd.picsel base64 +egrm text/plain quoted-printable +ei6 application/vnd.pg.osasli base64 +el text/x-emacs-lisp quoted-printable +elc application/octet-stream base64 +emf image/emf base64 +eml message/rfc822 8bit +emlx message/x-emlx base64 +emm application/vnd.ibm.electronic-media base64 +emma application/emma+xml base64 +emz application/x-msmetafile base64 +enr application/x-endnote-refer base64 +ens application/x-endnote-style base64 +ent text/plain quoted-printable +entity application/vnd.nervana base64 +enw application/x-endnote-refer base64 +eol audio/vnd.digital-winds 7bit +eot application/vnd.ms-fontobject base64 +eps application/postscript 8bit +epsf application/postscript 8bit +epsi application/postscript 8bit +epub application/epub+zip base64 +erf image/x-epson-erf base64 +erl text/x-erlang quoted-printable +es application/ecmascript base64 +es3 application/vnd.eszigno3+xml base64 +esa application/vnd.osgi.subsystem base64 +esf application/vnd.epson.esf base64 +et3 application/vnd.eszigno3+xml base64 +etx text/x-setext quoted-printable +eva application/x-eva base64 +evc audio/EVRC base64 +evy application/x-envoy base64 +exe application/x-msdownload base64 +exi application/exi base64 +exp text/x-expect quoted-printable +exr image/aces base64 +ext application/vnd.novadigm.EXT base64 +ez application/andrew-inset base64 +ez2 application/vnd.ezpix-album base64 +ez3 application/vnd.ezpix-package base64 +f text/x-fortran quoted-printable +f4a audio/mp4 base64 +f4b audio/mp4 base64 +f4p video/mp4 base64 +f4v video/mp4 base64 +f77 text/x-fortran quoted-printable +f90 text/x-fortran quoted-printable +fb application/vnd.framemaker base64 +fb2 application/x-fictionbook+xml base64 +fbdoc application/vnd.framemaker base64 +fbs image/vnd.fastbidsheet base64 +fcdt application/vnd.adobe.formscentral.fcdt base64 +fcs application/vnd.isac.fcs base64 +fdf application/vnd.fdf base64 +fe_launch application/vnd.denovo.fcselayout-link base64 +fff image/x-raw-imacon base64 +fg5 application/vnd.fujitsu.oasysgp base64 +fgd application/x-director base64 +fh image/x-freehand base64 +fh10 image/x-freehand base64 +fh11 image/x-freehand base64 +fh12 image/x-freehand base64 +fh4 image/x-freehand base64 +fh40 image/x-freehand base64 +fh5 image/x-freehand base64 +fh50 image/x-freehand base64 +fh7 image/x-freehand base64 +fh8 image/x-freehand base64 +fh9 image/x-freehand base64 +fhc image/x-freehand base64 +fig application/x-xfig base64 +fit application/fits base64 +fits application/fits base64 +flac audio/flac base64 +flc video/x-flc base64 +fli video/x-fli base64 +flo application/vnd.micrografx.flo base64 +flv video/x-flv base64 +flw application/vnd.kde.kivio base64 +flx text/vnd.fmi.flexstor quoted-printable +fly text/vnd.fly quoted-printable +fm application/vnd.framemaker base64 +fn text/plain quoted-printable +fnc application/vnd.frogans.fnc base64 +fo application/xslfo+xml base64 +fodp application/vnd.oasis.opendocument.flat.presentation base64 +fods application/vnd.oasis.opendocument.flat.spreadsheet base64 +fodt application/vnd.oasis.opendocument.flat.text base64 +for text/x-fortran quoted-printable +fp7 application/x-filemaker base64 +fpx image/vnd.fpx base64 +frame application/vnd.framemaker base64 +frm application/vnd.framemaker base64 +fsc application/vnd.fsc.weblaunch 7bit +fst image/vnd.fst base64 +ft text/plain quoted-printable +ft10 image/x-freehand base64 +ft11 image/x-freehand base64 +ft12 image/x-freehand base64 +ft7 image/x-freehand base64 +ft8 image/x-freehand base64 +ft9 image/x-freehand base64 +ftc application/vnd.fluxtime.clip base64 +fti application/vnd.anser-web-funds-transfer-initiation base64 +fts application/fits base64 +fv text/plain quoted-printable +fvt video/vnd.fvt base64 +fxp application/vnd.adobe.fxp base64 +fxpl application/vnd.adobe.fxp base64 +fzs application/vnd.fuzzysheet base64 +g text/plain quoted-printable +g2w application/vnd.geoplan base64 +g3 image/g3fax base64 +g3w application/vnd.geospace base64 +gac application/vnd.groove-account base64 +gam application/x-tads base64 +gbr application/rpki-ghostbusters base64 +gca application/x-gca-compressed base64 +gdl model/vnd.gdl base64 +geo application/vnd.dynageo base64 +gex application/vnd.geometry-explorer base64 +ggb application/vnd.geogebra.file base64 +ggs application/vnd.geogebra.slides base64 +ggt application/vnd.geogebra.tool base64 +ghf application/vnd.groove-help base64 +gif image/gif base64 +gim application/vnd.groove-identity-message base64 +gl video/x-gl base64 +gml application/gml+xml base64 +gmx application/vnd.gmx base64 +gnucash application/x-gnucash base64 +gnumakefile text/x-makefile quoted-printable +gnumeric application/x-gnumeric base64 +go text/x-go quoted-printable +gp4 application/x-guitar-pro base64 +gpg application/octet-stream base64 +gph application/vnd.FloGraphIt base64 +gpkg application/x-geopackage base64 +gpx application/gpx+xml base64 +gqf application/vnd.grafeq base64 +gqs application/vnd.grafeq base64 +gram application/srgs base64 +gramps application/x-gramps-xml base64 +grb application/x-grib base64 +grb1 application/x-grib base64 +grb2 application/x-grib base64 +gre application/vnd.geometry-explorer base64 +grm text/plain quoted-printable +groovy text/x-groovy quoted-printable +grv application/vnd.groove-injector base64 +grxml application/srgs+xml base64 +gsf application/x-font-ghostscript base64 +gslib audio/x-psf base64 +gtar application/x-gtar base64 +gtm application/vnd.groove-tool-message base64 +gtw model/vnd.gtw base64 +gv text/vnd.graphviz quoted-printable +gxf application/gxf base64 +gxt application/vnd.geonext base64 +gz application/gzip base64 +h text/plain quoted-printable +h++ text/x-c++hdr quoted-printable +h261 video/H261 base64 +h263 video/H263 base64 +h264 video/H264 base64 +h5 application/x-hdf base64 +hal application/vnd.hal+xml base64 +haml text/x-haml quoted-printable +handlers text/plain quoted-printable +hbc application/vnd.hbci base64 +hbci application/vnd.hbci base64 +hdf application/x-hdf base64 +hdr application/envi.hdr base64 +he5 application/x-hdf base64 +heic image/heic base64 +heics image/heic-sequence base64 +heif image/heif base64 +heifs image/heif-sequence base64 +hep application/x-hep base64 +hfa application/x-erdas-hfa base64 +hh text/plain quoted-printable +hif image/heic base64 +hlp text/plain quoted-printable +hp text/x-c++hdr quoted-printable +hpgl application/vnd.hp-HPGL base64 +hpid application/vnd.hp-hpid base64 +hpp text/plain quoted-printable +hprof application/vnd.java.hprof base64 +hprof.txt application/vnd.java.hprof.text base64 +hps application/vnd.hp-hps base64 +hqx application/mac-binhex40 8bit +hs text/x-haskell quoted-printable +htc text/plain quoted-printable +htke application/vnd.kenameaapp base64 +htm text/html 8bit +html text/html 8bit +htmlx text/html 8bit +htx text/html 8bit +hvd application/vnd.yamaha.hv-dic base64 +hvp application/vnd.yamaha.hv-voice base64 +hvs application/vnd.yamaha.hv-script base64 +hwpx application/hwp+zip base64 +hx text/x-haxe quoted-printable +hxx text/x-c++hdr quoted-printable +i2g application/vnd.intergeo base64 +i3 text/x-modula quoted-printable +ibooks application/x-ibooks+zip base64 +ica application/x-ica base64 +icb image/x-tga base64 +icc application/vnd.iccprofile base64 +ice x-conference/x-cooltalk base64 +icm application/vnd.iccprofile base64 +icns image/icns base64 +ico image/vnd.microsoft.icon base64 +ics text/calendar quoted-printable +idl text/x-idl quoted-printable +idml application/vnd.adobe.indesign-idml-package base64 +ief image/ief base64 +ifb text/calendar quoted-printable +ifm application/vnd.shana.informed.formdata base64 +ifo application/x-dvd-ifo base64 +ig text/x-modula quoted-printable +iges model/iges base64 +igl application/vnd.igloader base64 +igm application/vnd.insors.igm base64 +igs model/iges base64 +igx application/vnd.micrografx.igx base64 +ihtml text/plain quoted-printable +iif application/vnd.shana.informed.interchange base64 +iiq image/x-raw-phaseone base64 +imagemap application/x-imagemap 8bit +imap application/x-imagemap 8bit +imp application/vnd.accpac.simply.imp base64 +ims application/vnd.ms-ims base64 +in text/plain quoted-printable +indd application/x-adobe-indesign base64 +ini text/x-ini quoted-printable +ink application/inkml+xml base64 +inkml application/inkml+xml base64 +install text/plain quoted-printable +inx application/x-adobe-indesign-interchange base64 +iota application/vnd.astraea-software.iota base64 +ipa application/octet-stream base64 +ipfix application/ipfix base64 +ipk application/vnd.shana.informed.package base64 +irm application/vnd.ibm.rights-management base64 +irp application/vnd.irepository.package+xml base64 +iso application/x-iso9660-image base64 +iso19139 text/iso19139+xml quoted-printable +itk text/x-tcl quoted-printable +itp application/vnd.shana.informed.formtemplate base64 +ivf video/x-ivf base64 +ivp application/vnd.immervision-ivp base64 +ivu application/vnd.immervision-ivu base64 +j2c image/x-jp2-codestream base64 +jad text/vnd.sun.j2me.app-descriptor 8bit +jam application/vnd.jam base64 +jar application/java-archive base64 +java text/x-java-source quoted-printable +jb2 image/x-jbig2 base64 +jbig2 image/x-jbig2 base64 +jdf application/x-jeol-jdf base64 +jfi image/jpeg base64 +jfif image/jpeg base64 +jif image/jpeg base64 +jisp application/vnd.jisp base64 +jks application/x-java-keystore base64 +jl text/x-common-lisp quoted-printable +jlt application/vnd.hp-jlyt base64 +jmx text/plain quoted-printable +jng video/x-jng base64 +jnilib application/x-java-jnilib base64 +jnlp application/x-java-jnlp-file base64 +joda application/vnd.joost.joda-archive base64 +jp2 image/jp2 base64 +jpe image/jpeg base64 +jpeg image/jpeg base64 +jpf image/jpx base64 +jpg image/jpeg base64 +jpg2 image/jp2 base64 +jpgm image/jpm base64 +jpgv video/JPEG base64 +jpm image/jpm base64 +jpx image/jpx base64 +js text/javascript quoted-printable +json application/json 8bit +jsonml application/jsonml+json base64 +jsp text/x-jsp quoted-printable +junit text/plain quoted-printable +jx text/plain quoted-printable +jxl image/jxl base64 +k25 image/x-raw-kodak base64 +kar audio/midi base64 +karbon application/vnd.kde.karbon base64 +kcm application/vnd.nervana base64 +kdc image/x-raw-kodak base64 +key application/vnd.apple.keynote base64 +keys text/plain quoted-printable +kfo application/vnd.kde.kformula base64 +kia application/vnd.kidspiration base64 +kil application/x-killustrator base64 +kml application/vnd.google-earth.kml+xml 8bit +kmz application/vnd.google-earth.kmz 8bit +kne application/vnd.Kinar base64 +knp application/vnd.Kinar base64 +kom application/vnd.hbci base64 +kon application/vnd.kde.kontour base64 +kpr application/vnd.kde.kpresenter base64 +kpt application/vnd.kde.kpresenter base64 +kpxx application/vnd.ds-keypoint base64 +ksp application/vnd.kde.kspread base64 +ktr application/vnd.kahootz base64 +ktx image/ktx base64 +ktz application/vnd.kahootz base64 +kwd application/vnd.kde.kword base64 +kwt application/vnd.kde.kword base64 +l text/x-lex quoted-printable +l16 audio/L16 base64 +las application/x-asprs base64 +lasxml application/vnd.las.las+xml base64 +latex application/x-latex 8bit +laz application/x-asprs base64 +lbd application/vnd.llamagraphics.life-balance.desktop base64 +lbe application/vnd.llamagraphics.life-balance.exchange+xml base64 +les application/vnd.hhe.lesson-player base64 +less text/x-less quoted-printable +lha application/octet-stream base64 +lhs text/x-haskell quoted-printable +license text/plain quoted-printable +link66 application/vnd.route66.link66+xml base64 +lisp text/x-common-lisp quoted-printable +list text/plain quoted-printable +list3820 application/vnd.ibm.modcap base64 +listafp application/vnd.ibm.modcap base64 +lnk application/x-ms-shortcut base64 +log text/plain quoted-printable +lostxml application/lost+xml base64 +lrf application/octet-stream base64 +lrm application/vnd.ms-lrm base64 +lsp text/x-common-lisp quoted-printable +ltf application/vnd.frogans.ltf base64 +ltx application/x-latex 8bit +lua text/x-lua quoted-printable +lvp audio/vnd.lucent.voice base64 +lwp application/vnd.lotus-wordpro base64 +lyr application/x-esri-layer base64 +lz application/x-lzip base64 +lz4 application/x-lz4 base64 +lzh application/octet-stream base64 +lzma application/x-lzma base64 +m text/x-objcsrc quoted-printable +m13 application/x-msmediaview base64 +m14 application/x-msmediaview base64 +m1v video/mpeg base64 +m21 application/mp21 base64 +m2a audio/mpeg base64 +m2t video/MP2T base64 +m2ts video/MP2T base64 +m2v video/mpeg base64 +m3 text/x-modula quoted-printable +m3a audio/mpeg base64 +m3u audio/x-mpegurl base64 +m3u8 application/vnd.apple.mpegurl base64 +m4 text/plain quoted-printable +m4a audio/mp4 base64 +m4b audio/mp4 base64 +m4s video/iso.segment base64 +m4u video/vnd.mpegurl 8bit +m4v video/vnd.objectvideo base64 +ma application/mathematica base64 +mads application/mads+xml base64 +mag application/vnd.ecowin.chart base64 +makefile text/x-makefile quoted-printable +maker application/vnd.framemaker base64 +man text/troff 8bit +manifest text/plain quoted-printable +mar application/octet-stream base64 +markdown text/markdown quoted-printable +mat application/x-matlab-data base64 +mathml application/mathml+xml base64 +mb application/mathematica base64 +mbk application/vnd.Mobius.MBK base64 +mbox application/mbox base64 +mc1 application/vnd.medcalcdata base64 +mcd application/vnd.mcd base64 +mcurl text/vnd.curl.mcurl quoted-printable +md text/markdown quoted-printable +mda application/x-msaccess base64 +mdb application/x-msaccess base64 +mde application/x-msaccess base64 +mdf application/x-msaccess base64 +mdi image/vnd.ms-modi base64 +mdo text/plain quoted-printable +mdtext text/x-web-markdown quoted-printable +me text/troff 8bit +mef image/x-raw-mamiya base64 +memgraph application/x-memgraph base64 +mesh model/mesh base64 +meta text/plain quoted-printable +meta4 application/metalink4+xml base64 +metalink application/metalink+xml base64 +mets application/mets+xml base64 +mf text/plain quoted-printable +mfm application/vnd.mfmp base64 +mft application/rpki-manifest base64 +mg text/x-modula quoted-printable +mgp application/vnd.osgeo.mapguide.package base64 +mgz application/vnd.proteus.magazine base64 +mht multipart/related base64 +mhtml multipart/related base64 +mid audio/midi base64 +midi audio/midi base64 +mie application/x-mie base64 +mif application/vnd.mif base64 +mime message/rfc822 8bit +minigsf audio/x-psf base64 +minipsf audio/x-psf base64 +minipsf1 audio/x-psf base64 +mj2 video/MJ2 base64 +mjp2 video/MJ2 base64 +mjpeg video/x-motion-jpeg base64 +mjpg video/x-motion-jpeg base64 +mjs text/javascript quoted-printable +mk3d video/x-matroska base64 +mka audio/matroska base64 +mkd text/markdown quoted-printable +mks video/x-matroska base64 +mkv video/x-matroska base64 +ml text/x-ml quoted-printable +mli text/x-ocaml quoted-printable +mlp application/vnd.dolby.mlp base64 +mmap application/vnd.mindjet.mindmanager base64 +mmas application/vnd.mindjet.mindmanager base64 +mmat application/vnd.mindjet.mindmanager base64 +mmd application/vnd.chipnuts.karaoke-mmd base64 +mmf application/vnd.smaf base64 +mmmp application/vnd.mindjet.mindmanager base64 +mmp application/vnd.mindjet.mindmanager base64 +mmpt application/vnd.mindjet.mindmanager base64 +mmr image/vnd.fujixerox.edmics-mmr base64 +mng video/x-mng base64 +mny application/x-msmoney base64 +mobi application/x-mobipocket-ebook base64 +mod audio/x-mod base64 +mods application/mods+xml base64 +mos image/x-raw-leaf base64 +mov video/quicktime base64 +movie video/x-sgi-movie base64 +mp2 video/mpeg base64 +mp21 application/mp21 base64 +mp2a audio/mpeg base64 +mp3 audio/mpeg base64 +mp3g video/mpeg base64 +mp4 audio/mp4 base64 +mp4a audio/mp4 base64 +mp4s application/mp4 base64 +mp4v video/mp4 base64 +mpc application/vnd.mophun.certificate base64 +mpd application/dash+xml base64 +mpe video/mpeg base64 +mpeg video/mpeg base64 +mpg video/mpeg base64 +mpg4 audio/mp4 base64 +mpga audio/mpeg base64 +mpkg application/vnd.apple.installer+xml base64 +mpl video/MP2T base64 +mpls video/MP2T base64 +mpm application/vnd.blueice.multipass base64 +mpn application/vnd.mophun.application base64 +mpp application/vnd.ms-project base64 +mpt application/vnd.ms-project base64 +mpx application/x-project base64 +mpy application/vnd.ibm.MiniPay base64 +mqy application/vnd.Mobius.MQY base64 +mrc application/marc base64 +mrcx application/marcxml+xml base64 +mrw image/x-minolta-mrw base64 +ms text/troff 8bit +msa application/vnd.msa-disk-image base64 +mscml application/mediaservercontrol+xml base64 +mseed application/vnd.fdsn.mseed base64 +mseq application/vnd.mseq base64 +msf application/vnd.epson.msf base64 +msg application/vnd.ms-outlook base64 +msh model/mesh base64 +msi application/x-msdownload base64 +msl application/vnd.Mobius.MSL base64 +msp application/x-ms-installer base64 +mst application/x-ms-installer base64 +msty application/vnd.muvee.style base64 +mts video/MP2T base64 +mus application/vnd.musician base64 +musicxml application/vnd.recordare.musicxml+xml base64 +mvb application/x-msmediaview base64 +mwf application/vnd.MFER base64 +mxf application/mxf base64 +mxl application/vnd.recordare.musicxml base64 +mxmf audio/vnd.nokia.mobile-xmf base64 +mxml application/xv+xml base64 +mxs application/vnd.triscape.mxs base64 +mxu video/vnd.mpegurl 8bit +myd application/x-mysql-misam-data base64 +myi application/x-mysql-misam-compressed-index base64 +n-gage application/vnd.nokia.n-gage.symbian.install base64 +n3 text/plain quoted-printable +nar application/vnd.iptc.g2.newsmessage+xml base64 +nb application/mathematica base64 +nbp application/vnd.wolfram.player base64 +nc application/x-netcdf base64 +ncx application/x-dtbncx+xml base64 +nef image/x-raw-nikon base64 +nes application/x-nesrom base64 +nfo text/x-nfo quoted-printable +ngdat application/vnd.nokia.n-gage.data base64 +nim video/vnd.nokia.interleaved-multimedia base64 +nitf application/vnd.nitf base64 +nlu application/vnd.neurolanguage.nlu base64 +nml application/vnd.enliven base64 +nnd application/vnd.noblenet-directory base64 +nns application/vnd.noblenet-sealer base64 +nnw application/vnd.noblenet-web base64 +notebook application/x-smarttech-notebook base64 +notice text/plain quoted-printable +npx image/vnd.net-fpx base64 +nroff text/troff 8bit +nrw image/x-raw-nikon base64 +nsc application/x-conference base64 +nsf application/vnd.lotus-notes base64 +ntf application/vnd.nitf base64 +numbers application/vnd.apple.numbers base64 +nzb application/x-nzb base64 +oa2 application/vnd.fujitsu.oasys2 base64 +oa3 application/vnd.fujitsu.oasys3 base64 +oas application/vnd.fujitsu.oasys base64 +obd application/x-msbinder base64 +obj application/x-tgif base64 +ocaml text/x-ocaml quoted-printable +oda application/oda base64 +odb application/vnd.oasis.opendocument.base base64 +odc application/vnd.oasis.opendocument.chart-template base64 +odf application/vnd.oasis.opendocument.formula-template base64 +odft application/vnd.oasis.opendocument.formula-template base64 +odg application/vnd.oasis.opendocument.graphics base64 +odi application/vnd.oasis.opendocument.image-template base64 +odm application/vnd.oasis.opendocument.text-master base64 +odp application/vnd.oasis.opendocument.presentation base64 +ods application/vnd.oasis.opendocument.spreadsheet base64 +odt application/vnd.oasis.opendocument.text base64 +oex application/x-opera-extension base64 +oga audio/ogg base64 +ogg audio/ogg base64 +ogm video/x-ogm base64 +ogv video/ogg base64 +ogx application/ogg base64 +omdoc application/omdoc+xml base64 +onepkg application/onenote base64 +onetmp application/onenote base64 +onetoc application/onenote base64 +onetoc2 application/onenote base64 +opf application/oebps-package+xml base64 +opml text/x-opml quoted-printable +oprc application/vnd.palm base64 +opus audio/ogg base64 +orf image/x-olympus-orf base64 +org application/vnd.lotus-organizer base64 +osf application/vnd.yamaha.openscoreformat base64 +osfpvg application/vnd.yamaha.openscoreformat.osfpvg+xml base64 +ost application/vnd.ms-outlook-pst base64 +otc application/vnd.oasis.opendocument.chart-template base64 +otf font/otf base64 +otg application/vnd.oasis.opendocument.graphics-template base64 +oth application/vnd.oasis.opendocument.text-web base64 +oti application/vnd.oasis.opendocument.image-template base64 +otm application/vnd.oasis.opendocument.text-master base64 +otp application/vnd.oasis.opendocument.presentation-template base64 +ots application/vnd.oasis.opendocument.spreadsheet-template base64 +ott application/vnd.oasis.opendocument.text-template base64 +owl application/rdf+xml 8bit +oxps application/vnd.ms-xpsdocument 8bit +oxt application/vnd.openofficeorg.extension base64 +p text/x-pascal quoted-printable +p10 application/pkcs10 base64 +p12 application/x-pkcs12 base64 +p7b application/x-pkcs7-certificates base64 +p7c application/pkcs7-mime base64 +p7m application/pkcs7-mime base64 +p7r application/x-pkcs7-certreqresp base64 +p7s application/pkcs7-signature base64 +p8 application/pkcs8 base64 +pac application/x-ns-proxy-autoconfig base64 +pack application/x-java-pack200 base64 +pages application/vnd.apple.pages base64 +pam image/x-portable-arbitrarymap base64 +parquet application/x-parquet base64 +pas text/x-pascal quoted-printable +patch text/x-diff quoted-printable +paw application/vnd.pawaafile base64 +pbd application/vnd.powerbuilder6 base64 +pbm image/x-portable-bitmap base64 +pcap application/vnd.tcpdump.pcap base64 +pcapng application/vnd.tcpdump.pcapng base64 +pcf application/x-font-pcf base64 +pcl application/vnd.hp-PCL base64 +pclxl application/vnd.hp-PCLXL base64 +pct image/x-pict base64 +pcurl application/vnd.curl.pcurl base64 +pcx image/vnd.zbrush.pcx base64 +pdb application/vnd.palm base64 +pdf application/pdf base64 +pef image/x-raw-pentax base64 +pen text/plain quoted-printable +perl text/x-perl quoted-printable +pfa application/x-font-type1 base64 +pfb application/x-font-type1 base64 +pfm application/x-font-type1 base64 +pfr application/font-tdpfr base64 +pfx application/x-pkcs12 base64 +pgb image/vnd.globalgraphics.pgb base64 +pgm image/x-portable-graymap base64 +pgn application/x-chess-pgn base64 +pgp application/octet-stream base64 +php application/x-httpd-php 8bit +php3 text/x-php quoted-printable +php4 text/x-php quoted-printable +pht application/x-httpd-php 8bit +phtml application/x-httpd-php 8bit +pic image/x-pict base64 +pict image/x-pict base64 +pkd application/vnd.hbci base64 +pkg application/octet-stream base64 +pki application/pkixcmp base64 +pkipath application/pkix-pkipath base64 +pkpass application/vnd.apple.pkpass base64 +pl text/x-perl quoted-printable +plb application/vnd.3gpp.pic-bw-large base64 +plc application/vnd.Mobius.PLC base64 +plf application/vnd.pocketlearn base64 +plj audio/vnd.everad.plj base64 +pls application/pls+xml base64 +plt application/vnd.hp-HPGL base64 +pm text/x-perl quoted-printable +pm5 application/x-pagemaker base64 +pml application/vnd.ctc-posml base64 +png image/png base64 +pnm image/x-portable-anymap base64 +pod text/plain quoted-printable +pom text/plain quoted-printable +portpkg application/vnd.macports.portpkg base64 +pot application/vnd.ms-powerpoint base64 +potm application/vnd.ms-powerpoint.template.macroEnabled.12 base64 +potx application/vnd.openxmlformats-officedocument.presentationml.template base64 +pp text/x-pascal quoted-printable +ppa application/vnd.ms-powerpoint base64 +ppam application/vnd.ms-powerpoint.addin.macroEnabled.12 base64 +ppd application/vnd.cups-ppd base64 +ppj image/vnd.adobe.premiere base64 +ppm image/x-portable-pixmap base64 +pps application/vnd.ms-powerpoint base64 +ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12 base64 +ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow base64 +ppt application/vnd.ms-powerpoint base64 +pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12 base64 +pptx application/vnd.openxmlformats-officedocument.presentationml.presentation base64 +ppz application/vnd.ms-powerpoint base64 +pqa application/vnd.palm base64 +prc application/vnd.palm base64 +pre application/vnd.lotus-freelance base64 +prf application/pics-rules base64 +pro text/x-prolog quoted-printable +project text/plain quoted-printable +properties text/x-java-properties quoted-printable +prql application/prql base64 +prt application/x-prt base64 +ps application/postscript 8bit +ps1 application/x-msdownload base64 +psb application/vnd.3gpp.pic-bw-small base64 +psd image/vnd.adobe.photoshop base64 +psf application/x-font-linux-psf base64 +psf1 audio/x-psf base64 +psflib audio/x-psf base64 +pskcxml application/pskc+xml base64 +psp image/x-paintshoppro base64 +pspimage image/x-paintshoppro base64 +pst application/vnd.ms-outlook-pst base64 +pt5 application/x-pagemaker base64 +pti application/vnd.pvi.ptid1 base64 +ptid application/vnd.pvi.ptid1 base64 +ptx image/x-raw-pentax base64 +pub application/x-mspublisher base64 +pvb application/vnd.3gpp.pic-bw-var base64 +pwn application/vnd.3M.Post-it-Notes base64 +pxn image/x-raw-logitech base64 +py application/x-python 8bit +pya audio/vnd.ms-playready.media.pya base64 +pyv video/vnd.ms-playready.media.pyv base64 +qam application/vnd.epson.quickanime base64 +qbo application/vnd.intu.qbo base64 +qcp audio/vnd.qcelp base64 +qfx application/vnd.intu.qfx base64 +qps application/vnd.publishare-delta-tree base64 +qpw application/x-quattro-pro base64 +qt video/quicktime base64 +qtl application/x-quicktimeplayer base64 +qwd application/vnd.Quark.QuarkXPress 8bit +qwt application/vnd.Quark.QuarkXPress 8bit +qxb application/vnd.Quark.QuarkXPress 8bit +qxd application/vnd.Quark.QuarkXPress 8bit +qxl application/vnd.Quark.QuarkXPress 8bit +qxt application/vnd.Quark.QuarkXPress 8bit +r text/x-rsrc quoted-printable +r3d image/x-raw-red base64 +ra audio/x-pn-realaudio base64 +raf image/x-fuji-raf base64 +ram audio/x-pn-realaudio base64 +rar application/x-rar-compressed base64 +ras image/x-cmu-raster base64 +raw image/x-raw-panasonic base64 +rb application/x-ruby 8bit +rbw application/x-ruby 8bit +rcprofile application/vnd.ipunplugged.rcprofile base64 +rct application/prs.nprend base64 +rdf application/rdf+xml 8bit +rdz application/vnd.data-vision.rdz base64 +readme text/plain quoted-printable +reg application/x-msdownload base64 +rep application/vnd.businessobjects base64 +req application/vnd.nervana base64 +request application/vnd.nervana base64 +res application/x-dtbresource+xml base64 +rest text/x-rst quoted-printable +restx text/x-rst quoted-printable +rexx text/x-rexx quoted-printable +rgb image/x-rgb base64 +rhtml application/x-html+ruby 8bit +rif application/reginfo+xml base64 +rip audio/vnd.rip base64 +ris application/x-research-info-systems base64 +rl application/resource-lists+xml base64 +rlc image/vnd.fujixerox.edmics-rlc base64 +rld application/resource-lists-diff+xml base64 +rm application/vnd.rn-realmedia base64 +rmi audio/midi base64 +rmp audio/x-pn-realaudio-plugin base64 +rms application/vnd.jcp.javame.midlet-rms base64 +rmvb application/vnd.rn-realmedia-vbr base64 +rnc application/relax-ng-compact-syntax base64 +rnd application/prs.nprend base64 +rng text/plain quoted-printable +rnx text/plain quoted-printable +roa application/rpki-roa base64 +roff text/troff 8bit +roles text/plain quoted-printable +rp9 application/vnd.cloanto.rp9 base64 +rpm audio/x-pn-realaudio-plugin base64 +rpss application/vnd.nokia.radio-presets base64 +rpst application/vnd.nokia.radio-preset base64 +rq application/sparql-query base64 +rs application/rls-services+xml base64 +rsd application/rsd+xml base64 +rss application/rss+xml base64 +rst text/plain quoted-printable +rtf application/rtf base64 +rtx text/richtext 8bit +rw2 image/x-raw-panasonic base64 +rwz image/x-raw-rawzor base64 +s text/x-asm quoted-printable +s11 video/vnd.sealed.mpeg1 base64 +s14 video/vnd.sealed.mpeg4 base64 +s1a application/vnd.sealedmedia.softseal.pdf base64 +s1e application/vnd.sealed.xls base64 +s1h application/vnd.sealedmedia.softseal.html base64 +s1m audio/vnd.sealedmedia.softseal.mpeg base64 +s1p application/vnd.sealed.ppt base64 +s1q video/vnd.sealedmedia.softseal.mov base64 +s1w application/vnd.sealed.doc base64 +s3m audio/s3m base64 +s7m application/x-sas-dmdb base64 +sa7 application/x-sas-access base64 +saf application/vnd.yamaha.smaf-audio base64 +sap audio/x-sap base64 +sas application/x-sas base64 +sas7bacs application/x-sas-access base64 +sas7baud application/x-sas-audit base64 +sas7bbak application/x-sas-backup base64 +sas7bcat application/x-sas-catalog base64 +sas7bdat application/x-sas-data base64 +sas7bdmd application/x-sas-dmdb base64 +sas7bfdb application/x-sas-fdb base64 +sas7bitm application/x-sas-itemstor base64 +sas7bmdb application/x-sas-mddb base64 +sas7bndx application/x-sas-data-index base64 +sas7bpgm application/x-sas-program-data base64 +sas7bput application/x-sas-putility base64 +sas7butl application/x-sas-utility base64 +sas7bvew application/x-sas-view base64 +sav application/x-spss base64 +sbml application/sbml+xml base64 +sbs application/x-spss base64 +sc application/vnd.ibm.secure-container base64 +sc7 application/x-sas-catalog base64 +scad application/x-openscad base64 +scala text/x-scala quoted-printable +scd application/x-msschedule base64 +schemas text/plain quoted-printable +scm application/vnd.lotus-screencam base64 +scq application/scvp-cv-request base64 +scs application/scvp-cv-response base64 +scurl text/vnd.curl.scurl quoted-printable +sd2 application/x-sas-data-v6 base64 +sd7 application/x-sas-data base64 +sda application/vnd.stardivision.draw base64 +sdc application/vnd.stardivision.calc base64 +sdd application/vnd.stardivision.impress base64 +sdf application/vnd.Kinar base64 +sdkd application/vnd.solent.sdkm+xml base64 +sdkm application/vnd.solent.sdkm+xml base64 +sdo application/vnd.sealed.doc base64 +sdoc application/vnd.sealed.doc base64 +sdp application/sdp base64 +sds application/vnd.stardivision.chart base64 +sdw application/vnd.stardivision.writer base64 +sed text/x-sed quoted-printable +see application/vnd.seemail base64 +seed application/vnd.fdsn.seed base64 +sem application/vnd.sealed.eml base64 +sema application/vnd.sema base64 +semd application/vnd.semd base64 +semf application/vnd.semf base64 +seml application/vnd.sealed.eml base64 +ser application/java-serialized-object base64 +setpay application/set-payment-initiation base64 +setreg application/set-registration-initiation base64 +sf7 application/x-sas-fdb base64 +sfd-hdstx application/vnd.hydrostatix.sof-data base64 +sfdu application/x-sfdu base64 +sfs application/vnd.spotfire.sfs base64 +sfv text/x-sfv quoted-printable +sgi image/sgi base64 +sgl application/vnd.stardivision.writer-global base64 +sgm text/sgml quoted-printable +sgml text/sgml quoted-printable +sh application/x-sh 8bit +shar application/x-shar 8bit +shf application/shf+xml base64 +shp application/x-shapefile base64 +shtml text/html 8bit +shw application/x-corelpresentations base64 +si text/vnd.wap.si quoted-printable +si7 application/x-sas-data-index base64 +sib application/x-sibelius base64 +sic application/vnd.wap.sic base64 +sid image/x-mrsid-image base64 +sig application/pgp-signature base64 +sil audio/silk base64 +silo model/mesh base64 +sis application/vnd.symbian.install base64 +sisx application/vnd.symbian.install base64 +sit application/x-stuffit base64 +sitx application/x-stuffitx base64 +siv application/sieve base64 +sj application/javascript 8bit +skd application/vnd.koan base64 +skm application/vnd.koan base64 +skp application/vnd.koan base64 +skt application/vnd.koan base64 +sl text/vnd.wap.sl quoted-printable +slc application/vnd.wap.slc base64 +sldasm application/sldworks base64 +slddrw application/sldworks base64 +sldm application/vnd.ms-powerpoint.slide.macroEnabled.12 base64 +sldprt application/sldworks base64 +sldx application/vnd.openxmlformats-officedocument.presentationml.slide base64 +slt application/vnd.epson.salt base64 +sm application/vnd.stepmania.stepchart base64 +sm7 application/x-sas-mddb base64 +smf application/vnd.stardivision.math base64 +smh application/vnd.sealed.mht base64 +smht application/vnd.sealed.mht base64 +smi application/smil+xml 8bit +smil application/smil+xml 8bit +sml application/smil+xml 8bit +smo video/vnd.sealedmedia.softseal.mov base64 +smov video/vnd.sealedmedia.softseal.mov base64 +smp audio/vnd.sealedmedia.softseal.mpeg base64 +smp3 audio/vnd.sealedmedia.softseal.mpeg base64 +smpg video/vnd.sealed.mpeg4 base64 +sms application/vnd.3gpp.sms base64 +smv audio/SMV base64 +smzip application/vnd.stepmania.package base64 +snd audio/basic base64 +snf application/x-font-snf base64 +so application/octet-stream base64 +soc application/sgml-open-catalog base64 +sp7 application/x-sas-putility base64 +spc application/x-pkcs7-certificates base64 +spd application/vnd.sealedmedia.softseal.pdf base64 +spdf application/vnd.sealedmedia.softseal.pdf base64 +spf application/vnd.yamaha.smaf-phrase base64 +spl application/x-futuresplash base64 +spo application/x-spss base64 +spot text/vnd.in3d.spot quoted-printable +spp application/vnd.sealed.ppt base64 +sppt application/vnd.sealed.ppt base64 +spq application/scvp-vp-request base64 +sps application/x-spss base64 +spx audio/ogg base64 +sql application/x-sql base64 +sr2 image/x-raw-sony base64 +sr7 application/x-sas-itemstor base64 +src application/x-wais-source base64 +srf image/x-raw-sony base64 +srl application/sereal base64 +srt application/x-subrip base64 +sru application/sru+xml base64 +srx application/sparql-results+xml base64 +ss7 application/x-sas-program-data base64 +ssdl application/ssdl+xml base64 +sse application/vnd.kodak-descriptor base64 +ssf application/vnd.epson.ssf base64 +ssml application/ssml+xml base64 +ssw video/vnd.sealed.swf base64 +sswf video/vnd.sealed.swf base64 +st application/vnd.sailingtracker.track base64 +st7 application/x-sas-audit base64 +stc application/vnd.sun.xml.calc.template base64 +std application/vnd.sun.xml.draw.template base64 +stf application/vnd.wt.stf base64 +sti application/vnd.sun.xml.impress.template base64 +stk application/hyperstudio base64 +stl application/vnd.ms-pki.stl base64 +stm application/vnd.sealedmedia.softseal.html base64 +stml application/vnd.sealedmedia.softseal.html base64 +str application/vnd.pg.format base64 +stw application/vnd.sun.xml.writer.template base64 +stx application/x-sas-transport base64 +su7 application/x-sas-utility base64 +sub image/vnd.dvb.subtitle base64 +sus application/vnd.sus-calendar base64 +susp application/vnd.sus-calendar base64 +sv4cpio application/x-sv4cpio base64 +sv4crc application/x-sv4crc base64 +sv7 application/x-sas-view base64 +svc application/vnd.dvb.service base64 +svd application/vnd.svd base64 +svg image/svg+xml 8bit +svgz image/svg+xml 8bit +swa application/x-director base64 +swf application/x-shockwave-flash base64 +swi application/vnd.aristanetworks.swi base64 +sxc application/vnd.sun.xml.calc base64 +sxd application/vnd.sun.xml.draw base64 +sxg application/vnd.sun.xml.writer.global base64 +sxi application/vnd.sun.xml.impress base64 +sxl application/vnd.sealed.xls base64 +sxls application/vnd.sealed.xls base64 +sxm application/vnd.sun.xml.math base64 +sxw application/vnd.sun.xml.writer base64 +sz application/x-snappy-framed base64 +t text/troff 8bit +t3 application/x-t3vm-image base64 +taglet application/vnd.mynfc base64 +tao application/vnd.tao.intent-module-archive base64 +tar application/x-tar base64 +tbk application/x-toolbook base64 +tbz application/x-gtar base64 +tbz2 application/x-gtar base64 +tcap application/vnd.3gpp2.tcap base64 +tcl text/x-tcl quoted-printable +tcsh application/x-csh 8bit +teacher application/vnd.smart.teacher base64 +tei application/tei+xml base64 +teicorpus application/tei+xml base64 +tex application/x-tex 8bit +texi application/x-texinfo 8bit +texinfo application/x-texinfo 8bit +text text/plain quoted-printable +textile text/plain quoted-printable +tfi application/thraud+xml base64 +tfm application/x-tex-tfm base64 +tga image/x-tga base64 +tgz application/gzip base64 +thmx application/vnd.openxmlformats-officedocument.presentationml.presentation base64 +tif image/tiff base64 +tiff image/tiff base64 +tk text/x-tcl quoted-printable +tld text/plain quoted-printable +tmo application/vnd.tmobile-livetv base64 +tmx application/x-tmx base64 +toast application/x-roxio-toast base64 +torrent application/x-bittorrent base64 +tpl application/vnd.groove-tool-template base64 +tpt application/vnd.trid.tpt base64 +tr text/troff 8bit +tra application/vnd.trueapp base64 +trm application/x-msterminal base64 +troff text/troff 8bit +ts video/MP2T base64 +tsd application/timestamped-data base64 +tsv text/tab-separated-values quoted-printable +ttc font/collection base64 +ttf font/ttf base64 +ttl text/turtle quoted-printable +ttml application/ttml+xml base64 +twd application/vnd.SimTech-MindMapper base64 +twds application/vnd.SimTech-MindMapper base64 +txd application/vnd.genomatix.tuxedo base64 +txf application/vnd.Mobius.TXF base64 +txt text/plain quoted-printable +types text/plain quoted-printable +tzx application/x-spectrum-tzx base64 +u32 application/x-authorware-bin base64 +uc2 application/x-uc2-compressed base64 +udeb application/x-debian-package base64 +ufd application/vnd.ufdl base64 +ufdl application/vnd.ufdl base64 +ulx application/x-glulx base64 +umj application/vnd.umajin base64 +unityweb application/vnd.unity base64 +uoml application/vnd.uoml+xml base64 +upa application/vnd.hbci base64 +uri text/uri-list quoted-printable +uris text/uri-list quoted-printable +urls text/uri-list quoted-printable +ustar application/x-ustar base64 +utz application/vnd.uiq.theme base64 +uu text/x-uuencode quoted-printable +uva audio/vnd.dece.audio base64 +uvd application/vnd.dece.data base64 +uvf application/vnd.dece.data base64 +uvg image/vnd.dece.graphic base64 +uvh video/vnd.dece.hd base64 +uvi image/vnd.dece.graphic base64 +uvm video/vnd.dece.mobile base64 +uvp video/vnd.dece.pd base64 +uvs video/vnd.dece.sd base64 +uvt application/vnd.dece.ttml+xml base64 +uvu video/vnd.uvvu.mp4 base64 +uvv video/vnd.dece.video base64 +uvva audio/vnd.dece.audio base64 +uvvd application/vnd.dece.data base64 +uvvf application/vnd.dece.data base64 +uvvg image/vnd.dece.graphic base64 +uvvh video/vnd.dece.hd base64 +uvvi image/vnd.dece.graphic base64 +uvvm video/vnd.dece.mobile base64 +uvvp video/vnd.dece.pd base64 +uvvs video/vnd.dece.sd base64 +uvvt application/vnd.dece.ttml+xml base64 +uvvu video/vnd.uvvu.mp4 base64 +uvvv video/vnd.dece.video base64 +uvvx application/vnd.dece.unspecified base64 +uvvz application/vnd.dece.zip base64 +uvx application/vnd.dece.unspecified base64 +uvz application/vnd.dece.zip base64 +v text/x-verilog quoted-printable +vb text/x-vbdotnet quoted-printable +vbk audio/vnd.nortel.vbk base64 +vbs application/x-msdownload base64 +vcard text/vcard quoted-printable +vcd application/x-cdlink base64 +vcf text/x-vcard 8bit +vcg application/vnd.groove-vcard base64 +vcs text/x-vcalendar 8bit +vcx application/vnd.vcx base64 +vda image/x-tga base64 +vf application/x-tex-virtual-font base64 +vhd text/x-vhdl quoted-printable +vhdl text/x-vhdl quoted-printable +vis application/vnd.visionary base64 +viv video/vnd.vivo base64 +vivo video/vnd.vivo base64 +vm text/plain quoted-printable +vmdk application/x-vmdk base64 +vob video/x-ms-vob base64 +vor application/vnd.stardivision.writer base64 +vox application/x-authorware-bin base64 +vrml model/vrml base64 +vsc application/vnd.vidsoft.vidconference 8bit +vsd application/vnd.visio base64 +vsdm application/vnd.ms-visio.drawing.macroEnabled.12 base64 +vsdx application/vnd.ms-visio.drawing base64 +vsf application/vnd.vsf base64 +vsl text/plain quoted-printable +vss application/vnd.visio base64 +vssm application/vnd.ms-visio.stencil.macroEnabled.12 base64 +vssx application/vnd.ms-visio.stencil base64 +vst application/vnd.visio base64 +vstm application/vnd.ms-visio.template.macroEnabled.12 base64 +vstx application/vnd.ms-visio.template base64 +vsw application/vnd.visio base64 +vtt text/vtt quoted-printable +vtu model/vnd.vtu base64 +vxml application/voicexml+xml base64 +w3d application/x-director base64 +w60 application/vnd.wordperfect base64 +wad application/x-doom base64 +war application/x-tika-java-web-archive base64 +warc application/warc base64 +warc.gz application/warc+gz base64 +wasm application/wasm 8bit +wav audio/vnd.wave base64 +wax audio/x-ms-wax base64 +wb1 application/x-quattro-pro base64 +wb2 application/x-quattro-pro base64 +wb3 application/x-quattro-pro base64 +wbmp image/vnd.wap.wbmp base64 +wbs application/vnd.criticaltools.wbs+xml base64 +wbxml application/vnd.wap.wbxml base64 +wcm application/vnd.ms-works base64 +wdb application/vnd.ms-works base64 +wdp image/vnd.ms-photo base64 +weba audio/webm base64 +webapp application/x-web-app-manifest+json base64 +webarchive application/x-webarchive base64 +webm audio/webm base64 +webmanifest application/manifest+json base64 +webp image/webp base64 +wg application/vnd.pmi.widget base64 +wgt application/widget base64 +wif application/watcherinfo+xml base64 +wk application/x-123 base64 +wk1 application/vnd.lotus-1-2-3 base64 +wk2 application/vnd.lotus-1-2-3 base64 +wk3 application/vnd.lotus-1-2-3 base64 +wk4 application/vnd.lotus-1-2-3 base64 +wkq application/x-quattro-pro base64 +wks application/vnd.lotus-1-2-3 base64 +wkz application/x-Wingz base64 +wl application/vnd.wolfram.wl base64 +wm video/x-ms-wm base64 +wma audio/x-ms-wma base64 +wmd application/x-ms-wmd base64 +wmf image/wmf base64 +wml text/vnd.wap.wml quoted-printable +wmlc application/vnd.wap.wmlc base64 +wmls text/vnd.wap.wmlscript quoted-printable +wmlsc application/vnd.wap.wmlscriptc base64 +wmv audio/x-ms-wmv base64 +wmx video/x-ms-wmx base64 +wmz application/x-msmetafile base64 +woff font/woff base64 +woff2 font/woff2 base64 +wp application/vnd.wordperfect base64 +wp5 application/vnd.wordperfect base64 +wp6 application/vnd.wordperfect base64 +wp61 application/vnd.wordperfect base64 +wpd application/vnd.wordperfect base64 +wpl application/vnd.ms-wpl base64 +wps application/vnd.ms-works base64 +wpt application/vnd.wordperfect base64 +wq1 application/x-quattro-pro base64 +wq2 application/x-quattro-pro base64 +wqd application/vnd.wqd base64 +wrd application/msword base64 +wri application/x-mswrite base64 +wrl model/vrml base64 +wsdd text/plain quoted-printable +wsdl application/wsdl+xml base64 +wspolicy application/wspolicy+xml base64 +wtb application/vnd.webturbo base64 +wv application/vnd.wv.csp+wbxml base64 +wvx video/x-ms-wvx base64 +wz application/x-Wingz base64 +x32 application/x-authorware-bin base64 +x3d model/x3d+xml base64 +x3db model/x3d+binary base64 +x3dbz model/x3d+binary base64 +x3dv model/x3d+vrml base64 +x3dvz model/x3d+vrml base64 +x3dz model/x3d+xml base64 +x3f image/x-raw-sigma base64 +x_b model/vnd.parasolid.transmit.binary base64 +x_t model/vnd.parasolid.transmit.text quoted-printable +xaml application/xaml+xml base64 +xap application/x-silverlight-app base64 +xar application/vnd.xara base64 +xargs text/plain quoted-printable +xbap application/x-ms-xbap base64 +xbd application/vnd.fujixerox.docuworks.binder base64 +xbm image/x-xbitmap 7bit +xcat text/plain quoted-printable +xcf image/x-xcf base64 +xcfbz2 image/x-compressed-xcf base64 +xcfgz image/x-compressed-xcf base64 +xconf text/x-config quoted-printable +xdf application/xcap-diff+xml base64 +xdm application/vnd.syncml.dm+xml base64 +xdp application/vnd.adobe.xdp+xml base64 +xdssc application/dssc+xml base64 +xdw application/vnd.fujixerox.docuworks base64 +xegrm text/plain quoted-printable +xenc application/xenc+xml base64 +xer application/patch-ops-error+xml base64 +xfdf application/vnd.adobe.xfdf base64 +xfdl application/vnd.xfdl base64 +xgrm text/plain quoted-printable +xht application/xhtml+xml 8bit +xhtml application/xhtml+xml 8bit +xhtml2 application/xhtml+xml 8bit +xhvml application/xv+xml base64 +xif image/vnd.xiff base64 +xla application/vnd.ms-excel base64 +xlam application/vnd.ms-excel.addin.macroEnabled.12 base64 +xlc application/vnd.ms-excel base64 +xld application/vnd.ms-excel base64 +xlex text/plain quoted-printable +xlf application/x-xliff+xml base64 +xliff application/x-xliff+xml base64 +xll application/vnd.ms-excel base64 +xlm application/vnd.ms-excel base64 +xlog text/plain quoted-printable +xlr application/x-tika-msworks-spreadsheet base64 +xls application/vnd.ms-excel base64 +xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12 base64 +xlsm application/vnd.ms-excel.sheet.macroEnabled.12 base64 +xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet base64 +xlt application/vnd.ms-excel base64 +xltm application/vnd.ms-excel.template.macroEnabled.12 base64 +xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template base64 +xlw application/vnd.ms-excel base64 +xlz application/x-xliff+zip base64 +xm audio/xm base64 +xmap text/plain quoted-printable +xmind application/x-xmind base64 +xml application/xml 8bit +xmp application/rdf+xml 8bit +xmt_bin model/vnd.parasolid.transmit.binary base64 +xmt_txt model/vnd.parasolid.transmit.text quoted-printable +xo application/vnd.olpc-sugar base64 +xop application/xop+xml base64 +xpi application/x-xpinstall base64 +xpl application/xproc+xml base64 +xpm image/x-xpixmap 8bit +xport application/x-sas-xport base64 +xpr application/vnd.is-xpr base64 +xps application/vnd.ms-xpsdocument 8bit +xpt application/x-sas-xport base64 +xpw application/vnd.intercon.formnet base64 +xpx application/vnd.intercon.formnet base64 +xq application/xquery base64 +xquery application/xquery base64 +xroles text/plain quoted-printable +xsamples text/plain quoted-printable +xsd application/xml 8bit +xsl application/xml 8bit +xslfo application/xslfo+xml base64 +xslt application/xslt+xml base64 +xsm application/vnd.syncml+xml base64 +xsp text/plain quoted-printable +xspf application/xspf+xml base64 +xtest text/plain quoted-printable +xul application/vnd.mozilla.xul+xml base64 +xvm application/xv+xml base64 +xvml application/xv+xml base64 +xwd image/x-xwindowdump base64 +xweb text/plain quoted-printable +xwelcome text/plain quoted-printable +xyz x-chemical/x-xyz base64 +xz application/x-xz base64 +y text/x-yacc quoted-printable +yaml text/x-yaml 8bit +yang application/yang base64 +yin application/yin+xml base64 +yml text/x-yaml 8bit +z application/x-compressed base64 +z1 application/x-zmachine base64 +z2 application/x-zmachine base64 +z3 application/x-zmachine base64 +z4 application/x-zmachine base64 +z5 application/x-zmachine base64 +z6 application/x-zmachine base64 +z7 application/x-zmachine base64 +z8 application/x-zmachine base64 +zaz application/vnd.zzazz.deck+xml base64 +zip application/zip base64 +zipx application/zip base64 +zir application/vnd.zul base64 +zirz application/vnd.zul base64 +zmm application/vnd.HandHeld-Entertainment+xml base64 +zoo application/x-zoo base64 +zst application/zstd base64 diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime-types.json b/gems/gems/mime-types-data-3.2025.0909/data/mime-types.json new file mode 100644 index 0000000..38334dc --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime-types.json @@ -0,0 +1 @@ +[{"content-type":"application/1d-interleaved-parityfec","encoding":"base64","xrefs":{"rfc":["rfc6015"],"template":["application/1d-interleaved-parityfec"]},"registered":true,"sort-priority":16},{"content-type":"application/1ob","encoding":"base64","xrefs":{"person":["Rob_Coyle"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/3gpdash-qoe-report+xml","encoding":"base64","xrefs":{"person":["Ozgur_Oyman","_3GPP"],"template":["application/3gpdash-qoe-report+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/3gpp-ims+xml","encoding":"base64","xrefs":{"person":["John_M_Meredith","_3GPP"],"template":["application/3gpp-ims+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/3gppHal+json","encoding":"base64","xrefs":{"person":["Ulrich_Wiehe","_3GPP"],"template":["application/3gppHal+json"]},"registered":true,"sort-priority":16},{"content-type":"application/3gppHalForms+json","encoding":"base64","xrefs":{"person":["Ulrich_Wiehe","_3GPP"],"template":["application/3gppHalForms+json"]},"registered":true,"sort-priority":16},{"content-type":"application/A2L","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/A2L"]},"registered":true,"sort-priority":16},{"content-type":"application/acad","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/access","encoding":"base64","extensions":["mdf","mda","mdb","mde"],"obsolete":true,"use-instead":"application/x-msaccess","registered":false,"sort-priority":172},{"content-type":"application/ace+cbor","encoding":"base64","xrefs":{"rfc":["rfc9200"],"template":["application/ace+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/ace+json","encoding":"base64","xrefs":{"rfc":["rfc9431"],"template":["application/ace+json"]},"registered":true,"sort-priority":16},{"content-type":"application/ace-groupcomm+cbor","encoding":"base64","xrefs":{"rfc":["rfc9594"],"template":["application/ace-groupcomm+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/ace-trl+cbor","encoding":"base64","xrefs":{"rfc":["rfc9770"],"template":["application/ace-trl+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/activemessage","encoding":"base64","xrefs":{"person":["Ehud_Shapiro"],"template":["application/activemessage"]},"registered":true,"sort-priority":16},{"content-type":"application/activity+json","encoding":"base64","xrefs":{"person":["Benjamin_Goering","W3C"],"template":["application/activity+json"]},"registered":true,"sort-priority":16},{"content-type":"application/aif+cbor","encoding":"base64","xrefs":{"rfc":["rfc9237"],"template":["application/aif+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/aif+json","encoding":"base64","xrefs":{"rfc":["rfc9237"],"template":["application/aif+json"]},"registered":true,"sort-priority":16},{"content-type":"application/akn+xml","encoding":"base64","xrefs":{"person":["Chet_Ensign"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/alto-cdni+json","encoding":"base64","xrefs":{"rfc":["rfc9241"],"template":["application/alto-cdni+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-cdnifilter+json","encoding":"base64","xrefs":{"rfc":["rfc9241"],"template":["application/alto-cdnifilter+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-costmap+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-costmap+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-costmapfilter+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-costmapfilter+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-directory+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-directory+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-endpointcost+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-endpointcost+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-endpointcostparams+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-endpointcostparams+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-endpointprop+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-endpointprop+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-endpointpropparams+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-endpointpropparams+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-error+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-error+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-networkmap+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-networkmap+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-networkmapfilter+json","encoding":"base64","xrefs":{"rfc":["rfc7285"],"template":["application/alto-networkmapfilter+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-propmap+json","encoding":"base64","xrefs":{"rfc":["rfc9240"],"template":["application/alto-propmap+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-propmapparams+json","encoding":"base64","xrefs":{"rfc":["rfc9240"],"template":["application/alto-propmapparams+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-tips+json","encoding":"base64","xrefs":{"rfc":["rfc9569"],"template":["application/alto-tips+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-tipsparams+json","encoding":"base64","xrefs":{"rfc":["rfc9569"],"template":["application/alto-tipsparams+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-updatestreamcontrol+json","encoding":"base64","xrefs":{"rfc":["rfc8895"],"template":["application/alto-updatestreamcontrol+json"]},"registered":true,"sort-priority":16},{"content-type":"application/alto-updatestreamparams+json","encoding":"base64","xrefs":{"rfc":["rfc8895"],"template":["application/alto-updatestreamparams+json"]},"registered":true,"sort-priority":16},{"content-type":"application/AML","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/AML"]},"registered":true,"sort-priority":16},{"content-type":"application/andrew-inset","friendly":{"en":"Andrew Toolkit"},"encoding":"base64","extensions":["ez"],"xrefs":{"person":["Nathaniel_Borenstein"],"template":["application/andrew-inset"]},"registered":true,"sort-priority":15},{"content-type":"application/appledouble","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/applefile","encoding":"base64","xrefs":{"person":["Patrik_Faltstrom"],"template":["application/applefile"]},"registered":true,"sort-priority":16},{"content-type":"application/application/jwk-set+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/application/jwk-set+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/applixware","friendly":{"en":"Applixware"},"encoding":"base64","extensions":["aw"],"registered":false,"sort-priority":47},{"content-type":"application/at+jwt","encoding":"base64","xrefs":{"rfc":["rfc9068"],"template":["application/at+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/ATF","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/ATF"]},"registered":true,"sort-priority":16},{"content-type":"application/ATFX","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/ATFX"]},"registered":true,"sort-priority":16},{"content-type":"application/atom+xml","friendly":{"en":"Atom Syndication Format"},"encoding":"8bit","extensions":["atom"],"xrefs":{"rfc":["rfc4287","rfc5023"],"template":["application/atom+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/atomcat+xml","friendly":{"en":"Atom Publishing Protocol"},"encoding":"8bit","extensions":["atomcat"],"xrefs":{"rfc":["rfc5023"],"template":["application/atomcat+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/atomdeleted+xml","encoding":"8bit","xrefs":{"rfc":["rfc6721"],"template":["application/atomdeleted+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/atomicmail","encoding":"base64","xrefs":{"person":["Nathaniel_Borenstein"],"template":["application/atomicmail"]},"registered":true,"sort-priority":16},{"content-type":"application/atomsvc+xml","friendly":{"en":"Atom Publishing Protocol Service Document"},"encoding":"8bit","extensions":["atomsvc"],"xrefs":{"rfc":["rfc5023"],"template":["application/atomsvc+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/atsc-dwd+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/atsc-dwd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/atsc-dynamic-event-message","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/atsc-dynamic-event-message"]},"registered":true,"sort-priority":16},{"content-type":"application/atsc-held+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/atsc-held+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/atsc-rdt+json","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/atsc-rdt+json"]},"registered":true,"sort-priority":16},{"content-type":"application/atsc-rsat+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/atsc-rsat+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ATXML","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/ATXML"]},"registered":true,"sort-priority":16},{"content-type":"application/auth-policy+xml","encoding":"8bit","xrefs":{"rfc":["rfc4745"],"template":["application/auth-policy+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/automationml-aml+xml","encoding":"base64","xrefs":{"person":["AutomationML_e.V."],"template":["application/automationml-aml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/automationml-amlx+zip","encoding":"base64","xrefs":{"person":["AutomationML_e.V."],"template":["application/automationml-amlx+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/bacnet-xdd+zip","encoding":"base64","xrefs":{"person":["ASHRAE","Dave_Robin"],"template":["application/bacnet-xdd+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/batch-SMTP","encoding":"base64","xrefs":{"rfc":["rfc2442"],"template":["application/batch-SMTP"]},"registered":true,"sort-priority":16},{"content-type":"application/beep+xml","encoding":"base64","xrefs":{"rfc":["rfc3080"],"template":["application/beep+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/bizagi-modeler","encoding":"base64","extensions":["bpm"],"registered":false,"sort-priority":47},{"content-type":"application/bleeper","encoding":"base64","extensions":["bleep"],"obsolete":true,"use-instead":"application/x-bleeper","registered":false,"sort-priority":175},{"content-type":"application/bufr","encoding":"base64","xrefs":{"person":["Anna_Milan","World_Meterological_Organization"],"template":["application/bufr"]},"registered":true,"sort-priority":16},{"content-type":"application/c2pa","encoding":"base64","xrefs":{"person":["C2PA","Leonard_Rosenthol"],"template":["application/c2pa"]},"registered":true,"sort-priority":16},{"content-type":"application/calendar+json","encoding":"base64","xrefs":{"rfc":["rfc7265"],"template":["application/calendar+json"]},"registered":true,"sort-priority":16},{"content-type":"application/calendar+xml","encoding":"base64","xrefs":{"rfc":["rfc6321"],"template":["application/calendar+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/call-completion","encoding":"base64","xrefs":{"rfc":["rfc6910"],"template":["application/call-completion"]},"registered":true,"sort-priority":16},{"content-type":"application/cals-1840","encoding":"base64","xrefs":{"rfc":["rfc1895"],"template":["application/CALS-1840"]},"registered":true,"sort-priority":16},{"content-type":"application/cals1840","encoding":"base64","obsolete":true,"use-instead":"application/cals-1840","registered":false,"sort-priority":176},{"content-type":"application/cap+xml","encoding":"base64","xrefs":{"draft":["RFC-ietf-ecrit-data-only-ea-22"],"template":["application/cap+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/captive+json","encoding":"base64","xrefs":{"rfc":["rfc8908"],"template":["application/captive+json"]},"registered":true,"sort-priority":16},{"content-type":"application/cbor","encoding":"base64","extensions":["cbor"],"xrefs":{"rfc":["rfc8949"],"template":["application/cbor"]},"registered":true,"sort-priority":15},{"content-type":"application/cbor-seq","encoding":"base64","xrefs":{"rfc":["rfc8742"],"template":["application/cbor-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/cccex","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/cccex"]},"registered":true,"sort-priority":16},{"content-type":"application/ccmp+xml","encoding":"base64","xrefs":{"rfc":["rfc6503"],"template":["application/ccmp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ccxml+xml","friendly":{"en":"Voice Browser Call Control"},"encoding":"base64","extensions":["ccxml"],"xrefs":{"rfc":["rfc4267"],"template":["application/ccxml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/cda+xml","encoding":"base64","xrefs":{"person":["HL7","Marc_Duteau"],"template":["application/cda+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/CDFX+XML","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/CDFX+XML"]},"registered":true,"sort-priority":16},{"content-type":"application/cdmi-capability","friendly":{"en":"Cloud Data Management Interface (CDMI) - Capability"},"encoding":"base64","extensions":["cdmia"],"xrefs":{"rfc":["rfc6208"],"template":["application/cdmi-capability"]},"registered":true,"sort-priority":15},{"content-type":"application/cdmi-container","friendly":{"en":"Cloud Data Management Interface (CDMI) - Contaimer"},"encoding":"base64","extensions":["cdmic"],"xrefs":{"rfc":["rfc6208"],"template":["application/cdmi-container"]},"registered":true,"sort-priority":15},{"content-type":"application/cdmi-domain","friendly":{"en":"Cloud Data Management Interface (CDMI) - Domain"},"encoding":"base64","extensions":["cdmid"],"xrefs":{"rfc":["rfc6208"],"template":["application/cdmi-domain"]},"registered":true,"sort-priority":15},{"content-type":"application/cdmi-object","friendly":{"en":"Cloud Data Management Interface (CDMI) - Object"},"encoding":"base64","extensions":["cdmio"],"xrefs":{"rfc":["rfc6208"],"template":["application/cdmi-object"]},"registered":true,"sort-priority":15},{"content-type":"application/cdmi-queue","friendly":{"en":"Cloud Data Management Interface (CDMI) - Queue"},"encoding":"base64","extensions":["cdmiq"],"xrefs":{"rfc":["rfc6208"],"template":["application/cdmi-queue"]},"registered":true,"sort-priority":15},{"content-type":"application/cdni","encoding":"base64","xrefs":{"rfc":["rfc7736"],"template":["application/cdni"]},"registered":true,"sort-priority":16},{"content-type":"application/ce+cbor","encoding":"base64","xrefs":{"uri":["https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1_10April25.pdf"],"person":["Ned_M._Smith","TCG_DICE_WG"],"template":["application/ce+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/CEA","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/CEA"]},"registered":true,"sort-priority":16},{"content-type":"application/cea-2018+xml","encoding":"base64","xrefs":{"person":["Gottfried_Zimmermann"],"template":["application/cea-2018+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/cellml+xml","encoding":"base64","xrefs":{"rfc":["rfc4708"],"template":["application/cellml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/cert-chain+cbor","encoding":"base64","xrefs":{"draft":["draft-yasskin-http-origin-signed-responses-07"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/CESR","encoding":"base64","xrefs":{"person":["Samuel_M._Smith"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/cfw","encoding":"base64","xrefs":{"rfc":["rfc6230"],"template":["application/cfw"]},"registered":true,"sort-priority":16},{"content-type":"application/cid","encoding":"base64","xrefs":{"person":["Michael_B_Jones","W3C_Verifiable_Credentials_WG"],"template":["application/cid"]},"registered":true,"sort-priority":16},{"content-type":"application/cid-edhoc+cbor-seq","encoding":"base64","xrefs":{"rfc":["rfc9528"],"template":["application/cid-edhoc+cbor-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/city+json","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/city+json"]},"registered":true,"sort-priority":16},{"content-type":"application/city+json-seq","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/city+json-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/clariscad","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/clr","encoding":"base64","xrefs":{"person":["Andy_Miller","IMS_Global"],"template":["application/clr"]},"registered":true,"sort-priority":16},{"content-type":"application/clue+xml","encoding":"base64","xrefs":{"rfc":["rfc8847"],"template":["application/clue+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/clue_info+xml","encoding":"base64","xrefs":{"rfc":["rfc8846"],"template":["application/clue_info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/cms","encoding":"base64","xrefs":{"rfc":["rfc7193"],"template":["application/cms"]},"registered":true,"sort-priority":16},{"content-type":"application/cmw+cbor","encoding":"base64","xrefs":{"draft":["draft-ietf-rats-msg-wrap-04"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/cnrp+xml","encoding":"base64","xrefs":{"rfc":["rfc3367"],"template":["application/cnrp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/coap-eap","encoding":"base64","xrefs":{"draft":["RFC-ietf-ace-wg-coap-eap-14"],"template":["application/coap-eap"]},"registered":true,"sort-priority":16},{"content-type":"application/coap-group+json","encoding":"base64","xrefs":{"rfc":["rfc7390"],"template":["application/coap-group+json"]},"registered":true,"sort-priority":16},{"content-type":"application/coap-payload","encoding":"base64","xrefs":{"rfc":["rfc8075"],"template":["application/coap-payload"]},"registered":true,"sort-priority":16},{"content-type":"application/commonground","encoding":"base64","xrefs":{"person":["David_Glazer"],"template":["application/commonground"]},"registered":true,"sort-priority":16},{"content-type":"application/concise-problem-details+cbor","encoding":"base64","xrefs":{"rfc":["rfc9290"],"template":["application/concise-problem-details+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/conference-info+xml","encoding":"base64","xrefs":{"rfc":["rfc4575"],"template":["application/conference-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/coreldraw","encoding":"base64","extensions":["cdr"],"registered":false,"sort-priority":47},{"content-type":"application/cose","encoding":"base64","xrefs":{"rfc":["rfc9052"],"template":["application/cose"]},"registered":true,"sort-priority":16},{"content-type":"application/cose-key","encoding":"base64","xrefs":{"rfc":["rfc9052"],"template":["application/cose-key"]},"registered":true,"sort-priority":16},{"content-type":"application/cose-key-set","encoding":"base64","xrefs":{"rfc":["rfc9052"],"template":["application/cose-key-set"]},"registered":true,"sort-priority":16},{"content-type":"application/cose-x509","encoding":"base64","xrefs":{"rfc":["rfc9360"],"template":["application/cose-x509"]},"registered":true,"sort-priority":16},{"content-type":"application/cpl+xml","encoding":"base64","xrefs":{"rfc":["rfc3880"],"template":["application/cpl+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/csrattrs","encoding":"base64","xrefs":{"rfc":["rfc7030"],"template":["application/csrattrs"]},"registered":true,"sort-priority":16},{"content-type":"application/csta+xml","encoding":"base64","xrefs":{"person":["Ecma_International_Helpdesk"],"template":["application/csta+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/CSTAdata+xml","encoding":"base64","xrefs":{"person":["Ecma_International_Helpdesk"],"template":["application/CSTAdata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/csvm+json","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C"],"template":["application/csvm+json"]},"registered":true,"sort-priority":16},{"content-type":"application/cu-seeme","friendly":{"en":"CU-SeeMe"},"encoding":"base64","extensions":["cu"],"registered":false,"sort-priority":47},{"content-type":"application/cwl","encoding":"base64","xrefs":{"person":["CWL_Project","Michael_R._Crusoe"],"template":["application/cwl"]},"registered":true,"sort-priority":16},{"content-type":"application/cwl+json","encoding":"base64","xrefs":{"person":["CWL_Project","Michael_R._Crusoe"],"template":["application/cwl+json"]},"registered":true,"sort-priority":16},{"content-type":"application/cwl+yaml","encoding":"base64","xrefs":{"person":["CWL_Project","Michael_R._Crusoe"],"template":["application/cwl+yaml"]},"registered":true,"sort-priority":16},{"content-type":"application/cwt","encoding":"base64","xrefs":{"rfc":["rfc8392"],"template":["application/cwt"]},"registered":true,"sort-priority":16},{"content-type":"application/cybercash","encoding":"base64","xrefs":{"person":["Donald_E._Eastlake_3rd"],"template":["application/cybercash"]},"registered":true,"sort-priority":16},{"content-type":"application/dash+xml","encoding":"base64","extensions":["mpd"],"xrefs":{"person":["ISO-IEC_JTC_1","Thomas_Stockhammer"],"template":["application/dash+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/dash-patch+xml","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1"],"template":["application/dash-patch+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/dashdelta","encoding":"base64","xrefs":{"person":["David_Furbeck"],"template":["application/dashdelta"]},"registered":true,"sort-priority":16},{"content-type":"application/davmount+xml","friendly":{"en":"Web Distributed Authoring and Versioning"},"encoding":"base64","extensions":["davmount"],"xrefs":{"rfc":["rfc4709"],"template":["application/davmount+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/dca-rft","encoding":"base64","xrefs":{"person":["Larry_Campbell"],"template":["application/dca-rft"]},"registered":true,"sort-priority":16},{"content-type":"application/DCD","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/DCD"]},"registered":true,"sort-priority":16},{"content-type":"application/dec-dx","encoding":"base64","xrefs":{"person":["Larry_Campbell"],"template":["application/dec-dx"]},"registered":true,"sort-priority":16},{"content-type":"application/deflate","encoding":"base64","obsolete":true,"xrefs":{"person":["David_Clunie"]},"registered":true,"sort-priority":144},{"content-type":"application/dialog-info+xml","encoding":"base64","xrefs":{"rfc":["rfc4235"],"template":["application/dialog-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/dicom","encoding":"base64","extensions":["dcm"],"xrefs":{"rfc":["rfc3240"],"template":["application/dicom"]},"registered":true,"sort-priority":15},{"content-type":"application/dicom+json","encoding":"base64","xrefs":{"person":["DICOM_Standard_Committee","David_Clunie"],"template":["application/dicom+json"]},"registered":true,"sort-priority":16},{"content-type":"application/dicom+xml","encoding":"base64","xrefs":{"person":["DICOM_Standard_Committee","David_Clunie"],"template":["application/dicom+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/did","encoding":"base64","xrefs":{"person":["W3C_DID_WG"],"template":["application/did"]},"registered":true,"sort-priority":16},{"content-type":"application/dif+xml","encoding":"base64","extensions":["dif"],"registered":false,"sort-priority":47},{"content-type":"application/DII","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/DII"]},"registered":true,"sort-priority":16},{"content-type":"application/DIT","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/DIT"]},"registered":true,"sort-priority":16},{"content-type":"application/dita+xml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/dns","encoding":"base64","xrefs":{"rfc":["rfc4027"],"template":["application/dns"]},"registered":true,"sort-priority":16},{"content-type":"application/dns+json","encoding":"base64","xrefs":{"rfc":["rfc8427"],"template":["application/dns+json"]},"registered":true,"sort-priority":16},{"content-type":"application/dns-message","encoding":"base64","xrefs":{"rfc":["rfc8484"],"template":["application/dns-message"]},"registered":true,"sort-priority":16},{"content-type":"application/docbook+xml","encoding":"base64","extensions":["dbk"],"registered":false,"sort-priority":47},{"content-type":"application/dots+cbor","encoding":"base64","xrefs":{"rfc":["rfc9132"],"template":["application/dots+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/dpop+jwt","encoding":"base64","xrefs":{"rfc":["rfc9449"],"template":["application/dpop+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/drafting","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/dskpp+xml","encoding":"base64","xrefs":{"rfc":["rfc6063"],"template":["application/dskpp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/dssc+der","friendly":{"en":"Data Structure for the Security Suitability of Cryptographic Algorithms"},"encoding":"base64","extensions":["dssc"],"xrefs":{"rfc":["rfc5698"],"template":["application/dssc+der"]},"registered":true,"sort-priority":15},{"content-type":"application/dssc+xml","friendly":{"en":"Data Structure for the Security Suitability of Cryptographic Algorithms"},"encoding":"base64","extensions":["xdssc"],"xrefs":{"rfc":["rfc5698"],"template":["application/dssc+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/dvcs","encoding":"base64","xrefs":{"rfc":["rfc3029"],"template":["application/dvcs"]},"registered":true,"sort-priority":16},{"content-type":"application/dxf","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/eat+cwt","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat+cwt"]},"registered":true,"sort-priority":16},{"content-type":"application/eat+jwt","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/eat-bun+cbor","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat-bun+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/eat-bun+json","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat-bun+json"]},"registered":true,"sort-priority":16},{"content-type":"application/eat-ucs+cbor","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat-ucs+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/eat-ucs+json","encoding":"base64","xrefs":{"rfc":["rfc9782"],"template":["application/eat-ucs+json"]},"registered":true,"sort-priority":16},{"content-type":"application/ecmascript","friendly":{"en":"ECMAScript"},"encoding":"base64","extensions":["ecma","es"],"obsolete":true,"use-instead":"text/javascript","xrefs":{"rfc":["rfc4329","rfc9239"],"template":["application/ecmascript"],"notes":["(OBSOLETED in favor of text/javascript)"]},"registered":true,"sort-priority":142},{"content-type":"application/edhoc+cbor-seq","encoding":"base64","xrefs":{"rfc":["rfc9528"],"template":["application/edhoc+cbor-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/EDI-consent","encoding":"base64","xrefs":{"rfc":["rfc1767"],"template":["application/EDI-consent"]},"registered":true,"sort-priority":16},{"content-type":"application/EDI-X12","encoding":"base64","xrefs":{"rfc":["rfc1767"],"template":["application/EDI-X12"]},"registered":true,"sort-priority":16},{"content-type":"application/EDIFACT","encoding":"base64","xrefs":{"rfc":["rfc1767"],"template":["application/EDIFACT"]},"registered":true,"sort-priority":16},{"content-type":"application/efi","encoding":"base64","xrefs":{"person":["Samer_El-Haj-Mahmoud","UEFI_Forum"],"template":["application/efi"]},"registered":true,"sort-priority":16},{"content-type":"application/elm+json","encoding":"base64","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["application/elm+json"]},"registered":true,"sort-priority":16},{"content-type":"application/elm+xml","encoding":"base64","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["application/elm+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.cap+xml","encoding":"base64","xrefs":{"rfc":["rfc8876"],"template":["application/EmergencyCallData.cap+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.Comment+xml","encoding":"base64","xrefs":{"rfc":["rfc7852"],"template":["application/EmergencyCallData.Comment+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.Control+xml","encoding":"base64","xrefs":{"rfc":["rfc8147"],"template":["application/EmergencyCallData.Control+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.DeviceInfo+xml","encoding":"base64","xrefs":{"rfc":["rfc7852"],"template":["application/EmergencyCallData.DeviceInfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.eCall.MSD","encoding":"base64","xrefs":{"rfc":["rfc8147"],"template":["application/EmergencyCallData.eCall.MSD"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.LegacyESN+json","encoding":"base64","xrefs":{"person":["NENA","Randall_Gellens"],"template":["application/EmergencyCallData.LegacyESN+json"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.ProviderInfo+xml","encoding":"base64","xrefs":{"rfc":["rfc7852"],"template":["application/EmergencyCallData.ProviderInfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.ServiceInfo+xml","encoding":"base64","xrefs":{"rfc":["rfc7852"],"template":["application/EmergencyCallData.ServiceInfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.SubscriberInfo+xml","encoding":"base64","xrefs":{"rfc":["rfc7852"],"template":["application/EmergencyCallData.SubscriberInfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/EmergencyCallData.VEDS+xml","encoding":"base64","xrefs":{"rfc":["rfc8148"],"rfc-errata":["6500"],"template":["application/EmergencyCallData.VEDS+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/emma+xml","friendly":{"en":"Extensible MultiModal Annotation"},"encoding":"base64","extensions":["emma"],"xrefs":{"person":["ISO-IEC_JTC_1","W3C"],"uri":["http://www.w3.org/TR/2007/CR-emma-20071211/#media-type-registration"],"template":["application/emma+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/emotionml+xml","encoding":"base64","xrefs":{"person":["Kazuyuki_Ashimura","W3C"],"template":["application/emotionml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/encaprtp","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["application/encaprtp"]},"registered":true,"sort-priority":16},{"content-type":"application/entity-statement+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/entity-statement+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/envi.hdr","encoding":"base64","extensions":["hdr"],"registered":false,"sort-priority":47},{"content-type":"application/epp+xml","encoding":"base64","xrefs":{"rfc":["rfc5730"],"template":["application/epp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/epub+zip","friendly":{"en":"Electronic Publication"},"encoding":"base64","extensions":["epub"],"xrefs":{"person":["EPUB_3_WG","W3C"],"template":["application/epub+zip"]},"registered":true,"sort-priority":15},{"content-type":"application/eshop","encoding":"base64","xrefs":{"person":["Steve_Katz"],"template":["application/eshop"]},"registered":true,"sort-priority":16},{"content-type":"application/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["application/example"]},"registered":true,"sort-priority":16},{"content-type":"application/excel","encoding":"base64","extensions":["xls","xlt"],"obsolete":true,"use-instead":"application/vnd.ms-excel","registered":false,"sort-priority":174},{"content-type":"application/exi","friendly":{"en":"Efficient XML Interchange"},"encoding":"base64","extensions":["exi"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/2009/CR-exi-20091208/#mediaTypeRegistration"],"template":["application/exi"]},"registered":true,"sort-priority":15},{"content-type":"application/expect-ct-report+json","encoding":"base64","xrefs":{"rfc":["rfc9163"],"template":["application/expect-ct-report+json"]},"registered":true,"sort-priority":16},{"content-type":"application/express","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["application/express"]},"registered":true,"sort-priority":16},{"content-type":"application/fastinfoset","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur","ITU-T_ASN.1_Rapporteur"],"template":["application/fastinfoset"]},"registered":true,"sort-priority":16},{"content-type":"application/fastsoap","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur","ITU-T_ASN.1_Rapporteur"],"template":["application/fastsoap"]},"registered":true,"sort-priority":16},{"content-type":"application/fdf","encoding":"base64","xrefs":{"person":["Betsy_Fanning","ISO-TC_171-SC_2"],"template":["application/fdf"]},"registered":true,"sort-priority":16},{"content-type":"application/fdt+xml","encoding":"base64","xrefs":{"rfc":["rfc6726"],"template":["application/fdt+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/fhir+json","encoding":"base64","xrefs":{"person":["Grahame_Grieve","HL7"],"template":["application/fhir+json"]},"registered":true,"sort-priority":16},{"content-type":"application/fhir+xml","encoding":"base64","xrefs":{"person":["Grahame_Grieve","HL7"],"template":["application/fhir+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/fits","encoding":"base64","extensions":["fits","fit","fts"],"xrefs":{"rfc":["rfc4047"],"template":["application/fits"]},"registered":true,"sort-priority":13},{"content-type":"application/flexfec","encoding":"base64","xrefs":{"rfc":["rfc8627"],"template":["application/flexfec"]},"registered":true,"sort-priority":16},{"content-type":"application/font-sfnt","encoding":"base64","extensions":["otf","ttf"],"obsolete":true,"use-instead":"font/sfnt","xrefs":{"person":["ISO-IEC_JTC_1","Levantovsky"],"rfc":["rfc8081"],"template":["application/font-sfnt"],"notes":["- DEPRECATED in favor of font/sfnt"]},"registered":true,"sort-priority":142},{"content-type":"application/font-tdpfr","friendly":{"en":"Portable Font Resource"},"encoding":"base64","extensions":["pfr"],"xrefs":{"rfc":["rfc3073"],"template":["application/font-tdpfr"]},"registered":true,"sort-priority":15},{"content-type":"application/font-woff","friendly":{"en":"Web Open Font Format"},"encoding":"base64","extensions":["woff","woff2"],"obsolete":true,"use-instead":"font/woff","xrefs":{"person":["W3C"],"rfc":["rfc8081"],"template":["application/font-woff"],"notes":["- DEPRECATED in favor of font/woff"]},"registered":true,"sort-priority":142},{"content-type":"application/fractals","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/framework-attributes+xml","encoding":"base64","xrefs":{"rfc":["rfc6230"],"template":["application/framework-attributes+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/futuresplash","encoding":"base64","extensions":["spl"],"obsolete":true,"use-instead":"application/x-futuresplash","registered":false,"sort-priority":175},{"content-type":"application/geo+json","encoding":"base64","xrefs":{"rfc":["rfc7946"],"template":["application/geo+json"]},"registered":true,"sort-priority":16},{"content-type":"application/geo+json-seq","encoding":"base64","xrefs":{"rfc":["rfc8142"],"template":["application/geo+json-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/geofeed+csv","encoding":"base64","xrefs":{"draft":["RFC-ietf-regext-rdap-geofeed-14"],"template":["application/geofeed+csv"]},"registered":true,"sort-priority":16},{"content-type":"application/geopackage+sqlite3","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/geopackage+sqlite3"]},"registered":true,"sort-priority":16},{"content-type":"application/geopose+json","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/geopose+json"]},"registered":true,"sort-priority":16},{"content-type":"application/geoxacml+json","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/geoxacml+json"]},"registered":true,"sort-priority":16},{"content-type":"application/geoxacml+xml","encoding":"base64","xrefs":{"person":["OGC","Scott_Simmons"],"template":["application/geoxacml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ghostview","encoding":"base64","obsolete":true,"use-instead":"application/x-ghostview","registered":false,"sort-priority":176},{"content-type":"application/gltf-buffer","encoding":"base64","xrefs":{"person":["Khronos","Saurabh_Bhatia"],"template":["application/gltf-buffer"]},"registered":true,"sort-priority":16},{"content-type":"application/gml+xml","encoding":"base64","extensions":["gml"],"xrefs":{"person":["Clemens_Portele","OGC"],"template":["application/gml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/gnap-binding-jws","encoding":"base64","xrefs":{"rfc":["rfc9635"],"template":["application/gnap-binding-jws"]},"registered":true,"sort-priority":16},{"content-type":"application/gnap-binding-jwsd","encoding":"base64","xrefs":{"rfc":["rfc9635"],"template":["application/gnap-binding-jwsd"]},"registered":true,"sort-priority":16},{"content-type":"application/gnap-binding-rotation-jws","encoding":"base64","xrefs":{"rfc":["rfc9635"],"template":["application/gnap-binding-rotation-jws"]},"registered":true,"sort-priority":16},{"content-type":"application/gnap-binding-rotation-jwsd","encoding":"base64","xrefs":{"rfc":["rfc9635"],"template":["application/gnap-binding-rotation-jwsd"]},"registered":true,"sort-priority":16},{"content-type":"application/gpx+xml","encoding":"base64","extensions":["gpx"],"registered":false,"sort-priority":47},{"content-type":"application/grib","encoding":"base64","xrefs":{"person":["Anna_Milan","World_Meterological_Organization"],"template":["application/grib"]},"registered":true,"sort-priority":16},{"content-type":"application/gxf","encoding":"base64","extensions":["gxf"],"registered":false,"sort-priority":47},{"content-type":"application/gzip","encoding":"base64","extensions":["gz","tgz"],"xrefs":{"rfc":["rfc6713"],"template":["application/gzip"]},"registered":true,"sort-priority":14},{"content-type":"application/H224","encoding":"base64","xrefs":{"rfc":["rfc4573"],"template":["application/H224"]},"registered":true,"sort-priority":16},{"content-type":"application/held+xml","encoding":"base64","xrefs":{"rfc":["rfc5985"],"template":["application/held+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/hep","encoding":"base64","extensions":["hep"],"obsolete":true,"use-instead":"application/x-hep","registered":false,"sort-priority":175},{"content-type":"application/hl7v2+xml","encoding":"base64","xrefs":{"person":["HL7","Marc_Duteau"],"template":["application/hl7v2+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/http","encoding":"base64","xrefs":{"rfc":["rfc9112"],"template":["application/http"]},"registered":true,"sort-priority":16},{"content-type":"application/hwp+zip","encoding":"base64","extensions":["hwpx"],"registered":false,"sort-priority":47},{"content-type":"application/hyperstudio","friendly":{"en":"Hyperstudio"},"encoding":"base64","extensions":["stk"],"xrefs":{"person":["Michael_Domino"],"template":["application/hyperstudio"]},"registered":true,"sort-priority":15},{"content-type":"application/i-deas","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/ibe-key-request+xml","encoding":"base64","xrefs":{"rfc":["rfc5408"],"template":["application/ibe-key-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ibe-pkg-reply+xml","encoding":"base64","xrefs":{"rfc":["rfc5408"],"template":["application/ibe-pkg-reply+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ibe-pp-data","encoding":"base64","xrefs":{"rfc":["rfc5408"],"template":["application/ibe-pp-data"]},"registered":true,"sort-priority":16},{"content-type":"application/iges","encoding":"base64","xrefs":{"person":["Curtis_Parks"],"template":["application/iges"]},"registered":true,"sort-priority":16},{"content-type":"application/illustrator","encoding":"base64","extensions":["ai"],"registered":false,"sort-priority":47},{"content-type":"application/illustrator+ps","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/im-iscomposing+xml","encoding":"base64","xrefs":{"rfc":["rfc3994"],"template":["application/im-iscomposing+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/imagemap","encoding":"8bit","extensions":["imagemap","imap"],"obsolete":true,"use-instead":"application/x-imagemap","registered":false,"sort-priority":174},{"content-type":"application/index","encoding":"base64","xrefs":{"rfc":["rfc2652"],"template":["application/index"]},"registered":true,"sort-priority":16},{"content-type":"application/index.cmd","encoding":"base64","xrefs":{"rfc":["rfc2652"],"template":["application/index.cmd"]},"registered":true,"sort-priority":16},{"content-type":"application/index.obj","encoding":"base64","xrefs":{"rfc":["rfc2652"],"template":["application/index.obj"]},"registered":true,"sort-priority":16},{"content-type":"application/index.response","encoding":"base64","xrefs":{"rfc":["rfc2652"],"template":["application/index.response"]},"registered":true,"sort-priority":16},{"content-type":"application/index.vnd","encoding":"base64","xrefs":{"rfc":["rfc2652"],"template":["application/index.vnd"]},"registered":true,"sort-priority":16},{"content-type":"application/inf","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/inkml+xml","encoding":"base64","extensions":["ink","inkml"],"xrefs":{"person":["Kazuyuki_Ashimura"],"template":["application/inkml+xml"]},"registered":true,"sort-priority":14},{"content-type":"application/ion","encoding":"base64","xrefs":{"person":["Jonathan_Hohle"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/iotp","encoding":"base64","xrefs":{"rfc":["rfc2935"],"template":["application/IOTP"]},"registered":true,"sort-priority":16},{"content-type":"application/ipfix","friendly":{"en":"Internet Protocol Flow Information Export"},"encoding":"base64","extensions":["ipfix"],"xrefs":{"rfc":["rfc5655"],"template":["application/ipfix"]},"registered":true,"sort-priority":15},{"content-type":"application/ipp","encoding":"base64","xrefs":{"rfc":["rfc8010"],"template":["application/ipp"]},"registered":true,"sort-priority":16},{"content-type":"application/isup","encoding":"base64","xrefs":{"rfc":["rfc3204"],"template":["application/ISUP"]},"registered":true,"sort-priority":16},{"content-type":"application/its+xml","encoding":"base64","xrefs":{"person":["ITS-IG-W3C","W3C"],"template":["application/its+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/java-archive","friendly":{"en":"Java Archive"},"encoding":"base64","extensions":["jar"],"xrefs":{"person":["Iris_Clark","JCP"],"template":["application/java-archive"]},"registered":true,"sort-priority":15},{"content-type":"application/java-serialized-object","friendly":{"en":"Java Serialized Object"},"encoding":"base64","extensions":["ser"],"registered":false,"sort-priority":47},{"content-type":"application/java-vm","friendly":{"en":"Java Bytecode File"},"encoding":"base64","extensions":["class"],"registered":false,"sort-priority":47},{"content-type":"application/javascript","friendly":{"en":"JavaScript"},"encoding":"8bit","extensions":["js","mjs","sj"],"obsolete":true,"use-instead":"text/javascript","xrefs":{"rfc":["rfc4329","rfc9239"],"template":["application/javascript"],"notes":["(OBSOLETED in favor of text/javascript)"]},"registered":true,"sort-priority":141},{"content-type":"application/jf2feed+json","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C"],"template":["application/jf2feed+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jose","encoding":"base64","xrefs":{"rfc":["rfc7515"],"template":["application/jose"]},"registered":true,"sort-priority":16},{"content-type":"application/jose+json","encoding":"base64","xrefs":{"rfc":["rfc7515"],"template":["application/jose+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jrd+json","encoding":"base64","xrefs":{"rfc":["rfc7033"],"template":["application/jrd+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jscalendar+json","encoding":"base64","xrefs":{"rfc":["rfc8984"],"template":["application/jscalendar+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jscontact+json","encoding":"base64","xrefs":{"rfc":["rfc9553"],"template":["application/jscontact+json"]},"registered":true,"sort-priority":16},{"content-type":"application/json","friendly":{"en":"JavaScript Object Notation (JSON)"},"encoding":"8bit","extensions":["json"],"xrefs":{"rfc":["rfc8259"],"template":["application/json"]},"registered":true,"sort-priority":15},{"content-type":"application/json-nd","encoding":"base64","xrefs":{"person":["Glen_Kleidon"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/json-patch+json","encoding":"base64","xrefs":{"rfc":["rfc6902"],"template":["application/json-patch+json"]},"registered":true,"sort-priority":16},{"content-type":"application/json-patch-query+json","encoding":"base64","xrefs":{"person":["Lorna_Mitchell","TM_Forum"],"template":["application/json-patch-query+json"]},"registered":true,"sort-priority":16},{"content-type":"application/json-seq","encoding":"base64","xrefs":{"rfc":["rfc7464"],"template":["application/json-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/jsonml+json","encoding":"base64","extensions":["jsonml"],"registered":false,"sort-priority":47},{"content-type":"application/jsonpath","encoding":"base64","xrefs":{"rfc":["rfc9535"],"template":["application/jsonpath"]},"registered":true,"sort-priority":16},{"content-type":"application/jwk+json","encoding":"base64","xrefs":{"rfc":["rfc7517"],"template":["application/jwk+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jwk-set+json","encoding":"base64","xrefs":{"rfc":["rfc7517"],"template":["application/jwk-set+json"]},"registered":true,"sort-priority":16},{"content-type":"application/jwk-set+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/jwk-set+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/jwt","encoding":"base64","xrefs":{"rfc":["rfc7519"],"template":["application/jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/kate","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/kb+jwt","encoding":"base64","xrefs":{"draft":["RFC-ietf-oauth-selective-disclosure-jwt-22"],"template":["application/kb+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/kpml-request+xml","encoding":"base64","xrefs":{"rfc":["rfc4730"],"template":["application/kpml-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/kpml-response+xml","encoding":"base64","xrefs":{"rfc":["rfc4730"],"template":["application/kpml-response+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ld+json","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C"],"template":["application/ld+json"]},"registered":true,"sort-priority":16},{"content-type":"application/lgr+xml","encoding":"base64","xrefs":{"rfc":["rfc7940"],"template":["application/lgr+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/link-format","encoding":"base64","xrefs":{"rfc":["rfc6690"],"template":["application/link-format"]},"registered":true,"sort-priority":16},{"content-type":"application/linkset","encoding":"base64","xrefs":{"rfc":["rfc9264"],"template":["application/linkset"]},"registered":true,"sort-priority":16},{"content-type":"application/linkset+json","encoding":"base64","xrefs":{"rfc":["rfc9264"],"template":["application/linkset+json"]},"registered":true,"sort-priority":16},{"content-type":"application/load-control+xml","encoding":"base64","xrefs":{"rfc":["rfc7200"],"template":["application/load-control+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/logout+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/logout+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/lost+xml","encoding":"base64","extensions":["lostxml"],"xrefs":{"rfc":["rfc5222"],"template":["application/lost+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/lostsync+xml","encoding":"base64","xrefs":{"rfc":["rfc6739"],"template":["application/lostsync+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/lotus-123","encoding":"base64","extensions":["wks"],"obsolete":true,"use-instead":"application/vnd.lotus-1-2-3","registered":false,"sort-priority":175},{"content-type":"application/lpf+zip","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C"],"template":["application/lpf+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/LXF","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/LXF"]},"registered":true,"sort-priority":16},{"content-type":"application/mac-binhex40","friendly":{"en":"Macintosh BinHex 4.0"},"encoding":"8bit","extensions":["hqx"],"xrefs":{"person":["Patrik_Faltstrom"],"template":["application/mac-binhex40"]},"registered":true,"sort-priority":15},{"content-type":"application/mac-compactpro","friendly":{"en":"Compact Pro"},"encoding":"base64","extensions":["cpt"],"obsolete":true,"use-instead":"application/x-mac-compactpro","registered":false,"sort-priority":175},{"content-type":"application/macbinary","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/macwriteii","encoding":"base64","xrefs":{"person":["Paul_Lindner"],"template":["application/macwriteii"]},"registered":true,"sort-priority":16},{"content-type":"application/mads+xml","friendly":{"en":"Metadata Authority Description Schema"},"encoding":"base64","extensions":["mads"],"xrefs":{"rfc":["rfc6207"],"template":["application/mads+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/manifest+json","encoding":"base64","extensions":["webmanifest"],"xrefs":{"person":["Marcos_Caceres","W3C"],"template":["application/manifest+json"]},"registered":true,"sort-priority":15},{"content-type":"application/marc","friendly":{"en":"MARC Formats"},"encoding":"base64","extensions":["mrc"],"xrefs":{"rfc":["rfc2220"],"template":["application/marc"]},"registered":true,"sort-priority":15},{"content-type":"application/marcxml+xml","friendly":{"en":"MARC21 XML Schema"},"encoding":"base64","extensions":["mrcx"],"xrefs":{"rfc":["rfc6207"],"template":["application/marcxml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/mathcad","encoding":"base64","extensions":["mcd"],"obsolete":true,"use-instead":"application/vnd.mcd","registered":false,"sort-priority":175},{"content-type":"application/mathematica","friendly":{"en":"Mathematica Notebooks"},"encoding":"base64","extensions":["ma","mb","nb"],"xrefs":{"person":["Wolfram"],"template":["application/mathematica"]},"registered":true,"sort-priority":13},{"content-type":"application/mathematica-old","encoding":"base64","obsolete":true,"use-instead":"application/x-mathematica-old","registered":false,"sort-priority":176},{"content-type":"application/mathml+xml","friendly":{"en":"Mathematical Markup Language"},"encoding":"base64","extensions":["mathml"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/MathML3/appendixb.html"],"template":["application/mathml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/mathml-content+xml","encoding":"base64","xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/MathML3/appendixb.html"],"template":["application/mathml-content+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mathml-presentation+xml","encoding":"base64","xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/MathML3/appendixb.html"],"template":["application/mathml-presentation+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-associated-procedure-description+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-associated-procedure-description+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-deregister+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-deregister+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-envelope+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-envelope+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-msk+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-msk+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-msk-response+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-msk-response+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-protection-description+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-protection-description+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-reception-report+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-reception-report+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-register+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-register+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-register-response+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-register-response+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-schedule+xml","encoding":"base64","xrefs":{"person":["Eric_Turcotte","_3GPP"],"template":["application/mbms-schedule+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbms-user-service-description+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/mbms-user-service-description+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mbox","friendly":{"en":"Mbox database files"},"encoding":"base64","extensions":["mbox"],"xrefs":{"rfc":["rfc4155"],"template":["application/mbox"]},"registered":true,"sort-priority":15},{"content-type":"application/media-policy-dataset+xml","encoding":"base64","xrefs":{"rfc":["rfc6796"],"template":["application/media-policy-dataset+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/media_control+xml","encoding":"base64","xrefs":{"rfc":["rfc5168"],"template":["application/media_control+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mediaservercontrol+xml","friendly":{"en":"Media Server Control Markup Language"},"encoding":"base64","extensions":["mscml"],"xrefs":{"rfc":["rfc5022"],"template":["application/mediaservercontrol+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/merge-patch+json","encoding":"base64","xrefs":{"rfc":["rfc7396"],"template":["application/merge-patch+json"]},"registered":true,"sort-priority":16},{"content-type":"application/metalink+xml","encoding":"base64","extensions":["metalink"],"registered":false,"sort-priority":47},{"content-type":"application/metalink4+xml","friendly":{"en":"Metalink"},"encoding":"base64","extensions":["meta4"],"xrefs":{"rfc":["rfc5854"],"template":["application/metalink4+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/mets+xml","friendly":{"en":"Metadata Encoding and Transmission Standard"},"encoding":"base64","extensions":["mets"],"xrefs":{"rfc":["rfc6207"],"template":["application/mets+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/MF4","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/MF4"]},"registered":true,"sort-priority":16},{"content-type":"application/mikey","encoding":"base64","xrefs":{"rfc":["rfc3830"],"template":["application/mikey"]},"registered":true,"sort-priority":16},{"content-type":"application/mipc","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/mipc"]},"registered":true,"sort-priority":16},{"content-type":"application/missing-blocks+cbor-seq","encoding":"base64","xrefs":{"rfc":["rfc9177"],"template":["application/missing-blocks+cbor-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/mmt-aei+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/mmt-aei+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mmt-usd+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/mmt-usd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mods+xml","friendly":{"en":"Metadata Object Description Schema"},"encoding":"base64","extensions":["mods"],"xrefs":{"rfc":["rfc6207"],"template":["application/mods+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/moss-keys","encoding":"base64","xrefs":{"rfc":["rfc1848"],"template":["application/moss-keys"]},"registered":true,"sort-priority":16},{"content-type":"application/moss-signature","encoding":"base64","xrefs":{"rfc":["rfc1848"],"template":["application/moss-signature"]},"registered":true,"sort-priority":16},{"content-type":"application/mosskey-data","encoding":"base64","xrefs":{"rfc":["rfc1848"],"template":["application/mosskey-data"]},"registered":true,"sort-priority":16},{"content-type":"application/mosskey-request","encoding":"base64","xrefs":{"rfc":["rfc1848"],"template":["application/mosskey-request"]},"registered":true,"sort-priority":16},{"content-type":"application/mp21","friendly":{"en":"MPEG-21"},"encoding":"base64","extensions":["m21","mp21"],"xrefs":{"rfc":["rfc6381"],"person":["David_Singer"],"template":["application/mp21"]},"registered":true,"sort-priority":14},{"content-type":"application/mp4","friendly":{"en":"MPEG4"},"encoding":"base64","extensions":["mp4","mpg4","mp4s"],"xrefs":{"rfc":["rfc4337","rfc6381"],"template":["application/mp4"]},"registered":true,"sort-priority":13},{"content-type":"application/mpeg4-generic","encoding":"base64","xrefs":{"rfc":["rfc3640"],"template":["application/mpeg4-generic"]},"registered":true,"sort-priority":16},{"content-type":"application/mpeg4-iod","encoding":"base64","xrefs":{"rfc":["rfc4337"],"template":["application/mpeg4-iod"]},"registered":true,"sort-priority":16},{"content-type":"application/mpeg4-iod-xmt","encoding":"base64","xrefs":{"rfc":["rfc4337"],"template":["application/mpeg4-iod-xmt"]},"registered":true,"sort-priority":16},{"content-type":"application/mrb-consumer+xml","encoding":"base64","xrefs":{"rfc":["rfc6917"],"template":["application/mrb-consumer+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/mrb-publish+xml","encoding":"base64","xrefs":{"rfc":["rfc6917"],"template":["application/mrb-publish+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/msc-ivr+xml","encoding":"base64","xrefs":{"rfc":["rfc6231"],"template":["application/msc-ivr+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/msc-mixer+xml","encoding":"base64","xrefs":{"rfc":["rfc6505"],"template":["application/msc-mixer+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/msword","friendly":{"en":"Microsoft Word"},"encoding":"base64","extensions":["doc","dot","wrd"],"xrefs":{"person":["Paul_Lindner"],"template":["application/msword"]},"registered":true,"sort-priority":13},{"content-type":"application/msword2","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/msword5","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/mud+json","encoding":"base64","xrefs":{"rfc":["rfc8520"],"template":["application/mud+json"]},"registered":true,"sort-priority":16},{"content-type":"application/multipart-core","encoding":"base64","xrefs":{"rfc":["rfc8710"],"template":["application/multipart-core"]},"registered":true,"sort-priority":16},{"content-type":"application/mxf","friendly":{"en":"Material Exchange Format"},"encoding":"base64","extensions":["mxf"],"xrefs":{"rfc":["rfc4539"],"template":["application/mxf"]},"registered":true,"sort-priority":15},{"content-type":"application/n-quads","encoding":"base64","xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["application/n-quads"]},"registered":true,"sort-priority":16},{"content-type":"application/n-triples","encoding":"base64","xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["application/n-triples"]},"registered":true,"sort-priority":16},{"content-type":"application/nasdata","encoding":"base64","xrefs":{"rfc":["rfc4707"],"template":["application/nasdata"]},"registered":true,"sort-priority":16},{"content-type":"application/netcdf","encoding":"base64","extensions":["nc","cdf"],"xrefs":{"person":["Ethan_Davis"]},"registered":true,"provisional":true,"sort-priority":78},{"content-type":"application/news-checkgroups","encoding":"base64","xrefs":{"rfc":["rfc5537"],"template":["application/news-checkgroups"]},"registered":true,"sort-priority":16},{"content-type":"application/news-groupinfo","encoding":"base64","xrefs":{"rfc":["rfc5537"],"template":["application/news-groupinfo"]},"registered":true,"sort-priority":16},{"content-type":"application/news-message-id","encoding":"base64","obsolete":true,"registered":false,"sort-priority":176},{"content-type":"application/news-transmission","encoding":"base64","xrefs":{"rfc":["rfc5537"],"template":["application/news-transmission"]},"registered":true,"sort-priority":16},{"content-type":"application/nlsml+xml","encoding":"base64","xrefs":{"rfc":["rfc6787"],"template":["application/nlsml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/node","encoding":"base64","xrefs":{"person":["Node.js_TSC"],"template":["application/node"]},"registered":true,"sort-priority":16},{"content-type":"application/nss","encoding":"base64","xrefs":{"person":["Michael_Hammer"],"template":["application/nss"]},"registered":true,"sort-priority":16},{"content-type":"application/oauth-authz-req+jwt","encoding":"base64","xrefs":{"rfc":["rfc9101"],"template":["application/oauth-authz-req+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/oblivious-dns-message","encoding":"base64","xrefs":{"rfc":["rfc9230"],"template":["application/oblivious-dns-message"]},"registered":true,"sort-priority":16},{"content-type":"application/ocsp-request","encoding":"base64","xrefs":{"rfc":["rfc6960"],"template":["application/ocsp-request"]},"registered":true,"sort-priority":16},{"content-type":"application/ocsp-response","encoding":"base64","xrefs":{"rfc":["rfc6960"],"template":["application/ocsp-response"]},"registered":true,"sort-priority":16},{"content-type":"application/octet-stream","friendly":{"en":"Binary Data"},"encoding":"base64","extensions":["bin","dms","lha","lzh","class","ani","pgp","gpg","so","dll","dylib","bpk","deploy","dist","distz","dump","elc","lrf","mar","pkg","ipa"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["application/octet-stream"]},"registered":true,"sort-priority":0},{"content-type":"application/oda","friendly":{"en":"Office Document Architecture"},"encoding":"base64","extensions":["oda"],"xrefs":{"rfc":["rfc1494"],"template":["application/ODA"]},"registered":true,"sort-priority":15},{"content-type":"application/odm+json","encoding":"base64","xrefs":{"person":["Sam_Hume"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/odm+xml","encoding":"base64","xrefs":{"person":["CDISC","Sam_Hume"],"template":["application/odm+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/ODX","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/ODX"]},"registered":true,"sort-priority":16},{"content-type":"application/oebps-package+xml","friendly":{"en":"Open eBook Publication Structure"},"encoding":"base64","extensions":["opf"],"xrefs":{"person":["EPUB_3_WG","W3C"],"template":["application/oebps-package+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/ogg","friendly":{"en":"Ogg"},"encoding":"base64","extensions":["ogx"],"xrefs":{"rfc":["rfc5334","rfc7845"],"template":["application/ogg"]},"registered":true,"sort-priority":15},{"content-type":"application/ohttp-keys","encoding":"base64","xrefs":{"rfc":["rfc9458"],"template":["application/ohttp-keys"]},"registered":true,"sort-priority":16},{"content-type":"application/omdoc+xml","encoding":"base64","extensions":["omdoc"],"registered":false,"sort-priority":47},{"content-type":"application/onenote","friendly":{"en":"Microsoft OneNote"},"encoding":"base64","extensions":["onepkg","onetmp","onetoc","onetoc2"],"registered":false,"sort-priority":44},{"content-type":"application/onix-message+xml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/onix-message-short+xml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/opc-nodeset+xml","encoding":"base64","xrefs":{"person":["OPC_Foundation"],"template":["application/opc-nodeset+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/oscore","encoding":"base64","xrefs":{"rfc":["rfc8613"],"template":["application/oscore"]},"registered":true,"sort-priority":16},{"content-type":"application/oxps","encoding":"base64","extensions":["oxps"],"xrefs":{"person":["Ecma_International_Helpdesk"],"template":["application/oxps"]},"registered":true,"sort-priority":15},{"content-type":"application/p21","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["application/p21"]},"registered":true,"sort-priority":16},{"content-type":"application/p21+zip","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["application/p21+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/p2p-overlay+xml","encoding":"base64","xrefs":{"rfc":["rfc6940"],"template":["application/p2p-overlay+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/parityfec","encoding":"base64","xrefs":{"rfc":["rfc3009"],"template":["application/parityfec"]},"registered":true,"sort-priority":16},{"content-type":"application/passport","encoding":"base64","xrefs":{"rfc":["rfc8225"],"template":["application/passport"]},"registered":true,"sort-priority":16},{"content-type":"application/patch-ops-error+xml","friendly":{"en":"XML Patch Framework"},"encoding":"base64","extensions":["xer"],"xrefs":{"rfc":["rfc5261"],"template":["application/patch-ops-error+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/pdf","friendly":{"en":"Adobe Portable Document Format"},"encoding":"base64","extensions":["pdf","ai"],"xrefs":{"rfc":["rfc8118"],"template":["application/pdf"]},"registered":true,"sort-priority":14},{"content-type":"application/PDX","encoding":"base64","xrefs":{"person":["ASAM","Thomas_Thomsen"],"template":["application/PDX"]},"registered":true,"sort-priority":16},{"content-type":"application/pem-certificate-chain","encoding":"base64","xrefs":{"rfc":["rfc8555"],"template":["application/pem-certificate-chain"]},"registered":true,"sort-priority":16},{"content-type":"application/pgp-encrypted","friendly":{"en":"Pretty Good Privacy"},"encoding":"7bit","extensions":["pgp","gpg"],"xrefs":{"rfc":["rfc3156"],"template":["application/pgp-encrypted"]},"registered":true,"sort-priority":14},{"content-type":"application/pgp-keys","encoding":"7bit","xrefs":{"rfc":["rfc3156"],"template":["application/pgp-keys"]},"registered":true,"signature":true,"sort-priority":16},{"content-type":"application/pgp-signature","friendly":{"en":"Pretty Good Privacy - Signature"},"encoding":"base64","extensions":["asc","sig"],"xrefs":{"rfc":["rfc3156"],"template":["application/pgp-signature"]},"registered":true,"signature":true,"sort-priority":14},{"content-type":"application/pics-rules","friendly":{"en":"PICSRules"},"encoding":"base64","extensions":["prf"],"registered":false,"sort-priority":47},{"content-type":"application/pidf+xml","encoding":"base64","xrefs":{"rfc":["rfc3863"],"template":["application/pidf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/pidf-diff+xml","encoding":"base64","xrefs":{"rfc":["rfc5262"],"template":["application/pidf-diff+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/pkcs10","friendly":{"en":"PKCS #10 - Certification Request Standard"},"encoding":"base64","extensions":["p10"],"xrefs":{"rfc":["rfc5967"],"template":["application/pkcs10"]},"registered":true,"signature":true,"sort-priority":15},{"content-type":"application/pkcs12","encoding":"base64","xrefs":{"person":["IETF"],"template":["application/pkcs12"]},"registered":true,"sort-priority":16},{"content-type":"application/pkcs7-mime","friendly":{"en":"PKCS #7 - Cryptographic Message Syntax Standard"},"encoding":"base64","extensions":["p7m","p7c"],"xrefs":{"rfc":["rfc7114","rfc8551"],"template":["application/pkcs7-mime"]},"registered":true,"signature":true,"sort-priority":14},{"content-type":"application/pkcs7-signature","friendly":{"en":"PKCS #7 - Cryptographic Message Syntax Standard"},"encoding":"base64","extensions":["p7s"],"xrefs":{"rfc":["rfc8551"],"template":["application/pkcs7-signature"]},"registered":true,"signature":true,"sort-priority":15},{"content-type":"application/pkcs8","friendly":{"en":"PKCS #8 - Private-Key Information Syntax Standard"},"encoding":"base64","extensions":["p8"],"xrefs":{"rfc":["rfc5958"],"template":["application/pkcs8"]},"registered":true,"sort-priority":15},{"content-type":"application/pkcs8-encrypted","encoding":"base64","xrefs":{"rfc":["rfc8351"],"template":["application/pkcs8-encrypted"]},"registered":true,"sort-priority":16},{"content-type":"application/pkix-attr-cert","friendly":{"en":"Attribute Certificate"},"encoding":"base64","extensions":["ac"],"xrefs":{"rfc":["rfc5877"],"template":["application/pkix-attr-cert"]},"registered":true,"sort-priority":15},{"content-type":"application/pkix-cert","friendly":{"en":"Internet Public Key Infrastructure - Certificate"},"encoding":"base64","extensions":["cer"],"xrefs":{"rfc":["rfc2585"],"template":["application/pkix-cert"]},"registered":true,"sort-priority":15},{"content-type":"application/pkix-crl","friendly":{"en":"Internet Public Key Infrastructure - Certificate Revocation Lists"},"encoding":"base64","extensions":["crl"],"xrefs":{"rfc":["rfc2585"],"template":["application/pkix-crl"]},"registered":true,"sort-priority":15},{"content-type":"application/pkix-keyinfo","encoding":"base64","xrefs":{"draft":["draft-hallambaker-mesh-udf-05"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/pkix-pkipath","friendly":{"en":"Internet Public Key Infrastructure - Certification Path"},"encoding":"base64","extensions":["pkipath"],"xrefs":{"rfc":["rfc6066"],"template":["application/pkix-pkipath"]},"registered":true,"sort-priority":15},{"content-type":"application/pkixcmp","friendly":{"en":"Internet Public Key Infrastructure - Certificate Management Protocole"},"encoding":"base64","extensions":["pki"],"xrefs":{"rfc":["rfc9811"],"template":["application/pkixcmp"]},"registered":true,"sort-priority":15},{"content-type":"application/pls+xml","friendly":{"en":"Pronunciation Lexicon Specification"},"encoding":"base64","extensions":["pls"],"xrefs":{"rfc":["rfc4267"],"template":["application/pls+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/poc-settings+xml","encoding":"base64","xrefs":{"rfc":["rfc4354"],"template":["application/poc-settings+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/postscript","friendly":{"en":"PostScript"},"encoding":"8bit","extensions":["eps","ps","ai","epsf","epsi"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["application/postscript"]},"registered":true,"sort-priority":11},{"content-type":"application/powerpoint","encoding":"base64","extensions":["ppt","pps","pot"],"registered":false,"sort-priority":45},{"content-type":"application/ppsp-tracker+json","encoding":"base64","xrefs":{"rfc":["rfc7846"],"template":["application/ppsp-tracker+json"]},"registered":true,"sort-priority":16},{"content-type":"application/private-token-issuer-directory","encoding":"base64","xrefs":{"rfc":["rfc9578"],"template":["application/private-token-issuer-directory"]},"registered":true,"sort-priority":16},{"content-type":"application/private-token-request","encoding":"base64","xrefs":{"rfc":["rfc9578"],"template":["application/private-token-request"]},"registered":true,"sort-priority":16},{"content-type":"application/private-token-response","encoding":"base64","xrefs":{"rfc":["rfc9578"],"template":["application/private-token-response"]},"registered":true,"sort-priority":16},{"content-type":"application/pro_eng","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/problem+json","encoding":"base64","xrefs":{"rfc":["rfc9457"],"template":["application/problem+json"]},"registered":true,"sort-priority":16},{"content-type":"application/problem+xml","encoding":"base64","xrefs":{"rfc":["rfc9457"],"template":["application/problem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/provenance+xml","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C"],"template":["application/provenance+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/provided-claims+jwt","encoding":"base64","xrefs":{"person":["Daniel_Fett","OpenID_Foundation_eKYC_and_IDA_WG"],"template":["application/provided-claims+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/prql","friendly":{"en":"Pipelined Relational Query Language"},"encoding":"base64","extensions":["prql"],"registered":false,"sort-priority":47},{"content-type":"application/prs.alvestrand.titrax-sheet","encoding":"base64","xrefs":{"person":["Harald_T._Alvestrand"],"template":["application/prs.alvestrand.titrax-sheet"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.cww","friendly":{"en":"CU-Writer"},"encoding":"base64","extensions":["cw","cww"],"xrefs":{"person":["Khemchart_Rungchavalnont"],"template":["application/prs.cww"]},"registered":true,"sort-priority":14},{"content-type":"application/prs.cyn","encoding":"base64","xrefs":{"person":["Cynthia_Revström"],"template":["application/prs.cyn"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.hpub+zip","encoding":"base64","xrefs":{"person":["Giulio_Zambon"],"template":["application/prs.hpub+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-document+xml","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-document+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-executable","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-executable"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-object+json","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-object+json"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-object+json-seq","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-object+json-seq"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-object+yaml","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-object+yaml"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.implied-structure","encoding":"base64","xrefs":{"person":["Marek_Čermák"],"template":["application/prs.implied-structure"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.mayfile","encoding":"base64","xrefs":{"person":["Azalea_Gardenia"],"template":["application/prs.mayfile"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.nprend","encoding":"base64","extensions":["rnd","rct"],"xrefs":{"person":["Jay_Doggett"],"template":["application/prs.nprend"]},"registered":true,"sort-priority":14},{"content-type":"application/prs.plucker","encoding":"base64","xrefs":{"person":["Bill_Janssen"],"template":["application/prs.plucker"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.rdf-xml-crypt","encoding":"base64","xrefs":{"person":["Toby_Inkster"],"template":["application/prs.rdf-xml-crypt"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.vcfbzip2","encoding":"base64","xrefs":{"person":["Paolo_Marcheschi"],"template":["application/prs.vcfbzip2"]},"registered":true,"sort-priority":16},{"content-type":"application/prs.xsf+xml","encoding":"base64","xrefs":{"person":["Maik_Stührenberg"],"template":["application/prs.xsf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/pskc+xml","friendly":{"en":"Portable Symmetric Key Container"},"encoding":"base64","extensions":["pskcxml"],"xrefs":{"rfc":["rfc6030"],"template":["application/pskc+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/pvd+json","encoding":"base64","xrefs":{"rfc":["rfc8801"],"template":["application/pvd+json"]},"registered":true,"sort-priority":16},{"content-type":"application/qsig","encoding":"base64","xrefs":{"rfc":["rfc3204"],"template":["application/QSIG"]},"registered":true,"sort-priority":16},{"content-type":"application/quicktime","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/quicktimeplayer","encoding":"base64","extensions":["qtl"],"obsolete":true,"use-instead":"application/x-quicktimeplayer","registered":false,"sort-priority":175},{"content-type":"application/raptorfec","encoding":"base64","xrefs":{"rfc":["rfc6682"],"template":["application/raptorfec"]},"registered":true,"sort-priority":16},{"content-type":"application/rdap+json","encoding":"base64","xrefs":{"rfc":["rfc9083"],"template":["application/rdap+json"]},"registered":true,"sort-priority":16},{"content-type":"application/rdf+xml","friendly":{"en":"Resource Description Framework"},"encoding":"8bit","extensions":["rdf","owl","xmp"],"xrefs":{"rfc":["rfc3870"],"template":["application/rdf+xml"]},"registered":true,"sort-priority":13},{"content-type":"application/reginfo+xml","friendly":{"en":"IMS Networks"},"encoding":"base64","extensions":["rif"],"xrefs":{"rfc":["rfc3680"],"template":["application/reginfo+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/relax-ng-compact-syntax","friendly":{"en":"Relax NG Compact Syntax"},"encoding":"base64","extensions":["rnc"],"xrefs":{"uri":["http://www.JTC_1sc34.org/repository/0661.pdf"],"template":["application/relax-ng-compact-syntax"]},"registered":true,"sort-priority":15},{"content-type":"application/remote-printing","encoding":"base64","obsolete":true,"xrefs":{"rfc":["rfc1486"],"person":["Marshall_Rose"],"uri":["https://datatracker.ietf.org/doc/status-change-int-tlds-to-historic"],"template":["application/remote-printing"],"notes":["(OBSOLETE)"]},"registered":true,"sort-priority":144},{"content-type":"application/remote_printing","encoding":"base64","obsolete":true,"use-instead":"application/remote-printing","registered":false,"sort-priority":176},{"content-type":"application/reports+json","encoding":"base64","xrefs":{"person":["Douglas_Creager"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/reputon+json","encoding":"base64","xrefs":{"rfc":["rfc7071"],"template":["application/reputon+json"]},"registered":true,"sort-priority":16},{"content-type":"application/resolve-response+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/resolve-response+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/resource-lists+xml","friendly":{"en":"XML Resource Lists"},"encoding":"base64","extensions":["rl"],"xrefs":{"rfc":["rfc4826"],"template":["application/resource-lists+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/resource-lists-diff+xml","friendly":{"en":"XML Resource Lists Diff"},"encoding":"base64","extensions":["rld"],"xrefs":{"rfc":["rfc5362"],"template":["application/resource-lists-diff+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/rfc+xml","encoding":"base64","xrefs":{"rfc":["rfc7991"],"template":["application/rfc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/rif+xml","encoding":"base64","xrefs":{"person":["Sandro_Hawke"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/riscos","encoding":"base64","xrefs":{"person":["Nick_Smith"],"template":["application/riscos"]},"registered":true,"sort-priority":16},{"content-type":"application/rlmi+xml","encoding":"base64","xrefs":{"rfc":["rfc4662"],"template":["application/rlmi+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/rls-services+xml","friendly":{"en":"XML Resource Lists"},"encoding":"base64","extensions":["rs"],"xrefs":{"rfc":["rfc4826"],"template":["application/rls-services+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/route-apd+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/route-apd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/route-s-tsid+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/route-s-tsid+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/route-usd+xml","encoding":"base64","xrefs":{"person":["ATSC"],"template":["application/route-usd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/rpki-checklist","encoding":"base64","xrefs":{"rfc":["rfc9323"],"template":["application/rpki-checklist"]},"registered":true,"sort-priority":16},{"content-type":"application/rpki-ghostbusters","encoding":"base64","extensions":["gbr"],"xrefs":{"rfc":["rfc6493"],"template":["application/rpki-ghostbusters"]},"registered":true,"sort-priority":15},{"content-type":"application/rpki-manifest","encoding":"base64","extensions":["mft"],"xrefs":{"rfc":["rfc6481"],"template":["application/rpki-manifest"]},"registered":true,"sort-priority":15},{"content-type":"application/rpki-publication","encoding":"base64","xrefs":{"rfc":["rfc8181"],"template":["application/rpki-publication"]},"registered":true,"sort-priority":16},{"content-type":"application/rpki-roa","encoding":"base64","extensions":["roa"],"xrefs":{"rfc":["rfc9582"],"template":["application/rpki-roa"]},"registered":true,"sort-priority":15},{"content-type":"application/rpki-signed-tal","encoding":"base64","xrefs":{"rfc":["rfc9691"],"template":["application/rpki-signed-tal"]},"registered":true,"sort-priority":16},{"content-type":"application/rpki-updown","encoding":"base64","xrefs":{"rfc":["rfc6492"],"template":["application/rpki-updown"]},"registered":true,"sort-priority":16},{"content-type":"application/rs-metadata+xml","encoding":"base64","xrefs":{"rfc":["rfc7865","rfc9806"],"template":["application/rs-metadata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/rsd+xml","friendly":{"en":"Really Simple Discovery"},"encoding":"base64","extensions":["rsd"],"registered":false,"sort-priority":47},{"content-type":"application/rss+xml","friendly":{"en":"RSS - Really Simple Syndication"},"encoding":"base64","extensions":["rss"],"registered":false,"sort-priority":47},{"content-type":"application/rtf","friendly":{"en":"Rich Text Format"},"encoding":"base64","extensions":["rtf"],"xrefs":{"person":["Paul_Lindner"],"template":["application/rtf"]},"registered":true,"sort-priority":15},{"content-type":"application/rtploopback","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["application/rtploopback"]},"registered":true,"sort-priority":16},{"content-type":"application/rtx","encoding":"base64","xrefs":{"rfc":["rfc4588"],"template":["application/rtx"]},"registered":true,"sort-priority":16},{"content-type":"application/samlassertion+xml","encoding":"base64","xrefs":{"person":["OASIS_Security_Services_Technical_Committee_SSTC"],"template":["application/samlassertion+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/samlmetadata+xml","encoding":"base64","xrefs":{"person":["OASIS_Security_Services_Technical_Committee_SSTC"],"template":["application/samlmetadata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/sarif+json","encoding":"base64","xrefs":{"person":["Laurence_J._Golding","Michael_C._Fanning","OASIS"],"template":["application/sarif+json"]},"registered":true,"sort-priority":16},{"content-type":"application/sarif-external-properties+json","encoding":"base64","xrefs":{"person":["David_Keaton","Michael_C._Fanning","OASIS"],"template":["application/sarif-external-properties+json"]},"registered":true,"sort-priority":16},{"content-type":"application/sbe","encoding":"base64","xrefs":{"person":["Donald_L._Mendelson","FIX_Trading_Community"],"template":["application/sbe"]},"registered":true,"sort-priority":16},{"content-type":"application/sbml+xml","friendly":{"en":"Systems Biology Markup Language"},"encoding":"base64","extensions":["sbml"],"xrefs":{"rfc":["rfc3823"],"template":["application/sbml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/scaip+xml","encoding":"base64","xrefs":{"person":["Oskar_Jonsson","SIS"],"template":["application/scaip+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/scim+json","encoding":"base64","xrefs":{"rfc":["rfc7644"],"template":["application/scim+json"]},"registered":true,"sort-priority":16},{"content-type":"application/scvp-cv-request","friendly":{"en":"Server-Based Certificate Validation Protocol - Validation Request"},"encoding":"base64","extensions":["scq"],"xrefs":{"rfc":["rfc5055"],"template":["application/scvp-cv-request"]},"registered":true,"sort-priority":15},{"content-type":"application/scvp-cv-response","friendly":{"en":"Server-Based Certificate Validation Protocol - Validation Response"},"encoding":"base64","extensions":["scs"],"xrefs":{"rfc":["rfc5055"],"template":["application/scvp-cv-response"]},"registered":true,"sort-priority":15},{"content-type":"application/scvp-vp-request","friendly":{"en":"Server-Based Certificate Validation Protocol - Validation Policies - Request"},"encoding":"base64","extensions":["spq"],"xrefs":{"rfc":["rfc5055"],"template":["application/scvp-vp-request"]},"registered":true,"sort-priority":15},{"content-type":"application/scvp-vp-response","friendly":{"en":"Server-Based Certificate Validation Protocol - Validation Policies - Response"},"encoding":"base64","extensions":["spp"],"xrefs":{"rfc":["rfc5055"],"template":["application/scvp-vp-response"]},"registered":true,"sort-priority":15},{"content-type":"application/sd-jwt","encoding":"base64","xrefs":{"draft":["RFC-ietf-oauth-selective-disclosure-jwt-22"],"template":["application/sd-jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/sd-jwt+json","encoding":"base64","xrefs":{"draft":["RFC-ietf-oauth-selective-disclosure-jwt-22"],"template":["application/sd-jwt+json"]},"registered":true,"sort-priority":16},{"content-type":"application/sdf+json","encoding":"base64","xrefs":{"draft":["RFC-ietf-asdf-sdf-23"],"template":["application/sdf+json"]},"registered":true,"sort-priority":16},{"content-type":"application/sdp","friendly":{"en":"Session Description Protocol"},"encoding":"base64","extensions":["sdp"],"xrefs":{"rfc":["rfc8866"],"template":["application/sdp"]},"registered":true,"sort-priority":15},{"content-type":"application/secevent+jwt","encoding":"base64","xrefs":{"rfc":["rfc8417"],"template":["application/secevent+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/senml+cbor","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/senml+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/senml+json","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/senml+json"]},"registered":true,"sort-priority":16},{"content-type":"application/senml+xml","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/senml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/senml-etch+cbor","encoding":"base64","xrefs":{"rfc":["rfc8790"],"template":["application/senml-etch+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/senml-etch+json","encoding":"base64","xrefs":{"rfc":["rfc8790"],"template":["application/senml-etch+json"]},"registered":true,"sort-priority":16},{"content-type":"application/senml-exi","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/senml-exi"]},"registered":true,"sort-priority":16},{"content-type":"application/sensml+cbor","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/sensml+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/sensml+json","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/sensml+json"]},"registered":true,"sort-priority":16},{"content-type":"application/sensml+xml","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/sensml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/sensml-exi","encoding":"base64","xrefs":{"rfc":["rfc8428"],"template":["application/sensml-exi"]},"registered":true,"sort-priority":16},{"content-type":"application/sep+xml","encoding":"base64","xrefs":{"person":["IEEE","Robby_Simpson"],"template":["application/sep+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/sep-exi","encoding":"base64","xrefs":{"person":["IEEE","Robby_Simpson"],"template":["application/sep-exi"]},"registered":true,"sort-priority":16},{"content-type":"application/sereal","encoding":"base64","extensions":["srl"],"registered":false,"sort-priority":47},{"content-type":"application/session-info","encoding":"base64","xrefs":{"person":["Frederic_Firmin","_3GPP"],"template":["application/session-info"]},"registered":true,"sort-priority":16},{"content-type":"application/set","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/set-payment","encoding":"base64","xrefs":{"person":["Brian_Korver"],"template":["application/set-payment"]},"registered":true,"sort-priority":16},{"content-type":"application/set-payment-initiation","friendly":{"en":"Secure Electronic Transaction - Payment"},"encoding":"base64","extensions":["setpay"],"xrefs":{"person":["Brian_Korver"],"template":["application/set-payment-initiation"]},"registered":true,"sort-priority":15},{"content-type":"application/set-registration","encoding":"base64","xrefs":{"person":["Brian_Korver"],"template":["application/set-registration"]},"registered":true,"sort-priority":16},{"content-type":"application/set-registration-initiation","friendly":{"en":"Secure Electronic Transaction - Registration"},"encoding":"base64","extensions":["setreg"],"xrefs":{"person":["Brian_Korver"],"template":["application/set-registration-initiation"]},"registered":true,"sort-priority":15},{"content-type":"application/sgml","encoding":"base64","extensions":["sgml"],"xrefs":{"rfc":["rfc1874"],"template":["application/SGML"]},"registered":true,"sort-priority":15},{"content-type":"application/sgml-open-catalog","encoding":"base64","extensions":["soc"],"xrefs":{"person":["Paul_Grosso"],"template":["application/sgml-open-catalog"]},"registered":true,"sort-priority":15},{"content-type":"application/shf+xml","friendly":{"en":"S Hexdump Format"},"encoding":"base64","extensions":["shf"],"xrefs":{"rfc":["rfc4194"],"template":["application/shf+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/sieve","encoding":"base64","extensions":["siv"],"xrefs":{"rfc":["rfc5228"],"template":["application/sieve"]},"registered":true,"sort-priority":15},{"content-type":"application/signed-exchange","encoding":"base64","xrefs":{"draft":["draft-yasskin-http-origin-signed-responses-07"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/simple-filter+xml","encoding":"base64","xrefs":{"rfc":["rfc4661"],"template":["application/simple-filter+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/simple-message-summary","encoding":"base64","xrefs":{"rfc":["rfc3842"],"template":["application/simple-message-summary"]},"registered":true,"sort-priority":16},{"content-type":"application/simpleSymbolContainer","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/simpleSymbolContainer"]},"registered":true,"sort-priority":16},{"content-type":"application/sipc","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/sipc"]},"registered":true,"sort-priority":16},{"content-type":"application/SLA","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/slate","encoding":"base64","xrefs":{"person":["Terry_Crowley"],"template":["application/slate"]},"registered":true,"sort-priority":16},{"content-type":"application/sldworks","encoding":"base64","extensions":["sldprt","sldasm","slddrw"],"registered":false,"sort-priority":45},{"content-type":"application/smil","encoding":"8bit","extensions":["smi","smil"],"obsolete":true,"use-instead":"application/smil+xml","xrefs":{"rfc":["rfc4536"],"template":["application/smil"],"notes":["(OBSOLETED in favor of application/smil+xml)"]},"registered":true,"sort-priority":142},{"content-type":"application/smil+xml","friendly":{"en":"Synchronized Multimedia Integration Language"},"encoding":"8bit","extensions":["smi","smil","sml"],"xrefs":{"rfc":["rfc4536"],"template":["application/smil+xml"]},"registered":true,"sort-priority":13},{"content-type":"application/smpte336m","encoding":"base64","xrefs":{"rfc":["rfc6597"],"template":["application/smpte336m"]},"registered":true,"sort-priority":16},{"content-type":"application/soap+fastinfoset","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur","ITU-T_ASN.1_Rapporteur"],"template":["application/soap+fastinfoset"]},"registered":true,"sort-priority":16},{"content-type":"application/soap+xml","encoding":"base64","xrefs":{"rfc":["rfc3902"],"template":["application/soap+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/solids","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/sparql-query","friendly":{"en":"SPARQL - Query"},"encoding":"base64","extensions":["rq"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/#mediaType"],"template":["application/sparql-query"]},"registered":true,"sort-priority":15},{"content-type":"application/sparql-results+xml","friendly":{"en":"SPARQL - Results"},"encoding":"base64","extensions":["srx"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/#mime"],"template":["application/sparql-results+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/spdx+json","encoding":"base64","xrefs":{"person":["Linux_Foundation","Rose_Judge"],"template":["application/spdx+json"]},"registered":true,"sort-priority":16},{"content-type":"application/spirits-event+xml","encoding":"base64","xrefs":{"rfc":["rfc3910"],"template":["application/spirits-event+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/sql","encoding":"base64","xrefs":{"rfc":["rfc6922"],"template":["application/sql"]},"registered":true,"sort-priority":16},{"content-type":"application/srgs","friendly":{"en":"Speech Recognition Grammar Specification"},"encoding":"base64","extensions":["gram"],"xrefs":{"rfc":["rfc4267"],"template":["application/srgs"]},"registered":true,"sort-priority":15},{"content-type":"application/srgs+xml","friendly":{"en":"Speech Recognition Grammar Specification - XML"},"encoding":"base64","extensions":["grxml"],"xrefs":{"rfc":["rfc4267"],"template":["application/srgs+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/sru+xml","friendly":{"en":"Search/Retrieve via URL Response Format"},"encoding":"base64","extensions":["sru"],"xrefs":{"rfc":["rfc6207"],"template":["application/sru+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/ssdl+xml","encoding":"base64","extensions":["ssdl"],"registered":false,"sort-priority":47},{"content-type":"application/sslkeylogfile","encoding":"base64","xrefs":{"draft":["RFC-ietf-tls-keylogfile-05"],"template":["application/sslkeylogfile"]},"registered":true,"sort-priority":16},{"content-type":"application/ssml+xml","friendly":{"en":"Speech Synthesis Markup Language"},"encoding":"base64","extensions":["ssml"],"xrefs":{"rfc":["rfc4267"],"template":["application/ssml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/ST2110-41","encoding":"base64","xrefs":{"person":["SMPTE","SMPTE_Director_of_Standards_Development"],"template":["application/ST2110-41"]},"registered":true,"sort-priority":16},{"content-type":"application/STEP","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/stix+json","encoding":"base64","xrefs":{"person":["Chet_Ensign","OASIS"],"template":["application/stix+json"]},"registered":true,"sort-priority":16},{"content-type":"application/stratum","encoding":"base64","xrefs":{"person":["Ben_van_Hartingsveldt"],"note":["1"],"template":["application/stratum"]},"registered":true,"sort-priority":16},{"content-type":"application/suit-envelope+cose","encoding":"base64","xrefs":{"draft":["RFC-ietf-suit-manifest-34"],"template":["application/suit-envelope+cose"]},"registered":true,"sort-priority":16},{"content-type":"application/swid+cbor","encoding":"base64","xrefs":{"rfc":["rfc9393"],"template":["application/swid+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/swid+xml","encoding":"base64","xrefs":{"person":["David_Waltermire","ISO-IEC_JTC_1","Ron_Brill"],"template":["application/swid+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-apex-update","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-apex-update"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-apex-update-confirm","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-apex-update-confirm"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-community-update","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-community-update"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-community-update-confirm","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-community-update-confirm"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-error","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-error"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-sequence-adjust","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-sequence-adjust"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-sequence-adjust-confirm","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-sequence-adjust-confirm"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-status-query","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-status-query"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-status-response","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-status-response"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-update","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-update"]},"registered":true,"sort-priority":16},{"content-type":"application/tamp-update-confirm","encoding":"base64","xrefs":{"rfc":["rfc5934"],"template":["application/tamp-update-confirm"]},"registered":true,"sort-priority":16},{"content-type":"application/taxii+json","encoding":"base64","xrefs":{"person":["Chet_Ensign","OASIS"],"template":["application/taxii+json"]},"registered":true,"sort-priority":16},{"content-type":"application/td+json","encoding":"base64","xrefs":{"person":["Matthias_Kovatsch","W3C"],"template":["application/td+json"]},"registered":true,"sort-priority":16},{"content-type":"application/tei+xml","friendly":{"en":"Text Encoding and Interchange"},"encoding":"base64","extensions":["tei","teicorpus"],"xrefs":{"rfc":["rfc6129"],"template":["application/tei+xml"]},"registered":true,"sort-priority":14},{"content-type":"application/TETRA_ISI","encoding":"base64","xrefs":{"person":["ETSI","Miguel_Angel_Reina_Ortega"],"template":["application/TETRA_ISI"]},"registered":true,"sort-priority":16},{"content-type":"application/texinfo","encoding":"base64","xrefs":{"person":["Simon_Josefsson"],"note":["3"],"template":["application/texinfo"]},"registered":true,"sort-priority":16},{"content-type":"application/thraud+xml","friendly":{"en":"Sharing Transaction Fraud Data"},"encoding":"base64","extensions":["tfi"],"xrefs":{"rfc":["rfc5941"],"template":["application/thraud+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/timestamp-query","encoding":"base64","xrefs":{"rfc":["rfc3161"],"template":["application/timestamp-query"]},"registered":true,"sort-priority":16},{"content-type":"application/timestamp-reply","encoding":"base64","xrefs":{"rfc":["rfc3161"],"template":["application/timestamp-reply"]},"registered":true,"sort-priority":16},{"content-type":"application/timestamped-data","friendly":{"en":"Time Stamped Data Envelope"},"encoding":"base64","extensions":["tsd"],"xrefs":{"rfc":["rfc5955"],"template":["application/timestamped-data"]},"registered":true,"sort-priority":15},{"content-type":"application/tlsrpt+gzip","encoding":"base64","xrefs":{"rfc":["rfc8460"],"template":["application/tlsrpt+gzip"]},"registered":true,"sort-priority":16},{"content-type":"application/tlsrpt+json","encoding":"base64","xrefs":{"rfc":["rfc8460"],"template":["application/tlsrpt+json"]},"registered":true,"sort-priority":16},{"content-type":"application/tm+json","encoding":"base64","xrefs":{"person":["Sebastian_Kaebisch","W3C"],"template":["application/tm+json"]},"registered":true,"sort-priority":16},{"content-type":"application/tnauthlist","encoding":"base64","xrefs":{"rfc":["rfc8226"],"template":["application/tnauthlist"]},"registered":true,"sort-priority":16},{"content-type":"application/toc+cbor","encoding":"base64","xrefs":{"uri":["https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1_10April25.pdf"],"person":["Ned_M._Smith","TCG_DICE_WG"],"template":["application/toc+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/token-introspection+jwt","encoding":"base64","xrefs":{"rfc":["rfc9701"],"template":["application/token-introspection+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/toml","encoding":"base64","xrefs":{"person":["Ben_van_Hartingsveldt"],"uri":["https://github.com/toml-lang/toml/issues/870"],"note":["2"],"template":["application/toml"]},"registered":true,"sort-priority":16},{"content-type":"application/toolbook","encoding":"base64","extensions":["tbk"],"obsolete":true,"use-instead":"application/x-toolbook","registered":false,"sort-priority":175},{"content-type":"application/trickle-ice-sdpfrag","encoding":"base64","xrefs":{"rfc":["rfc8840"],"template":["application/trickle-ice-sdpfrag"]},"registered":true,"sort-priority":16},{"content-type":"application/trig","encoding":"base64","xrefs":{"person":["W3C","W3C_RDF_WG"],"template":["application/trig"]},"registered":true,"sort-priority":16},{"content-type":"application/trust-chain+json","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/trust-chain+json"]},"registered":true,"sort-priority":16},{"content-type":"application/trust-mark+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/trust-mark+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/trust-mark-delegation+jwt","encoding":"base64","xrefs":{"person":["OpenID_Foundation_Artifact_Binding_WG"],"template":["application/trust-mark-delegation+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/ttml+xml","encoding":"base64","extensions":["ttml"],"xrefs":{"person":["W3C","W3C_Timed_Text_WG"],"template":["application/ttml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/tve-trigger","encoding":"base64","xrefs":{"person":["Linda_Welsh"],"template":["application/tve-trigger"]},"registered":true,"sort-priority":16},{"content-type":"application/tzif","encoding":"base64","xrefs":{"rfc":["rfc9636"],"template":["application/tzif"]},"registered":true,"sort-priority":16},{"content-type":"application/tzif-leap","encoding":"base64","xrefs":{"rfc":["rfc9636"],"template":["application/tzif-leap"]},"registered":true,"sort-priority":16},{"content-type":"application/uccs+cbor","encoding":"base64","xrefs":{"rfc":["rfc9781"],"template":["application/uccs+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/ujcs+json","encoding":"base64","xrefs":{"rfc":["rfc9781"],"template":["application/ujcs+json"]},"registered":true,"sort-priority":16},{"content-type":"application/ulpfec","encoding":"base64","xrefs":{"rfc":["rfc5109"],"template":["application/ulpfec"]},"registered":true,"sort-priority":16},{"content-type":"application/urc-grpsheet+xml","encoding":"base64","xrefs":{"person":["Gottfried_Zimmermann","ISO-IEC_JTC_1"],"template":["application/urc-grpsheet+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/urc-ressheet+xml","encoding":"base64","xrefs":{"person":["Gottfried_Zimmermann","ISO-IEC_JTC_1"],"template":["application/urc-ressheet+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/urc-targetdesc+xml","encoding":"base64","xrefs":{"person":["Gottfried_Zimmermann","ISO-IEC_JTC_1"],"template":["application/urc-targetdesc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/urc-uisocketdesc+xml","encoding":"base64","xrefs":{"person":["Gottfried_Zimmermann"],"template":["application/urc-uisocketdesc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vc","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vc"]},"registered":true,"sort-priority":16},{"content-type":"application/vc+cose","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vc+cose"]},"registered":true,"sort-priority":16},{"content-type":"application/vc+jwt","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vc+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/vcard+json","encoding":"base64","xrefs":{"rfc":["rfc7095"],"template":["application/vcard+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vcard+xml","encoding":"base64","xrefs":{"rfc":["rfc6351"],"template":["application/vcard+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vda","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vemmi","encoding":"base64","xrefs":{"rfc":["rfc2122"],"template":["application/vemmi"]},"registered":true,"sort-priority":16},{"content-type":"application/vividence.scriptfile","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/VMSBACKUP","encoding":"base64","extensions":["bck"],"obsolete":true,"use-instead":"application/x-VMSBACKUP","registered":false,"sort-priority":175},{"content-type":"application/vnd.1000minds.decision-model+xml","encoding":"base64","xrefs":{"person":["Franz_Ombler"],"template":["application/vnd.1000minds.decision-model+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.1ob","encoding":"base64","xrefs":{"person":["Rob_Coyle"],"template":["application/vnd.1ob"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-prose+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp-prose+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-prose-pc3a+xml","encoding":"base64","xrefs":{"person":["Haorui_Yang"],"template":["application/vnd.3gpp-prose-pc3a+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-prose-pc3ach+xml","encoding":"base64","xrefs":{"person":["Haorui_Yang"],"template":["application/vnd.3gpp-prose-pc3ach+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-prose-pc3ch+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp-prose-pc3ch+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-prose-pc8+xml","encoding":"base64","xrefs":{"person":["Haorui_Yang"],"template":["application/vnd.3gpp-prose-pc8+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp-v2x-local-service-information","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp-v2x-local-service-information"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.5gnas","encoding":"base64","xrefs":{"person":["Jones_Lu_Yunjie","_3GPP"],"template":["application/vnd.3gpp.5gnas"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.5gsa2x","encoding":"base64","xrefs":{"person":["Dongwook_Kim","_3GPP_CT1"],"template":["application/vnd.3gpp.5gsa2x"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.5gsa2x-local-service-information","encoding":"base64","xrefs":{"person":["Dongwook_Kim","_3GPP_CT1"],"template":["application/vnd.3gpp.5gsa2x-local-service-information"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.5gsv2x","encoding":"base64","xrefs":{"person":["Dongwook_Kim","_3GPP_CT1"],"template":["application/vnd.3gpp.5gsv2x"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.5gsv2x-local-service-information","encoding":"base64","xrefs":{"person":["Dongwook_Kim","_3GPP_CT1"],"template":["application/vnd.3gpp.5gsv2x-local-service-information"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.access-transfer-events+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.access-transfer-events+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.bsf+xml","encoding":"base64","xrefs":{"person":["John_M_Meredith"],"template":["application/vnd.3gpp.bsf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.crs+xml","encoding":"base64","xrefs":{"person":["Xu_Chen"],"template":["application/vnd.3gpp.crs+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.current-location-discovery+xml","encoding":"base64","xrefs":{"person":["Peter_Leis"],"template":["application/vnd.3gpp.current-location-discovery+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.GMOP+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.GMOP+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.gtpc","encoding":"base64","xrefs":{"person":["Yang_Yong","_3GPP"],"template":["application/vnd.3gpp.gtpc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.interworking-data","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.interworking-data"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.lpp","encoding":"base64","xrefs":{"person":["Jones_Lu_Yunjie","_3GPP"],"template":["application/vnd.3gpp.lpp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mc-signalling-ear","encoding":"base64","xrefs":{"person":["Tim_Woodward"],"template":["application/vnd.3gpp.mc-signalling-ear"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-affiliation-command+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-affiliation-command+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml","encoding":"base64","xrefs":{"person":["Kiran_Kapale"],"template":["application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-payload","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-payload"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-regroup+xml","encoding":"base64","xrefs":{"person":["Kiran_Kapale"],"template":["application/vnd.3gpp.mcdata-regroup+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-service-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-service-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-signalling","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-signalling"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-ue-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-ue-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcdata-user-profile+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcdata-user-profile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-affiliation-command+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-affiliation-command+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-floor-request+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-floor-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-location-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-location-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-mbms-usage-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-mbms-usage-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-regroup+xml","encoding":"base64","xrefs":{"person":["Kiran_Kapale"],"template":["application/vnd.3gpp.mcptt-regroup+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-service-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-service-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-signed+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-signed+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-ue-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-ue-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-ue-init-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-ue-init-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcptt-user-profile+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcptt-user-profile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-affiliation-command+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-affiliation-command+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-affiliation-info+xml","encoding":"base64","obsolete":true,"use-instead":"application/vnd.3gpp.mcvideo-info+xml","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-affiliation-info+xml"],"notes":["(OBSOLETED in favor of application/vnd.3gpp.mcvideo-info+xml)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.3gpp.mcvideo-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-location-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-location-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-mbms-usage-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-mbms-usage-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-regroup+xml","encoding":"base64","xrefs":{"person":["Kiran_Kapale"],"template":["application/vnd.3gpp.mcvideo-regroup+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-service-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-service-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-transmission-request+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-transmission-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-ue-config+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-ue-config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mcvideo-user-profile+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mcvideo-user-profile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.mid-call+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.mid-call+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.ngap","encoding":"base64","xrefs":{"person":["Yang_Yong","_3GPP"],"template":["application/vnd.3gpp.ngap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.pfcp","encoding":"base64","xrefs":{"person":["Bruno_Landais","_3GPP"],"template":["application/vnd.3gpp.pfcp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.pic-bw-large","friendly":{"en":"3rd Generation Partnership Project - Pic Large"},"encoding":"base64","extensions":["plb"],"xrefs":{"person":["John_M_Meredith"],"template":["application/vnd.3gpp.pic-bw-large"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.3gpp.pic-bw-small","friendly":{"en":"3rd Generation Partnership Project - Pic Small"},"encoding":"base64","extensions":["psb"],"xrefs":{"person":["John_M_Meredith"],"template":["application/vnd.3gpp.pic-bw-small"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.3gpp.pic-bw-var","friendly":{"en":"3rd Generation Partnership Project - Pic Var"},"encoding":"base64","extensions":["pvb"],"xrefs":{"person":["John_M_Meredith"],"template":["application/vnd.3gpp.pic-bw-var"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.3gpp.pinapp-info+xml","encoding":"base64","xrefs":{"person":["Dongwook_Kim","_3GPP_CT1"],"template":["application/vnd.3gpp.pinapp-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.s1ap","encoding":"base64","xrefs":{"person":["Yang_Yong","_3GPP"],"template":["application/vnd.3gpp.s1ap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-app-comm-requirements-info+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-app-comm-requirements-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-data-delivery-info+cbor","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-data-delivery-info+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-data-delivery-info+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-data-delivery-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-group-doc+xml","encoding":"base64","xrefs":{"person":["Sapan_Shah"],"template":["application/vnd.3gpp.seal-group-doc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.seal-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-location-info+cbor","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-location-info+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-location-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.seal-location-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-mbms-usage-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.seal-mbms-usage-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-mbs-usage-info+xml","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-mbs-usage-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-network-QoS-management-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.seal-network-QoS-management-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-network-resource-info+cbor","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["application/vnd.3gpp.seal-network-resource-info+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-ue-config-info+xml","encoding":"base64","xrefs":{"person":["Sapan_Shah"],"template":["application/vnd.3gpp.seal-ue-config-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-unicast-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.seal-unicast-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.seal-user-profile-info+xml","encoding":"base64","xrefs":{"person":["Sapan_Shah"],"template":["application/vnd.3gpp.seal-user-profile-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.sms","encoding":"base64","extensions":["sms"],"xrefs":{"person":["John_M_Meredith"],"template":["application/vnd.3gpp.sms"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.3gpp.sms+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.sms+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.srvcc-ext+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.srvcc-ext+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.SRVCC-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.SRVCC-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.state-and-event-info+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.state-and-event-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.ussd+xml","encoding":"base64","xrefs":{"person":["Frederic_Firmin"],"template":["application/vnd.3gpp.ussd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.v2x","encoding":"base64","xrefs":{"person":["Sang_Min_Park"],"template":["application/vnd.3gpp.v2x"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp.vae-info+xml","encoding":"base64","xrefs":{"person":["Christian_Herrero-Veron","_3GPP"],"template":["application/vnd.3gpp.vae-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp2.bcmcsinfo+xml","encoding":"base64","xrefs":{"person":["AC_Mahendran"],"template":["application/vnd.3gpp2.bcmcsinfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp2.sms","encoding":"base64","xrefs":{"person":["AC_Mahendran"],"template":["application/vnd.3gpp2.sms"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3gpp2.tcap","friendly":{"en":"3rd Generation Partnership Project - Transaction Capabilities Application Part"},"encoding":"base64","extensions":["tcap"],"xrefs":{"person":["AC_Mahendran"],"template":["application/vnd.3gpp2.tcap"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.3lightssoftware.imagescal","encoding":"base64","xrefs":{"person":["Gus_Asadi"],"template":["application/vnd.3lightssoftware.imagescal"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.3M.Post-it-Notes","friendly":{"en":"3M Post It Notes"},"encoding":"base64","extensions":["pwn"],"xrefs":{"person":["Michael_OBrien"],"template":["application/vnd.3M.Post-it-Notes"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.accpac.simply.aso","friendly":{"en":"Simply Accounting"},"encoding":"base64","extensions":["aso"],"xrefs":{"person":["Steve_Leow"],"template":["application/vnd.accpac.simply.aso"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.accpac.simply.imp","friendly":{"en":"Simply Accounting - Data Import"},"encoding":"base64","extensions":["imp"],"xrefs":{"person":["Steve_Leow"],"template":["application/vnd.accpac.simply.imp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.acm.addressxfer+json","encoding":"base64","xrefs":{"person":["Sridhar_Ramakrishnan"],"template":["application/vnd.acm.addressxfer+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.acm.chatbot+json","encoding":"base64","xrefs":{"person":["Sridhar_Ramakrishnan"],"template":["application/vnd.acm.chatbot+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.acucobol","friendly":{"en":"ACU Cobol"},"encoding":"base64","extensions":["acu"],"xrefs":{"person":["Dovid_Lubin"],"template":["application/vnd.acucobol"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.acucorp","friendly":{"en":"ACU Cobol"},"encoding":"7bit","extensions":["atc","acutc"],"xrefs":{"person":["Dovid_Lubin"],"template":["application/vnd.acucorp"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.adobe.aftereffects.project","encoding":"base64","extensions":["aep"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.adobe.aftereffects.template","encoding":"base64","extensions":["aet"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.adobe.air-application-installer-package+zip","friendly":{"en":"Adobe AIR Application"},"encoding":"base64","extensions":["air"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.adobe.flash.movie","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.adobe.flash.movie"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.adobe.formscentral.fcdt","encoding":"base64","extensions":["fcdt"],"xrefs":{"person":["Chris_Solc"],"template":["application/vnd.adobe.formscentral.fcdt"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.adobe.fxp","friendly":{"en":"Adobe Flex Project"},"encoding":"base64","extensions":["fxp","fxpl"],"xrefs":{"person":["Steven_Heintz"],"template":["application/vnd.adobe.fxp"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.adobe.indesign-idml-package","encoding":"base64","extensions":["idml"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.adobe.partial-upload","encoding":"base64","xrefs":{"person":["Tapani_Otala"],"template":["application/vnd.adobe.partial-upload"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.adobe.xdp+xml","friendly":{"en":"Adobe XML Data Package"},"encoding":"base64","extensions":["xdp"],"xrefs":{"person":["John_Brinkman"],"template":["application/vnd.adobe.xdp+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.adobe.xfdf","friendly":{"en":"Adobe XML Forms Data Format"},"encoding":"base64","extensions":["xfdf"],"xrefs":{"person":["Roberto_Perelman"],"template":["application/vnd.adobe.xfdf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.aether.imp","encoding":"base64","xrefs":{"person":["Jay_Moskowitz"],"template":["application/vnd.aether.imp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.afplinedata","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.afplinedata"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.afplinedata-pagedef","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.afplinedata-pagedef"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.cmoca-cmresource","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.cmoca-cmresource"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.foca-charset","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.foca-charset"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.foca-codedfont","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.foca-codedfont"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.foca-codepage","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.foca-codepage"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-cmtable","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-cmtable"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-formdef","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-formdef"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-mediummap","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-mediummap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-objectcontainer","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-objectcontainer"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-overlay","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-overlay"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.afpc.modca-pagesegment","encoding":"base64","xrefs":{"person":["Jörg_Palmer"],"template":["application/vnd.afpc.modca-pagesegment"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.age","encoding":"base64","xrefs":{"person":["Filippo_Valsorda"],"template":["application/vnd.age"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ah-barcode","encoding":"base64","xrefs":{"person":["Katsuhiko_Ichinose"],"template":["application/vnd.ah-barcode"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ahead.space","friendly":{"en":"Ahead AIR Application"},"encoding":"base64","extensions":["ahead"],"xrefs":{"person":["Tor_Kristensen"],"template":["application/vnd.ahead.space"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.airzip.filesecure.azf","friendly":{"en":"AirZip FileSECURE"},"encoding":"base64","extensions":["azf"],"xrefs":{"person":["Daniel_Mould","Gary_Clueit"],"template":["application/vnd.airzip.filesecure.azf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.airzip.filesecure.azs","friendly":{"en":"AirZip FileSECURE"},"encoding":"base64","extensions":["azs"],"xrefs":{"person":["Daniel_Mould","Gary_Clueit"],"template":["application/vnd.airzip.filesecure.azs"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.amadeus+json","encoding":"base64","xrefs":{"person":["Patrick_Brosse"],"template":["application/vnd.amadeus+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.amazon.ebook","friendly":{"en":"Amazon Kindle eBook format"},"encoding":"base64","extensions":["azw"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.amazon.mobi8-ebook","encoding":"base64","xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.amazon.mobi8-ebook"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.americandynamics.acc","friendly":{"en":"Active Content Compression"},"encoding":"base64","extensions":["acc"],"xrefs":{"person":["Gary_Sands"],"template":["application/vnd.americandynamics.acc"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.amiga.ami","friendly":{"en":"AmigaDE"},"encoding":"base64","extensions":["ami"],"xrefs":{"person":["Kevin_Blumberg"],"template":["application/vnd.amiga.ami"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.amundsen.maze+xml","encoding":"base64","xrefs":{"person":["Mike_Amundsen"],"template":["application/vnd.amundsen.maze+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.android.ota","encoding":"base64","xrefs":{"person":["Greg_Kaiser"],"template":["application/vnd.android.ota"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.android.package-archive","friendly":{"en":"Android Package Archive"},"encoding":"base64","extensions":["apk"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.anki","encoding":"base64","xrefs":{"person":["Kerrick_Staley"],"template":["application/vnd.anki"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.anser-web-certificate-issue-initiation","friendly":{"en":"ANSER-WEB Terminal Client - Certificate Issue"},"encoding":"base64","extensions":["cii"],"xrefs":{"person":["Hiroyoshi_Mori"],"template":["application/vnd.anser-web-certificate-issue-initiation"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.anser-web-funds-transfer-initiation","friendly":{"en":"ANSER-WEB Terminal Client - Web Funds Transfer"},"encoding":"base64","extensions":["fti"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.antix.game-component","friendly":{"en":"Antix Game Player"},"encoding":"base64","extensions":["atx"],"xrefs":{"person":["Daniel_Shelton"],"template":["application/vnd.antix.game-component"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apache.arrow.file","encoding":"base64","xrefs":{"person":["Apache_Arrow_Project"],"template":["application/vnd.apache.arrow.file"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apache.arrow.stream","encoding":"base64","xrefs":{"person":["Apache_Arrow_Project"],"template":["application/vnd.apache.arrow.stream"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apache.parquet","encoding":"base64","xrefs":{"person":["Apache_Parquet_Project"],"template":["application/vnd.apache.parquet"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apache.thrift.binary","encoding":"base64","xrefs":{"person":["Roger_Meier"],"template":["application/vnd.apache.thrift.binary"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apache.thrift.compact","encoding":"base64","xrefs":{"person":["Roger_Meier"],"template":["application/vnd.apache.thrift.compact"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apache.thrift.json","encoding":"base64","xrefs":{"person":["Roger_Meier"],"template":["application/vnd.apache.thrift.json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apexlang","encoding":"base64","xrefs":{"person":["Fawad_Shaikh"],"template":["application/vnd.apexlang"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.api+json","encoding":"base64","xrefs":{"person":["Steve_Klabnik"],"template":["application/vnd.api+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.aplextor.warrp+json","encoding":"base64","xrefs":{"person":["Oleg_Uryutin"],"template":["application/vnd.aplextor.warrp+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apothekende.reservation+json","encoding":"base64","xrefs":{"person":["Adrian_Föder"],"template":["application/vnd.apothekende.reservation+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.apple.installer+xml","friendly":{"en":"Apple Installer Package"},"encoding":"base64","extensions":["mpkg"],"xrefs":{"person":["Peter_Bierman"],"template":["application/vnd.apple.installer+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apple.iwork","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.apple.keynote","encoding":"base64","extensions":["key"],"xrefs":{"person":["Manichandra_Sajjanapu"],"template":["application/vnd.apple.keynote"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apple.mpegurl","friendly":{"en":"Multimedia Playlist Unicode"},"encoding":"base64","extensions":["m3u8"],"xrefs":{"rfc":["rfc8216"],"template":["application/vnd.apple.mpegurl"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apple.numbers","encoding":"base64","extensions":["numbers"],"xrefs":{"person":["Manichandra_Sajjanapu"],"template":["application/vnd.apple.numbers"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apple.pages","encoding":"base64","extensions":["pages"],"xrefs":{"person":["Manichandra_Sajjanapu"],"template":["application/vnd.apple.pages"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.apple.pkpass","encoding":"base64","extensions":["pkpass"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.apple.unknown.13","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.arastra.swi","encoding":"base64","extensions":["swi"],"obsolete":true,"use-instead":"application/vnd.aristanetworks.swi","xrefs":{"person":["Bill_Fenner"],"template":["application/vnd.arastra.swi"],"notes":["(OBSOLETED in favor of application/vnd.aristanetworks.swi)"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.aristanetworks.swi","friendly":{"en":"Arista Networks Software Image"},"encoding":"base64","extensions":["swi"],"xrefs":{"person":["Bill_Fenner"],"template":["application/vnd.aristanetworks.swi"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.artisan+json","encoding":"base64","xrefs":{"person":["Brad_Turner"],"template":["application/vnd.artisan+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.artsquare","encoding":"base64","xrefs":{"person":["Christopher_Smith"],"template":["application/vnd.artsquare"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.astraea-software.iota","encoding":"base64","extensions":["iota"],"xrefs":{"person":["Christopher_Snazell"],"template":["application/vnd.astraea-software.iota"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.audiograph","friendly":{"en":"Audiograph"},"encoding":"base64","extensions":["aep"],"xrefs":{"person":["Horia_Cristian_Slusanschi"],"template":["application/vnd.audiograph"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.autopackage","encoding":"base64","xrefs":{"person":["Mike_Hearn"],"template":["application/vnd.autopackage"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.avalon+json","encoding":"base64","xrefs":{"person":["Ben_Hinman"],"template":["application/vnd.avalon+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.avistar+xml","encoding":"base64","xrefs":{"person":["Vladimir_Vysotsky"],"template":["application/vnd.avistar+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.balsamiq.bmml+xml","encoding":"base64","xrefs":{"person":["Giacomo_Guilizzoni"],"template":["application/vnd.balsamiq.bmml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.balsamiq.bmpr","encoding":"base64","xrefs":{"person":["Giacomo_Guilizzoni"],"template":["application/vnd.balsamiq.bmpr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.banana-accounting","encoding":"base64","xrefs":{"person":["José_Del_Romano"],"template":["application/vnd.banana-accounting"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bbf.usp.error","encoding":"base64","xrefs":{"person":["Broadband_Forum"],"template":["application/vnd.bbf.usp.error"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bbf.usp.msg","encoding":"base64","xrefs":{"person":["Broadband_Forum"],"template":["application/vnd.bbf.usp.msg"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bbf.usp.msg+json","encoding":"base64","xrefs":{"person":["Broadband_Forum"],"template":["application/vnd.bbf.usp.msg+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bekitzur-stech+json","encoding":"base64","xrefs":{"person":["Jegulsky"],"template":["application/vnd.bekitzur-stech+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.belightsoft.lhzd+zip","encoding":"base64","xrefs":{"person":["Dmytro_Yunchyk"],"template":["application/vnd.belightsoft.lhzd+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.belightsoft.lhzl+zip","encoding":"base64","xrefs":{"person":["Dmytro_Yunchyk"],"template":["application/vnd.belightsoft.lhzl+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bint.med-content","encoding":"base64","xrefs":{"person":["Heinz-Peter_Schütz"],"template":["application/vnd.bint.med-content"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.biopax.rdf+xml","encoding":"base64","xrefs":{"person":["Pathway_Commons"],"template":["application/vnd.biopax.rdf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.blink-idb-value-wrapper","encoding":"base64","xrefs":{"person":["Victor_Costan"],"template":["application/vnd.blink-idb-value-wrapper"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.blueice.multipass","friendly":{"en":"Blueice Research Multipass"},"encoding":"base64","extensions":["mpm"],"xrefs":{"person":["Thomas_Holmstrom"],"template":["application/vnd.blueice.multipass"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.bluetooth.ep.oob","encoding":"base64","xrefs":{"person":["Mike_Foley"],"template":["application/vnd.bluetooth.ep.oob"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bluetooth.le.oob","encoding":"base64","xrefs":{"person":["Mark_Powell"],"template":["application/vnd.bluetooth.le.oob"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bmi","friendly":{"en":"BMI Drawing Data Interchange"},"encoding":"base64","extensions":["bmi"],"xrefs":{"person":["Tadashi_Gotoh"],"template":["application/vnd.bmi"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.bpf","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/vnd.bpf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bpf3","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/vnd.bpf3"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.businessobjects","friendly":{"en":"BusinessObjects"},"encoding":"base64","extensions":["rep"],"xrefs":{"person":["Philippe_Imoucha"],"template":["application/vnd.businessobjects"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.byu.uapi+json","encoding":"base64","xrefs":{"person":["Brent_Moore"],"template":["application/vnd.byu.uapi+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.bzip3","encoding":"base64","xrefs":{"person":["Kamila_Szewczyk"],"template":["application/vnd.bzip3"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.c3voc.schedule+xml","encoding":"base64","xrefs":{"person":["Andreas_Hubel"],"template":["application/vnd.c3voc.schedule+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cab-jscript","encoding":"base64","xrefs":{"person":["Joerg_Falkenberg"],"template":["application/vnd.cab-jscript"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.canon-cpdl","encoding":"base64","xrefs":{"person":["Shin_Muto"],"template":["application/vnd.canon-cpdl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.canon-lips","encoding":"base64","xrefs":{"person":["Shin_Muto"],"template":["application/vnd.canon-lips"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.capasystems-pg+json","encoding":"base64","xrefs":{"person":["Yüksel_Aydemir"],"template":["application/vnd.capasystems-pg+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cel","encoding":"base64","xrefs":{"person":["Tristan_Swadell"],"template":["application/vnd.cel"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cendio.thinlinc.clientconf","encoding":"base64","xrefs":{"person":["Peter_Astrand"],"template":["application/vnd.cendio.thinlinc.clientconf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.century-systems.tcp_stream","encoding":"base64","xrefs":{"person":["Shuji_Fujii"],"template":["application/vnd.century-systems.tcp_stream"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.chemdraw+xml","friendly":{"en":"CambridgeSoft Chem Draw"},"encoding":"base64","extensions":["cdxml"],"xrefs":{"person":["Glenn_Howes"],"template":["application/vnd.chemdraw+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.chess-pgn","encoding":"base64","xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.chess-pgn"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.chipnuts.karaoke-mmd","friendly":{"en":"Karaoke on Chipnuts Chipsets"},"encoding":"base64","extensions":["mmd"],"xrefs":{"person":["Chunyun_Xiong"],"template":["application/vnd.chipnuts.karaoke-mmd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ciedi","encoding":"base64","xrefs":{"person":["Hidekazu_Enjo"],"template":["application/vnd.ciedi"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cinderella","friendly":{"en":"Interactive Geometry Software Cinderella"},"encoding":"base64","extensions":["cdy"],"xrefs":{"person":["Ulrich_Kortenkamp"],"template":["application/vnd.cinderella"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cirpack.isdn-ext","encoding":"base64","xrefs":{"person":["Pascal_Mayeux"],"template":["application/vnd.cirpack.isdn-ext"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.citationstyles.style+xml","encoding":"base64","xrefs":{"person":["Rintze_M._Zelle"],"template":["application/vnd.citationstyles.style+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.claymore","friendly":{"en":"Claymore Data Files"},"encoding":"base64","extensions":["cla"],"xrefs":{"person":["Ray_Simpson"],"template":["application/vnd.claymore"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cloanto.rp9","friendly":{"en":"RetroPlatform Player"},"encoding":"base64","extensions":["rp9"],"xrefs":{"person":["Mike_Labatt"],"template":["application/vnd.cloanto.rp9"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.clonk.c4group","friendly":{"en":"Clonk Game"},"encoding":"base64","extensions":["c4d","c4f","c4g","c4p","c4u"],"xrefs":{"person":["Guenther_Brammer"],"template":["application/vnd.clonk.c4group"]},"registered":true,"sort-priority":11},{"content-type":"application/vnd.cluetrust.cartomobile-config","friendly":{"en":"ClueTrust CartoMobile - Config"},"encoding":"base64","extensions":["c11amc"],"xrefs":{"person":["Gaige_Paulsen"],"template":["application/vnd.cluetrust.cartomobile-config"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cluetrust.cartomobile-config-pkg","friendly":{"en":"ClueTrust CartoMobile - Config Package"},"encoding":"base64","extensions":["c11amz"],"xrefs":{"person":["Gaige_Paulsen"],"template":["application/vnd.cluetrust.cartomobile-config-pkg"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cncf.helm.chart.content.v1.tar+gzip","encoding":"base64","xrefs":{"person":["Andrew_Block"],"template":["application/vnd.cncf.helm.chart.content.v1.tar+gzip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cncf.helm.chart.provenance.v1.prov","encoding":"base64","xrefs":{"person":["Andrew_Block"],"template":["application/vnd.cncf.helm.chart.provenance.v1.prov"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cncf.helm.config.v1+json","encoding":"base64","xrefs":{"person":["Andrew_Block"],"template":["application/vnd.cncf.helm.config.v1+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.coffeescript","encoding":"base64","xrefs":{"person":["Devyn_Collier_Johnson"],"template":["application/vnd.coffeescript"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.document","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.document"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.document-template","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.document-template"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.presentation","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.presentation"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.presentation-template","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.presentation-template"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.spreadsheet","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.spreadsheet"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collabio.xodocuments.spreadsheet-template","encoding":"base64","xrefs":{"person":["Alexey_Meandrov"],"template":["application/vnd.collabio.xodocuments.spreadsheet-template"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collection+json","encoding":"base64","xrefs":{"person":["Mike_Amundsen"],"template":["application/vnd.collection+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collection.doc+json","encoding":"base64","xrefs":{"person":["Irakli_Nadareishvili"],"template":["application/vnd.collection.doc+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.collection.next+json","encoding":"base64","xrefs":{"person":["Ioseb_Dzmanashvili"],"template":["application/vnd.collection.next+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.comicbook+zip","encoding":"base64","xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.comicbook+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.comicbook-rar","encoding":"base64","xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.comicbook-rar"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.commerce-battelle","encoding":"base64","xrefs":{"person":["David_Applebaum"],"template":["application/vnd.commerce-battelle"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.commonspace","friendly":{"en":"Sixth Floor Media - CommonSpace"},"encoding":"base64","extensions":["csp"],"xrefs":{"person":["Ravinder_Chandhok"],"template":["application/vnd.commonspace"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.contact.cmsg","friendly":{"en":"CIM Database"},"encoding":"base64","extensions":["cdbcmsg"],"xrefs":{"person":["Frank_Patz"],"template":["application/vnd.contact.cmsg"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.coreos.ignition+json","encoding":"base64","xrefs":{"person":["Alex_Crawford"],"template":["application/vnd.coreos.ignition+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cosmocaller","friendly":{"en":"CosmoCaller"},"encoding":"base64","extensions":["cmc"],"xrefs":{"person":["Steve_Dellutri"],"template":["application/vnd.cosmocaller"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.crick.clicker","friendly":{"en":"CrickSoftware - Clicker"},"encoding":"base64","extensions":["clkx"],"xrefs":{"person":["Andrew_Burt"],"template":["application/vnd.crick.clicker"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.crick.clicker.keyboard","friendly":{"en":"CrickSoftware - Clicker - Keyboard"},"encoding":"base64","extensions":["clkk"],"xrefs":{"person":["Andrew_Burt"],"template":["application/vnd.crick.clicker.keyboard"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.crick.clicker.palette","friendly":{"en":"CrickSoftware - Clicker - Palette"},"encoding":"base64","extensions":["clkp"],"xrefs":{"person":["Andrew_Burt"],"template":["application/vnd.crick.clicker.palette"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.crick.clicker.template","friendly":{"en":"CrickSoftware - Clicker - Template"},"encoding":"base64","extensions":["clkt"],"xrefs":{"person":["Andrew_Burt"],"template":["application/vnd.crick.clicker.template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.crick.clicker.wordbank","friendly":{"en":"CrickSoftware - Clicker - Wordbank"},"encoding":"base64","extensions":["clkw"],"xrefs":{"person":["Andrew_Burt"],"template":["application/vnd.crick.clicker.wordbank"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.criticaltools.wbs+xml","friendly":{"en":"Critical Tools - PERT Chart EXPERT"},"encoding":"base64","extensions":["wbs"],"xrefs":{"person":["Jim_Spiller"],"template":["application/vnd.criticaltools.wbs+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cryptii.pipe+json","encoding":"base64","xrefs":{"person":["Fränz_Friederes"],"template":["application/vnd.cryptii.pipe+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.crypto-shade-file","encoding":"base64","xrefs":{"person":["Connor_Horman"],"template":["application/vnd.crypto-shade-file"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cryptomator.encrypted","encoding":"base64","xrefs":{"person":["Sebastian_Stenzel"],"template":["application/vnd.cryptomator.encrypted"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cryptomator.vault","encoding":"base64","xrefs":{"person":["Sebastian_Stenzel"],"template":["application/vnd.cryptomator.vault"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ctc-posml","friendly":{"en":"PosML"},"encoding":"base64","extensions":["pml"],"xrefs":{"person":["Bayard_Kohlhepp"],"template":["application/vnd.ctc-posml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ctct.ws+xml","encoding":"base64","xrefs":{"person":["Jim_Ancona"],"template":["application/vnd.ctct.ws+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cups-pdf","encoding":"base64","xrefs":{"person":["Michael_Sweet"],"template":["application/vnd.cups-pdf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cups-postscript","encoding":"base64","xrefs":{"person":["Michael_Sweet"],"template":["application/vnd.cups-postscript"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cups-ppd","friendly":{"en":"Adobe PostScript Printer Description File Format"},"encoding":"base64","extensions":["ppd"],"xrefs":{"person":["Michael_Sweet"],"template":["application/vnd.cups-ppd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.cups-raster","encoding":"base64","xrefs":{"person":["Michael_Sweet"],"template":["application/vnd.cups-raster"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cups-raw","encoding":"base64","xrefs":{"person":["Michael_Sweet"],"template":["application/vnd.cups-raw"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.curl","encoding":"base64","extensions":["curl"],"xrefs":{"person":["Robert_Byrnes"],"template":["application/vnd.curl"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.curl.car","friendly":{"en":"CURL Applet"},"encoding":"base64","extensions":["car"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.curl.pcurl","friendly":{"en":"CURL Applet"},"encoding":"base64","extensions":["pcurl"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.cyan.dean.root+xml","encoding":"base64","xrefs":{"person":["Matt_Kern"],"template":["application/vnd.cyan.dean.root+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cybank","encoding":"base64","xrefs":{"person":["Nor_Helmee"],"template":["application/vnd.cybank"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cyclonedx+json","encoding":"base64","xrefs":{"person":["Patrick_Dwyer"],"template":["application/vnd.cyclonedx+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.cyclonedx+xml","encoding":"base64","xrefs":{"person":["Patrick_Dwyer"],"template":["application/vnd.cyclonedx+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.d2l.coursepackage1p0+zip","encoding":"base64","xrefs":{"person":["Viktor_Haag"],"template":["application/vnd.d2l.coursepackage1p0+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.d3m-dataset","encoding":"base64","xrefs":{"person":["Mi_Tar"],"template":["application/vnd.d3m-dataset"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.d3m-problem","encoding":"base64","xrefs":{"person":["Mi_Tar"],"template":["application/vnd.d3m-problem"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dart","encoding":"base64","extensions":["dart"],"xrefs":{"person":["Anders_Sandholm"],"template":["application/vnd.dart"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.data-vision.rdz","friendly":{"en":"RemoteDocs R-Viewer"},"encoding":"base64","extensions":["rdz"],"xrefs":{"person":["James_Fields"],"template":["application/vnd.data-vision.rdz"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.datalog","encoding":"base64","xrefs":{"person":["Simon_Johnston"],"template":["application/vnd.datalog"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.datapackage+json","encoding":"base64","xrefs":{"person":["Paul_Walsh"],"template":["application/vnd.datapackage+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dataresource+json","encoding":"base64","xrefs":{"person":["Paul_Walsh"],"template":["application/vnd.dataresource+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dbf","encoding":"base64","xrefs":{"person":["Mi_Tar"],"template":["application/vnd.dbf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dcmp+xml","encoding":"base64","xrefs":{"person":["Jan_Boström"],"template":["application/vnd.dcmp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.debian.binary-package","encoding":"base64","xrefs":{"person":["Debian_Policy_mailing_list"],"template":["application/vnd.debian.binary-package"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dece.data","encoding":"base64","extensions":["uvd","uvf","uvvd","uvvf"],"xrefs":{"person":["Michael_A_Dolan"],"template":["application/vnd.dece.data"]},"registered":true,"sort-priority":12},{"content-type":"application/vnd.dece.ttml+xml","encoding":"base64","extensions":["uvt","uvvt"],"xrefs":{"person":["Michael_A_Dolan"],"template":["application/vnd.dece.ttml+xml"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.dece.unspecified","encoding":"base64","extensions":["uvvx","uvx"],"xrefs":{"person":["Michael_A_Dolan"],"template":["application/vnd.dece.unspecified"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.dece.zip","encoding":"base64","extensions":["uvvz","uvz"],"xrefs":{"person":["Michael_A_Dolan"],"template":["application/vnd.dece.zip"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.denovo.fcselayout-link","friendly":{"en":"FCS Express Layout Link"},"encoding":"base64","extensions":["fe_launch"],"xrefs":{"person":["Michael_Dixon"],"template":["application/vnd.denovo.fcselayout-link"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.desmume.movie","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.desmume.movie"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.digilite.prolights","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.dir-bi.plate-dl-nosuffix","encoding":"base64","xrefs":{"person":["Yamanaka"],"template":["application/vnd.dir-bi.plate-dl-nosuffix"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dm.delegation+xml","encoding":"base64","xrefs":{"person":["Axel_Ferrazzini"],"template":["application/vnd.dm.delegation+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dna","friendly":{"en":"New Moon Liftoff/DNA"},"encoding":"base64","extensions":["dna"],"xrefs":{"person":["Meredith_Searcy"],"template":["application/vnd.dna"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.document+json","encoding":"base64","xrefs":{"person":["Tom_Christie"],"template":["application/vnd.document+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dolby.mlp","friendly":{"en":"Dolby Meridian Lossless Packing"},"encoding":"base64","extensions":["mlp"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.dolby.mobile.1","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["application/vnd.dolby.mobile.1"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dolby.mobile.2","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["application/vnd.dolby.mobile.2"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.doremir.scorecloud-binary-document","encoding":"base64","xrefs":{"person":["Erik_Ronström"],"template":["application/vnd.doremir.scorecloud-binary-document"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dpgraph","friendly":{"en":"DPGraph"},"encoding":"base64","extensions":["dpg"],"xrefs":{"person":["David_Parker"],"template":["application/vnd.dpgraph"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.dreamfactory","friendly":{"en":"DreamFactory"},"encoding":"base64","extensions":["dfac"],"xrefs":{"person":["William_C._Appleton"],"template":["application/vnd.dreamfactory"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.drive+json","encoding":"base64","xrefs":{"person":["Keith_Kester"],"template":["application/vnd.drive+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ds-keypoint","encoding":"base64","extensions":["kpxx"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.dtg.local","encoding":"base64","xrefs":{"person":["Ali_Teffahi"],"template":["application/vnd.dtg.local"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dtg.local.flash","encoding":"base64","xrefs":{"person":["Ali_Teffahi"],"template":["application/vnd.dtg.local.flash"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dtg.local.html","encoding":"base64","xrefs":{"person":["Ali_Teffahi"],"template":["application/vnd.dtg.local.html"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ait","friendly":{"en":"Digital Video Broadcasting"},"encoding":"base64","extensions":["ait"],"xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["application/vnd.dvb.ait"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.dvb.dvbisl+xml","encoding":"base64","xrefs":{"person":["Emily_DUBS"],"template":["application/vnd.dvb.dvbisl+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.dvbj","encoding":"base64","xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["application/vnd.dvb.dvbj"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.esgcontainer","encoding":"base64","xrefs":{"person":["Joerg_Heuer"],"template":["application/vnd.dvb.esgcontainer"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ipdcdftnotifaccess","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.ipdcdftnotifaccess"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ipdcesgaccess","encoding":"base64","xrefs":{"person":["Joerg_Heuer"],"template":["application/vnd.dvb.ipdcesgaccess"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ipdcesgaccess2","encoding":"base64","xrefs":{"person":["Jerome_Marcon"],"template":["application/vnd.dvb.ipdcesgaccess2"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ipdcesgpdd","encoding":"base64","xrefs":{"person":["Jerome_Marcon"],"template":["application/vnd.dvb.ipdcesgpdd"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.ipdcroaming","encoding":"base64","xrefs":{"person":["Yiling_Xu"],"template":["application/vnd.dvb.ipdcroaming"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.iptv.alfec-base","encoding":"base64","xrefs":{"person":["Jean-Baptiste_Henry"],"template":["application/vnd.dvb.iptv.alfec-base"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.iptv.alfec-enhancement","encoding":"base64","xrefs":{"person":["Jean-Baptiste_Henry"],"template":["application/vnd.dvb.iptv.alfec-enhancement"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-aggregate-root+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-aggregate-root+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-container+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-container+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-generic+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-generic+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-ia-msglist+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-ia-msglist+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-ia-registration-request+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-ia-registration-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-ia-registration-response+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-ia-registration-response+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.notif-init+xml","encoding":"base64","xrefs":{"person":["Roy_Yue"],"template":["application/vnd.dvb.notif-init+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.pfr","encoding":"base64","xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["application/vnd.dvb.pfr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dvb.service","friendly":{"en":"Digital Video Broadcasting"},"encoding":"base64","extensions":["svc"],"xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["application/vnd.dvb.service"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.dxr","encoding":"base64","xrefs":{"person":["Michael_Duffy"],"template":["application/vnd.dxr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.dynageo","friendly":{"en":"DynaGeo"},"encoding":"base64","extensions":["geo"],"xrefs":{"person":["Roland_Mechling"],"template":["application/vnd.dynageo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.dzr","encoding":"base64","xrefs":{"person":["Carl_Anderson"],"template":["application/vnd.dzr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.easykaraoke.cdgdownload","encoding":"base64","xrefs":{"person":["Iain_Downs"],"template":["application/vnd.easykaraoke.cdgdownload"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecdis-update","encoding":"base64","xrefs":{"person":["Gert_Buettgenbach"],"template":["application/vnd.ecdis-update"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecip.rlp","encoding":"base64","xrefs":{"person":["Wei_Tang"],"template":["application/vnd.ecip.rlp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eclipse.ditto+json","encoding":"base64","xrefs":{"person":["Eclipse_Ditto_developers"],"template":["application/vnd.eclipse.ditto+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecowin.chart","friendly":{"en":"EcoWin Chart"},"encoding":"base64","extensions":["mag"],"xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.chart"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ecowin.filerequest","encoding":"base64","xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.filerequest"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecowin.fileupdate","encoding":"base64","xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.fileupdate"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecowin.series","encoding":"base64","xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.series"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecowin.seriesrequest","encoding":"base64","xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.seriesrequest"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ecowin.seriesupdate","encoding":"base64","xrefs":{"person":["Thomas_Olsson"],"template":["application/vnd.ecowin.seriesupdate"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.efi.img","encoding":"base64","xrefs":{"person":["Fu_Siyuan","UEFI_Forum"],"template":["application/vnd.efi.img"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.efi.iso","encoding":"base64","xrefs":{"person":["Fu_Siyuan","UEFI_Forum"],"template":["application/vnd.efi.iso"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eln+zip","encoding":"base64","xrefs":{"person":["Nicolas_CARPI"],"template":["application/vnd.eln+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.emclient.accessrequest+xml","encoding":"base64","xrefs":{"person":["Filip_Navara"],"template":["application/vnd.emclient.accessrequest+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.enliven","friendly":{"en":"Enliven Viewer"},"encoding":"base64","extensions":["nml"],"xrefs":{"person":["Paul_Santinelli_Jr."],"template":["application/vnd.enliven"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.enphase.envoy","encoding":"base64","xrefs":{"person":["Chris_Eich"],"template":["application/vnd.enphase.envoy"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eprints.data+xml","encoding":"base64","xrefs":{"person":["Tim_Brody"],"template":["application/vnd.eprints.data+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.epson.esf","friendly":{"en":"QUASS Stream Player"},"encoding":"base64","extensions":["esf"],"xrefs":{"person":["Shoji_Hoshina"],"template":["application/vnd.epson.esf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.epson.msf","friendly":{"en":"QUASS Stream Player"},"encoding":"base64","extensions":["msf"],"xrefs":{"person":["Shoji_Hoshina"],"template":["application/vnd.epson.msf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.epson.quickanime","friendly":{"en":"QuickAnime Player"},"encoding":"base64","extensions":["qam"],"xrefs":{"person":["Yu_Gu"],"template":["application/vnd.epson.quickanime"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.epson.salt","friendly":{"en":"SimpleAnimeLite Player"},"encoding":"base64","extensions":["slt"],"xrefs":{"person":["Yasuhito_Nagatomo"],"template":["application/vnd.epson.salt"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.epson.ssf","friendly":{"en":"QUASS Stream Player"},"encoding":"base64","extensions":["ssf"],"xrefs":{"person":["Shoji_Hoshina"],"template":["application/vnd.epson.ssf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ericsson.quickcall","encoding":"base64","xrefs":{"person":["Paul_Tidwell"],"template":["application/vnd.ericsson.quickcall"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.erofs","encoding":"base64","xrefs":{"person":["Xiang_Gao"],"template":["application/vnd.erofs"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.espass-espass+zip","encoding":"base64","xrefs":{"person":["Marcus_Ligi_Büschleb"],"template":["application/vnd.espass-espass+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eszigno3+xml","friendly":{"en":"MICROSEC e-Szign¢"},"encoding":"base64","extensions":["es3","et3"],"xrefs":{"person":["Szilveszter_Tóth"],"template":["application/vnd.eszigno3+xml"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.etsi.aoc+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.aoc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.asic-e+zip","encoding":"base64","extensions":["asice"],"xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.asic-e+zip"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.etsi.asic-s+zip","encoding":"base64","extensions":["asics"],"xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.asic-s+zip"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.etsi.cug+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.cug+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvcommand+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvcommand+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvdiscovery+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvdiscovery+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvprofile+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvprofile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvsad-bc+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvsad-bc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvsad-cod+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvsad-cod+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvsad-npvr+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvsad-npvr+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvservice+xml","encoding":"base64","xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.iptvservice+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvsync+xml","encoding":"base64","xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.iptvsync+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.iptvueprofile+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.iptvueprofile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.mcid+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.mcid+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.mheg5","encoding":"base64","xrefs":{"person":["Ian_Medland","Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.mheg5"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.overload-control-policy-dataset+xml","encoding":"base64","xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.overload-control-policy-dataset+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.pstn+xml","encoding":"base64","xrefs":{"person":["Jiwan_Han","Thomas_Belling"],"template":["application/vnd.etsi.pstn+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.sci+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.sci+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.simservs+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.simservs+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.timestamp-token","encoding":"base64","xrefs":{"person":["Miguel_Angel_Reina_Ortega"],"template":["application/vnd.etsi.timestamp-token"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.tsl+xml","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.tsl+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.etsi.tsl.der","encoding":"base64","xrefs":{"person":["Shicheng_Hu"],"template":["application/vnd.etsi.tsl.der"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eu.kasparian.car+json","encoding":"base64","xrefs":{"person":["Hervé_Kasparian"],"template":["application/vnd.eu.kasparian.car+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.eudora.data","encoding":"base64","xrefs":{"person":["Pete_Resnick"],"template":["application/vnd.eudora.data"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.evolv.ecig.profile","encoding":"base64","xrefs":{"person":["James_Bellinger"],"template":["application/vnd.evolv.ecig.profile"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.evolv.ecig.settings","encoding":"base64","xrefs":{"person":["James_Bellinger"],"template":["application/vnd.evolv.ecig.settings"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.evolv.ecig.theme","encoding":"base64","xrefs":{"person":["James_Bellinger"],"template":["application/vnd.evolv.ecig.theme"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.exstream-empower+zip","encoding":"base64","xrefs":{"person":["Bill_Kidwell"],"template":["application/vnd.exstream-empower+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.exstream-package","encoding":"base64","xrefs":{"person":["Bill_Kidwell"],"template":["application/vnd.exstream-package"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ezpix-album","friendly":{"en":"EZPix Secure Photo Album"},"encoding":"base64","extensions":["ez2"],"xrefs":{"person":["ElectronicZombieCorp"],"template":["application/vnd.ezpix-album"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ezpix-package","friendly":{"en":"EZPix Secure Photo Album"},"encoding":"base64","extensions":["ez3"],"xrefs":{"person":["ElectronicZombieCorp"],"template":["application/vnd.ezpix-package"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.f-secure.mobile","encoding":"base64","xrefs":{"person":["Samu_Sarivaara"],"template":["application/vnd.f-secure.mobile"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.familysearch.gedcom+zip","encoding":"base64","xrefs":{"person":["Gordon_Clarke"],"template":["application/vnd.familysearch.gedcom+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fastcopy-disk-image","encoding":"base64","xrefs":{"person":["Thomas_Huth"],"template":["application/vnd.fastcopy-disk-image"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fdf","friendly":{"en":"Forms Data Format"},"encoding":"base64","extensions":["fdf"],"xrefs":{"person":["Steve_Zilles"],"template":["application/vnd.fdf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fdsn.mseed","encoding":"base64","extensions":["mseed"],"xrefs":{"person":["International_FDSN"],"template":["application/vnd.fdsn.mseed"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fdsn.seed","friendly":{"en":"Digital Siesmograph Networks - SEED Datafiles"},"encoding":"base64","extensions":["dataless","seed"],"xrefs":{"person":["Chad_Trabant"],"template":["application/vnd.fdsn.seed"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.fdsn.stationxml+xml","encoding":"base64","xrefs":{"person":["International_FDSN"],"template":["application/vnd.fdsn.stationxml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ffsns","encoding":"base64","xrefs":{"person":["Holstage"],"template":["application/vnd.ffsns"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fgb","encoding":"base64","xrefs":{"person":["Björn_Harrtell"],"template":["application/vnd.fgb"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ficlab.flb+zip","encoding":"base64","xrefs":{"person":["Steve_Gilberd"],"template":["application/vnd.ficlab.flb+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.filmit.zfc","encoding":"base64","xrefs":{"person":["Harms_Moeller"],"template":["application/vnd.filmit.zfc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fints","encoding":"base64","xrefs":{"person":["Ingo_Hammann"],"template":["application/vnd.fints"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.firemonkeys.cloudcell","encoding":"base64","xrefs":{"person":["Alex_Dubov"],"template":["application/vnd.firemonkeys.cloudcell"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.FloGraphIt","friendly":{"en":"NpGraphIt"},"encoding":"base64","extensions":["gph"],"xrefs":{"person":["Dick_Floersch"],"template":["application/vnd.FloGraphIt"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fluxtime.clip","friendly":{"en":"FluxTime Clip"},"encoding":"base64","extensions":["ftc"],"xrefs":{"person":["Marc_Winter"],"template":["application/vnd.fluxtime.clip"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.font-fontforge-sfd","encoding":"base64","xrefs":{"person":["George_Williams"],"template":["application/vnd.font-fontforge-sfd"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.framemaker","friendly":{"en":"FrameMaker Normal Format"},"encoding":"base64","extensions":["frm","maker","frame","fm","fb","book","fbdoc"],"xrefs":{"person":["Mike_Wexler"],"template":["application/vnd.framemaker"]},"registered":true,"sort-priority":9},{"content-type":"application/vnd.freelog.comic","encoding":"base64","xrefs":{"person":["Liu_Qiancen"],"template":["application/vnd.freelog.comic"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.frogans.fnc","friendly":{"en":"Frogans Player"},"encoding":"base64","extensions":["fnc"],"obsolete":true,"xrefs":{"person":["Alexis_Tamas","OP3FT"],"template":["application/vnd.frogans.fnc"],"notes":["(OBSOLETE)"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.frogans.ltf","friendly":{"en":"Frogans Player"},"encoding":"base64","extensions":["ltf"],"obsolete":true,"xrefs":{"person":["Alexis_Tamas","OP3FT"],"template":["application/vnd.frogans.ltf"],"notes":["(OBSOLETE)"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.fsc.weblaunch","friendly":{"en":"Friendly Software Corporation"},"encoding":"7bit","extensions":["fsc"],"xrefs":{"person":["Derek_Smith"],"template":["application/vnd.fsc.weblaunch"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujifilm.fb.docuworks","encoding":"base64","xrefs":{"person":["Kazuya_Iimura"],"template":["application/vnd.fujifilm.fb.docuworks"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujifilm.fb.docuworks.binder","encoding":"base64","xrefs":{"person":["Kazuya_Iimura"],"template":["application/vnd.fujifilm.fb.docuworks.binder"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujifilm.fb.docuworks.container","encoding":"base64","xrefs":{"person":["Kazuya_Iimura"],"template":["application/vnd.fujifilm.fb.docuworks.container"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujifilm.fb.jfi+xml","encoding":"base64","xrefs":{"person":["Keitaro_Ishida"],"template":["application/vnd.fujifilm.fb.jfi+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujitsu.oasys","friendly":{"en":"Fujitsu Oasys"},"encoding":"base64","extensions":["oas"],"xrefs":{"person":["Nobukazu_Togashi"],"template":["application/vnd.fujitsu.oasys"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujitsu.oasys2","friendly":{"en":"Fujitsu Oasys"},"encoding":"base64","extensions":["oa2"],"xrefs":{"person":["Nobukazu_Togashi"],"template":["application/vnd.fujitsu.oasys2"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujitsu.oasys3","friendly":{"en":"Fujitsu Oasys"},"encoding":"base64","extensions":["oa3"],"xrefs":{"person":["Seiji_Okudaira"],"template":["application/vnd.fujitsu.oasys3"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujitsu.oasysgp","friendly":{"en":"Fujitsu Oasys"},"encoding":"base64","extensions":["fg5"],"xrefs":{"person":["Masahiko_Sugimoto"],"template":["application/vnd.fujitsu.oasysgp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujitsu.oasysprs","friendly":{"en":"Fujitsu Oasys"},"encoding":"base64","extensions":["bh2"],"xrefs":{"person":["Masumi_Ogita"],"template":["application/vnd.fujitsu.oasysprs"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujixerox.ART-EX","encoding":"base64","xrefs":{"person":["Fumio_Tanabe"],"template":["application/vnd.fujixerox.ART-EX"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujixerox.ART4","encoding":"base64","xrefs":{"person":["Fumio_Tanabe"],"template":["application/vnd.fujixerox.ART4"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujixerox.ddd","friendly":{"en":"Fujitsu - Xerox 2D CAD Data"},"encoding":"base64","extensions":["ddd"],"xrefs":{"person":["Masanori_Onda"],"template":["application/vnd.fujixerox.ddd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujixerox.docuworks","friendly":{"en":"Fujitsu - Xerox DocuWorks"},"encoding":"base64","extensions":["xdw"],"xrefs":{"person":["Takatomo_Wakibayashi"],"template":["application/vnd.fujixerox.docuworks"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujixerox.docuworks.binder","friendly":{"en":"Fujitsu - Xerox DocuWorks Binder"},"encoding":"base64","extensions":["xbd"],"xrefs":{"person":["Takashi_Matsumoto"],"template":["application/vnd.fujixerox.docuworks.binder"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.fujixerox.docuworks.container","encoding":"base64","xrefs":{"person":["Kiyoshi_Tashiro"],"template":["application/vnd.fujixerox.docuworks.container"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fujixerox.HBPL","encoding":"base64","xrefs":{"person":["Fumio_Tanabe"],"template":["application/vnd.fujixerox.HBPL"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fut-misnet","encoding":"base64","xrefs":{"person":["Jann_Pruulman"],"template":["application/vnd.fut-misnet"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.futoin+cbor","encoding":"base64","xrefs":{"person":["Andrey_Galkin"],"template":["application/vnd.futoin+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.futoin+json","encoding":"base64","xrefs":{"person":["Andrey_Galkin"],"template":["application/vnd.futoin+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.fuzzysheet","friendly":{"en":"FuzzySheet"},"encoding":"base64","extensions":["fzs"],"xrefs":{"person":["Simon_Birtwistle"],"template":["application/vnd.fuzzysheet"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.g3pix.g3fc","encoding":"base64","xrefs":{"person":["Lucas_Guimarães"],"template":["application/vnd.g3pix.g3fc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ga4gh.passport+jwt","encoding":"base64","xrefs":{"person":["GA4GH_Secretariat"],"template":["application/vnd.ga4gh.passport+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.genomatix.tuxedo","friendly":{"en":"Genomatix Tuxedo Framework"},"encoding":"base64","extensions":["txd"],"xrefs":{"person":["Torben_Frey"],"template":["application/vnd.genomatix.tuxedo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.genozip","encoding":"base64","xrefs":{"person":["Divon_Lan"],"template":["application/vnd.genozip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentics.grd+json","encoding":"base64","xrefs":{"person":["Philipp_Gortan"],"template":["application/vnd.gentics.grd+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.catmetadata+xml","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.catmetadata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.ebuild","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.ebuild"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.eclass","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.eclass"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.gpkg","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.gpkg"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.manifest","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.manifest"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.pkgmetadata+xml","encoding":"base64","xrefs":{"person":["Michał_Górny"],"template":["application/vnd.gentoo.pkgmetadata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gentoo.xpak","encoding":"base64","xrefs":{"person":["Gentoo_Portage_Project"],"template":["application/vnd.gentoo.xpak"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.geo+json","encoding":"base64","obsolete":true,"use-instead":"application/geo+json","xrefs":{"rfc":["rfc7946"],"person":["Sean_Gillies"],"template":["application/vnd.geo+json"],"notes":["(OBSOLETED by in favor of application/geo+json)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.geocube+xml","encoding":"8bit","obsolete":true,"xrefs":{"person":["Francois_Pirsch"],"template":["application/vnd.geocube+xml"],"notes":["(OBSOLETED by request)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.geogebra.file","friendly":{"en":"GeoGebra"},"encoding":"base64","extensions":["ggb"],"xrefs":{"person":["GeoGebra","Yves_Kreis"],"template":["application/vnd.geogebra.file"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.geogebra.pinboard","encoding":"base64","xrefs":{"person":["GeoGebra","Michael_Borcherds"],"template":["application/vnd.geogebra.pinboard"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.geogebra.slides","encoding":"base64","extensions":["ggs"],"xrefs":{"person":["GeoGebra","Markus_Hohenwarter","Michael_Borcherds"],"template":["application/vnd.geogebra.slides"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.geogebra.tool","friendly":{"en":"GeoGebra"},"encoding":"base64","extensions":["ggt"],"xrefs":{"person":["GeoGebra","Yves_Kreis"],"template":["application/vnd.geogebra.tool"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.geometry-explorer","friendly":{"en":"GeoMetry Explorer"},"encoding":"base64","extensions":["gex","gre"],"xrefs":{"person":["Michael_Hvidsten"],"template":["application/vnd.geometry-explorer"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.geonext","friendly":{"en":"GEONExT and JSXGraph"},"encoding":"base64","extensions":["gxt"],"xrefs":{"person":["Matthias_Ehmann"],"template":["application/vnd.geonext"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.geoplan","friendly":{"en":"GeoplanW"},"encoding":"base64","extensions":["g2w"],"xrefs":{"person":["Christian_Mercat"],"template":["application/vnd.geoplan"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.geospace","friendly":{"en":"GeospacW"},"encoding":"base64","extensions":["g3w"],"xrefs":{"person":["Christian_Mercat"],"template":["application/vnd.geospace"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.gerber","encoding":"base64","xrefs":{"person":["Thomas_Weyn"],"template":["application/vnd.gerber"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.globalplatform.card-content-mgt","encoding":"base64","xrefs":{"person":["Gil_Bernabeu"],"template":["application/vnd.globalplatform.card-content-mgt"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.globalplatform.card-content-mgt-response","encoding":"base64","xrefs":{"person":["Gil_Bernabeu"],"template":["application/vnd.globalplatform.card-content-mgt-response"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gmx","friendly":{"en":"GameMaker ActiveX"},"encoding":"base64","extensions":["gmx"],"obsolete":true,"xrefs":{"person":["Christian_V._Sciberras"],"template":["application/vnd.gmx"],"notes":["- DEPRECATED"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.gnu.taler.exchange+json","encoding":"base64","xrefs":{"person":["Christian_Grothoff"],"template":["application/vnd.gnu.taler.exchange+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gnu.taler.merchant+json","encoding":"base64","xrefs":{"person":["Christian_Grothoff"],"template":["application/vnd.gnu.taler.merchant+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.google-earth.kml+xml","friendly":{"en":"Google Earth - KML"},"encoding":"8bit","extensions":["kml"],"xrefs":{"person":["Michael_Ashbridge"],"template":["application/vnd.google-earth.kml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.google-earth.kmz","friendly":{"en":"Google Earth - Zipped KML"},"encoding":"8bit","extensions":["kmz"],"xrefs":{"person":["Michael_Ashbridge"],"template":["application/vnd.google-earth.kmz"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.gov.sk.e-form+xml","encoding":"base64","obsolete":true,"xrefs":{"person":["Stefan_Szilva"],"template":["application/vnd.gov.sk.e-form+xml"],"notes":["(OBSOLETED by request)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.gov.sk.e-form+zip","encoding":"base64","xrefs":{"person":["Stefan_Szilva"],"template":["application/vnd.gov.sk.e-form+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gov.sk.xmldatacontainer+xml","encoding":"base64","xrefs":{"person":["Stefan_Szilva"],"template":["application/vnd.gov.sk.xmldatacontainer+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.gpxsee.map+xml","encoding":"base64","xrefs":{"person":["Martin_Tůma"],"template":["application/vnd.gpxsee.map+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.grafeq","friendly":{"en":"GrafEq"},"encoding":"base64","extensions":["gqf","gqs"],"xrefs":{"person":["Jeff_Tupper"],"template":["application/vnd.grafeq"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.gridmp","encoding":"base64","xrefs":{"person":["Jeff_Lawson"],"template":["application/vnd.gridmp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.groove-account","friendly":{"en":"Groove - Account"},"encoding":"base64","extensions":["gac"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-account"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-help","friendly":{"en":"Groove - Help"},"encoding":"base64","extensions":["ghf"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-help"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-identity-message","friendly":{"en":"Groove - Identity Message"},"encoding":"base64","extensions":["gim"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-identity-message"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-injector","friendly":{"en":"Groove - Injector"},"encoding":"base64","extensions":["grv"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-injector"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-tool-message","friendly":{"en":"Groove - Tool Message"},"encoding":"base64","extensions":["gtm"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-tool-message"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-tool-template","friendly":{"en":"Groove - Tool Template"},"encoding":"base64","extensions":["tpl"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-tool-template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.groove-vcard","friendly":{"en":"Groove - Vcard"},"encoding":"base64","extensions":["vcg"],"xrefs":{"person":["Todd_Joseph"],"template":["application/vnd.groove-vcard"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hal+json","encoding":"base64","xrefs":{"person":["Mike_Kelly"],"template":["application/vnd.hal+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hal+xml","friendly":{"en":"Hypertext Application Language"},"encoding":"base64","extensions":["hal"],"xrefs":{"person":["Mike_Kelly"],"template":["application/vnd.hal+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.HandHeld-Entertainment+xml","friendly":{"en":"ZVUE Media Manager"},"encoding":"base64","extensions":["zmm"],"xrefs":{"person":["Eric_Hamilton"],"template":["application/vnd.HandHeld-Entertainment+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hbci","friendly":{"en":"Homebanking Computer Interface (HBCI)"},"encoding":"base64","extensions":["hbci","hbc","kom","upa","pkd","bpd"],"xrefs":{"person":["Ingo_Hammann"],"template":["application/vnd.hbci"]},"registered":true,"sort-priority":10},{"content-type":"application/vnd.hc+json","encoding":"base64","xrefs":{"person":["Jan_Schütze"],"template":["application/vnd.hc+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hcl-bireports","encoding":"base64","xrefs":{"person":["Doug_R._Serres"],"template":["application/vnd.hcl-bireports"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hdt","encoding":"base64","xrefs":{"person":["Javier_D._Fernández"],"template":["application/vnd.hdt"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.heroku+json","encoding":"base64","xrefs":{"person":["Wesley_Beary"],"template":["application/vnd.heroku+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hhe.lesson-player","friendly":{"en":"Archipelago Lesson Player"},"encoding":"base64","extensions":["les"],"xrefs":{"person":["Randy_Jones"],"template":["application/vnd.hhe.lesson-player"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hl7cda+xml","encoding":"base64","xrefs":{"person":["Marc_Duteau"],"template":["application/vnd.hl7cda+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hl7v2+xml","encoding":"base64","xrefs":{"person":["Marc_Duteau"],"template":["application/vnd.hl7v2+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hp-HPGL","friendly":{"en":"HP-GL/2 and HP RTL"},"encoding":"base64","extensions":["plt","hpgl"],"xrefs":{"person":["Bob_Pentecost"],"template":["application/vnd.hp-HPGL"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.hp-hpid","friendly":{"en":"Hewlett Packard Instant Delivery"},"encoding":"base64","extensions":["hpid"],"xrefs":{"person":["Aloke_Gupta"],"template":["application/vnd.hp-hpid"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hp-hps","friendly":{"en":"Hewlett-Packard's WebPrintSmart"},"encoding":"base64","extensions":["hps"],"xrefs":{"person":["Steve_Aubrey"],"template":["application/vnd.hp-hps"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hp-jlyt","friendly":{"en":"HP Indigo Digital Press - Job Layout Languate"},"encoding":"base64","extensions":["jlt"],"xrefs":{"person":["Amir_Gaash"],"template":["application/vnd.hp-jlyt"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hp-PCL","friendly":{"en":"HP Printer Command Language"},"encoding":"base64","extensions":["pcl"],"xrefs":{"person":["Bob_Pentecost"],"template":["application/vnd.hp-PCL"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hp-PCLXL","friendly":{"en":"PCL 6 Enhanced (Formely PCL XL)"},"encoding":"base64","extensions":["pclxl"],"xrefs":{"person":["Bob_Pentecost"],"template":["application/vnd.hp-PCLXL"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hsl","encoding":"base64","xrefs":{"person":["Heungsub_Lee"],"template":["application/vnd.hsl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.httphone","encoding":"base64","xrefs":{"person":["Franck_Lefevre"],"template":["application/vnd.httphone"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hydrostatix.sof-data","friendly":{"en":"Hydrostatix Master Suite"},"encoding":"base64","extensions":["sfd-hdstx"],"xrefs":{"person":["Allen_Gillam"],"template":["application/vnd.hydrostatix.sof-data"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.hyper+json","encoding":"base64","xrefs":{"person":["Irakli_Nadareishvili"],"template":["application/vnd.hyper+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hyper-item+json","encoding":"base64","xrefs":{"person":["Mario_Demuth"],"template":["application/vnd.hyper-item+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hyperdrive+json","encoding":"base64","xrefs":{"person":["Daniel_Sims"],"template":["application/vnd.hyperdrive+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.hzn-3d-crossword","friendly":{"en":"3D Crossword Plugin"},"encoding":"base64","extensions":["x3d"],"xrefs":{"person":["James_Minnis"],"template":["application/vnd.hzn-3d-crossword"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ibm.afplinedata","encoding":"base64","obsolete":true,"use-instead":"vnd.afpc.afplinedata","xrefs":{"person":["Roger_Buis"],"template":["application/vnd.ibm.afplinedata"],"notes":["(OBSOLETED in favor of vnd.afpc.afplinedata)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.ibm.electronic-media","encoding":"base64","extensions":["emm"],"xrefs":{"person":["Bruce_Tantlinger"],"template":["application/vnd.ibm.electronic-media"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ibm.MiniPay","friendly":{"en":"MiniPay"},"encoding":"base64","extensions":["mpy"],"xrefs":{"person":["Amir_Herzberg"],"template":["application/vnd.ibm.MiniPay"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ibm.modcap","friendly":{"en":"MO:DCA-P"},"encoding":"base64","extensions":["afp","list3820","listafp"],"obsolete":true,"use-instead":"application/vnd.afpc.modca","xrefs":{"person":["Reinhard_Hohensee"],"template":["application/vnd.ibm.modcap"],"notes":["(OBSOLETED in favor of application/vnd.afpc.modca)"]},"registered":true,"sort-priority":141},{"content-type":"application/vnd.ibm.rights-management","friendly":{"en":"IBM DB2 Rights Manager"},"encoding":"base64","extensions":["irm"],"xrefs":{"person":["Bruce_Tantlinger"],"template":["application/vnd.ibm.rights-management"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ibm.secure-container","friendly":{"en":"IBM Electronic Media Management System - Secure Container"},"encoding":"base64","extensions":["sc"],"xrefs":{"person":["Bruce_Tantlinger"],"template":["application/vnd.ibm.secure-container"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.iccprofile","friendly":{"en":"ICC profile"},"encoding":"base64","extensions":["icc","icm"],"xrefs":{"person":["Phil_Green"],"template":["application/vnd.iccprofile"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.ieee.1905","encoding":"base64","xrefs":{"person":["Purva_R_Rajkotia"],"template":["application/vnd.ieee.1905"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.igloader","friendly":{"en":"igLoader"},"encoding":"base64","extensions":["igl"],"xrefs":{"person":["Tim_Fisher"],"template":["application/vnd.igloader"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.imagemeter.folder+zip","encoding":"base64","xrefs":{"person":["Dirk_Farin"],"template":["application/vnd.imagemeter.folder+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.imagemeter.image+zip","encoding":"base64","xrefs":{"person":["Dirk_Farin"],"template":["application/vnd.imagemeter.image+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.immervision-ivp","friendly":{"en":"ImmerVision PURE Players"},"encoding":"base64","extensions":["ivp"],"xrefs":{"person":["Mathieu_Villegas"],"template":["application/vnd.immervision-ivp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.immervision-ivu","friendly":{"en":"ImmerVision PURE Players"},"encoding":"base64","extensions":["ivu"],"xrefs":{"person":["Mathieu_Villegas"],"template":["application/vnd.immervision-ivu"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ims.imsccv1p1","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.imsccv1p1"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.imsccv1p2","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.imsccv1p2"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.imsccv1p3","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.imsccv1p3"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lis.v2.result+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lis.v2.result+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lti.v2.toolconsumerprofile+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lti.v2.toolconsumerprofile+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lti.v2.toolproxy+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lti.v2.toolproxy+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lti.v2.toolproxy.id+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lti.v2.toolproxy.id+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lti.v2.toolsettings+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lti.v2.toolsettings+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ims.lti.v2.toolsettings.simple+json","encoding":"base64","xrefs":{"person":["Lisa_Mattson"],"template":["application/vnd.ims.lti.v2.toolsettings.simple+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.informedcontrol.rms+xml","encoding":"base64","xrefs":{"person":["Mark_Wahl"],"template":["application/vnd.informedcontrol.rms+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.informix-visionary","encoding":"base64","obsolete":true,"use-instead":"application/vnd.visionary","xrefs":{"person":["Christopher_Gales"],"template":["application/vnd.informix-visionary"],"notes":["(OBSOLETED in favor of application/vnd.visionary)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.infotech.project","encoding":"base64","xrefs":{"person":["Charles_Engelke"],"template":["application/vnd.infotech.project"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.infotech.project+xml","encoding":"base64","xrefs":{"person":["Charles_Engelke"],"template":["application/vnd.infotech.project+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.innopath.wamp.notification","encoding":"base64","xrefs":{"person":["Takanori_Sudo"],"template":["application/vnd.innopath.wamp.notification"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.insors.igm","friendly":{"en":"IOCOM Visimeet"},"encoding":"base64","extensions":["igm"],"xrefs":{"person":["Jon_Swanson"],"template":["application/vnd.insors.igm"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.intercon.formnet","friendly":{"en":"Intercon FormNet"},"encoding":"base64","extensions":["xpw","xpx"],"xrefs":{"person":["Tom_Gurak"],"template":["application/vnd.intercon.formnet"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.intergeo","friendly":{"en":"Interactive Geometry Software"},"encoding":"base64","extensions":["i2g"],"xrefs":{"person":["Yves_Kreis_2"],"template":["application/vnd.intergeo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.intertrust.digibox","encoding":"base64","xrefs":{"person":["Luke_Tomasello"],"template":["application/vnd.intertrust.digibox"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.intertrust.nncp","encoding":"base64","xrefs":{"person":["Luke_Tomasello"],"template":["application/vnd.intertrust.nncp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.intu.qbo","friendly":{"en":"Open Financial Exchange"},"encoding":"base64","extensions":["qbo"],"xrefs":{"person":["Greg_Scratchley"],"template":["application/vnd.intu.qbo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.intu.qfx","friendly":{"en":"Quicken"},"encoding":"base64","extensions":["qfx"],"xrefs":{"person":["Greg_Scratchley"],"template":["application/vnd.intu.qfx"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ipfs.ipns-record","encoding":"base64","xrefs":{"person":["Marcin_Rataj"],"template":["application/vnd.ipfs.ipns-record"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ipld.car","encoding":"base64","xrefs":{"person":["Marcin_Rataj"],"template":["application/vnd.ipld.car"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ipld.dag-cbor","encoding":"base64","xrefs":{"person":["Marcin_Rataj"],"template":["application/vnd.ipld.dag-cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ipld.dag-json","encoding":"base64","xrefs":{"person":["Marcin_Rataj"],"template":["application/vnd.ipld.dag-json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ipld.raw","encoding":"base64","xrefs":{"person":["Marcin_Rataj"],"template":["application/vnd.ipld.raw"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.catalogitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.catalogitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.conceptitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.conceptitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.knowledgeitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.knowledgeitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.newsitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.newsitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.newsmessage+xml","encoding":"base64","extensions":["nar"],"xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.newsmessage+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.iptc.g2.packageitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.packageitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.iptc.g2.planningitem+xml","encoding":"base64","xrefs":{"person":["Michael_Steidl"],"template":["application/vnd.iptc.g2.planningitem+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ipunplugged.rcprofile","friendly":{"en":"IP Unplugged Roaming Client"},"encoding":"base64","extensions":["rcprofile"],"xrefs":{"person":["Per_Ersson"],"template":["application/vnd.ipunplugged.rcprofile"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.irepository.package+xml","friendly":{"en":"iRepository / Lucidoc Editor"},"encoding":"base64","extensions":["irp"],"xrefs":{"person":["Martin_Knowles"],"template":["application/vnd.irepository.package+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.is-xpr","friendly":{"en":"Express by Infoseek"},"encoding":"base64","extensions":["xpr"],"xrefs":{"person":["Satish_Navarajan"],"template":["application/vnd.is-xpr"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.isac.fcs","friendly":{"en":"International Society for Advancement of Cytometry"},"encoding":"base64","extensions":["fcs"],"xrefs":{"person":["Ryan_Brinkman"],"template":["application/vnd.isac.fcs"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.iso11783-10+zip","encoding":"base64","xrefs":{"person":["Frank_Wiebeler"],"template":["application/vnd.iso11783-10+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.jam","friendly":{"en":"Lightspeed Audio Lab"},"encoding":"base64","extensions":["jam"],"xrefs":{"person":["Brijesh_Kumar"],"template":["application/vnd.jam"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.japannet-directory-service","encoding":"base64","xrefs":{"person":["Kiyofusa_Fujii"],"template":["application/vnd.japannet-directory-service"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-jpnstore-wakeup","encoding":"base64","xrefs":{"person":["Jun_Yoshitake"],"template":["application/vnd.japannet-jpnstore-wakeup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-payment-wakeup","encoding":"base64","xrefs":{"person":["Kiyofusa_Fujii"],"template":["application/vnd.japannet-payment-wakeup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-registration","encoding":"base64","xrefs":{"person":["Jun_Yoshitake"],"template":["application/vnd.japannet-registration"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-registration-wakeup","encoding":"base64","xrefs":{"person":["Kiyofusa_Fujii"],"template":["application/vnd.japannet-registration-wakeup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-setstore-wakeup","encoding":"base64","xrefs":{"person":["Jun_Yoshitake"],"template":["application/vnd.japannet-setstore-wakeup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-verification","encoding":"base64","xrefs":{"person":["Jun_Yoshitake"],"template":["application/vnd.japannet-verification"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.japannet-verification-wakeup","encoding":"base64","xrefs":{"person":["Kiyofusa_Fujii"],"template":["application/vnd.japannet-verification-wakeup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.java.hprof ","encoding":"base64","extensions":["hprof"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.java.hprof.text","encoding":"base64","extensions":["hprof.txt"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.jcp.javame.midlet-rms","friendly":{"en":"Mobile Information Device Profile"},"encoding":"base64","extensions":["rms"],"xrefs":{"person":["Mikhail_Gorshenev"],"template":["application/vnd.jcp.javame.midlet-rms"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.jisp","friendly":{"en":"RhymBox"},"encoding":"base64","extensions":["jisp"],"xrefs":{"person":["Sebastiaan_Deckers"],"template":["application/vnd.jisp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.joost.joda-archive","friendly":{"en":"Joda Archive"},"encoding":"base64","extensions":["joda"],"xrefs":{"person":["Joost"],"template":["application/vnd.joost.joda-archive"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.jsk.isdn-ngn","encoding":"base64","xrefs":{"person":["Yokoyama_Kiyonobu"],"template":["application/vnd.jsk.isdn-ngn"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.kahootz","friendly":{"en":"Kahootz"},"encoding":"base64","extensions":["ktr","ktz"],"xrefs":{"person":["Tim_Macdonald"],"template":["application/vnd.kahootz"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.kde.karbon","friendly":{"en":"KDE KOffice Office Suite - Karbon"},"encoding":"base64","extensions":["karbon"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.karbon"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kchart","friendly":{"en":"KDE KOffice Office Suite - KChart"},"encoding":"base64","extensions":["chrt"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kchart"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kformula","friendly":{"en":"KDE KOffice Office Suite - Kformula"},"encoding":"base64","extensions":["kfo"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kformula"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kivio","friendly":{"en":"KDE KOffice Office Suite - Kivio"},"encoding":"base64","extensions":["flw"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kivio"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kontour","friendly":{"en":"KDE KOffice Office Suite - Kontour"},"encoding":"base64","extensions":["kon"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kontour"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kpresenter","friendly":{"en":"KDE KOffice Office Suite - Kpresenter"},"encoding":"base64","extensions":["kpr","kpt"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kpresenter"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.kde.kspread","friendly":{"en":"KDE KOffice Office Suite - Kspread"},"encoding":"base64","extensions":["ksp"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kspread"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.kde.kword","friendly":{"en":"KDE KOffice Office Suite - Kword"},"encoding":"base64","extensions":["kwd","kwt"],"xrefs":{"person":["David_Faure"],"template":["application/vnd.kde.kword"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.kdl","encoding":"base64","xrefs":{"person":["Katerina_Zoé_Marchán_Salvá"],"template":["application/vnd.kdl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.kenameaapp","friendly":{"en":"Kenamea App"},"encoding":"base64","extensions":["htke"],"xrefs":{"person":["Dirk_DiGiorgio-Haag"],"template":["application/vnd.kenameaapp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.keyman.kmp+zip","encoding":"base64","xrefs":{"person":["Marc_Durdin"],"template":["application/vnd.keyman.kmp+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.keyman.kmx","encoding":"base64","xrefs":{"person":["Marc_Durdin"],"template":["application/vnd.keyman.kmx"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.kidspiration","friendly":{"en":"Kidspiration"},"encoding":"base64","extensions":["kia"],"xrefs":{"person":["Jack_Bennett"],"template":["application/vnd.kidspiration"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Kinar","friendly":{"en":"Kinar Applications"},"encoding":"base64","extensions":["kne","knp","sdf"],"xrefs":{"person":["Hemant_Thakkar"],"template":["application/vnd.Kinar"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.koan","friendly":{"en":"SSEYO Koan Play File"},"encoding":"base64","extensions":["skd","skm","skp","skt"],"xrefs":{"person":["Pete_Cole"],"template":["application/vnd.koan"]},"registered":true,"sort-priority":12},{"content-type":"application/vnd.kodak-descriptor","friendly":{"en":"Kodak Storyshare"},"encoding":"base64","extensions":["sse"],"xrefs":{"person":["Michael_J._Donahue"],"template":["application/vnd.kodak-descriptor"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.las","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/vnd.las"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.las.las+json","encoding":"base64","xrefs":{"person":["Rob_Bailey"],"template":["application/vnd.las.las+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.las.las+xml","friendly":{"en":"Laser App Enterprise"},"encoding":"base64","extensions":["lasxml"],"xrefs":{"person":["Rob_Bailey"],"template":["application/vnd.las.las+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.laszip","encoding":"base64","xrefs":{"person":["Bryan_Blank","NCGIS"],"template":["application/vnd.laszip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ldev.productlicensing","encoding":"base64","xrefs":{"person":["L.development_Polska"],"template":["application/vnd.ldev.productlicensing"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.leap+json","encoding":"base64","xrefs":{"person":["Mark_C_Fralick"],"template":["application/vnd.leap+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.liberty-request+xml","encoding":"base64","xrefs":{"person":["Brett_McDowell"],"template":["application/vnd.liberty-request+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.llamagraphics.life-balance.desktop","friendly":{"en":"Life Balance - Desktop Edition"},"encoding":"base64","extensions":["lbd"],"xrefs":{"person":["Catherine_E._White"],"template":["application/vnd.llamagraphics.life-balance.desktop"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.llamagraphics.life-balance.exchange+xml","friendly":{"en":"Life Balance - Exchange Format"},"encoding":"base64","extensions":["lbe"],"xrefs":{"person":["Catherine_E._White"],"template":["application/vnd.llamagraphics.life-balance.exchange+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.logipipe.circuit+zip","encoding":"base64","xrefs":{"person":["Victor_Kuchynsky"],"template":["application/vnd.logipipe.circuit+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.loom","encoding":"base64","xrefs":{"person":["Sten_Linnarsson"],"template":["application/vnd.loom"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.lotus-1-2-3","friendly":{"en":"Lotus 1-2-3"},"encoding":"base64","extensions":["wks","123","wk1","wk2","wk3","wk4"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-1-2-3"]},"registered":true,"sort-priority":10},{"content-type":"application/vnd.lotus-approach","friendly":{"en":"Lotus Approach"},"encoding":"base64","extensions":["apr"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-approach"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.lotus-freelance","friendly":{"en":"Lotus Freelance"},"encoding":"base64","extensions":["pre"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-freelance"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.lotus-notes","friendly":{"en":"Lotus Notes"},"encoding":"base64","extensions":["nsf"],"xrefs":{"person":["Michael_Laramie"],"template":["application/vnd.lotus-notes"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.lotus-organizer","friendly":{"en":"Lotus Organizer"},"encoding":"base64","extensions":["org"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-organizer"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.lotus-screencam","friendly":{"en":"Lotus Screencam"},"encoding":"base64","extensions":["scm"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-screencam"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.lotus-wordpro","friendly":{"en":"Lotus Wordpro"},"encoding":"base64","extensions":["lwp"],"xrefs":{"person":["Paul_Wattenberger"],"template":["application/vnd.lotus-wordpro"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.macports.portpkg","friendly":{"en":"MacPorts Port System"},"encoding":"base64","extensions":["portpkg"],"xrefs":{"person":["James_Berry"],"template":["application/vnd.macports.portpkg"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mapbox-vector-tile","encoding":"base64","xrefs":{"person":["Blake_Thompson"],"template":["application/vnd.mapbox-vector-tile"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.marlin.drm.actiontoken+xml","encoding":"base64","xrefs":{"person":["Gary_Ellison"],"template":["application/vnd.marlin.drm.actiontoken+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.marlin.drm.conftoken+xml","encoding":"base64","xrefs":{"person":["Gary_Ellison"],"template":["application/vnd.marlin.drm.conftoken+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.marlin.drm.license+xml","encoding":"base64","xrefs":{"person":["Gary_Ellison"],"template":["application/vnd.marlin.drm.license+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.marlin.drm.mdcf","encoding":"base64","xrefs":{"person":["Gary_Ellison"],"template":["application/vnd.marlin.drm.mdcf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mason+json","encoding":"base64","xrefs":{"person":["Jorn_Wildt"],"template":["application/vnd.mason+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.maxar.archive.3tz+zip","encoding":"base64","xrefs":{"person":["Erik_Dahlström"],"template":["application/vnd.maxar.archive.3tz+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.maxmind.maxmind-db","encoding":"base64","xrefs":{"person":["William_Stevenson"],"template":["application/vnd.maxmind.maxmind-db"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mcd","friendly":{"en":"Micro CADAM Helix D&D"},"encoding":"base64","extensions":["mcd"],"xrefs":{"person":["Tadashi_Gotoh"],"template":["application/vnd.mcd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mdl","encoding":"base64","xrefs":{"person":["Lutz_Kettner"],"template":["application/vnd.mdl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mdl-mbsdf","encoding":"base64","xrefs":{"person":["Lutz_Kettner"],"template":["application/vnd.mdl-mbsdf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.medcalcdata","friendly":{"en":"MedCalc"},"encoding":"base64","extensions":["mc1"],"xrefs":{"person":["Frank_Schoonjans"],"template":["application/vnd.medcalcdata"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mediastation.cdkey","friendly":{"en":"MediaRemote"},"encoding":"base64","extensions":["cdkey"],"xrefs":{"person":["Henry_Flurry"],"template":["application/vnd.mediastation.cdkey"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.medicalholodeck.recordxr","encoding":"base64","xrefs":{"person":["Dominique_Sandoz"],"template":["application/vnd.medicalholodeck.recordxr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.meridian-slingshot","encoding":"base64","xrefs":{"person":["Eric_Wedel"],"template":["application/vnd.meridian-slingshot"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mermaid","encoding":"base64","xrefs":{"person":["Sidharth_Vinod"],"template":["application/vnd.mermaid"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.MFER","friendly":{"en":"Medical Waveform Encoding Format"},"encoding":"base64","extensions":["mwf"],"xrefs":{"person":["Masaaki_Hirai"],"template":["application/vnd.MFER"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mfmp","friendly":{"en":"Melody Format for Mobile Platform"},"encoding":"base64","extensions":["mfm"],"xrefs":{"person":["Yukari_Ikeda"],"template":["application/vnd.mfmp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.micro+json","encoding":"base64","xrefs":{"person":["Dali_Zheng"],"template":["application/vnd.micro+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.micrografx.flo","friendly":{"en":"Micrografx"},"encoding":"base64","extensions":["flo"],"xrefs":{"person":["Joe_Prevo"],"template":["application/vnd.micrografx.flo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.micrografx.igx","friendly":{"en":"Micrografx iGrafx Professional"},"encoding":"base64","extensions":["igx"],"xrefs":{"person":["Joe_Prevo"],"template":["application/vnd.micrografx.igx"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.microsoft.portable-executable","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.microsoft.portable-executable"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.microsoft.windows.thumbnail-cache","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.microsoft.windows.thumbnail-cache"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.miele+json","encoding":"base64","xrefs":{"person":["Nils_Langhammer"],"template":["application/vnd.miele+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mif","friendly":{"en":"FrameMaker Interchange Format"},"encoding":"base64","extensions":["mif"],"xrefs":{"person":["Mike_Wexler"],"template":["application/vnd.mif"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mindjet.mindmanager","encoding":"base64","extensions":["mmp","mmap","mmpt","mmat","mmmp","mmas"],"registered":false,"sort-priority":42},{"content-type":"application/vnd.minisoft-hp3000-save","encoding":"base64","xrefs":{"person":["Chris_Bartram"],"template":["application/vnd.minisoft-hp3000-save"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mitsubishi.misty-guard.trustweb","encoding":"base64","xrefs":{"person":["Tanaka"],"template":["application/vnd.mitsubishi.misty-guard.trustweb"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.Mobius.DAF","friendly":{"en":"Mobius Management Systems - UniversalArchive"},"encoding":"base64","extensions":["daf"],"xrefs":{"person":["Allen_K._Kabayama"],"template":["application/vnd.Mobius.DAF"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.DIS","friendly":{"en":"Mobius Management Systems - Distribution Database"},"encoding":"base64","extensions":["dis"],"xrefs":{"person":["Allen_K._Kabayama"],"template":["application/vnd.Mobius.DIS"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.MBK","friendly":{"en":"Mobius Management Systems - Basket file"},"encoding":"base64","extensions":["mbk"],"xrefs":{"person":["Alex_Devasia"],"template":["application/vnd.Mobius.MBK"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.MQY","friendly":{"en":"Mobius Management Systems - Query File"},"encoding":"base64","extensions":["mqy"],"xrefs":{"person":["Alex_Devasia"],"template":["application/vnd.Mobius.MQY"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.MSL","friendly":{"en":"Mobius Management Systems - Script Language"},"encoding":"base64","extensions":["msl"],"xrefs":{"person":["Allen_K._Kabayama"],"template":["application/vnd.Mobius.MSL"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.PLC","friendly":{"en":"Mobius Management Systems - Policy Definition Language File"},"encoding":"base64","extensions":["plc"],"xrefs":{"person":["Allen_K._Kabayama"],"template":["application/vnd.Mobius.PLC"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.Mobius.TXF","friendly":{"en":"Mobius Management Systems - Topic Index File"},"encoding":"base64","extensions":["txf"],"xrefs":{"person":["Allen_K._Kabayama"],"template":["application/vnd.Mobius.TXF"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.modl","encoding":"base64","xrefs":{"person":["Elliott_Brown"],"template":["application/vnd.modl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mophun.application","friendly":{"en":"Mophun VM"},"encoding":"base64","extensions":["mpn"],"xrefs":{"person":["Bjorn_Wennerstrom"],"template":["application/vnd.mophun.application"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mophun.certificate","friendly":{"en":"Mophun Certificate"},"encoding":"base64","extensions":["mpc"],"xrefs":{"person":["Bjorn_Wennerstrom"],"template":["application/vnd.mophun.certificate"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.motorola.flexsuite","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.adsi","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.adsi"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.fis","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.fis"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.gotap","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.gotap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.kmr","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.kmr"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.ttc","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.ttc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.flexsuite.wem","encoding":"base64","xrefs":{"person":["Mark_Patton"],"template":["application/vnd.motorola.flexsuite.wem"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.motorola.iprm","encoding":"base64","xrefs":{"person":["Rafie_Shamsaasef"],"template":["application/vnd.motorola.iprm"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.mozilla.xul+xml","friendly":{"en":"XUL - XML User Interface Language"},"encoding":"base64","extensions":["xul"],"xrefs":{"person":["Braden_N_McDaniel"],"template":["application/vnd.mozilla.xul+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-3mfdocument","encoding":"base64","xrefs":{"person":["Shawn_Maloney"],"template":["application/vnd.ms-3mfdocument"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-artgalry","friendly":{"en":"Microsoft Artgalry"},"encoding":"base64","extensions":["cil"],"xrefs":{"person":["Dean_Slawson"],"template":["application/vnd.ms-artgalry"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-asf","encoding":"base64","extensions":["asf"],"xrefs":{"person":["Eric_Fleischman"],"template":["application/vnd.ms-asf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-cab-compressed","friendly":{"en":"Microsoft Cabinet File"},"encoding":"base64","extensions":["cab"],"xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.ms-cab-compressed"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-excel","friendly":{"en":"Microsoft Excel"},"encoding":"base64","extensions":["xls","xlt","xla","xlc","xlm","xlw","xll","xld"],"xrefs":{"person":["Sukvinder_S._Gill"],"template":["application/vnd.ms-excel"]},"registered":true,"sort-priority":8},{"content-type":"application/vnd.ms-excel.addin.macroEnabled.12","friendly":{"en":"Microsoft Excel - Add-In File"},"encoding":"base64","extensions":["xlam"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-excel.addin.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-excel.sheet.2","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-excel.sheet.3","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-excel.sheet.4","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-excel.sheet.binary.macroEnabled.12","friendly":{"en":"Microsoft Excel - Binary Workbook"},"encoding":"base64","extensions":["xlsb"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-excel.sheet.binary.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-excel.sheet.macroEnabled.12","friendly":{"en":"Microsoft Excel - Macro-Enabled Workbook"},"encoding":"base64","extensions":["xlsm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-excel.sheet.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-excel.template.macroEnabled.12","friendly":{"en":"Microsoft Excel - Macro-Enabled Template File"},"encoding":"base64","extensions":["xltm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-excel.template.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-excel.workspace.3","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-excel.workspace.4","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-fontobject","friendly":{"en":"Microsoft Embedded OpenType"},"encoding":"base64","extensions":["eot"],"xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.ms-fontobject"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-htmlhelp","friendly":{"en":"Microsoft Html Help File"},"encoding":"base64","extensions":["chm"],"xrefs":{"person":["Anatoly_Techtonik"],"template":["application/vnd.ms-htmlhelp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-ims","friendly":{"en":"Microsoft Class Server"},"encoding":"base64","extensions":["ims"],"xrefs":{"person":["Eric_Ledoux"],"template":["application/vnd.ms-ims"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-lrm","friendly":{"en":"Microsoft Learning Resource Module"},"encoding":"base64","extensions":["lrm"],"xrefs":{"person":["Eric_Ledoux"],"template":["application/vnd.ms-lrm"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-office.activeX+xml","encoding":"base64","xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-office.activeX+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-officetheme","friendly":{"en":"Microsoft Office System Release Theme"},"encoding":"base64","extensions":["thmx"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-officetheme"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-outlook","encoding":"base64","extensions":["msg"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-outlook-pst","encoding":"base64","extensions":["pst","ost"],"registered":false,"sort-priority":46},{"content-type":"application/vnd.ms-package.3dmanufacturing-3dmodel+xml","encoding":"base64","extensions":["3mf"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-pki.seccat","friendly":{"en":"Microsoft Trust UI Provider - Security Catalog"},"encoding":"base64","extensions":["cat"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-pki.stl","friendly":{"en":"Microsoft Trust UI Provider - Certificate Trust Link"},"encoding":"base64","extensions":["stl"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-playready.initiator+xml","encoding":"base64","xrefs":{"person":["Daniel_Schneider"],"template":["application/vnd.ms-playready.initiator+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-powerpoint","friendly":{"en":"Microsoft PowerPoint"},"encoding":"base64","extensions":["ppt","pps","pot","ppz","ppa"],"xrefs":{"person":["Sukvinder_S._Gill"],"template":["application/vnd.ms-powerpoint"]},"registered":true,"sort-priority":11},{"content-type":"application/vnd.ms-powerpoint.addin.macroEnabled.12","friendly":{"en":"Microsoft PowerPoint - Add-in file"},"encoding":"base64","extensions":["ppam"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-powerpoint.addin.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-powerpoint.presentation.macroEnabled.12","friendly":{"en":"Microsoft PowerPoint - Macro-Enabled Presentation File"},"encoding":"base64","extensions":["pptm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-powerpoint.presentation.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-powerpoint.slide.macroEnabled.12","friendly":{"en":"Microsoft PowerPoint - Macro-Enabled Open XML Slide"},"encoding":"base64","extensions":["sldm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-powerpoint.slide.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-powerpoint.slideshow.macroEnabled.12","friendly":{"en":"Microsoft PowerPoint - Macro-Enabled Slide Show File"},"encoding":"base64","extensions":["ppsm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-powerpoint.slideshow.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-powerpoint.template.macroEnabled.12","friendly":{"en":"Micosoft PowerPoint - Macro-Enabled Template File"},"encoding":"base64","extensions":["potm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-powerpoint.template.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-PrintDeviceCapabilities+xml","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-PrintDeviceCapabilities+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-PrintSchemaTicket+xml","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-PrintSchemaTicket+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-project","friendly":{"en":"Microsoft Project"},"encoding":"base64","extensions":["mpp","mpt"],"xrefs":{"person":["Sukvinder_S._Gill"],"template":["application/vnd.ms-project"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.ms-spreadsheetml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-tnef","encoding":"base64","xrefs":{"person":["Sukvinder_S._Gill"],"template":["application/vnd.ms-tnef"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-visio.drawing","encoding":"base64","extensions":["vsdx"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-visio.drawing.macroEnabled.12","encoding":"base64","extensions":["vsdm"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-visio.stencil","encoding":"base64","extensions":["vssx"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-visio.stencil.macroEnabled.12","encoding":"base64","extensions":["vssm"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-visio.template","encoding":"base64","extensions":["vstx"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-visio.template.macroEnabled.12","encoding":"base64","extensions":["vstm"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.ms-windows.devicepairing","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-windows.devicepairing"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-windows.nwprinting.oob","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-windows.nwprinting.oob"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-windows.printerpairing","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-windows.printerpairing"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-windows.wsd.oob","encoding":"base64","xrefs":{"person":["Justin_Hutchings"],"template":["application/vnd.ms-windows.wsd.oob"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-wmdrm.lic-chlg-req","encoding":"base64","xrefs":{"person":["Kevin_Lau"],"template":["application/vnd.ms-wmdrm.lic-chlg-req"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-wmdrm.lic-resp","encoding":"base64","xrefs":{"person":["Kevin_Lau"],"template":["application/vnd.ms-wmdrm.lic-resp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-wmdrm.meter-chlg-req","encoding":"base64","xrefs":{"person":["Kevin_Lau"],"template":["application/vnd.ms-wmdrm.meter-chlg-req"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-wmdrm.meter-resp","encoding":"base64","xrefs":{"person":["Kevin_Lau"],"template":["application/vnd.ms-wmdrm.meter-resp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ms-word.document.macroEnabled.12","friendly":{"en":"Micosoft Word - Macro-Enabled Document"},"encoding":"base64","extensions":["docm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-word.document.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-word.template.macroEnabled.12","friendly":{"en":"Micosoft Word - Macro-Enabled Template"},"encoding":"base64","extensions":["dotm"],"xrefs":{"person":["Chris_Rae"],"template":["application/vnd.ms-word.template.macroEnabled.12"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-word2006ml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-wordml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.ms-works","friendly":{"en":"Microsoft Works"},"encoding":"base64","extensions":["wcm","wdb","wks","wps"],"xrefs":{"person":["Sukvinder_S._Gill"],"template":["application/vnd.ms-works"]},"registered":true,"sort-priority":12},{"content-type":"application/vnd.ms-wpl","friendly":{"en":"Microsoft Windows Media Player Playlist"},"encoding":"base64","extensions":["wpl"],"xrefs":{"person":["Dan_Plastina"],"template":["application/vnd.ms-wpl"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ms-xpsdocument","friendly":{"en":"Microsoft XML Paper Specification"},"encoding":"8bit","extensions":["xps","oxps"],"xrefs":{"person":["Jesse_McGatha"],"template":["application/vnd.ms-xpsdocument"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.msa-disk-image","encoding":"base64","extensions":["msa"],"xrefs":{"person":["Thomas_Huth"],"template":["application/vnd.msa-disk-image"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mseq","friendly":{"en":"3GPP MSEQ File"},"encoding":"base64","extensions":["mseq"],"xrefs":{"person":["Gwenael_Le_Bodic"],"template":["application/vnd.mseq"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.msgpack","encoding":"base64","xrefs":{"person":["Alexander_Ivanov"],"template":["application/vnd.msgpack"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.msign","encoding":"base64","xrefs":{"person":["Malte_Borcherding"],"template":["application/vnd.msign"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.multiad.creator","encoding":"base64","xrefs":{"person":["Steve_Mills"],"template":["application/vnd.multiad.creator"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.multiad.creator.cif","encoding":"base64","xrefs":{"person":["Steve_Mills"],"template":["application/vnd.multiad.creator.cif"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.music-niff","encoding":"base64","xrefs":{"person":["Tim_Butler"],"template":["application/vnd.music-niff"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.musician","friendly":{"en":"MUsical Score Interpreted Code Invented for the ASCII designation of Notation"},"encoding":"base64","extensions":["mus"],"xrefs":{"person":["Greg_Adams"],"template":["application/vnd.musician"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.muvee.style","friendly":{"en":"Muvee Automatic Video Editing"},"encoding":"base64","extensions":["msty"],"xrefs":{"person":["Chandrashekhara_Anantharamu"],"template":["application/vnd.muvee.style"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.mynfc","encoding":"base64","extensions":["taglet"],"xrefs":{"person":["Franck_Lefevre"],"template":["application/vnd.mynfc"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.nacamar.ybrid+json","encoding":"base64","xrefs":{"person":["Sebastian_A._Weiss"],"template":["application/vnd.nacamar.ybrid+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nato.bindingdataobject+cbor","encoding":"base64","xrefs":{"person":["Aidan_Murdock"],"template":["application/vnd.nato.bindingdataobject+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nato.bindingdataobject+json","encoding":"base64","xrefs":{"person":["Aidan_Murdock"],"template":["application/vnd.nato.bindingdataobject+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nato.bindingdataobject+xml","encoding":"base64","xrefs":{"person":["Aidan_Murdock"],"template":["application/vnd.nato.bindingdataobject+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nato.openxmlformats-package.iepd+zip","encoding":"base64","xrefs":{"person":["Aidan_Murdock"],"template":["application/vnd.nato.openxmlformats-package.iepd+zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ncd.control","encoding":"base64","xrefs":{"person":["Lauri_Tarkkala"],"template":["application/vnd.ncd.control"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ncd.reference","encoding":"base64","xrefs":{"person":["Lauri_Tarkkala"],"template":["application/vnd.ncd.reference"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nearst.inv+json","encoding":"base64","xrefs":{"person":["Thomas_Schoffelen"],"template":["application/vnd.nearst.inv+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nebumind.line","encoding":"base64","xrefs":{"person":["Andreas_Molzer"],"template":["application/vnd.nebumind.line"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nervana","encoding":"base64","extensions":["ent","entity","req","request","bkm","kcm"],"xrefs":{"person":["Steve_Judkins"],"template":["application/vnd.nervana"]},"registered":true,"sort-priority":10},{"content-type":"application/vnd.netfpx","encoding":"base64","xrefs":{"person":["Andy_Mutz"],"template":["application/vnd.netfpx"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.neurolanguage.nlu","friendly":{"en":"neuroLanguage"},"encoding":"base64","extensions":["nlu"],"xrefs":{"person":["Dan_DuFeu"],"template":["application/vnd.neurolanguage.nlu"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.nimn","encoding":"base64","xrefs":{"person":["Amit_Kumar_Gupta"],"template":["application/vnd.nimn"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nintendo.nitro.rom","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.nintendo.nitro.rom"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nintendo.snes.rom","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.nintendo.snes.rom"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nitf","encoding":"base64","extensions":["nitf","ntf"],"xrefs":{"person":["Steve_Rogan"],"template":["application/vnd.nitf"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.noblenet-directory","friendly":{"en":"NobleNet Directory"},"encoding":"base64","extensions":["nnd"],"xrefs":{"person":["Monty_Solomon"],"template":["application/vnd.noblenet-directory"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.noblenet-sealer","friendly":{"en":"NobleNet Sealer"},"encoding":"base64","extensions":["nns"],"xrefs":{"person":["Monty_Solomon"],"template":["application/vnd.noblenet-sealer"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.noblenet-web","friendly":{"en":"NobleNet Web"},"encoding":"base64","extensions":["nnw"],"xrefs":{"person":["Monty_Solomon"],"template":["application/vnd.noblenet-web"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.nokia.catalogs","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.catalogs"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.conml+wbxml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.conml+wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.conml+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.conml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.iptv.config+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.iptv.config+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.iSDS-radio-presets","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.iSDS-radio-presets"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.landmark+wbxml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.landmark+wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.landmark+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.landmark+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.landmarkcollection+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.landmarkcollection+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.n-gage.ac+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.n-gage.ac+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.n-gage.data","friendly":{"en":"N-Gage Game Data"},"encoding":"base64","extensions":["ngdat"],"xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.n-gage.data"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.nokia.n-gage.symbian.install","friendly":{"en":"N-Gage Game Installer"},"encoding":"base64","extensions":["n-gage"],"obsolete":true,"xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.n-gage.symbian.install"],"notes":["(OBSOLETE; no replacement given)"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.nokia.ncd","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.ncd"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.ncd+xml","encoding":"base64","obsolete":true,"use-instead":"application/vnd.nokia.ncd","registered":true,"sort-priority":144},{"content-type":"application/vnd.nokia.pcd+wbxml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.pcd+wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.pcd+xml","encoding":"base64","xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.pcd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nokia.radio-preset","friendly":{"en":"Nokia Radio Application - Preset"},"encoding":"base64","extensions":["rpst"],"xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.radio-preset"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.nokia.radio-presets","friendly":{"en":"Nokia Radio Application - Preset"},"encoding":"base64","extensions":["rpss"],"xrefs":{"person":["Nokia"],"template":["application/vnd.nokia.radio-presets"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.novadigm.EDM","friendly":{"en":"Novadigm's RADIA and EDM products"},"encoding":"base64","extensions":["edm"],"xrefs":{"person":["Janine_Swenson"],"template":["application/vnd.novadigm.EDM"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.novadigm.EDX","friendly":{"en":"Novadigm's RADIA and EDM products"},"encoding":"base64","extensions":["edx"],"xrefs":{"person":["Janine_Swenson"],"template":["application/vnd.novadigm.EDX"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.novadigm.EXT","friendly":{"en":"Novadigm's RADIA and EDM products"},"encoding":"base64","extensions":["ext"],"xrefs":{"person":["Janine_Swenson"],"template":["application/vnd.novadigm.EXT"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.ntt-local.content-share","encoding":"base64","xrefs":{"person":["Akinori_Taya"],"template":["application/vnd.ntt-local.content-share"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ntt-local.file-transfer","encoding":"base64","xrefs":{"person":["NTT-local"],"template":["application/vnd.ntt-local.file-transfer"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ntt-local.ogw_remote-access","encoding":"base64","xrefs":{"person":["NTT-local"],"template":["application/vnd.ntt-local.ogw_remote-access"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ntt-local.sip-ta_remote","encoding":"base64","xrefs":{"person":["NTT-local"],"template":["application/vnd.ntt-local.sip-ta_remote"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ntt-local.sip-ta_tcp_stream","encoding":"base64","xrefs":{"person":["NTT-local"],"template":["application/vnd.ntt-local.sip-ta_tcp_stream"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.nubaltec.nudoku-game","encoding":"base64","xrefs":{"person":["Peter_Koellner"],"template":["application/vnd.nubaltec.nudoku-game"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oai.workflows","encoding":"base64","xrefs":{"person":["Frank_Kilcommins"],"template":["application/vnd.oai.workflows"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oai.workflows+json","encoding":"base64","xrefs":{"person":["Frank_Kilcommins"],"template":["application/vnd.oai.workflows+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oai.workflows+yaml","encoding":"base64","xrefs":{"person":["Frank_Kilcommins"],"template":["application/vnd.oai.workflows+yaml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oasis.opendocument.base","encoding":"base64","extensions":["odb"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.base"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.chart","friendly":{"en":"OpenDocument Chart"},"encoding":"base64","extensions":["odc"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.chart"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.chart-template","friendly":{"en":"OpenDocument Chart Template"},"encoding":"base64","extensions":["odc","otc"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.chart-template"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.oasis.opendocument.database","friendly":{"en":"OpenDocument Database"},"encoding":"base64","extensions":["odb"],"obsolete":true,"use-instead":"application/vnd.oasis.opendocument.base","xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.database"],"notes":["(OBSOLETED in favor of application/vnd.oasis.opendocument.base)"]},"registered":true,"sort-priority":143},{"content-type":"application/vnd.oasis.opendocument.flat.presentation","encoding":"base64","extensions":["fodp"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.oasis.opendocument.flat.spreadsheet","encoding":"base64","extensions":["fods"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.oasis.opendocument.flat.text","encoding":"base64","extensions":["fodt"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.oasis.opendocument.formula","friendly":{"en":"OpenDocument Formula"},"encoding":"base64","extensions":["odf"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.formula"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.formula-template","friendly":{"en":"OpenDocument Formula Template"},"encoding":"base64","extensions":["odf","odft"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.formula-template"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.oasis.opendocument.graphics","friendly":{"en":"OpenDocument Graphics"},"encoding":"base64","extensions":["odg"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.graphics"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.graphics-template","friendly":{"en":"OpenDocument Graphics Template"},"encoding":"base64","extensions":["otg"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.graphics-template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.image","friendly":{"en":"OpenDocument Image"},"encoding":"base64","extensions":["odi"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.image"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.image-template","friendly":{"en":"OpenDocument Image Template"},"encoding":"base64","extensions":["odi","oti"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.image-template"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.oasis.opendocument.presentation","friendly":{"en":"OpenDocument Presentation"},"encoding":"base64","extensions":["odp"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.presentation"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.presentation-template","friendly":{"en":"OpenDocument Presentation Template"},"encoding":"base64","extensions":["otp"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.presentation-template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.spreadsheet","friendly":{"en":"OpenDocument Spreadsheet"},"encoding":"base64","extensions":["ods"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.spreadsheet"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.spreadsheet-template","friendly":{"en":"OpenDocument Spreadsheet Template"},"encoding":"base64","extensions":["ots"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.spreadsheet-template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.text","friendly":{"en":"OpenDocument Text"},"encoding":"base64","extensions":["odt"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.text"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.text-master","friendly":{"en":"OpenDocument Text Master"},"encoding":"base64","extensions":["odm","otm"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.text-master"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.oasis.opendocument.text-master-template","encoding":"base64","xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.text-master-template"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oasis.opendocument.text-template","friendly":{"en":"OpenDocument Text Template"},"encoding":"base64","extensions":["ott"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.text-template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.text-web","friendly":{"en":"Open Document Text Web"},"encoding":"base64","extensions":["oth"],"xrefs":{"person":["OASIS","OASIS_TC_Admin"],"template":["application/vnd.oasis.opendocument.text-web"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oasis.opendocument.tika.flat.document","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/vnd.obn","encoding":"base64","xrefs":{"person":["Matthias_Hessling"],"template":["application/vnd.obn"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ocf+cbor","encoding":"base64","xrefs":{"person":["Michael_Koster"],"template":["application/vnd.ocf+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oci.image.manifest.v1+json","encoding":"base64","xrefs":{"person":["Steven_Lasker"],"template":["application/vnd.oci.image.manifest.v1+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oftn.l10n+json","encoding":"base64","xrefs":{"person":["Eli_Grey"],"template":["application/vnd.oftn.l10n+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.contentaccessdownload+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.contentaccessdownload+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.contentaccessstreaming+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.contentaccessstreaming+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.cspg-hexbinary","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.cspg-hexbinary"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.dae.svg+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.dae.svg+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.dae.xhtml+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.dae.xhtml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.mippvcontrolmessage+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.mippvcontrolmessage+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.pae.gem","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.pae.gem"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.spdiscovery+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.spdiscovery+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.spdlist+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.spdlist+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.ueprofile+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.ueprofile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oipf.userprofile+xml","encoding":"base64","xrefs":{"person":["Claire_DEsclercs"],"template":["application/vnd.oipf.userprofile+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.olpc-sugar","friendly":{"en":"Sugar Linux Application Bundle"},"encoding":"base64","extensions":["xo"],"xrefs":{"person":["John_Palmieri"],"template":["application/vnd.olpc-sugar"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oma-scws-config","encoding":"base64","xrefs":{"person":["Ilan_Mahalal"],"template":["application/vnd.oma-scws-config"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma-scws-http-request","encoding":"base64","xrefs":{"person":["Ilan_Mahalal"],"template":["application/vnd.oma-scws-http-request"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma-scws-http-response","encoding":"base64","xrefs":{"person":["Ilan_Mahalal"],"template":["application/vnd.oma-scws-http-response"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.associated-procedure-parameter+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.associated-procedure-parameter+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.drm-trigger+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.drm-trigger+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.imd+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.imd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.ltkm","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.ltkm"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.notification+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.notification+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.provisioningtrigger","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.provisioningtrigger"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.sgboot","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.sgboot"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.sgdd+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.sgdd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.sgdu","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.sgdu"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.simple-symbol-container","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.simple-symbol-container"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.smartcard-trigger+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.smartcard-trigger+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.sprov+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.sprov+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.bcast.stkm","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.bcast.stkm"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.cab-address-book+xml","encoding":"base64","xrefs":{"person":["Hao_Wang","OMA"],"template":["application/vnd.oma.cab-address-book+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.cab-feature-handler+xml","encoding":"base64","xrefs":{"person":["Hao_Wang","OMA"],"template":["application/vnd.oma.cab-feature-handler+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.cab-pcc+xml","encoding":"base64","xrefs":{"person":["Hao_Wang","OMA"],"template":["application/vnd.oma.cab-pcc+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.cab-subs-invite+xml","encoding":"base64","xrefs":{"person":["Hao_Wang","OMA"],"template":["application/vnd.oma.cab-subs-invite+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.cab-user-prefs+xml","encoding":"base64","xrefs":{"person":["Hao_Wang","OMA"],"template":["application/vnd.oma.cab-user-prefs+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.dcd","encoding":"base64","xrefs":{"person":["Avi_Primo","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.dcd"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.dcdc","encoding":"base64","xrefs":{"person":["Avi_Primo","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.dcdc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.dd2+xml","friendly":{"en":"OMA Download Agents"},"encoding":"base64","extensions":["dd2"],"xrefs":{"person":["Jun_Sato","Open_Mobile_Alliance_BAC_DLDRM_WG"],"template":["application/vnd.oma.dd2+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.oma.drm.risd+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Uwe_Rauschenbach"],"template":["application/vnd.oma.drm.risd+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.group-usage-list+xml","encoding":"base64","xrefs":{"person":["OMA_Presence_and_Availability_PAG_WG","Sean_Kelley"],"template":["application/vnd.oma.group-usage-list+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.lwm2m+cbor","encoding":"base64","xrefs":{"person":["John_Mudge","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.lwm2m+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.lwm2m+json","encoding":"base64","xrefs":{"person":["John_Mudge","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.lwm2m+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.lwm2m+tlv","encoding":"base64","xrefs":{"person":["John_Mudge","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.lwm2m+tlv"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.pal+xml","encoding":"base64","xrefs":{"person":["Brian_McColgan","Open_Mobile_Naming_Authority"],"template":["application/vnd.oma.pal+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.poc.detailed-progress-report+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG"],"template":["application/vnd.oma.poc.detailed-progress-report+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.poc.final-report+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG"],"template":["application/vnd.oma.poc.final-report+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.poc.groups+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG","Sean_Kelley"],"template":["application/vnd.oma.poc.groups+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.poc.invocation-descriptor+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG"],"template":["application/vnd.oma.poc.invocation-descriptor+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.poc.optimized-progress-report+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG"],"template":["application/vnd.oma.poc.optimized-progress-report+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.push","encoding":"base64","xrefs":{"person":["Bryan_Sullivan","OMA"],"template":["application/vnd.oma.push"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.scidm.messages+xml","encoding":"base64","xrefs":{"person":["Open_Mobile_Naming_Authority","Wenjun_Zeng"],"template":["application/vnd.oma.scidm.messages+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oma.xcap-directory+xml","encoding":"base64","xrefs":{"person":["OMA_Presence_and_Availability_PAG_WG","Sean_Kelley"],"template":["application/vnd.oma.xcap-directory+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.omads-email+xml","encoding":"base64","xrefs":{"person":["OMA_Data_Synchronization_WG"],"template":["application/vnd.omads-email+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.omads-file+xml","encoding":"base64","xrefs":{"person":["OMA_Data_Synchronization_WG"],"template":["application/vnd.omads-file+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.omads-folder+xml","encoding":"base64","xrefs":{"person":["OMA_Data_Synchronization_WG"],"template":["application/vnd.omads-folder+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.omaloc-supl-init","encoding":"base64","xrefs":{"person":["Julien_Grange"],"template":["application/vnd.omaloc-supl-init"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oms.cellular-cose-content+cbor","encoding":"base64","xrefs":{"person":["OMS-Group_e._V.","Torben_Markussen"],"template":["application/vnd.oms.cellular-cose-content+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepager","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepager"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepagertamp","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepagertamp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepagertamx","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepagertamx"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepagertat","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepagertat"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepagertatp","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepagertatp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onepagertatx","encoding":"base64","xrefs":{"person":["Nathan_Black"],"template":["application/vnd.onepagertatx"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.onvif.metadata","encoding":"base64","xrefs":{"person":["Hans_Busch"],"template":["application/vnd.onvif.metadata"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openblox.game+xml","encoding":"base64","xrefs":{"person":["Mark_Otaris"],"template":["application/vnd.openblox.game+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openblox.game-binary","encoding":"base64","xrefs":{"person":["Mark_Otaris"],"template":["application/vnd.openblox.game-binary"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openeye.oeb","encoding":"base64","xrefs":{"person":["Craig_Bruce"],"template":["application/vnd.openeye.oeb"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openofficeorg.autotext","encoding":"base64","extensions":["bau"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.openofficeorg.extension","friendly":{"en":"Open Office Extension"},"encoding":"base64","extensions":["oxt"],"registered":true,"sort-priority":15},{"content-type":"application/vnd.openstreetmap.data+xml","encoding":"base64","xrefs":{"person":["Paul_Norman"],"template":["application/vnd.openstreetmap.data+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.opentimestamps.ots","encoding":"base64","xrefs":{"person":["Peter_Todd"],"template":["application/vnd.opentimestamps.ots"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openvpi.dspx+json","encoding":"base64","xrefs":{"person":["Crindzebra_Sjimo"],"template":["application/vnd.openvpi.dspx+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.custom-properties+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.custom-properties+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.customXmlProperties+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.customXmlProperties+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawing+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawing+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.chart+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.chart+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.extended-properties+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.extended-properties+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.comments+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.comments+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.presentation","friendly":{"en":"Microsoft Office - OOXML - Presentation"},"encoding":"base64","extensions":["pptx","thmx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.presentation"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.presProps+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.presProps+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slide","friendly":{"en":"Microsoft Office - OOXML - Presentation (Slide)"},"encoding":"base64","extensions":["sldx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slide"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slide+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slide+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slideshow","friendly":{"en":"Microsoft Office - OOXML - Presentation (Slideshow)"},"encoding":"base64","extensions":["ppsx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slideshow"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.tags+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.tags+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.template","friendly":{"en":"Microsoft Office - OOXML - Presentation Template"},"encoding":"base64","extensions":["potx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.template.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","friendly":{"en":"Microsoft Office - OOXML - Spreadsheet"},"encoding":"base64","extensions":["xlsx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.template","friendly":{"en":"Microsoft Office - OOXML - Spreadsheet Teplate"},"encoding":"base64","extensions":["xltx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.theme+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.theme+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.themeOverride+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.themeOverride+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.vmlDrawing","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.vmlDrawing"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","friendly":{"en":"Microsoft Office - OOXML - Word Document"},"encoding":"base64","extensions":["docx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.template","friendly":{"en":"Microsoft Office - OOXML - Word Document Template"},"encoding":"base64","extensions":["dotx"],"xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.template"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-package.core-properties+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-package.core-properties+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.openxmlformats-package.relationships+xml","encoding":"base64","xrefs":{"person":["Makoto_Murata"],"template":["application/vnd.openxmlformats-package.relationships+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oracle.resource+json","encoding":"base64","xrefs":{"person":["Ning_Dong"],"template":["application/vnd.oracle.resource+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.orange.indata","encoding":"base64","xrefs":{"person":["CHATRAS_Bruno"],"template":["application/vnd.orange.indata"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.osa.netdeploy","encoding":"base64","xrefs":{"person":["Steven_Klos"],"template":["application/vnd.osa.netdeploy"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.osgeo.mapguide.package","friendly":{"en":"MapGuide DBXML"},"encoding":"base64","extensions":["mgp"],"xrefs":{"person":["Jason_Birch"],"template":["application/vnd.osgeo.mapguide.package"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.osgi.bundle","encoding":"base64","xrefs":{"person":["Peter_Kriens"],"template":["application/vnd.osgi.bundle"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.osgi.dp","friendly":{"en":"OSGi Deployment Package"},"encoding":"base64","extensions":["dp"],"xrefs":{"person":["Peter_Kriens"],"template":["application/vnd.osgi.dp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.osgi.subsystem","encoding":"base64","extensions":["esa"],"xrefs":{"person":["Peter_Kriens"],"template":["application/vnd.osgi.subsystem"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.otps.ct-kip+xml","encoding":"base64","xrefs":{"person":["Magnus_Nystrom"],"template":["application/vnd.otps.ct-kip+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.oxli.countgraph","encoding":"base64","xrefs":{"person":["C._Titus_Brown"],"template":["application/vnd.oxli.countgraph"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pagerduty+json","encoding":"base64","xrefs":{"person":["Steve_Rice"],"template":["application/vnd.pagerduty+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.palm","friendly":{"en":"PalmOS Data"},"encoding":"base64","extensions":["prc","pdb","pqa","oprc"],"xrefs":{"person":["Gavin_Peacock"],"template":["application/vnd.palm"]},"registered":true,"sort-priority":12},{"content-type":"application/vnd.panoply","encoding":"base64","xrefs":{"person":["Natarajan_Balasundara"],"template":["application/vnd.panoply"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.paos.xml","encoding":"base64","xrefs":{"person":["John_Kemp"],"template":["application/vnd.paos.xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.patentdive","encoding":"base64","xrefs":{"person":["Christian_Trosclair"],"template":["application/vnd.patentdive"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.patientecommsdoc","encoding":"base64","xrefs":{"person":["Andrew_David_Kendall"],"template":["application/vnd.patientecommsdoc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pawaafile","friendly":{"en":"PawaaFILE"},"encoding":"base64","extensions":["paw"],"xrefs":{"person":["Prakash_Baskaran"],"template":["application/vnd.pawaafile"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.pcos","encoding":"base64","xrefs":{"person":["Slawomir_Lisznianski"],"template":["application/vnd.pcos"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pg.format","friendly":{"en":"Proprietary P&G Standard Reporting System"},"encoding":"base64","extensions":["str"],"xrefs":{"person":["April_Gandert"],"template":["application/vnd.pg.format"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.pg.osasli","friendly":{"en":"Proprietary P&G Standard Reporting System"},"encoding":"base64","extensions":["ei6"],"xrefs":{"person":["April_Gandert"],"template":["application/vnd.pg.osasli"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.piaccess.application-licence","encoding":"base64","xrefs":{"person":["Lucas_Maneos"],"template":["application/vnd.piaccess.application-licence"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.picsel","friendly":{"en":"Pcsel eFIF File"},"encoding":"base64","extensions":["efif"],"xrefs":{"person":["Giuseppe_Naccarato"],"template":["application/vnd.picsel"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.pmi.widget","friendly":{"en":"Qualcomm's Plaza Mobile Internet"},"encoding":"base64","extensions":["wg"],"xrefs":{"person":["Rhys_Lewis"],"template":["application/vnd.pmi.widget"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.pmtiles","encoding":"base64","xrefs":{"person":["Sascha_Brawer"],"template":["application/vnd.pmtiles"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.poc.group-advertisement+xml","encoding":"base64","xrefs":{"person":["OMA_Push_to_Talk_over_Cellular_POC_WG","Sean_Kelley"],"template":["application/vnd.poc.group-advertisement+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pocketlearn","friendly":{"en":"PocketLearn Viewers"},"encoding":"base64","extensions":["plf"],"xrefs":{"person":["Jorge_Pando"],"template":["application/vnd.pocketlearn"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.powerbuilder6","friendly":{"en":"PowerBuilder"},"encoding":"base64","extensions":["pbd"],"xrefs":{"person":["David_Guy"],"template":["application/vnd.powerbuilder6"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.powerbuilder6-s","encoding":"base64","xrefs":{"person":["David_Guy"],"template":["application/vnd.powerbuilder6-s"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.powerbuilder7","encoding":"base64","xrefs":{"person":["Reed_Shilts"],"template":["application/vnd.powerbuilder7"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.powerbuilder7-s","encoding":"base64","xrefs":{"person":["Reed_Shilts"],"template":["application/vnd.powerbuilder7-s"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.powerbuilder75","encoding":"base64","xrefs":{"person":["Reed_Shilts"],"template":["application/vnd.powerbuilder75"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.powerbuilder75-s","encoding":"base64","xrefs":{"person":["Reed_Shilts"],"template":["application/vnd.powerbuilder75-s"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pp.systemverify+xml","encoding":"base64","xrefs":{"person":["Graham_Leggett"],"template":["application/vnd.pp.systemverify+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.preminet","encoding":"base64","xrefs":{"person":["Juoko_Tenhunen"],"template":["application/vnd.preminet"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.previewsystems.box","friendly":{"en":"Preview Systems ZipLock/VBox"},"encoding":"base64","extensions":["box"],"xrefs":{"person":["Roman_Smolgovsky"],"template":["application/vnd.previewsystems.box"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.proteus.magazine","friendly":{"en":"EFI Proteus"},"encoding":"base64","extensions":["mgz"],"xrefs":{"person":["Pete_Hoch"],"template":["application/vnd.proteus.magazine"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.psfs","encoding":"base64","xrefs":{"person":["Kristopher_Durski"],"template":["application/vnd.psfs"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pt.mundusmundi","encoding":"base64","xrefs":{"person":["Igor_Lima_Bolacha_Severino"],"template":["application/vnd.pt.mundusmundi"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.publishare-delta-tree","friendly":{"en":"PubliShare Objects"},"encoding":"base64","extensions":["qps"],"xrefs":{"person":["Oren_Ben-Kiki"],"template":["application/vnd.publishare-delta-tree"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.pvi.ptid1","friendly":{"en":"Princeton Video Image"},"encoding":"base64","extensions":["pti","ptid"],"xrefs":{"person":["Charles_P._Lamb"],"template":["application/vnd.pvi.ptid1"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.pwg-multiplexed","encoding":"base64","xrefs":{"rfc":["rfc3391"],"template":["application/vnd.pwg-multiplexed"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pwg-xhtml-print+xml","encoding":"base64","xrefs":{"person":["Don_Wright"],"template":["application/vnd.pwg-xhtml-print+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.pyon+json","encoding":"base64","xrefs":{"person":["Eduardo_Rodrigues"],"template":["application/vnd.pyon+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.qualcomm.brew-app-res","encoding":"base64","xrefs":{"person":["Glenn_Forrester"],"template":["application/vnd.qualcomm.brew-app-res"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.quarantainenet","encoding":"base64","xrefs":{"person":["Casper_Joost_Eyckelhof"],"template":["application/vnd.quarantainenet"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.Quark.QuarkXPress","friendly":{"en":"QuarkXPress"},"encoding":"8bit","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"],"xrefs":{"person":["Hannes_Scheidler"],"template":["application/vnd.Quark.QuarkXPress"]},"registered":true,"sort-priority":10},{"content-type":"application/vnd.quobject-quoxdocument","encoding":"base64","xrefs":{"person":["Matthias_Ludwig"],"template":["application/vnd.quobject-quoxdocument"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.R74n.sandboxels+json","encoding":"base64","xrefs":{"person":["R74n"],"template":["application/vnd.R74n.sandboxels+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.moml+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.moml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-audit+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-audit+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-audit-conf+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-audit-conf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-audit-conn+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-audit-conn+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-audit-dialog+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-audit-dialog+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-audit-stream+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-audit-stream+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-conf+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-conf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-base+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-base+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-fax-detect+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-fax-detect+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-fax-sendrecv+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-fax-sendrecv+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-group+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-group+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-speech+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-speech+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.radisys.msml-dialog-transform+xml","encoding":"base64","xrefs":{"rfc":["rfc5707"],"template":["application/vnd.radisys.msml-dialog-transform+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.rainstor.data","encoding":"base64","xrefs":{"person":["Kevin_Crook"],"template":["application/vnd.rainstor.data"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.rapid","encoding":"base64","xrefs":{"person":["Etay_Szekely"],"template":["application/vnd.rapid"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.rar","encoding":"base64","xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.rar"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.realvnc.bed","friendly":{"en":"RealVNC"},"encoding":"base64","extensions":["bed"],"xrefs":{"person":["Nick_Reeves"],"template":["application/vnd.realvnc.bed"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.recordare.musicxml","friendly":{"en":"Recordare Applications"},"encoding":"base64","extensions":["mxl"],"xrefs":{"person":["W3C_Music_Notation_Community_Group"],"template":["application/vnd.recordare.musicxml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.recordare.musicxml+xml","friendly":{"en":"Recordare Applications"},"encoding":"base64","extensions":["musicxml"],"xrefs":{"person":["W3C_Music_Notation_Community_Group"],"template":["application/vnd.recordare.musicxml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.relpipe","encoding":"base64","xrefs":{"person":["Frantisek_Kucera"],"template":["application/vnd.relpipe"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.RenLearn.rlprint","encoding":"base64","xrefs":{"person":["James_Wick"],"template":["application/vnd.RenLearn.rlprint"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.resilient.logic","encoding":"base64","xrefs":{"person":["Benedikt_Muessig"],"template":["application/vnd.resilient.logic"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.restful+json","encoding":"base64","xrefs":{"person":["Stephen_Mizell"],"template":["application/vnd.restful+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.rig.cryptonote","friendly":{"en":"CryptoNote"},"encoding":"base64","extensions":["cryptonote"],"xrefs":{"person":["Ken_Jibiki"],"template":["application/vnd.rig.cryptonote"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.rim.cod","friendly":{"en":"Blackberry COD File"},"encoding":"base64","extensions":["cod"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.rn-realmedia","friendly":{"en":"RealMedia"},"encoding":"base64","extensions":["rm"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.rn-realmedia-vbr","encoding":"base64","extensions":["rmvb"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.route66.link66+xml","friendly":{"en":"ROUTE 66 Location Based Services"},"encoding":"base64","extensions":["link66"],"xrefs":{"person":["Sybren_Kikstra"],"template":["application/vnd.route66.link66+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.rs-274x","encoding":"base64","xrefs":{"person":["Lee_Harding"],"template":["application/vnd.rs-274x"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ruckus.download","encoding":"base64","xrefs":{"person":["Jerry_Harris"],"template":["application/vnd.ruckus.download"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.s3sms","encoding":"base64","xrefs":{"person":["Lauri_Tarkkala"],"template":["application/vnd.s3sms"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sailingtracker.track","friendly":{"en":"SailingTracker"},"encoding":"base64","extensions":["st"],"xrefs":{"person":["Heikki_Vesalainen"],"template":["application/vnd.sailingtracker.track"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.sar","encoding":"base64","xrefs":{"person":["Markus_Strehle"],"template":["application/vnd.sar"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sbm.cid","encoding":"base64","xrefs":{"person":["Shinji_Kusakari"],"template":["application/vnd.sbm.cid"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sbm.mid2","encoding":"base64","xrefs":{"person":["Masanori_Murai"],"template":["application/vnd.sbm.mid2"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.scribus","encoding":"base64","xrefs":{"person":["Craig_Bradney"],"template":["application/vnd.scribus"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sealed.3df","encoding":"base64","xrefs":{"person":["John_Kwan"],"template":["application/vnd.sealed.3df"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sealed.csf","encoding":"base64","xrefs":{"person":["John_Kwan"],"template":["application/vnd.sealed.csf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sealed.doc","encoding":"base64","extensions":["sdoc","sdo","s1w"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealed.doc"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.sealed.eml","encoding":"base64","extensions":["seml","sem"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealed.eml"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.sealed.mht","encoding":"base64","extensions":["smht","smh"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealed.mht"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.sealed.net","encoding":"base64","xrefs":{"person":["Martin_Lambert"],"template":["application/vnd.sealed.net"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sealed.ppt","encoding":"base64","extensions":["sppt","spp","s1p"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealed.ppt"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.sealed.tiff","encoding":"base64","xrefs":{"person":["John_Kwan","Martin_Lambert"],"template":["application/vnd.sealed.tiff"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sealed.xls","encoding":"base64","extensions":["sxls","sxl","s1e"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealed.xls"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.sealedmedia.softseal.html","encoding":"base64","extensions":["stml","stm","s1h"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealedmedia.softseal.html"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.sealedmedia.softseal.pdf","encoding":"base64","extensions":["spdf","spd","s1a"],"xrefs":{"person":["David_Petersen"],"template":["application/vnd.sealedmedia.softseal.pdf"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.seemail","friendly":{"en":"SeeMail"},"encoding":"base64","extensions":["see"],"xrefs":{"person":["Steve_Webb"],"template":["application/vnd.seemail"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.seis+json","encoding":"base64","xrefs":{"person":["ICT_Manager"],"template":["application/vnd.seis+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sema","friendly":{"en":"Secured eMail"},"encoding":"base64","extensions":["sema"],"xrefs":{"person":["Anders_Hansson"],"template":["application/vnd.sema"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.semd","friendly":{"en":"Secured eMail"},"encoding":"base64","extensions":["semd"],"xrefs":{"person":["Anders_Hansson"],"template":["application/vnd.semd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.semf","friendly":{"en":"Secured eMail"},"encoding":"base64","extensions":["semf"],"xrefs":{"person":["Anders_Hansson"],"template":["application/vnd.semf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.shade-save-file","encoding":"base64","xrefs":{"person":["Connor_Horman"],"template":["application/vnd.shade-save-file"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.shana.informed.formdata","friendly":{"en":"Shana Informed Filler"},"encoding":"base64","extensions":["ifm"],"xrefs":{"person":["Guy_Selzler"],"template":["application/vnd.shana.informed.formdata"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.shana.informed.formtemplate","friendly":{"en":"Shana Informed Filler"},"encoding":"base64","extensions":["itp"],"xrefs":{"person":["Guy_Selzler"],"template":["application/vnd.shana.informed.formtemplate"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.shana.informed.interchange","friendly":{"en":"Shana Informed Filler"},"encoding":"base64","extensions":["iif"],"xrefs":{"person":["Guy_Selzler"],"template":["application/vnd.shana.informed.interchange"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.shana.informed.package","friendly":{"en":"Shana Informed Filler"},"encoding":"base64","extensions":["ipk"],"xrefs":{"person":["Guy_Selzler"],"template":["application/vnd.shana.informed.package"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.shootproof+json","encoding":"base64","xrefs":{"person":["Ben_Ramsey"],"template":["application/vnd.shootproof+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.shopkick+json","encoding":"base64","xrefs":{"person":["Ronald_Jacobs"],"template":["application/vnd.shopkick+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.shp","encoding":"base64","xrefs":{"person":["Mi_Tar"],"template":["application/vnd.shp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.shx","encoding":"base64","xrefs":{"person":["Mi_Tar"],"template":["application/vnd.shx"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sigrok.session","encoding":"base64","xrefs":{"person":["Uwe_Hermann"],"template":["application/vnd.sigrok.session"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.SimTech-MindMapper","friendly":{"en":"SimTech MindMapper"},"encoding":"base64","extensions":["twd","twds"],"xrefs":{"person":["Patrick_Koh"],"template":["application/vnd.SimTech-MindMapper"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.siren+json","encoding":"base64","xrefs":{"person":["Kevin_Swiber"],"template":["application/vnd.siren+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sirtx.vmv0","encoding":"base64","xrefs":{"person":["Philipp_Schafft"],"template":["application/vnd.sirtx.vmv0"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sketchometry","encoding":"base64","xrefs":{"person":["Center_for_Mobile_Learning_with_Digital_Technology"],"template":["application/vnd.sketchometry"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.smaf","friendly":{"en":"SMAF File"},"encoding":"base64","extensions":["mmf"],"xrefs":{"person":["Hiroaki_Takahashi"],"template":["application/vnd.smaf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.smart.notebook","encoding":"base64","xrefs":{"person":["Jonathan_Neitz"],"template":["application/vnd.smart.notebook"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.smart.teacher","friendly":{"en":"SMART Technologies Apps"},"encoding":"base64","extensions":["teacher"],"xrefs":{"person":["Michael_Boyle"],"template":["application/vnd.smart.teacher"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.smintio.portals.archive","encoding":"base64","xrefs":{"person":["Reinhard_Holzner"],"template":["application/vnd.smintio.portals.archive"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.snesdev-page-table","encoding":"base64","xrefs":{"person":["Connor_Horman"],"template":["application/vnd.snesdev-page-table"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.software602.filler.form+xml","encoding":"base64","xrefs":{"person":["Jakub_Hytka","Martin_Vondrous"],"template":["application/vnd.software602.filler.form+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.software602.filler.form-xml-zip","encoding":"base64","xrefs":{"person":["Jakub_Hytka","Martin_Vondrous"],"template":["application/vnd.software602.filler.form-xml-zip"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.solent.sdkm+xml","friendly":{"en":"SudokuMagic"},"encoding":"base64","extensions":["sdkd","sdkm"],"xrefs":{"person":["Cliff_Gauntlett"],"template":["application/vnd.solent.sdkm+xml"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.spotfire.dxp","friendly":{"en":"TIBCO Spotfire"},"encoding":"base64","extensions":["dxp"],"xrefs":{"person":["Stefan_Jernberg"],"template":["application/vnd.spotfire.dxp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.spotfire.sfs","friendly":{"en":"TIBCO Spotfire"},"encoding":"base64","extensions":["sfs"],"xrefs":{"person":["Stefan_Jernberg"],"template":["application/vnd.spotfire.sfs"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.sqlite3","encoding":"base64","xrefs":{"person":["Clemens_Ladisch"],"template":["application/vnd.sqlite3"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sss-cod","encoding":"base64","xrefs":{"person":["Asang_Dani"],"template":["application/vnd.sss-cod"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sss-dtf","encoding":"base64","xrefs":{"person":["Eric_Bruno"],"template":["application/vnd.sss-dtf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sss-ntf","encoding":"base64","xrefs":{"person":["Eric_Bruno"],"template":["application/vnd.sss-ntf"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.stardivision.calc","friendly":{"en":"StarOffice - Calc"},"encoding":"base64","extensions":["sdc"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.stardivision.chart","encoding":"base64","extensions":["sds"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.stardivision.draw","friendly":{"en":"StarOffice - Draw"},"encoding":"base64","extensions":["sda"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.stardivision.impress","friendly":{"en":"StarOffice - Impress"},"encoding":"base64","extensions":["sdd"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.stardivision.math","friendly":{"en":"StarOffice - Math"},"encoding":"base64","extensions":["sdf","smf"],"registered":false,"sort-priority":46},{"content-type":"application/vnd.stardivision.writer","friendly":{"en":"StarOffice - Writer"},"encoding":"base64","extensions":["sdw","vor"],"registered":false,"sort-priority":46},{"content-type":"application/vnd.stardivision.writer-global","friendly":{"en":"StarOffice - Writer (Global)"},"encoding":"base64","extensions":["sgl"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.stepmania.package","encoding":"base64","extensions":["smzip"],"xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.stepmania.package"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.stepmania.stepchart","friendly":{"en":"StepMania"},"encoding":"base64","extensions":["sm"],"xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.stepmania.stepchart"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.street-stream","encoding":"base64","xrefs":{"person":["Glenn_Levitt"],"template":["application/vnd.street-stream"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sun.wadl+xml","encoding":"base64","xrefs":{"person":["Marc_Hadley"],"template":["application/vnd.sun.wadl+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sun.xml.calc","friendly":{"en":"OpenOffice - Calc (Spreadsheet)"},"encoding":"base64","extensions":["sxc"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.calc.template","friendly":{"en":"OpenOffice - Calc Template (Spreadsheet)"},"encoding":"base64","extensions":["stc"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.draw","friendly":{"en":"OpenOffice - Draw (Graphics)"},"encoding":"base64","extensions":["sxd"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.draw.template","friendly":{"en":"OpenOffice - Draw Template (Graphics)"},"encoding":"base64","extensions":["std"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.impress","friendly":{"en":"OpenOffice - Impress (Presentation)"},"encoding":"base64","extensions":["sxi"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.impress.template","friendly":{"en":"OpenOffice - Impress Template (Presentation)"},"encoding":"base64","extensions":["sti"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.math","friendly":{"en":"OpenOffice - Math (Formula)"},"encoding":"base64","extensions":["sxm"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.writer","friendly":{"en":"OpenOffice - Writer (Text - HTML)"},"encoding":"base64","extensions":["sxw"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.writer.global","friendly":{"en":"OpenOffice - Writer (Text - HTML)"},"encoding":"base64","extensions":["sxg"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.sun.xml.writer.template","friendly":{"en":"OpenOffice - Writer Template (Text - HTML)"},"encoding":"base64","extensions":["stw"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.superfile.super","encoding":"base64","xrefs":{"person":["Shane_Valdez"],"template":["application/vnd.superfile.super"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sus-calendar","friendly":{"en":"ScheduleUs"},"encoding":"base64","extensions":["sus","susp"],"xrefs":{"person":["Jonathan_Niedfeldt"],"template":["application/vnd.sus-calendar"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.svd","friendly":{"en":"SourceView Document"},"encoding":"base64","extensions":["svd"],"xrefs":{"person":["Scott_Becker"],"template":["application/vnd.svd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.swiftview-ics","encoding":"base64","xrefs":{"person":["Glenn_Widener"],"template":["application/vnd.swiftview-ics"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sybyl.mol2","encoding":"base64","xrefs":{"person":["Finn_Rayk_Gärtner"],"template":["application/vnd.sybyl.mol2"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.sycle+xml","encoding":"base64","xrefs":{"person":["Johann_Terblanche"],"template":["application/vnd.sycle+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syft+json","encoding":"base64","xrefs":{"person":["Dan_Nurmi"],"template":["application/vnd.syft+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.symbian.install","friendly":{"en":"Symbian Install Package"},"encoding":"base64","extensions":["sis","sisx"],"registered":false,"sort-priority":46},{"content-type":"application/vnd.syncml+xml","friendly":{"en":"SyncML"},"encoding":"base64","extensions":["xsm"],"xrefs":{"person":["OMA_Data_Synchronization_WG"],"template":["application/vnd.syncml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.syncml.dm+wbxml","friendly":{"en":"SyncML - Device Management"},"encoding":"base64","extensions":["bdm"],"xrefs":{"person":["OMA-DM_Work_Group"],"template":["application/vnd.syncml.dm+wbxml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.syncml.dm+xml","friendly":{"en":"SyncML - Device Management"},"encoding":"base64","extensions":["xdm"],"xrefs":{"person":["Bindu_Rama_Rao","OMA-DM_Work_Group"],"template":["application/vnd.syncml.dm+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.syncml.dm.notification","encoding":"base64","xrefs":{"person":["OMA-DM_Work_Group","Peter_Thompson"],"template":["application/vnd.syncml.dm.notification"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syncml.dmddf+wbxml","encoding":"base64","xrefs":{"person":["OMA-DM_Work_Group"],"template":["application/vnd.syncml.dmddf+wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syncml.dmddf+xml","encoding":"base64","xrefs":{"person":["OMA-DM_Work_Group"],"template":["application/vnd.syncml.dmddf+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syncml.dmtnds+wbxml","encoding":"base64","xrefs":{"person":["OMA-DM_Work_Group"],"template":["application/vnd.syncml.dmtnds+wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syncml.dmtnds+xml","encoding":"base64","xrefs":{"person":["OMA-DM_Work_Group"],"template":["application/vnd.syncml.dmtnds+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.syncml.ds.notification","encoding":"base64","xrefs":{"person":["OMA_Data_Synchronization_WG"],"template":["application/vnd.syncml.ds.notification"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.tableschema+json","encoding":"base64","xrefs":{"person":["Paul_Walsh"],"template":["application/vnd.tableschema+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.tao.intent-module-archive","friendly":{"en":"Tao Intent"},"encoding":"base64","extensions":["tao"],"xrefs":{"person":["Daniel_Shelton"],"template":["application/vnd.tao.intent-module-archive"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.tcpdump.pcap","encoding":"base64","extensions":["cap","dmp","pcap"],"xrefs":{"person":["Glen_Turner","Guy_Harris"],"template":["application/vnd.tcpdump.pcap"]},"registered":true,"sort-priority":13},{"content-type":"application/vnd.tcpdump.pcapng","encoding":"base64","extensions":["pcapng"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.think-cell.ppttc+json","encoding":"base64","xrefs":{"person":["Arno_Schoedl"],"template":["application/vnd.think-cell.ppttc+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.tmd.mediaflex.api+xml","encoding":"base64","xrefs":{"person":["Alex_Sibilev"],"template":["application/vnd.tmd.mediaflex.api+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.tml","encoding":"base64","xrefs":{"person":["Joey_Smith"],"template":["application/vnd.tml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.tmobile-livetv","friendly":{"en":"MobileTV"},"encoding":"base64","extensions":["tmo"],"xrefs":{"person":["Nicolas_Helin"],"template":["application/vnd.tmobile-livetv"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.tri.onesource","encoding":"base64","xrefs":{"person":["Rick_Rupp"],"template":["application/vnd.tri.onesource"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.trid.tpt","friendly":{"en":"TRI Systems Config"},"encoding":"base64","extensions":["tpt"],"xrefs":{"person":["Frank_Cusack"],"template":["application/vnd.trid.tpt"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.triscape.mxs","friendly":{"en":"Triscape Map Explorer"},"encoding":"base64","extensions":["mxs"],"xrefs":{"person":["Steven_Simonoff"],"template":["application/vnd.triscape.mxs"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.trueapp","friendly":{"en":"True BASIC"},"encoding":"base64","extensions":["tra"],"xrefs":{"person":["J._Scott_Hepler"],"template":["application/vnd.trueapp"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.truedoc","encoding":"base64","xrefs":{"person":["Brad_Chase"],"template":["application/vnd.truedoc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ubisoft.webplayer","encoding":"base64","xrefs":{"person":["Martin_Talbot"],"template":["application/vnd.ubisoft.webplayer"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ufdl","friendly":{"en":"Universal Forms Description Language"},"encoding":"base64","extensions":["ufd","ufdl"],"xrefs":{"person":["Dave_Manning"],"template":["application/vnd.ufdl"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.uic.osdm+json","encoding":"base64","xrefs":{"person":["David_Sarfatti"],"template":["application/vnd.uic.osdm+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uiq.theme","friendly":{"en":"User Interface Quartz - Theme (Symbian)"},"encoding":"base64","extensions":["utz"],"xrefs":{"person":["Tim_Ocock"],"template":["application/vnd.uiq.theme"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.umajin","friendly":{"en":"UMAJIN"},"encoding":"base64","extensions":["umj"],"xrefs":{"person":["Jamie_Riden"],"template":["application/vnd.umajin"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.unity","friendly":{"en":"Unity 3d"},"encoding":"base64","extensions":["unityweb"],"xrefs":{"person":["Unity3d"],"template":["application/vnd.unity"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.uoml+xml","friendly":{"en":"Unique Object Markup Language"},"encoding":"base64","extensions":["uoml"],"xrefs":{"person":["Arne_Gerdes"],"template":["application/vnd.uoml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.uplanet.alert","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.alert"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.alert-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.alert-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.bearer-choice","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.bearer-choice"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.bearer-choice-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.bearer-choice-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.cacheop","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.cacheop"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.cacheop-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.cacheop-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.channel","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.channel"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.channel-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.channel-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.list","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.list"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.list-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.list-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.listcmd","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.listcmd"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.listcmd-wbxml","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.listcmd-wbxml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uplanet.signal","encoding":"base64","xrefs":{"person":["Bruce_Martin"],"template":["application/vnd.uplanet.signal"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.uri-map","encoding":"base64","xrefs":{"person":["Sebastian_Baer"],"template":["application/vnd.uri-map"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.valve.source.material","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["application/vnd.valve.source.material"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vcx","friendly":{"en":"VirtualCatalog"},"encoding":"base64","extensions":["vcx"],"xrefs":{"person":["Taisuke_Sugimoto"],"template":["application/vnd.vcx"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.vd-study","encoding":"base64","xrefs":{"person":["Luc_Rogge"],"template":["application/vnd.vd-study"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vectorworks","encoding":"base64","xrefs":{"person":["Biplab_Sarkar","Lyndsey_Ferguson"],"template":["application/vnd.vectorworks"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vel+json","encoding":"base64","xrefs":{"person":["James_Wigger"],"template":["application/vnd.vel+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.veraison.tsm-report+cbor","encoding":"base64","xrefs":{"person":["Thomas_Fossati"],"template":["application/vnd.veraison.tsm-report+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.veraison.tsm-report+json","encoding":"base64","xrefs":{"person":["Thomas_Fossati"],"template":["application/vnd.veraison.tsm-report+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.verifier-attestation+jwt","encoding":"base64","xrefs":{"person":["Oliver_Terbu","OpenID_Foundation_Digital_Credentials_Protocols_WG"],"template":["application/vnd.verifier-attestation+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.verimatrix.vcas","encoding":"base64","xrefs":{"person":["Petr_Peterka"],"template":["application/vnd.verimatrix.vcas"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.veritone.aion+json","encoding":"base64","xrefs":{"person":["Al_Brown"],"template":["application/vnd.veritone.aion+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.veryant.thin","encoding":"base64","xrefs":{"person":["Massimo_Bertoli"],"template":["application/vnd.veryant.thin"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.ves.encrypted","encoding":"base64","xrefs":{"person":["Jim_Zubov"],"template":["application/vnd.ves.encrypted"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vidsoft.vidconference","encoding":"8bit","extensions":["vsc"],"xrefs":{"person":["Robert_Hess"],"template":["application/vnd.vidsoft.vidconference"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.visio","friendly":{"en":"Microsoft Visio"},"encoding":"base64","extensions":["vsd","vst","vsw","vss"],"xrefs":{"person":["Troy_Sandal"],"template":["application/vnd.visio"]},"registered":true,"sort-priority":12},{"content-type":"application/vnd.visionary","friendly":{"en":"Visionary"},"encoding":"base64","extensions":["vis"],"xrefs":{"person":["Gayatri_Aravindakumar"],"template":["application/vnd.visionary"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.vividence.scriptfile","encoding":"base64","xrefs":{"person":["Mark_Risher"],"template":["application/vnd.vividence.scriptfile"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vocalshaper.vsp4","encoding":"base64","xrefs":{"person":["Wu_Chang"],"template":["application/vnd.vocalshaper.vsp4"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.vsf","friendly":{"en":"Viewport+"},"encoding":"base64","extensions":["vsf"],"xrefs":{"person":["Delton_Rowe"],"template":["application/vnd.vsf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wantverse","encoding":"base64","xrefs":{"person":["John_J_Kolb_V"],"template":["application/vnd.wantverse"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wap.sic","encoding":"base64","extensions":["sic"],"xrefs":{"person":["WAP-Forum"],"template":["application/vnd.wap.sic"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wap.slc","encoding":"base64","extensions":["slc"],"xrefs":{"person":["WAP-Forum"],"template":["application/vnd.wap.slc"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wap.wbxml","friendly":{"en":"WAP Binary XML (WBXML)"},"encoding":"base64","extensions":["wbxml"],"xrefs":{"person":["Peter_Stark"],"template":["application/vnd.wap.wbxml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wap.wmlc","friendly":{"en":"Compiled Wireless Markup Language (WMLC)"},"encoding":"base64","extensions":["wmlc"],"xrefs":{"person":["Peter_Stark"],"template":["application/vnd.wap.wmlc"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wap.wmlscriptc","friendly":{"en":"WMLScript"},"encoding":"base64","extensions":["wmlsc"],"xrefs":{"person":["Peter_Stark"],"template":["application/vnd.wap.wmlscriptc"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wasmflow.wafl","encoding":"base64","xrefs":{"person":["Fawad_Shaikh"],"template":["application/vnd.wasmflow.wafl"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.webturbo","friendly":{"en":"WebTurbo"},"encoding":"base64","extensions":["wtb"],"xrefs":{"person":["Yaser_Rehem"],"template":["application/vnd.webturbo"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wfa.dpp","encoding":"base64","xrefs":{"person":["Dr._Jun_Tian","Wi-Fi_Alliance"],"template":["application/vnd.wfa.dpp"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wfa.p2p","encoding":"base64","xrefs":{"person":["Mick_Conley"],"template":["application/vnd.wfa.p2p"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wfa.wsc","encoding":"base64","xrefs":{"person":["Wi-Fi_Alliance"],"template":["application/vnd.wfa.wsc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.windows.devicepairing","encoding":"base64","xrefs":{"person":["Priya_Dandawate"],"template":["application/vnd.windows.devicepairing"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wmap","encoding":"base64","xrefs":{"person":["Rubén_Fabián_Beltrán_del_Río_Vara"],"template":["application/vnd.wmap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wmc","encoding":"base64","xrefs":{"person":["Thomas_Kjornes"],"template":["application/vnd.wmc"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wmf.bootstrap","encoding":"base64","xrefs":{"person":["Prakash_Iyer","Thinh_Nguyenphu"],"template":["application/vnd.wmf.bootstrap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wolfram.mathematica","encoding":"base64","xrefs":{"person":["Wolfram"],"template":["application/vnd.wolfram.mathematica"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wolfram.mathematica.package","encoding":"base64","xrefs":{"person":["Wolfram"],"template":["application/vnd.wolfram.mathematica.package"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wolfram.player","friendly":{"en":"Mathematica Notebook Player"},"encoding":"base64","extensions":["nbp"],"xrefs":{"person":["Wolfram"],"template":["application/vnd.wolfram.player"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wolfram.wl","encoding":"base64","extensions":["wl"],"registered":false,"sort-priority":47},{"content-type":"application/vnd.wordlift","encoding":"base64","xrefs":{"person":["David_Riccitelli"],"template":["application/vnd.wordlift"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wordperfect","friendly":{"en":"Wordperfect"},"encoding":"base64","extensions":["wpd","wp","wp5","wp6","w60","wp61","wpt"],"xrefs":{"person":["Kim_Scarborough"],"template":["application/vnd.wordperfect"]},"registered":true,"sort-priority":9},{"content-type":"application/vnd.wqd","friendly":{"en":"SundaHus WQ"},"encoding":"base64","extensions":["wqd"],"xrefs":{"person":["Jan_Boström"],"template":["application/vnd.wqd"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wrq-hp3000-labelled","encoding":"base64","xrefs":{"person":["Chris_Bartram"],"template":["application/vnd.wrq-hp3000-labelled"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wt.stf","friendly":{"en":"Worldtalk"},"encoding":"base64","extensions":["stf"],"xrefs":{"person":["Bill_Wohler"],"template":["application/vnd.wt.stf"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wv.csp+wbxml","encoding":"base64","extensions":["wv"],"xrefs":{"person":["Matti_Salmi"],"template":["application/vnd.wv.csp+wbxml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.wv.csp+xml","encoding":"8bit","xrefs":{"person":["John_Ingi_Ingimundarson"],"template":["application/vnd.wv.csp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.wv.ssp+xml","encoding":"8bit","xrefs":{"person":["John_Ingi_Ingimundarson"],"template":["application/vnd.wv.ssp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xacml+json","encoding":"base64","xrefs":{"person":["David_Brossard"],"template":["application/vnd.xacml+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xara","friendly":{"en":"CorelXARA"},"encoding":"base64","extensions":["xar"],"xrefs":{"person":["David_Matthewman"],"template":["application/vnd.xara"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.xarin.cpj","encoding":"base64","xrefs":{"person":["Ben_Brown"],"template":["application/vnd.xarin.cpj"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xecrets-encrypted","encoding":"base64","xrefs":{"person":["Svante_Seleborg"],"template":["application/vnd.xecrets-encrypted"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xfdl","friendly":{"en":"Extensible Forms Description Language"},"encoding":"base64","extensions":["xfdl"],"xrefs":{"person":["Dave_Manning"],"template":["application/vnd.xfdl"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.xfdl.webform","encoding":"base64","xrefs":{"person":["Michael_Mansell"],"template":["application/vnd.xfdl.webform"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmi+xml","encoding":"base64","xrefs":{"person":["Fred_Waskiewicz"],"template":["application/vnd.xmi+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmpie.cpkg","encoding":"base64","xrefs":{"person":["Reuven_Sherwin"],"template":["application/vnd.xmpie.cpkg"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmpie.dpkg","encoding":"base64","xrefs":{"person":["Reuven_Sherwin"],"template":["application/vnd.xmpie.dpkg"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmpie.plan","encoding":"base64","xrefs":{"person":["Reuven_Sherwin"],"template":["application/vnd.xmpie.plan"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmpie.ppkg","encoding":"base64","xrefs":{"person":["Reuven_Sherwin"],"template":["application/vnd.xmpie.ppkg"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.xmpie.xlim","encoding":"base64","xrefs":{"person":["Reuven_Sherwin"],"template":["application/vnd.xmpie.xlim"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.yamaha.hv-dic","friendly":{"en":"HV Voice Dictionary"},"encoding":"base64","extensions":["hvd"],"xrefs":{"person":["Tomohiro_Yamamoto"],"template":["application/vnd.yamaha.hv-dic"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.hv-script","friendly":{"en":"HV Script"},"encoding":"base64","extensions":["hvs"],"xrefs":{"person":["Tomohiro_Yamamoto"],"template":["application/vnd.yamaha.hv-script"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.hv-voice","friendly":{"en":"HV Voice Parameter"},"encoding":"base64","extensions":["hvp"],"xrefs":{"person":["Tomohiro_Yamamoto"],"template":["application/vnd.yamaha.hv-voice"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.openscoreformat","friendly":{"en":"Open Score Format"},"encoding":"base64","extensions":["osf"],"xrefs":{"person":["Mark_Olleson"],"template":["application/vnd.yamaha.openscoreformat"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.openscoreformat.osfpvg+xml","friendly":{"en":"OSFPVG"},"encoding":"base64","extensions":["osfpvg"],"xrefs":{"person":["Mark_Olleson"],"template":["application/vnd.yamaha.openscoreformat.osfpvg+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.remote-setup","encoding":"base64","xrefs":{"person":["Takehiro_Sukizaki"],"template":["application/vnd.yamaha.remote-setup"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.yamaha.smaf-audio","friendly":{"en":"SMAF Audio"},"encoding":"base64","extensions":["saf"],"xrefs":{"person":["Keiichi_Shinoda"],"template":["application/vnd.yamaha.smaf-audio"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.smaf-phrase","friendly":{"en":"SMAF Phrase"},"encoding":"base64","extensions":["spf"],"xrefs":{"person":["Keiichi_Shinoda"],"template":["application/vnd.yamaha.smaf-phrase"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.yamaha.through-ngn","encoding":"base64","xrefs":{"person":["Takehiro_Sukizaki"],"template":["application/vnd.yamaha.through-ngn"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.yamaha.tunnel-udpencap","encoding":"base64","xrefs":{"person":["Takehiro_Sukizaki"],"template":["application/vnd.yamaha.tunnel-udpencap"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.yaoweme","encoding":"base64","xrefs":{"person":["Jens_Jorgensen"],"template":["application/vnd.yaoweme"]},"registered":true,"sort-priority":16},{"content-type":"application/vnd.yellowriver-custom-menu","friendly":{"en":"CustomMenu"},"encoding":"base64","extensions":["cmp"],"xrefs":{"person":["Mr._Yellow"],"template":["application/vnd.yellowriver-custom-menu"]},"registered":true,"sort-priority":15},{"content-type":"application/vnd.youtube.yt","encoding":"base64","obsolete":true,"use-instead":"video/vnd.youtube.yt","xrefs":{"person":["Laura_Wood"],"template":["application/vnd.youtube.yt"],"notes":["(OBSOLETED in favor of video/vnd.youtube.yt)"]},"registered":true,"sort-priority":144},{"content-type":"application/vnd.zul","friendly":{"en":"Z.U.L. Geometry"},"encoding":"base64","extensions":["zir","zirz"],"xrefs":{"person":["Rene_Grothmann"],"template":["application/vnd.zul"]},"registered":true,"sort-priority":14},{"content-type":"application/vnd.zzazz.deck+xml","friendly":{"en":"Zzazz Deck"},"encoding":"base64","extensions":["zaz"],"xrefs":{"person":["Micheal_Hewett"],"template":["application/vnd.zzazz.deck+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/voicexml+xml","friendly":{"en":"VoiceXML"},"encoding":"base64","extensions":["vxml"],"xrefs":{"rfc":["rfc4267"],"template":["application/voicexml+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/voucher+cose","encoding":"base64","xrefs":{"draft":["draft-ietf-anima-constrained-voucher-23"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/voucher-cms+json","encoding":"base64","xrefs":{"rfc":["rfc8366"],"template":["application/voucher-cms+json"]},"registered":true,"sort-priority":16},{"content-type":"application/voucher-cose+cbor","encoding":"base64","obsolete":true,"xrefs":{"draft":["draft-ietf-anima-constrained-voucher-17"]},"registered":true,"sort-priority":144},{"content-type":"application/voucher-jws+json","encoding":"base64","xrefs":{"draft":["RFC-ietf-anima-jws-voucher-16"],"template":["application/voucher-jws+json"]},"registered":true,"sort-priority":16},{"content-type":"application/vp","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vp"]},"registered":true,"sort-priority":16},{"content-type":"application/vp+cose","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vp+cose"]},"registered":true,"sort-priority":16},{"content-type":"application/vp+jwt","encoding":"base64","xrefs":{"person":["Ivan_Herman","W3C_Verifiable_Credentials_WG"],"template":["application/vp+jwt"]},"registered":true,"sort-priority":16},{"content-type":"application/vq-rtcpxr","encoding":"base64","xrefs":{"rfc":["rfc6035"],"template":["application/vq-rtcpxr"]},"registered":true,"sort-priority":16},{"content-type":"application/warc","encoding":"base64","extensions":["warc"],"registered":false,"sort-priority":47},{"content-type":"application/warc+gz","encoding":"base64","extensions":["warc.gz"],"registered":false,"sort-priority":47},{"content-type":"application/wasm","friendly":{"en":"WebAssembly"},"encoding":"8bit","extensions":["wasm"],"xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["application/wasm"]},"registered":true,"sort-priority":15},{"content-type":"application/watcherinfo+xml","encoding":"base64","extensions":["wif"],"xrefs":{"rfc":["rfc3858"],"template":["application/watcherinfo+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/webbundle","encoding":"base64","xrefs":{"draft":["draft-yasskin-wpack-bundled-exchanges-02"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/webpush-options+json","encoding":"base64","xrefs":{"rfc":["rfc8292"],"template":["application/webpush-options+json"]},"registered":true,"sort-priority":16},{"content-type":"application/whoispp-query","encoding":"base64","xrefs":{"rfc":["rfc2957"],"template":["application/whoispp-query"]},"registered":true,"sort-priority":16},{"content-type":"application/whoispp-response","encoding":"base64","xrefs":{"rfc":["rfc2958"],"template":["application/whoispp-response"]},"registered":true,"sort-priority":16},{"content-type":"application/widget","friendly":{"en":"Widget Packaging and XML Configuration"},"encoding":"base64","extensions":["wgt"],"xrefs":{"person":["Steven_Pemberton","W3C"],"uri":["http://www.w3.org/TR/widgets/#media-type-registration-for-application/widget"],"template":["application/widget"]},"registered":true,"sort-priority":15},{"content-type":"application/winhlp","friendly":{"en":"WinHelp"},"encoding":"base64","extensions":["hlp"],"registered":false,"sort-priority":47},{"content-type":"application/wita","encoding":"base64","xrefs":{"person":["Larry_Campbell"],"template":["application/wita"]},"registered":true,"sort-priority":16},{"content-type":"application/won","encoding":"base64","xrefs":{"person":["Roy_T._Fielding"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"application/word","encoding":"base64","extensions":["doc","dot"],"registered":false,"sort-priority":46},{"content-type":"application/wordperfect","encoding":"base64","extensions":["wp"],"obsolete":true,"use-instead":"application/vnd.wordperfect","registered":false,"sort-priority":175},{"content-type":"application/wordperfect5.1","encoding":"base64","extensions":["wp5","wp"],"xrefs":{"person":["Paul_Lindner"],"template":["application/wordperfect5.1"]},"registered":true,"sort-priority":14},{"content-type":"application/wordperfect6.1","encoding":"base64","extensions":["wp6"],"obsolete":true,"use-instead":"application/x-wordperfect6.1","registered":false,"sort-priority":175},{"content-type":"application/wordperfectd","encoding":"base64","extensions":["wpd"],"obsolete":true,"use-instead":"application/vnd.wordperfect","registered":false,"sort-priority":175},{"content-type":"application/wsdl+xml","friendly":{"en":"WSDL - Web Services Description Language"},"encoding":"base64","extensions":["wsdl"],"xrefs":{"person":["W3C"],"template":["application/wsdl+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/wspolicy+xml","friendly":{"en":"Web Services Policy"},"encoding":"base64","extensions":["wspolicy"],"xrefs":{"person":["W3C"],"template":["application/wspolicy+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/x-123","encoding":"base64","extensions":["wk"],"obsolete":true,"use-instead":"application/vnd.lotus-1-2-3","registered":false,"sort-priority":175},{"content-type":"application/x-7z-compressed","friendly":{"en":"7-Zip"},"encoding":"base64","extensions":["7z"],"registered":false,"sort-priority":47},{"content-type":"application/x-abiword","friendly":{"en":"AbiWord"},"encoding":"base64","extensions":["abw"],"registered":false,"sort-priority":47},{"content-type":"application/x-access","encoding":"base64","extensions":["mdf","mda","mdb","mde"],"obsolete":true,"use-instead":"application/x-msaccess","registered":false,"sort-priority":172},{"content-type":"application/x-ace-compressed","friendly":{"en":"Ace Archive"},"encoding":"base64","extensions":["ace"],"registered":false,"sort-priority":47},{"content-type":"application/x-activemime","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-adobe-indesign","encoding":"base64","extensions":["indd"],"registered":false,"sort-priority":47},{"content-type":"application/x-adobe-indesign-interchange","encoding":"base64","extensions":["inx"],"registered":false,"sort-priority":47},{"content-type":"application/x-amf","encoding":"base64","extensions":["amf"],"registered":false,"sort-priority":47},{"content-type":"application/x-amiga-disk-format","encoding":"base64","extensions":["adf"],"registered":false,"sort-priority":47},{"content-type":"application/x-apple-diskimage","encoding":"base64","extensions":["dmg"],"registered":false,"sort-priority":47},{"content-type":"application/x-appleworks","encoding":"base64","extensions":["cwk"],"registered":false,"sort-priority":47},{"content-type":"application/x-archive","encoding":"base64","extensions":["ar","a"],"registered":false,"sort-priority":46},{"content-type":"application/x-arj","encoding":"base64","extensions":["arj"],"registered":false,"sort-priority":47},{"content-type":"application/x-asprs","encoding":"base64","extensions":["las","laz"],"registered":false,"sort-priority":46},{"content-type":"application/x-atari-floppy-disk-image","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-authorware-bin","friendly":{"en":"Adobe (Macropedia) Authorware - Binary File"},"encoding":"base64","extensions":["aab","u32","vox","x32"],"registered":false,"sort-priority":44},{"content-type":"application/x-authorware-map","friendly":{"en":"Adobe (Macropedia) Authorware - Map"},"encoding":"base64","extensions":["aam"],"registered":false,"sort-priority":47},{"content-type":"application/x-authorware-seg","friendly":{"en":"Adobe (Macropedia) Authorware - Segment File"},"encoding":"base64","extensions":["aas"],"registered":false,"sort-priority":47},{"content-type":"application/x-axcrypt","encoding":"base64","extensions":["axx"],"registered":false,"sort-priority":47},{"content-type":"application/x-bat","encoding":"base64","extensions":["bat","cmd"],"registered":false,"sort-priority":46},{"content-type":"application/x-bcpio","friendly":{"en":"Binary CPIO Archive"},"encoding":"base64","extensions":["bcpio"],"registered":false,"sort-priority":47},{"content-type":"application/x-bentley-besqlite","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-bentley-localization","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-berkeley-db","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-bibtex-text-file","encoding":"base64","extensions":["bib","bibtex"],"registered":false,"sort-priority":46},{"content-type":"application/x-bittorrent","friendly":{"en":"BitTorrent"},"encoding":"base64","extensions":["torrent"],"registered":false,"sort-priority":47},{"content-type":"application/x-bleeper","encoding":"base64","extensions":["bleep"],"registered":false,"sort-priority":47},{"content-type":"application/x-blorb","encoding":"base64","extensions":["blb","blorb"],"registered":false,"sort-priority":46},{"content-type":"application/x-bplist","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-brotli","encoding":"base64","extensions":["br","brotli"],"registered":false,"sort-priority":46},{"content-type":"application/x-bzip","friendly":{"en":"Bzip Archive"},"encoding":"base64","extensions":["bz","tbz"],"registered":false,"sort-priority":46},{"content-type":"application/x-bzip2","friendly":{"en":"Bzip2 Archive"},"encoding":"base64","extensions":["boz","bz2","tbz2"],"registered":false,"sort-priority":45},{"content-type":"application/x-cbr","encoding":"base64","extensions":["cb7","cba","cbr","cbt","cbz"],"registered":false,"sort-priority":43},{"content-type":"application/x-cdf","encoding":"base64","extensions":["cda"],"registered":false,"sort-priority":47},{"content-type":"application/x-cdlink","friendly":{"en":"Video CD"},"encoding":"base64","extensions":["vcd"],"registered":false,"sort-priority":47},{"content-type":"application/x-cfs-compressed","encoding":"base64","extensions":["cfs"],"registered":false,"sort-priority":47},{"content-type":"application/x-chat","friendly":{"en":"pIRCh"},"encoding":"base64","extensions":["chat"],"registered":false,"sort-priority":47},{"content-type":"application/x-chess-pgn","friendly":{"en":"Portable Game Notation (Chess Games)"},"encoding":"base64","extensions":["pgn"],"registered":false,"sort-priority":47},{"content-type":"application/x-chrome-extension","encoding":"base64","extensions":["crx"],"registered":false,"sort-priority":47},{"content-type":"application/x-chrome-package","encoding":"base64","extensions":["crx"],"registered":false,"sort-priority":47},{"content-type":"application/x-clariscad","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-compress","encoding":"base64","extensions":["z","Z"],"obsolete":true,"use-instead":"application/x-compressed","registered":false,"sort-priority":174},{"content-type":"application/x-compressed","encoding":"base64","extensions":["z","Z"],"registered":false,"sort-priority":46},{"content-type":"application/x-conference","encoding":"base64","extensions":["nsc"],"registered":false,"sort-priority":47},{"content-type":"application/x-coredump","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-corelpresentations","encoding":"base64","extensions":["shw"],"registered":false,"sort-priority":47},{"content-type":"application/x-cpio","friendly":{"en":"CPIO Archive"},"encoding":"base64","extensions":["cpio"],"registered":false,"sort-priority":47},{"content-type":"application/x-csh","friendly":{"en":"C Shell Script"},"encoding":"8bit","extensions":["csh","tcsh"],"registered":false,"sort-priority":46},{"content-type":"application/x-cu-seeme","encoding":"base64","extensions":["csm","cu"],"registered":false,"sort-priority":46},{"content-type":"application/x-dbf","encoding":"base64","extensions":["dbf","dbase","dbase3"],"registered":false,"sort-priority":45},{"content-type":"application/x-debian-package","friendly":{"en":"Debian Package"},"encoding":"base64","extensions":["deb","udeb"],"registered":false,"sort-priority":46},{"content-type":"application/x-dex","encoding":"base64","extensions":["dex"],"registered":false,"sort-priority":47},{"content-type":"application/x-dgc-compressed","encoding":"base64","extensions":["dgc"],"registered":false,"sort-priority":47},{"content-type":"application/x-director","friendly":{"en":"Adobe Shockwave Player"},"encoding":"base64","extensions":["dcr","@dir","@dxr","cct","cst","cxt","dir","dxr","fgd","swa","w3d"],"registered":false,"sort-priority":37},{"content-type":"application/x-doom","friendly":{"en":"Doom Video Game"},"encoding":"base64","extensions":["wad"],"registered":false,"sort-priority":47},{"content-type":"application/x-dosexec","encoding":"base64","extensions":["exe"],"registered":false,"sort-priority":47},{"content-type":"application/x-drafting","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-dtbncx+xml","friendly":{"en":"Navigation Control file for XML (for ePub)"},"encoding":"base64","extensions":["ncx"],"registered":false,"sort-priority":47},{"content-type":"application/x-dtbook+xml","friendly":{"en":"Digital Talking Book"},"encoding":"base64","extensions":["dtb"],"registered":false,"sort-priority":47},{"content-type":"application/x-dtbresource+xml","friendly":{"en":"Digital Talking Book - Resource File"},"encoding":"base64","extensions":["res"],"registered":false,"sort-priority":47},{"content-type":"application/x-dvd-ifo","encoding":"base64","extensions":["ifo","bup"],"registered":false,"sort-priority":46},{"content-type":"application/x-dvi","friendly":{"en":"Device Independent File Format (DVI)"},"encoding":"base64","extensions":["dvi"],"registered":false,"sort-priority":47},{"content-type":"application/x-dxf","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ebu-stl","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ecmascript","encoding":"8bit","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"application/x-elc","encoding":"base64","extensions":["elc"],"registered":false,"sort-priority":47},{"content-type":"application/x-elf","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-endnote-refer","encoding":"base64","extensions":["enw","enr"],"registered":false,"sort-priority":46},{"content-type":"application/x-endnote-style","encoding":"base64","extensions":["ens"],"registered":false,"sort-priority":47},{"content-type":"application/x-envoy","encoding":"base64","extensions":["evy"],"registered":false,"sort-priority":47},{"content-type":"application/x-erdas-hfa","encoding":"base64","extensions":["hfa"],"registered":false,"sort-priority":47},{"content-type":"application/x-esri-layer","encoding":"base64","extensions":["lyr"],"registered":false,"sort-priority":47},{"content-type":"application/x-esri-spatially-enabled-db","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-eva","encoding":"base64","extensions":["eva"],"registered":false,"sort-priority":47},{"content-type":"application/x-excel","encoding":"base64","obsolete":true,"use-instead":"application/vnd.ms-excel","registered":false,"sort-priority":176},{"content-type":"application/x-executable","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fat-diskimage","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fictionbook+xml","encoding":"base64","extensions":["fb2"],"registered":false,"sort-priority":47},{"content-type":"application/x-filemaker","encoding":"base64","extensions":["fp7"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-adobe-metric","encoding":"base64","extensions":["afm","acfm","amfm"],"registered":false,"sort-priority":45},{"content-type":"application/x-font-bdf","friendly":{"en":"Glyph Bitmap Distribution Format"},"encoding":"base64","extensions":["bdf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-dos","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-font-framemaker","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-font-ghostscript","friendly":{"en":"Ghostscript Font"},"encoding":"base64","extensions":["gsf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-libgrx","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-font-linux-psf","friendly":{"en":"PSF Fonts"},"encoding":"base64","extensions":["psf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-opentype","encoding":"base64","extensions":["otf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-otf","friendly":{"en":"OpenType Font File"},"encoding":"base64","extensions":["otf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-pcf","friendly":{"en":"Portable Compiled Format"},"encoding":"base64","extensions":["pcf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-printer-metric","encoding":"base64","extensions":["pfm"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-snf","friendly":{"en":"Server Normal Format"},"encoding":"base64","extensions":["snf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-speedo","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-font-sunos-news","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-font-truetype","encoding":"base64","extensions":["ttf"],"registered":false,"sort-priority":47},{"content-type":"application/x-font-ttf","friendly":{"en":"TrueType Font"},"encoding":"base64","extensions":["ttc","ttf"],"registered":false,"sort-priority":46},{"content-type":"application/x-font-type1","friendly":{"en":"PostScript Fonts"},"encoding":"base64","extensions":["afm","pfa","pfb","pfm"],"registered":false,"sort-priority":44},{"content-type":"application/x-font-vfont","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fossil-checkout","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fossil-global-conf","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fossil-repository","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-foxmail","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-fractals","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-freearc","encoding":"base64","extensions":["arc"],"registered":false,"sort-priority":47},{"content-type":"application/x-futuresplash","friendly":{"en":"FutureSplash Animator"},"encoding":"base64","extensions":["spl"],"registered":false,"sort-priority":47},{"content-type":"application/x-gca-compressed","encoding":"base64","extensions":["gca"],"registered":false,"sort-priority":47},{"content-type":"application/x-geopackage","encoding":"base64","extensions":["gpkg"],"registered":false,"sort-priority":47},{"content-type":"application/x-ghostview","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-glulx","encoding":"base64","extensions":["ulx"],"registered":false,"sort-priority":47},{"content-type":"application/x-gnucash","encoding":"base64","extensions":["gnucash"],"registered":false,"sort-priority":47},{"content-type":"application/x-gnumeric","friendly":{"en":"Gnumeric"},"encoding":"base64","extensions":["gnumeric"],"registered":false,"sort-priority":47},{"content-type":"application/x-gramps-xml","encoding":"base64","extensions":["gramps"],"registered":false,"sort-priority":47},{"content-type":"application/x-grib","encoding":"base64","extensions":["grb","grb1","grb2"],"registered":false,"sort-priority":45},{"content-type":"application/x-gtar","friendly":{"en":"GNU Tar Files"},"encoding":"base64","extensions":["gtar","tgz","tbz2","tbz"],"registered":false,"sort-priority":44},{"content-type":"application/x-guitar-pro","encoding":"base64","extensions":["gp4"],"registered":false,"sort-priority":47},{"content-type":"application/x-gzip","encoding":"base64","extensions":["gz"],"obsolete":true,"use-instead":"application/gzip","registered":false,"sort-priority":175},{"content-type":"application/x-hdf","friendly":{"en":"Hierarchical Data Format"},"encoding":"base64","extensions":["hdf","he5","h5"],"registered":false,"sort-priority":45},{"content-type":"application/x-hep","encoding":"base64","extensions":["hep"],"registered":false,"sort-priority":47},{"content-type":"application/x-html+ruby","encoding":"8bit","extensions":["rhtml"],"registered":false,"sort-priority":47},{"content-type":"application/x-httpd-php","encoding":"8bit","extensions":["phtml","pht","php"],"registered":false,"sort-priority":45},{"content-type":"application/x-httpresponse","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-hwp","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-hwp-v5","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ibooks+zip","encoding":"base64","extensions":["ibooks"],"registered":false,"sort-priority":47},{"content-type":"application/x-ica","encoding":"base64","extensions":["ica"],"registered":false,"sort-priority":47},{"content-type":"application/x-ideas","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-idl-save-file","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-imagemap","encoding":"8bit","extensions":["imagemap","imap"],"registered":false,"sort-priority":46},{"content-type":"application/x-install-instructions","encoding":"base64","extensions":["install"],"registered":false,"sort-priority":47},{"content-type":"application/x-internet-archive","encoding":"base64","extensions":["arc"],"registered":false,"sort-priority":47},{"content-type":"application/x-isatab","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-isatab-assay","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-isatab-investigation","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-iso9660-image","encoding":"base64","extensions":["iso"],"registered":false,"sort-priority":47},{"content-type":"application/x-itunes-bplist","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-itunes-ipa","encoding":"base64","extensions":["ipa"],"registered":false,"sort-priority":47},{"content-type":"application/x-iwork-keynote-sffkey","encoding":"base64","extensions":["key"],"registered":false,"sort-priority":47},{"content-type":"application/x-iwork-numbers-sffnumbers","encoding":"base64","extensions":["numbers"],"registered":false,"sort-priority":47},{"content-type":"application/x-iwork-pages-sffpages","encoding":"base64","extensions":["pages"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-archive","encoding":"base64","extensions":["jar"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-jnilib","encoding":"base64","extensions":["jnilib"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-jnlp-file","friendly":{"en":"Java Network Launching Protocol"},"encoding":"base64","extensions":["jnlp"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-keystore","encoding":"base64","extensions":["jks"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-pack200","encoding":"base64","extensions":["pack"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-serialized-object","encoding":"base64","extensions":["ser"],"registered":false,"sort-priority":47},{"content-type":"application/x-java-vm","encoding":"base64","extensions":["class"],"registered":false,"sort-priority":47},{"content-type":"application/x-javascript","encoding":"8bit","extensions":["js","mjs"],"obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":174},{"content-type":"application/x-jeol-jdf","encoding":"base64","extensions":["jdf"],"registered":false,"sort-priority":47},{"content-type":"application/x-jigdo","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-kdelnk","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-killustrator","encoding":"base64","extensions":["kil"],"registered":false,"sort-priority":47},{"content-type":"application/x-koan","encoding":"base64","extensions":["skp","skd","skt","skm"],"registered":false,"sort-priority":44},{"content-type":"application/x-latex","friendly":{"en":"LaTeX"},"encoding":"8bit","extensions":["ltx","latex"],"registered":false,"sort-priority":46},{"content-type":"application/x-lha","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-lharc","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-lotus-123","encoding":"base64","extensions":["wks"],"obsolete":true,"use-instead":"application/vnd.lotus-1-2-3","registered":false,"sort-priority":175},{"content-type":"application/x-lz4","encoding":"base64","extensions":["lz4"],"registered":false,"sort-priority":47},{"content-type":"application/x-lzh-compressed","encoding":"base64","extensions":["lha","lzh"],"registered":false,"sort-priority":46},{"content-type":"application/x-lzip","encoding":"base64","extensions":["lz"],"registered":false,"sort-priority":47},{"content-type":"application/x-lzma","encoding":"base64","extensions":["lzma"],"registered":false,"sort-priority":47},{"content-type":"application/x-mac","encoding":"base64","extensions":["bin"],"registered":false,"sort-priority":47},{"content-type":"application/x-mac-compactpro","encoding":"base64","extensions":["cpt"],"registered":false,"sort-priority":47},{"content-type":"application/x-macbase64","encoding":"base64","extensions":["bin"],"registered":false,"sort-priority":47},{"content-type":"application/x-macbinary","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-bundle","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-core","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-dsym","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-dylib","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-dylib-stub","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-dylinker","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-executable","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-fvmlib","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-kext-bundle","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-object","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-preload","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mach-o-universal","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-maker","encoding":"base64","extensions":["frm","maker","frame","fm","fb","book","fbdoc"],"obsolete":true,"use-instead":"application/vnd.framemaker","registered":false,"sort-priority":169},{"content-type":"application/x-mathcad","encoding":"base64","extensions":["mcd"],"obsolete":true,"use-instead":"application/vnd.mcd","registered":false,"sort-priority":175},{"content-type":"application/x-mathematica-old","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-matlab-data","encoding":"base64","extensions":["mat"],"registered":false,"sort-priority":47},{"content-type":"application/x-matroska","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mbtiles","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-memgraph","encoding":"base64","extensions":["memgraph"],"registered":false,"sort-priority":47},{"content-type":"application/x-mie","encoding":"base64","extensions":["mie"],"registered":false,"sort-priority":47},{"content-type":"application/x-mif","encoding":"base64","extensions":["mif"],"registered":false,"sort-priority":47},{"content-type":"application/x-mmm-digisonde","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mobipocket-ebook","friendly":{"en":"Mobipocket"},"encoding":"base64","extensions":["mobi","prc"],"registered":false,"sort-priority":46},{"content-type":"application/x-monotone-source-repo","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ms-application","friendly":{"en":"Microsoft ClickOnce"},"encoding":"base64","extensions":["application"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-asx","encoding":"base64","extensions":["asx"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-compress-szdd","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ms-dos-executable","encoding":"base64","extensions":["exe"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-installer","encoding":"base64","extensions":["msi","msp","mst"],"registered":false,"sort-priority":45},{"content-type":"application/x-ms-nls","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ms-owner","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-ms-shortcut","encoding":"base64","extensions":["lnk"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-wmd","friendly":{"en":"Microsoft Windows Media Player Download Package"},"encoding":"base64","extensions":["wmd"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-wmz","friendly":{"en":"Microsoft Windows Media Player Skin Package"},"encoding":"base64","extensions":["wmz"],"registered":false,"sort-priority":47},{"content-type":"application/x-ms-xbap","friendly":{"en":"Microsoft XAML Browser Application"},"encoding":"base64","extensions":["xbap"],"registered":false,"sort-priority":47},{"content-type":"application/x-msaccess","friendly":{"en":"Microsoft Access"},"encoding":"base64","extensions":["mda","mdb","mde","mdf","accdb"],"registered":false,"sort-priority":43},{"content-type":"application/x-msbinder","friendly":{"en":"Microsoft Office Binder"},"encoding":"base64","extensions":["obd"],"registered":false,"sort-priority":47},{"content-type":"application/x-mscardfile","friendly":{"en":"Microsoft Information Card"},"encoding":"base64","extensions":["crd"],"registered":false,"sort-priority":47},{"content-type":"application/x-msclip","friendly":{"en":"Microsoft Clipboard Clip"},"encoding":"base64","extensions":["clp"],"registered":false,"sort-priority":47},{"content-type":"application/x-msdos-program","encoding":"base64","extensions":["cmd","bat","com","exe","reg","ps1","vbs"],"registered":false,"sort-priority":41},{"content-type":"application/x-msdownload","friendly":{"en":"Microsoft Application"},"encoding":"base64","extensions":["exe","com","cmd","bat","dll","msi","reg","ps1","vbs"],"registered":false,"sort-priority":39},{"content-type":"application/x-msmediaview","friendly":{"en":"Microsoft MediaView"},"encoding":"base64","extensions":["m13","m14","mvb"],"registered":false,"sort-priority":45},{"content-type":"application/x-msmetafile","friendly":{"en":"Microsoft Windows Metafile"},"encoding":"base64","extensions":["emf","emz","wmf","wmz"],"registered":false,"sort-priority":44},{"content-type":"application/x-msmoney","friendly":{"en":"Microsoft Money"},"encoding":"base64","extensions":["mny"],"registered":false,"sort-priority":47},{"content-type":"application/x-mspublisher","friendly":{"en":"Microsoft Publisher"},"encoding":"base64","extensions":["pub"],"registered":false,"sort-priority":47},{"content-type":"application/x-msschedule","friendly":{"en":"Microsoft Schedule+"},"encoding":"base64","extensions":["scd"],"registered":false,"sort-priority":47},{"content-type":"application/x-msterminal","friendly":{"en":"Microsoft Windows Terminal Services"},"encoding":"base64","extensions":["trm"],"registered":false,"sort-priority":47},{"content-type":"application/x-msword","encoding":"base64","extensions":["doc","dot","wrd"],"obsolete":true,"use-instead":"application/msword","registered":false,"sort-priority":173},{"content-type":"application/x-mswrite","friendly":{"en":"Microsoft Wordpad"},"encoding":"base64","extensions":["wri"],"registered":false,"sort-priority":47},{"content-type":"application/x-mysql-db","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mysql-misam-compressed-index","encoding":"base64","extensions":["myi"],"registered":false,"sort-priority":47},{"content-type":"application/x-mysql-misam-data","encoding":"base64","extensions":["myd"],"registered":false,"sort-priority":47},{"content-type":"application/x-mysql-misam-index","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-mysql-table-definition","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-nesrom","encoding":"base64","extensions":["nes"],"registered":false,"sort-priority":47},{"content-type":"application/x-netcdf","friendly":{"en":"Network Common Data Form (NetCDF)"},"encoding":"base64","extensions":["nc","cdf"],"registered":false,"sort-priority":46},{"content-type":"application/x-ns-proxy-autoconfig","encoding":"base64","extensions":["pac"],"registered":false,"sort-priority":47},{"content-type":"application/x-nzb","encoding":"base64","extensions":["nzb"],"registered":false,"sort-priority":47},{"content-type":"application/x-object","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-openscad","encoding":"base64","extensions":["scad"],"registered":false,"sort-priority":47},{"content-type":"application/x-opera-extension","encoding":"base64","extensions":["oex"],"registered":false,"sort-priority":47},{"content-type":"application/x-pagemaker","encoding":"base64","extensions":["pm","pm5","pt5"],"registered":false,"sort-priority":45},{"content-type":"application/x-parquet","encoding":"base64","extensions":["parquet"],"registered":false,"sort-priority":47},{"content-type":"application/x-pds","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-perl","encoding":"8bit","extensions":["pl","pm"],"registered":false,"sort-priority":46},{"content-type":"application/x-pgp","encoding":"base64","registered":false,"signature":true,"sort-priority":48},{"content-type":"application/x-pkcs12","friendly":{"en":"PKCS #12 - Personal Information Exchange Syntax Standard"},"encoding":"base64","extensions":["p12","pfx"],"registered":false,"sort-priority":46},{"content-type":"application/x-pkcs7-certificates","friendly":{"en":"PKCS #7 - Cryptographic Message Syntax Standard (Certificates)"},"encoding":"base64","extensions":["p7b","spc"],"registered":false,"sort-priority":46},{"content-type":"application/x-pkcs7-certreqresp","friendly":{"en":"PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response)"},"encoding":"base64","extensions":["p7r"],"registered":false,"sort-priority":47},{"content-type":"application/x-pki-message","encoding":"base64","xrefs":{"rfc":["rfc8894"],"template":["application/x-pki-message"]},"registered":true,"sort-priority":16},{"content-type":"application/x-plist","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-project","encoding":"base64","extensions":["mpx"],"registered":false,"sort-priority":47},{"content-type":"application/x-prt","encoding":"base64","extensions":["prt"],"registered":false,"sort-priority":47},{"content-type":"application/x-python","encoding":"8bit","extensions":["py"],"registered":false,"sort-priority":47},{"content-type":"application/x-quattro-pro","encoding":"base64","extensions":["wq1","wq2","wkq","qpw","wb1","wb2","wb3"],"registered":false,"sort-priority":41},{"content-type":"application/x-quicktimeplayer","encoding":"base64","extensions":["qtl"],"registered":false,"sort-priority":47},{"content-type":"application/x-rar-compressed","friendly":{"en":"RAR Archive"},"encoding":"base64","extensions":["rar"],"registered":false,"sort-priority":47},{"content-type":"application/x-remote_printing","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-research-info-systems","encoding":"base64","extensions":["ris"],"registered":false,"sort-priority":47},{"content-type":"application/x-roxio-toast","encoding":"base64","extensions":["toast"],"registered":false,"sort-priority":47},{"content-type":"application/x-rpm","encoding":"base64","extensions":["rpm"],"registered":false,"sort-priority":47},{"content-type":"application/x-rtf","encoding":"base64","extensions":["rtf"],"obsolete":true,"use-instead":"application/rtf","registered":false,"sort-priority":175},{"content-type":"application/x-ruby","encoding":"8bit","extensions":["rb","rbw"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas","encoding":"base64","extensions":["sas"],"registered":false,"sort-priority":47},{"content-type":"application/x-sas-access","encoding":"base64","extensions":["sa7","sas7bacs"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-audit","encoding":"base64","extensions":["st7","sas7baud"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-backup","encoding":"base64","extensions":["sas7bbak"],"registered":false,"sort-priority":47},{"content-type":"application/x-sas-catalog","encoding":"base64","extensions":["sc7","sas7bcat"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-data","encoding":"base64","extensions":["sd7","sas7bdat"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-data-index","encoding":"base64","extensions":["si7","sas7bndx"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-data-v6","encoding":"base64","extensions":["sd2"],"registered":false,"sort-priority":47},{"content-type":"application/x-sas-dmdb","encoding":"base64","extensions":["s7m","sas7bdmd"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-fdb","encoding":"base64","extensions":["sf7","sas7bfdb"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-itemstor","encoding":"base64","extensions":["sr7","sas7bitm"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-mddb","encoding":"base64","extensions":["sm7","sas7bmdb"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-program-data","encoding":"base64","extensions":["ss7","sas7bpgm"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-putility","encoding":"base64","extensions":["sp7","sas7bput"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-transport","encoding":"base64","extensions":["stx"],"registered":false,"sort-priority":47},{"content-type":"application/x-sas-utility","encoding":"base64","extensions":["su7","sas7butl"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-view","encoding":"base64","extensions":["sv7","sas7bvew"],"registered":false,"sort-priority":46},{"content-type":"application/x-sas-xport","encoding":"base64","extensions":["xpt","xport"],"registered":false,"sort-priority":46},{"content-type":"application/x-sc","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-set","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-sfdu","encoding":"base64","extensions":["sfdu"],"registered":false,"sort-priority":47},{"content-type":"application/x-sh","friendly":{"en":"Bourne Shell Script"},"encoding":"8bit","extensions":["sh","bash"],"registered":false,"sort-priority":46},{"content-type":"application/x-shapefile","encoding":"base64","extensions":["shp"],"registered":false,"sort-priority":47},{"content-type":"application/x-shar","friendly":{"en":"Shell Archive"},"encoding":"8bit","extensions":["shar"],"registered":false,"sort-priority":47},{"content-type":"application/x-sharedlib","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-shockwave-flash","friendly":{"en":"Adobe Flash"},"encoding":"base64","extensions":["swf"],"registered":false,"sort-priority":47},{"content-type":"application/x-sibelius","encoding":"base64","extensions":["sib"],"registered":false,"sort-priority":47},{"content-type":"application/x-silverlight-app","friendly":{"en":"Microsoft Silverlight"},"encoding":"base64","extensions":["xap"],"registered":false,"sort-priority":47},{"content-type":"application/x-SLA","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-smarttech-notebook","encoding":"base64","extensions":["notebook"],"registered":false,"sort-priority":47},{"content-type":"application/x-snappy-framed","encoding":"base64","extensions":["sz"],"registered":false,"sort-priority":47},{"content-type":"application/x-solids","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-spectrum-tzx","encoding":"base64","extensions":["tzx"],"registered":false,"sort-priority":47},{"content-type":"application/x-spss","encoding":"base64","extensions":["sav","sbs","sps","spo","spp"],"registered":false,"sort-priority":43},{"content-type":"application/x-spss-sav","encoding":"base64","extensions":["sav"],"registered":false,"sort-priority":47},{"content-type":"application/x-sql","encoding":"base64","extensions":["sql"],"registered":false,"sort-priority":47},{"content-type":"application/x-sqlite3","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-staroffice-template","encoding":"base64","extensions":["vor"],"registered":false,"sort-priority":47},{"content-type":"application/x-stata-do","encoding":"base64","extensions":["do"],"registered":false,"sort-priority":47},{"content-type":"application/x-stata-dta","encoding":"base64","extensions":["dta"],"registered":false,"sort-priority":47},{"content-type":"application/x-STEP","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-stuffit","friendly":{"en":"Stuffit Archive"},"encoding":"base64","extensions":["sit"],"registered":false,"sort-priority":47},{"content-type":"application/x-stuffitx","friendly":{"en":"Stuffit Archive"},"encoding":"base64","extensions":["sitx"],"registered":false,"sort-priority":47},{"content-type":"application/x-subrip","encoding":"base64","extensions":["srt"],"registered":false,"sort-priority":47},{"content-type":"application/x-sv4cpio","friendly":{"en":"System V Release 4 CPIO Archive"},"encoding":"base64","extensions":["sv4cpio"],"registered":false,"sort-priority":47},{"content-type":"application/x-sv4crc","friendly":{"en":"System V Release 4 CPIO Checksum Data"},"encoding":"base64","extensions":["sv4crc"],"registered":false,"sort-priority":47},{"content-type":"application/x-t3vm-image","encoding":"base64","extensions":["t3"],"registered":false,"sort-priority":47},{"content-type":"application/x-tads","encoding":"base64","extensions":["gam"],"registered":false,"sort-priority":47},{"content-type":"application/x-tar","friendly":{"en":"Tar File (Tape Archive)"},"encoding":"base64","extensions":["tar"],"registered":false,"sort-priority":47},{"content-type":"application/x-tcl","friendly":{"en":"Tcl Script"},"encoding":"8bit","extensions":["tcl"],"registered":false,"sort-priority":47},{"content-type":"application/x-tex","friendly":{"en":"TeX"},"encoding":"8bit","extensions":["tex"],"registered":false,"sort-priority":47},{"content-type":"application/x-tex-tfm","friendly":{"en":"TeX Font Metric"},"encoding":"base64","extensions":["tfm"],"registered":false,"sort-priority":47},{"content-type":"application/x-tex-virtual-font","encoding":"base64","extensions":["vf"],"registered":false,"sort-priority":47},{"content-type":"application/x-texinfo","friendly":{"en":"GNU Texinfo Document"},"encoding":"8bit","extensions":["texinfo","texi"],"registered":false,"sort-priority":46},{"content-type":"application/x-texnicard","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tgif","encoding":"base64","extensions":["obj"],"registered":false,"sort-priority":47},{"content-type":"application/x-tika-iworks-protected","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-java-enterprise-archive","encoding":"base64","extensions":["ear"],"registered":false,"sort-priority":47},{"content-type":"application/x-tika-java-web-archive","encoding":"base64","extensions":["war"],"registered":false,"sort-priority":47},{"content-type":"application/x-tika-msoffice","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-msoffice-embedded","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-msworks-spreadsheet","encoding":"base64","extensions":["xlr"],"registered":false,"sort-priority":47},{"content-type":"application/x-tika-old-excel","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-ooxml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-ooxml-protected","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-staroffice","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-unix-dump","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tika-visio-ooxml","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-tmx","encoding":"base64","extensions":["tmx"],"registered":false,"sort-priority":47},{"content-type":"application/x-toolbook","encoding":"base64","extensions":["tbk"],"registered":false,"sort-priority":47},{"content-type":"application/x-touhou","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-troff","encoding":"base64","extensions":["t","tr","roff"],"obsolete":true,"use-instead":"text/troff","registered":false,"sort-priority":173},{"content-type":"application/x-troff-man","encoding":"8bit","extensions":["man"],"registered":false,"sort-priority":47},{"content-type":"application/x-troff-me","encoding":"base64","extensions":["me"],"registered":false,"sort-priority":47},{"content-type":"application/x-troff-ms","encoding":"base64","extensions":["ms"],"registered":false,"sort-priority":47},{"content-type":"application/x-u-star","encoding":"base64","obsolete":true,"use-instead":"application/x-ustar","registered":false,"sort-priority":176},{"content-type":"application/x-uc2-compressed","encoding":"base64","extensions":["uc2"],"registered":false,"sort-priority":47},{"content-type":"application/x-ustar","friendly":{"en":"Ustar (Uniform Standard Tape Archive)"},"encoding":"base64","extensions":["ustar"],"registered":false,"sort-priority":47},{"content-type":"application/x-vhd","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-vmdk","encoding":"base64","extensions":["vmdk"],"registered":false,"sort-priority":47},{"content-type":"application/x-VMSBACKUP","encoding":"base64","extensions":["bck"],"registered":false,"sort-priority":47},{"content-type":"application/x-vnd.datapackage+gz","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-vnd.datapackage+json","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-vnd.datapackage+zip","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-wacz","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-wais-source","friendly":{"en":"WAIS Source"},"encoding":"base64","extensions":["src"],"registered":false,"sort-priority":47},{"content-type":"application/x-web-app-manifest+json","encoding":"base64","extensions":["webapp"],"registered":false,"sort-priority":47},{"content-type":"application/x-webarchive","encoding":"base64","extensions":["webarchive"],"registered":false,"sort-priority":47},{"content-type":"application/x-Wingz","encoding":"base64","extensions":["wz","wkz"],"registered":false,"sort-priority":46},{"content-type":"application/x-word","encoding":"base64","extensions":["doc","dot"],"obsolete":true,"use-instead":"application/msword","registered":false,"sort-priority":174},{"content-type":"application/x-wordperfect","encoding":"base64","extensions":["wp"],"obsolete":true,"use-instead":"application/vnd.wordperfect","registered":false,"sort-priority":175},{"content-type":"application/x-wordperfect6.1","encoding":"base64","extensions":["wp6"],"registered":false,"sort-priority":47},{"content-type":"application/x-wordperfectd","encoding":"base64","extensions":["wpd"],"obsolete":true,"use-instead":"application/vnd.wordperfect","registered":false,"sort-priority":175},{"content-type":"application/x-www-form-urlencoded","encoding":"7bit","xrefs":{"person":["Anne_van_Kesteren","WHATWG"],"template":["application/x-www-form-urlencoded"]},"registered":true,"sort-priority":16},{"content-type":"application/x-x509-ca-cert","friendly":{"en":"X.509 Certificate"},"encoding":"base64","extensions":["crt","der"],"xrefs":{"rfc":["rfc8894"],"template":["application/x-x509-ca-cert"]},"registered":true,"sort-priority":14},{"content-type":"application/x-x509-ca-ra-cert","encoding":"base64","xrefs":{"rfc":["rfc8894"],"template":["application/x-x509-ca-ra-cert"]},"registered":true,"sort-priority":16},{"content-type":"application/x-x509-cert","encoding":"base64","extensions":["crt"],"registered":false,"sort-priority":47},{"content-type":"application/x-x509-dsa-parameters","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-x509-ec-parameters","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-x509-key","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-x509-next-ca-cert","encoding":"base64","xrefs":{"rfc":["rfc8894"],"template":["application/x-x509-next-ca-cert"]},"registered":true,"sort-priority":16},{"content-type":"application/x-xfig","friendly":{"en":"Xfig"},"encoding":"base64","extensions":["fig"],"registered":false,"sort-priority":47},{"content-type":"application/x-xliff+xml","encoding":"base64","extensions":["xlf","xliff"],"registered":false,"sort-priority":46},{"content-type":"application/x-xliff+zip","encoding":"base64","extensions":["xlz"],"registered":false,"sort-priority":47},{"content-type":"application/x-xmind","encoding":"base64","extensions":["xmind"],"registered":false,"sort-priority":47},{"content-type":"application/x-xpinstall","friendly":{"en":"XPInstall - Mozilla"},"encoding":"base64","extensions":["xpi"],"registered":false,"sort-priority":47},{"content-type":"application/x-xz","encoding":"base64","extensions":["xz"],"registered":false,"sort-priority":47},{"content-type":"application/x-zim","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"application/x-zip-compressed","friendly":{"en":"Zip Archive"},"encoding":"base64","extensions":["zip"],"registered":false,"sort-priority":47},{"content-type":"application/x-zmachine","encoding":"base64","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"],"registered":false,"sort-priority":40},{"content-type":"application/x-zoo","encoding":"base64","extensions":["zoo"],"registered":false,"sort-priority":47},{"content-type":"application/x400-bp","encoding":"base64","xrefs":{"rfc":["rfc1494"],"template":["application/x400-bp"]},"registered":true,"sort-priority":16},{"content-type":"application/x400.bp","encoding":"base64","obsolete":true,"use-instead":"application/x400-bp","registered":false,"sort-priority":176},{"content-type":"application/xacml+xml","encoding":"base64","xrefs":{"rfc":["rfc7061"],"template":["application/xacml+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xaml+xml","encoding":"base64","extensions":["xaml"],"registered":false,"sort-priority":47},{"content-type":"application/xcap-att+xml","encoding":"base64","xrefs":{"rfc":["rfc4825"],"template":["application/xcap-att+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcap-caps+xml","encoding":"base64","xrefs":{"rfc":["rfc4825"],"template":["application/xcap-caps+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcap-diff+xml","friendly":{"en":"XML Configuration Access Protocol - XCAP Diff"},"encoding":"base64","extensions":["xdf"],"xrefs":{"rfc":["rfc5874"],"template":["application/xcap-diff+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/xcap-el+xml","encoding":"base64","xrefs":{"rfc":["rfc4825"],"template":["application/xcap-el+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcap-error+xml","encoding":"base64","xrefs":{"rfc":["rfc4825"],"template":["application/xcap-error+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcap-ns+xml","encoding":"base64","xrefs":{"rfc":["rfc4825"],"template":["application/xcap-ns+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcon-conference-info+xml","encoding":"base64","xrefs":{"rfc":["rfc6502"],"template":["application/xcon-conference-info+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xcon-conference-info-diff+xml","encoding":"base64","xrefs":{"rfc":["rfc6502"],"template":["application/xcon-conference-info-diff+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xenc+xml","friendly":{"en":"XML Encryption Syntax and Processing"},"encoding":"base64","extensions":["xenc"],"xrefs":{"person":["Joseph_Reagle","XENC_WG"],"template":["application/xenc+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/xfdf","encoding":"base64","xrefs":{"person":["Betsy_Fanning","ISO-TC_171-SC_2"],"template":["application/xfdf"]},"registered":true,"sort-priority":16},{"content-type":"application/xhtml+xml","friendly":{"en":"XHTML - The Extensible HyperText Markup Language"},"encoding":"8bit","extensions":["xht","xhtml","xhtml2"],"xrefs":{"person":["Robin_Berjon","W3C"],"template":["application/xhtml+xml"]},"registered":true,"sort-priority":13},{"content-type":"application/xhtml-voice+xml","encoding":"base64","obsolete":true,"xrefs":{"draft":["draft-mccobb-xplusv-media-type"],"template":["application/xhtml-voice+xml"],"notes":["- OBSOLETE; no replacement given"]},"registered":true,"sort-priority":144},{"content-type":"application/xliff+xml","encoding":"base64","xrefs":{"person":["Chet_Ensign","OASIS"],"template":["application/xliff+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xml","friendly":{"en":"XML - Extensible Markup Language"},"encoding":"8bit","extensions":["xml","xsl","xsd"],"xrefs":{"rfc":["rfc7303"],"template":["application/xml"]},"registered":true,"sort-priority":13},{"content-type":"application/xml-dtd","friendly":{"en":"Document Type Definition"},"encoding":"8bit","extensions":["dtd"],"xrefs":{"rfc":["rfc7303"],"template":["application/xml-dtd"]},"registered":true,"sort-priority":15},{"content-type":"application/xml-external-parsed-entity","encoding":"base64","xrefs":{"rfc":["rfc7303"],"template":["application/xml-external-parsed-entity"]},"registered":true,"sort-priority":16},{"content-type":"application/xml-patch+xml","encoding":"base64","xrefs":{"rfc":["rfc7351"],"template":["application/xml-patch+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xmpp+xml","encoding":"base64","xrefs":{"rfc":["rfc3923"],"template":["application/xmpp+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/xop+xml","friendly":{"en":"XML-Binary Optimized Packaging"},"encoding":"base64","extensions":["xop"],"xrefs":{"person":["Mark_Nottingham"],"template":["application/xop+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/xproc+xml","encoding":"base64","extensions":["xpl"],"registered":false,"sort-priority":47},{"content-type":"application/xquery","encoding":"base64","extensions":["xq","xquery"],"registered":false,"sort-priority":46},{"content-type":"application/xslfo+xml","encoding":"base64","extensions":["xslfo","fo"],"registered":false,"sort-priority":46},{"content-type":"application/xslt+xml","friendly":{"en":"XML Transformations"},"encoding":"base64","extensions":["xslt"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration"],"template":["application/xslt+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/xspf+xml","friendly":{"en":"XSPF - XML Shareable Playlist Format"},"encoding":"base64","extensions":["xspf"],"registered":false,"sort-priority":47},{"content-type":"application/xv+xml","friendly":{"en":"MXML"},"encoding":"base64","extensions":["mxml","xhvml","xvm","xvml"],"xrefs":{"rfc":["rfc4374"],"template":["application/xv+xml"]},"registered":true,"sort-priority":12},{"content-type":"application/yaml","encoding":"base64","xrefs":{"uri":["https://yaml.org/spec/1.2.2/"],"rfc":["rfc9512"],"template":["application/yaml"]},"registered":true,"sort-priority":16},{"content-type":"application/yang","friendly":{"en":"YANG Data Modeling Language"},"encoding":"base64","extensions":["yang"],"xrefs":{"rfc":["rfc6020"],"template":["application/yang"]},"registered":true,"sort-priority":15},{"content-type":"application/yang-data+cbor","encoding":"base64","xrefs":{"rfc":["rfc9254"],"template":["application/yang-data+cbor"]},"registered":true,"sort-priority":16},{"content-type":"application/yang-data+json","encoding":"base64","xrefs":{"rfc":["rfc8040"],"template":["application/yang-data+json"]},"registered":true,"sort-priority":16},{"content-type":"application/yang-data+xml","encoding":"base64","xrefs":{"rfc":["rfc8040"],"template":["application/yang-data+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/yang-patch+json","encoding":"base64","xrefs":{"rfc":["rfc8072"],"template":["application/yang-patch+json"]},"registered":true,"sort-priority":16},{"content-type":"application/yang-patch+xml","encoding":"base64","xrefs":{"rfc":["rfc8072"],"template":["application/yang-patch+xml"]},"registered":true,"sort-priority":16},{"content-type":"application/yang-sid+json","encoding":"base64","xrefs":{"rfc":["rfc9595"],"template":["application/yang-sid+json"]},"registered":true,"sort-priority":16},{"content-type":"application/yin+xml","friendly":{"en":"YIN (YANG - XML)"},"encoding":"base64","extensions":["yin"],"xrefs":{"rfc":["rfc6020"],"template":["application/yin+xml"]},"registered":true,"sort-priority":15},{"content-type":"application/zip","friendly":{"en":"Zip Archive"},"encoding":"base64","extensions":["zip","zipx"],"xrefs":{"person":["Paul_Lindner"],"template":["application/zip"]},"registered":true,"sort-priority":14},{"content-type":"application/zlib","encoding":"base64","xrefs":{"rfc":["rfc6713"],"template":["application/zlib"]},"registered":true,"sort-priority":16},{"content-type":"application/zstd","encoding":"base64","extensions":["zst"],"xrefs":{"rfc":["rfc8878"],"template":["application/zstd"]},"registered":true,"sort-priority":15},{"content-type":"audio/1d-interleaved-parityfec","encoding":"base64","xrefs":{"rfc":["rfc6015"],"template":["audio/1d-interleaved-parityfec"]},"registered":true,"sort-priority":16},{"content-type":"audio/32kadpcm","encoding":"base64","xrefs":{"rfc":["rfc2421","rfc3802"],"template":["audio/32kadpcm"]},"registered":true,"sort-priority":16},{"content-type":"audio/3gpp","encoding":"base64","xrefs":{"rfc":["rfc3839","rfc6381"],"template":["audio/3gpp"]},"registered":true,"sort-priority":16},{"content-type":"audio/3gpp2","encoding":"base64","xrefs":{"rfc":["rfc4393","rfc6381"],"template":["audio/3gpp2"]},"registered":true,"sort-priority":16},{"content-type":"audio/aac","encoding":"base64","extensions":["aac"],"xrefs":{"person":["ISO-IEC_JTC_1","Max_Neuendorf"],"template":["audio/aac"]},"registered":true,"sort-priority":15},{"content-type":"audio/ac3","encoding":"base64","extensions":["ac3"],"xrefs":{"rfc":["rfc4184"],"template":["audio/ac3"]},"registered":true,"sort-priority":15},{"content-type":"audio/adpcm","friendly":{"en":"Adaptive differential pulse-code modulation"},"encoding":"base64","extensions":["adp"],"registered":false,"sort-priority":47},{"content-type":"audio/AMR","encoding":"base64","extensions":["amr"],"xrefs":{"rfc":["rfc4867"],"template":["audio/AMR"]},"registered":true,"sort-priority":15},{"content-type":"audio/AMR-WB","encoding":"base64","extensions":["awb"],"xrefs":{"rfc":["rfc4867"],"template":["audio/AMR-WB"]},"registered":true,"sort-priority":15},{"content-type":"audio/amr-wb+","encoding":"base64","xrefs":{"rfc":["rfc4352"],"template":["audio/amr-wb+"]},"registered":true,"sort-priority":16},{"content-type":"audio/aptx","encoding":"base64","xrefs":{"rfc":["rfc7310"],"template":["audio/aptx"]},"registered":true,"sort-priority":16},{"content-type":"audio/asc","encoding":"base64","xrefs":{"rfc":["rfc6295"],"template":["audio/asc"]},"registered":true,"sort-priority":16},{"content-type":"audio/ATRAC-ADVANCED-LOSSLESS","encoding":"base64","xrefs":{"rfc":["rfc5584"],"template":["audio/ATRAC-ADVANCED-LOSSLESS"]},"registered":true,"sort-priority":16},{"content-type":"audio/ATRAC-X","encoding":"base64","xrefs":{"rfc":["rfc5584"],"template":["audio/ATRAC-X"]},"registered":true,"sort-priority":16},{"content-type":"audio/ATRAC3","encoding":"base64","xrefs":{"rfc":["rfc5584"],"template":["audio/ATRAC3"]},"registered":true,"sort-priority":16},{"content-type":"audio/basic","friendly":{"en":"Sun Audio - Au file format"},"encoding":"base64","extensions":["au","snd"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["audio/basic"]},"registered":true,"sort-priority":14},{"content-type":"audio/BV16","encoding":"base64","xrefs":{"rfc":["rfc4298"],"template":["audio/BV16"]},"registered":true,"sort-priority":16},{"content-type":"audio/BV32","encoding":"base64","xrefs":{"rfc":["rfc4298"],"template":["audio/BV32"]},"registered":true,"sort-priority":16},{"content-type":"audio/clearmode","encoding":"base64","xrefs":{"rfc":["rfc4040"],"template":["audio/clearmode"]},"registered":true,"sort-priority":16},{"content-type":"audio/CN","encoding":"base64","xrefs":{"rfc":["rfc3389"],"template":["audio/CN"]},"registered":true,"sort-priority":16},{"content-type":"audio/DAT12","encoding":"base64","xrefs":{"rfc":["rfc3190"],"template":["audio/DAT12"]},"registered":true,"sort-priority":16},{"content-type":"audio/dls","encoding":"base64","xrefs":{"rfc":["rfc4613"],"template":["audio/dls"]},"registered":true,"sort-priority":16},{"content-type":"audio/dsr-es201108","encoding":"base64","xrefs":{"rfc":["rfc3557"],"template":["audio/dsr-es201108"]},"registered":true,"sort-priority":16},{"content-type":"audio/dsr-es202050","encoding":"base64","xrefs":{"rfc":["rfc4060"],"template":["audio/dsr-es202050"]},"registered":true,"sort-priority":16},{"content-type":"audio/dsr-es202211","encoding":"base64","xrefs":{"rfc":["rfc4060"],"template":["audio/dsr-es202211"]},"registered":true,"sort-priority":16},{"content-type":"audio/dsr-es202212","encoding":"base64","xrefs":{"rfc":["rfc4060"],"template":["audio/dsr-es202212"]},"registered":true,"sort-priority":16},{"content-type":"audio/DV","encoding":"base64","xrefs":{"rfc":["rfc6469"],"template":["audio/DV"]},"registered":true,"sort-priority":16},{"content-type":"audio/DVI4","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/DVI4"]},"registered":true,"sort-priority":16},{"content-type":"audio/eac3","encoding":"base64","xrefs":{"rfc":["rfc4598"],"template":["audio/eac3"]},"registered":true,"sort-priority":16},{"content-type":"audio/encaprtp","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["audio/encaprtp"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRC","encoding":"base64","extensions":["evc"],"xrefs":{"rfc":["rfc4788"],"template":["audio/EVRC"]},"registered":true,"sort-priority":15},{"content-type":"audio/EVRC-QCP","encoding":"base64","xrefs":{"rfc":["rfc3625"],"template":["audio/EVRC-QCP"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRC0","encoding":"base64","xrefs":{"rfc":["rfc4788"],"template":["audio/EVRC0"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRC1","encoding":"base64","xrefs":{"rfc":["rfc4788"],"template":["audio/EVRC1"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCB","encoding":"base64","xrefs":{"rfc":["rfc5188"],"template":["audio/EVRCB"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCB0","encoding":"base64","xrefs":{"rfc":["rfc5188"],"template":["audio/EVRCB0"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCB1","encoding":"base64","xrefs":{"rfc":["rfc4788"],"template":["audio/EVRCB1"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCNW","encoding":"base64","xrefs":{"rfc":["rfc6884"],"template":["audio/EVRCNW"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCNW0","encoding":"base64","xrefs":{"rfc":["rfc6884"],"template":["audio/EVRCNW0"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCNW1","encoding":"base64","xrefs":{"rfc":["rfc6884"],"template":["audio/EVRCNW1"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCWB","encoding":"base64","xrefs":{"rfc":["rfc5188"],"template":["audio/EVRCWB"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCWB0","encoding":"base64","xrefs":{"rfc":["rfc5188"],"template":["audio/EVRCWB0"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVRCWB1","encoding":"base64","xrefs":{"rfc":["rfc5188"],"template":["audio/EVRCWB1"]},"registered":true,"sort-priority":16},{"content-type":"audio/EVS","encoding":"base64","xrefs":{"person":["Kyunghun_Jung","_3GPP"],"template":["audio/EVS"]},"registered":true,"sort-priority":16},{"content-type":"audio/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["audio/example"]},"registered":true,"sort-priority":16},{"content-type":"audio/flac","encoding":"base64","extensions":["flac"],"xrefs":{"rfc":["rfc9639"],"template":["audio/flac"]},"registered":true,"sort-priority":15},{"content-type":"audio/flexfec","encoding":"base64","xrefs":{"rfc":["rfc8627"],"template":["audio/flexfec"]},"registered":true,"sort-priority":16},{"content-type":"audio/fwdred","encoding":"base64","xrefs":{"rfc":["rfc6354"],"template":["audio/fwdred"]},"registered":true,"sort-priority":16},{"content-type":"audio/G711-0","encoding":"base64","xrefs":{"rfc":["rfc7655"],"template":["audio/G711-0"]},"registered":true,"sort-priority":16},{"content-type":"audio/G719","encoding":"base64","xrefs":{"rfc":["rfc5404"],"rfc-errata":["3245"],"template":["audio/G719"]},"registered":true,"sort-priority":16},{"content-type":"audio/G722","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G722"]},"registered":true,"sort-priority":16},{"content-type":"audio/G7221","encoding":"base64","xrefs":{"rfc":["rfc5577"],"template":["audio/G7221"]},"registered":true,"sort-priority":16},{"content-type":"audio/G723","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G723"]},"registered":true,"sort-priority":16},{"content-type":"audio/G726-16","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G726-16"]},"registered":true,"sort-priority":16},{"content-type":"audio/G726-24","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G726-24"]},"registered":true,"sort-priority":16},{"content-type":"audio/G726-32","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G726-32"]},"registered":true,"sort-priority":16},{"content-type":"audio/G726-40","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G726-40"]},"registered":true,"sort-priority":16},{"content-type":"audio/G728","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G728"]},"registered":true,"sort-priority":16},{"content-type":"audio/G729","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G729"]},"registered":true,"sort-priority":16},{"content-type":"audio/G7291","encoding":"base64","xrefs":{"rfc":["rfc4749","rfc5459"],"template":["audio/G7291"]},"registered":true,"sort-priority":16},{"content-type":"audio/G729D","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G729D"]},"registered":true,"sort-priority":16},{"content-type":"audio/G729E","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/G729E"]},"registered":true,"sort-priority":16},{"content-type":"audio/GSM","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/GSM"]},"registered":true,"sort-priority":16},{"content-type":"audio/GSM-EFR","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/GSM-EFR"]},"registered":true,"sort-priority":16},{"content-type":"audio/GSM-HR-08","encoding":"base64","xrefs":{"rfc":["rfc5993"],"template":["audio/GSM-HR-08"]},"registered":true,"sort-priority":16},{"content-type":"audio/iLBC","encoding":"base64","xrefs":{"rfc":["rfc3952"],"template":["audio/iLBC"]},"registered":true,"sort-priority":16},{"content-type":"audio/ip-mr_v2.5","encoding":"base64","xrefs":{"rfc":["rfc6262"],"template":["audio/ip-mr_v2.5"]},"registered":true,"sort-priority":16},{"content-type":"audio/L16","encoding":"base64","extensions":["l16"],"xrefs":{"rfc":["rfc4856"],"template":["audio/L16"]},"registered":true,"sort-priority":15},{"content-type":"audio/L20","encoding":"base64","xrefs":{"rfc":["rfc3190"],"template":["audio/L20"]},"registered":true,"sort-priority":16},{"content-type":"audio/L24","encoding":"base64","xrefs":{"rfc":["rfc3190"],"template":["audio/L24"]},"registered":true,"sort-priority":16},{"content-type":"audio/L8","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/L8"]},"registered":true,"sort-priority":16},{"content-type":"audio/LPC","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/LPC"]},"registered":true,"sort-priority":16},{"content-type":"audio/matroska","encoding":"base64","extensions":["mka"],"xrefs":{"rfc":["rfc9559"],"template":["audio/matroska"]},"registered":true,"sort-priority":15},{"content-type":"audio/MELP","encoding":"base64","xrefs":{"rfc":["rfc8130"],"template":["audio/MELP"]},"registered":true,"sort-priority":16},{"content-type":"audio/MELP1200","encoding":"base64","xrefs":{"rfc":["rfc8130"],"template":["audio/MELP1200"]},"registered":true,"sort-priority":16},{"content-type":"audio/MELP2400","encoding":"base64","xrefs":{"rfc":["rfc8130"],"template":["audio/MELP2400"]},"registered":true,"sort-priority":16},{"content-type":"audio/MELP600","encoding":"base64","xrefs":{"rfc":["rfc8130"],"template":["audio/MELP600"]},"registered":true,"sort-priority":16},{"content-type":"audio/mhas","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","Ingo_Hofmann","Nils_Peters"],"template":["audio/mhas"]},"registered":true,"sort-priority":16},{"content-type":"audio/midi","friendly":{"en":"MIDI - Musical Instrument Digital Interface"},"encoding":"base64","extensions":["kar","mid","midi","rmi"],"registered":false,"sort-priority":44},{"content-type":"audio/midi-clip","encoding":"base64","xrefs":{"person":["Benjamin_Israel","MIDI_Association"],"template":["audio/midi-clip"]},"registered":true,"sort-priority":16},{"content-type":"audio/mobile-xmf","encoding":"base64","xrefs":{"rfc":["rfc4723"],"template":["audio/mobile-xmf"]},"registered":true,"sort-priority":16},{"content-type":"audio/mp4","friendly":{"en":"MPEG-4 Audio"},"encoding":"base64","extensions":["mp4","mpg4","f4a","f4b","mp4a","m4a","m4b"],"xrefs":{"rfc":["rfc4337","rfc6381"],"template":["audio/mp4"]},"registered":true,"sort-priority":9},{"content-type":"audio/MP4A-LATM","encoding":"base64","extensions":["m4a"],"xrefs":{"rfc":["rfc6416"],"template":["audio/MP4A-LATM"]},"registered":true,"sort-priority":15},{"content-type":"audio/MPA","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["audio/MPA"]},"registered":true,"sort-priority":16},{"content-type":"audio/mpa-robust","encoding":"base64","xrefs":{"rfc":["rfc5219"],"template":["audio/mpa-robust"]},"registered":true,"sort-priority":16},{"content-type":"audio/mpeg","friendly":{"en":"MPEG Audio"},"encoding":"base64","extensions":["mpga","mp2","mp3","m2a","m3a","mp2a"],"xrefs":{"rfc":["rfc3003"],"template":["audio/mpeg"]},"registered":true,"sort-priority":10},{"content-type":"audio/mpeg4-generic","encoding":"base64","xrefs":{"rfc":["rfc3640","rfc5691","rfc6295"],"template":["audio/mpeg4-generic"]},"registered":true,"sort-priority":16},{"content-type":"audio/ogg","friendly":{"en":"Ogg Audio"},"encoding":"base64","extensions":["oga","ogg","spx","opus"],"xrefs":{"rfc":["rfc5334","rfc7845"],"template":["audio/ogg"]},"registered":true,"sort-priority":12},{"content-type":"audio/opus","encoding":"base64","extensions":["opus"],"xrefs":{"rfc":["rfc7587"],"template":["audio/opus"]},"registered":true,"sort-priority":15},{"content-type":"audio/parityfec","encoding":"base64","xrefs":{"rfc":["rfc3009"],"template":["audio/parityfec"]},"registered":true,"sort-priority":16},{"content-type":"audio/PCMA","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/PCMA"]},"registered":true,"sort-priority":16},{"content-type":"audio/PCMA-WB","encoding":"base64","xrefs":{"rfc":["rfc5391"],"template":["audio/PCMA-WB"]},"registered":true,"sort-priority":16},{"content-type":"audio/PCMU","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/PCMU"]},"registered":true,"sort-priority":16},{"content-type":"audio/PCMU-WB","encoding":"base64","xrefs":{"rfc":["rfc5391"],"template":["audio/PCMU-WB"]},"registered":true,"sort-priority":16},{"content-type":"audio/prs.sid","encoding":"base64","xrefs":{"person":["Linus_Walleij"],"template":["audio/prs.sid"]},"registered":true,"sort-priority":16},{"content-type":"audio/QCELP","encoding":"base64","xrefs":{"rfc":["rfc3555","rfc3625"],"template":["audio/QCELP"]},"registered":true,"sort-priority":16},{"content-type":"audio/raptorfec","encoding":"base64","xrefs":{"rfc":["rfc6682"],"template":["audio/raptorfec"]},"registered":true,"sort-priority":16},{"content-type":"audio/RED","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["audio/RED"]},"registered":true,"sort-priority":16},{"content-type":"audio/rtp-enc-aescm128","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["audio/rtp-enc-aescm128"]},"registered":true,"sort-priority":16},{"content-type":"audio/rtp-midi","encoding":"base64","xrefs":{"rfc":["rfc6295"],"template":["audio/rtp-midi"]},"registered":true,"sort-priority":16},{"content-type":"audio/rtploopback","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["audio/rtploopback"]},"registered":true,"sort-priority":16},{"content-type":"audio/rtx","encoding":"base64","xrefs":{"rfc":["rfc4588"],"template":["audio/rtx"]},"registered":true,"sort-priority":16},{"content-type":"audio/s3m","encoding":"base64","extensions":["s3m"],"registered":false,"sort-priority":47},{"content-type":"audio/scip","encoding":"base64","xrefs":{"rfc":["rfc9607"],"template":["audio/scip"]},"registered":true,"sort-priority":16},{"content-type":"audio/silk","encoding":"base64","extensions":["sil"],"registered":false,"sort-priority":47},{"content-type":"audio/SMV","encoding":"base64","extensions":["smv"],"xrefs":{"rfc":["rfc3558"],"template":["audio/SMV"]},"registered":true,"sort-priority":15},{"content-type":"audio/SMV-QCP","encoding":"base64","xrefs":{"rfc":["rfc3625"],"template":["audio/SMV-QCP"]},"registered":true,"sort-priority":16},{"content-type":"audio/SMV0","encoding":"base64","xrefs":{"rfc":["rfc3558"],"template":["audio/SMV0"]},"registered":true,"sort-priority":16},{"content-type":"audio/sofa","encoding":"base64","xrefs":{"person":["AES","Piotr_Majdak"],"template":["audio/sofa"]},"registered":true,"sort-priority":16},{"content-type":"audio/sp-midi","encoding":"base64","xrefs":{"person":["Athan_Billias","MIDI_Association"],"template":["audio/sp-midi"]},"registered":true,"sort-priority":16},{"content-type":"audio/speex","encoding":"base64","extensions":["spx"],"xrefs":{"rfc":["rfc5574"],"template":["audio/speex"]},"registered":true,"sort-priority":15},{"content-type":"audio/t140c","encoding":"base64","xrefs":{"rfc":["rfc4351"],"template":["audio/t140c"]},"registered":true,"sort-priority":16},{"content-type":"audio/t38","encoding":"base64","xrefs":{"rfc":["rfc4612"],"template":["audio/t38"]},"registered":true,"sort-priority":16},{"content-type":"audio/telephone-event","encoding":"base64","xrefs":{"rfc":["rfc4733"],"template":["audio/telephone-event"]},"registered":true,"sort-priority":16},{"content-type":"audio/TETRA_ACELP","encoding":"base64","xrefs":{"person":["ETSI","Miguel_Angel_Reina_Ortega"],"template":["audio/TETRA_ACELP"]},"registered":true,"sort-priority":16},{"content-type":"audio/TETRA_ACELP_BB","encoding":"base64","xrefs":{"person":["ETSI","Miguel_Angel_Reina_Ortega"],"template":["audio/TETRA_ACELP_BB"]},"registered":true,"sort-priority":16},{"content-type":"audio/tone","encoding":"base64","xrefs":{"rfc":["rfc4733"],"template":["audio/tone"]},"registered":true,"sort-priority":16},{"content-type":"audio/TSVCIS","encoding":"base64","xrefs":{"rfc":["rfc8817"],"template":["audio/TSVCIS"]},"registered":true,"sort-priority":16},{"content-type":"audio/UEMCLIP","encoding":"base64","xrefs":{"rfc":["rfc5686"],"template":["audio/UEMCLIP"]},"registered":true,"sort-priority":16},{"content-type":"audio/ulpfec","encoding":"base64","xrefs":{"rfc":["rfc5109"],"template":["audio/ulpfec"]},"registered":true,"sort-priority":16},{"content-type":"audio/usac","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","Max_Neuendorf"],"template":["audio/usac"]},"registered":true,"sort-priority":16},{"content-type":"audio/VDVI","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["audio/VDVI"]},"registered":true,"sort-priority":16},{"content-type":"audio/VMR-WB","encoding":"base64","xrefs":{"rfc":["rfc4348","rfc4424"],"template":["audio/VMR-WB"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.3gpp.iufp","encoding":"base64","xrefs":{"person":["Thomas_Belling"],"template":["audio/vnd.3gpp.iufp"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.4SB","encoding":"base64","xrefs":{"person":["Serge_De_Jaham"],"template":["audio/vnd.4SB"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.adobe.soundbooth","encoding":"base64","extensions":["asnd"],"registered":false,"sort-priority":47},{"content-type":"audio/vnd.audiokoz","encoding":"base64","xrefs":{"person":["Vicki_DeBarros"],"template":["audio/vnd.audiokoz"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.blockfact.facta","encoding":"base64","xrefs":{"person":["Egbert_von_Frankenberg"],"template":["audio/vnd.blockfact.facta"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.CELP","encoding":"base64","xrefs":{"person":["Serge_De_Jaham"],"template":["audio/vnd.CELP"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.cisco.nse","encoding":"base64","xrefs":{"person":["Rajesh_Kumar"],"template":["audio/vnd.cisco.nse"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.cmles.radio-events","encoding":"base64","xrefs":{"person":["Jean-Philippe_Goulet"],"template":["audio/vnd.cmles.radio-events"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.cns.anp1","encoding":"base64","xrefs":{"person":["Ann_McLaughlin"],"template":["audio/vnd.cns.anp1"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.cns.inf1","encoding":"base64","xrefs":{"person":["Ann_McLaughlin"],"template":["audio/vnd.cns.inf1"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dece.audio","friendly":{"en":"DECE Audio"},"encoding":"base64","extensions":["uva","uvva"],"xrefs":{"person":["Michael_A_Dolan"],"template":["audio/vnd.dece.audio"]},"registered":true,"sort-priority":14},{"content-type":"audio/vnd.digital-winds","friendly":{"en":"Digital Winds Music"},"encoding":"7bit","extensions":["eol"],"xrefs":{"person":["Armands_Strazds"],"template":["audio/vnd.digital-winds"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.dlna.adts","encoding":"base64","xrefs":{"person":["Edwin_Heredia"],"template":["audio/vnd.dlna.adts"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.heaac.1","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.heaac.1"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.heaac.2","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.heaac.2"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.mlp","encoding":"base64","xrefs":{"person":["Mike_Ward"],"template":["audio/vnd.dolby.mlp"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.mps","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.mps"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.pl2","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.pl2"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.pl2x","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.pl2x"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.pl2z","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.pl2z"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dolby.pulse.1","encoding":"base64","xrefs":{"person":["Steve_Hattersley"],"template":["audio/vnd.dolby.pulse.1"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dra","friendly":{"en":"DRA Audio"},"encoding":"base64","extensions":["dra"],"xrefs":{"person":["Jiang_Tian"],"template":["audio/vnd.dra"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.dts","friendly":{"en":"DTS Audio"},"encoding":"base64","extensions":["dts"],"xrefs":{"person":["William_Zou"],"template":["audio/vnd.dts"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.dts.hd","friendly":{"en":"DTS High Definition Audio"},"encoding":"base64","extensions":["dtshd"],"xrefs":{"person":["William_Zou"],"template":["audio/vnd.dts.hd"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.dts.uhd","encoding":"base64","xrefs":{"person":["Phillip_Maness"],"template":["audio/vnd.dts.uhd"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.dvb.file","encoding":"base64","xrefs":{"person":["Peter_Siebert"],"template":["audio/vnd.dvb.file"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.everad.plj","encoding":"base64","extensions":["plj"],"xrefs":{"person":["Shay_Cicelsky"],"template":["audio/vnd.everad.plj"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.hns.audio","encoding":"base64","xrefs":{"person":["Swaminathan"],"template":["audio/vnd.hns.audio"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.lucent.voice","friendly":{"en":"Lucent Voice"},"encoding":"base64","extensions":["lvp"],"xrefs":{"person":["Greg_Vaudreuil"],"template":["audio/vnd.lucent.voice"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.ms-playready.media.pya","friendly":{"en":"Microsoft PlayReady Ecosystem"},"encoding":"base64","extensions":["pya"],"xrefs":{"person":["Steve_DiAcetis"],"template":["audio/vnd.ms-playready.media.pya"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.nokia.mobile-xmf","encoding":"base64","extensions":["mxmf"],"xrefs":{"person":["Nokia"],"template":["audio/vnd.nokia.mobile-xmf"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.nortel.vbk","encoding":"base64","extensions":["vbk"],"xrefs":{"person":["Glenn_Parsons"],"template":["audio/vnd.nortel.vbk"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.nuera.ecelp4800","friendly":{"en":"Nuera ECELP 4800"},"encoding":"base64","extensions":["ecelp4800"],"xrefs":{"person":["Michael_Fox"],"template":["audio/vnd.nuera.ecelp4800"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.nuera.ecelp7470","friendly":{"en":"Nuera ECELP 7470"},"encoding":"base64","extensions":["ecelp7470"],"xrefs":{"person":["Michael_Fox"],"template":["audio/vnd.nuera.ecelp7470"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.nuera.ecelp9600","friendly":{"en":"Nuera ECELP 9600"},"encoding":"base64","extensions":["ecelp9600"],"xrefs":{"person":["Michael_Fox"],"template":["audio/vnd.nuera.ecelp9600"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.octel.sbc","encoding":"base64","xrefs":{"person":["Greg_Vaudreuil"],"template":["audio/vnd.octel.sbc"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.presonus.multitrack","encoding":"base64","xrefs":{"person":["Matthias_Juwan"],"template":["audio/vnd.presonus.multitrack"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.qcelp","encoding":"base64","extensions":["qcp"],"obsolete":true,"use-instead":"audio/qcelp","xrefs":{"rfc":["rfc3625"],"template":["audio/vnd.qcelp"],"notes":["- DEPRECATED in favor of audio/qcelp"]},"registered":true,"sort-priority":143},{"content-type":"audio/vnd.rhetorex.32kadpcm","encoding":"base64","xrefs":{"person":["Greg_Vaudreuil"],"template":["audio/vnd.rhetorex.32kadpcm"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.rip","friendly":{"en":"Hit'n'Mix"},"encoding":"base64","extensions":["rip"],"xrefs":{"person":["Martin_Dawe"],"template":["audio/vnd.rip"]},"registered":true,"sort-priority":15},{"content-type":"audio/vnd.sealedmedia.softseal.mpeg","encoding":"base64","extensions":["smp3","smp","s1m"],"xrefs":{"person":["David_Petersen"],"template":["audio/vnd.sealedmedia.softseal.mpeg"]},"registered":true,"sort-priority":13},{"content-type":"audio/vnd.vmx.cvsd","encoding":"base64","xrefs":{"person":["Greg_Vaudreuil"],"template":["audio/vnd.vmx.cvsd"]},"registered":true,"sort-priority":16},{"content-type":"audio/vnd.wave","encoding":"base64","extensions":["wav"],"registered":false,"sort-priority":47},{"content-type":"audio/vorbis","encoding":"base64","extensions":["ogg"],"xrefs":{"rfc":["rfc5215"],"template":["audio/vorbis"]},"registered":true,"sort-priority":15},{"content-type":"audio/vorbis-config","encoding":"base64","xrefs":{"rfc":["rfc5215"],"template":["audio/vorbis-config"]},"registered":true,"sort-priority":16},{"content-type":"audio/wav","friendly":{"en":"Waveform Audio File Format (WAV)"},"encoding":"base64","extensions":["wav"],"registered":false,"sort-priority":47},{"content-type":"audio/webm","friendly":{"en":"Open Web Media Project - Audio"},"encoding":"base64","extensions":["weba","webm"],"registered":false,"sort-priority":46},{"content-type":"audio/x-aac","friendly":{"en":"Advanced Audio Coding (AAC)"},"encoding":"base64","extensions":["aac"],"obsolete":true,"use-instead":"audio/aac","registered":false,"sort-priority":175},{"content-type":"audio/x-adpcm","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-aiff","friendly":{"en":"Audio Interchange File Format"},"encoding":"base64","extensions":["aif","aifc","aiff"],"registered":false,"sort-priority":45},{"content-type":"audio/x-caf","encoding":"base64","extensions":["caf"],"registered":false,"sort-priority":47},{"content-type":"audio/x-dec-adpcm","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-dec-basic","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-flac","encoding":"base64","extensions":["flac"],"obsolete":true,"use-instead":"audio/flac","registered":false,"sort-priority":175},{"content-type":"audio/x-m4a","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-matroska","encoding":"base64","extensions":["mka"],"obsolete":true,"use-instead":"audio/matroska","registered":false,"sort-priority":175},{"content-type":"audio/x-midi","encoding":"base64","extensions":["mid","midi","kar"],"registered":false,"sort-priority":45},{"content-type":"audio/x-mod","encoding":"base64","extensions":["mod"],"registered":false,"sort-priority":47},{"content-type":"audio/x-mpegurl","friendly":{"en":"M3U (Multimedia Playlist)"},"encoding":"base64","extensions":["m3u"],"registered":false,"sort-priority":47},{"content-type":"audio/x-ms-wax","friendly":{"en":"Microsoft Windows Media Audio Redirector"},"encoding":"base64","extensions":["wax"],"registered":false,"sort-priority":47},{"content-type":"audio/x-ms-wma","friendly":{"en":"Microsoft Windows Media Audio"},"encoding":"base64","extensions":["wma"],"registered":false,"sort-priority":47},{"content-type":"audio/x-ms-wmv","encoding":"base64","extensions":["wmv"],"registered":false,"sort-priority":47},{"content-type":"audio/x-oggflac","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-oggpcm","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"audio/x-pn-realaudio","friendly":{"en":"Real Audio Sound"},"encoding":"base64","extensions":["ra","ram"],"registered":false,"sort-priority":46},{"content-type":"audio/x-pn-realaudio-plugin","friendly":{"en":"Real Audio Sound"},"encoding":"base64","extensions":["rmp","rpm"],"registered":false,"sort-priority":46},{"content-type":"audio/x-psf","encoding":"base64","extensions":["psf1","psflib","minipsf","minipsf1","gslib","minigsf"],"registered":false,"sort-priority":42},{"content-type":"audio/x-realaudio","encoding":"base64","extensions":["ra"],"registered":false,"sort-priority":47},{"content-type":"audio/x-sap","encoding":"base64","extensions":["sap"],"registered":false,"sort-priority":47},{"content-type":"audio/x-wav","friendly":{"en":"Waveform Audio File Format (WAV)"},"encoding":"base64","extensions":["wav"],"registered":false,"sort-priority":47},{"content-type":"audio/xm","encoding":"base64","extensions":["xm"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-cdx","friendly":{"en":"ChemDraw eXchange file"},"encoding":"base64","extensions":["cdx"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-cif","friendly":{"en":"Crystallographic Interchange Format"},"encoding":"base64","extensions":["cif"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-cmdf","friendly":{"en":"CrystalMaker Data Format"},"encoding":"base64","extensions":["cmdf"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-cml","friendly":{"en":"Chemical Markup Language"},"encoding":"base64","extensions":["cml"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-csml","friendly":{"en":"Chemical Style Markup Language"},"encoding":"base64","extensions":["csml"],"registered":false,"sort-priority":47},{"content-type":"chemical/x-pdb","encoding":"base64","extensions":["pdb"],"obsolete":true,"use-instead":"x-chemical/x-pdb","registered":false,"sort-priority":175},{"content-type":"chemical/x-xyz","friendly":{"en":"XYZ File Format"},"encoding":"base64","extensions":["xyz"],"obsolete":true,"use-instead":"x-chemical/x-xyz","registered":false,"sort-priority":175},{"content-type":"drawing/dwf","encoding":"base64","extensions":["dwf"],"obsolete":true,"use-instead":"x-drawing/dwf","registered":false,"sort-priority":175},{"content-type":"font/collection","encoding":"base64","extensions":["ttc"],"xrefs":{"rfc":["rfc8081"],"template":["font/collection"]},"registered":true,"sort-priority":15},{"content-type":"font/otf","encoding":"base64","extensions":["otf"],"xrefs":{"rfc":["rfc8081"],"template":["font/otf"]},"registered":true,"sort-priority":15},{"content-type":"font/sfnt","encoding":"base64","xrefs":{"rfc":["rfc8081"],"template":["font/sfnt"]},"registered":true,"sort-priority":16},{"content-type":"font/ttf","encoding":"base64","extensions":["ttf"],"xrefs":{"rfc":["rfc8081"],"template":["font/ttf"]},"registered":true,"sort-priority":15},{"content-type":"font/woff","encoding":"base64","extensions":["woff"],"xrefs":{"rfc":["rfc8081"],"template":["font/woff"]},"registered":true,"sort-priority":15},{"content-type":"font/woff2","encoding":"base64","extensions":["woff2"],"xrefs":{"rfc":["rfc8081"],"template":["font/woff2"]},"registered":true,"sort-priority":15},{"content-type":"haptics/hjif","encoding":"base64","xrefs":{"rfc":["rfc9695"],"template":["haptics/hjif"]},"registered":true,"sort-priority":16},{"content-type":"haptics/hmpg","encoding":"base64","xrefs":{"rfc":["rfc9695"],"template":["haptics/hmpg"]},"registered":true,"sort-priority":16},{"content-type":"haptics/ivs","encoding":"base64","xrefs":{"rfc":["rfc9695"],"template":["haptics/ivs"]},"registered":true,"sort-priority":16},{"content-type":"image/aces","encoding":"base64","extensions":["exr"],"xrefs":{"person":["Howard_Lukk","SMPTE"],"template":["image/aces"]},"registered":true,"sort-priority":15},{"content-type":"image/apng","encoding":"base64","xrefs":{"person":["W3C","W3C_PNG_WG"],"template":["image/apng"]},"registered":true,"sort-priority":16},{"content-type":"image/avci","encoding":"base64","xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/avci"]},"registered":true,"sort-priority":16},{"content-type":"image/avcs","encoding":"base64","xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/avcs"]},"registered":true,"sort-priority":16},{"content-type":"image/avif","encoding":"base64","extensions":["avif"],"xrefs":{"person":["Alliance_for_Open_Media","Cyril_Concolato"],"template":["image/avif"]},"registered":true,"sort-priority":15},{"content-type":"image/bmp","friendly":{"en":"Bitmap Image File"},"encoding":"base64","extensions":["bmp","dib"],"xrefs":{"rfc":["rfc7903"],"template":["image/bmp"]},"registered":true,"sort-priority":14},{"content-type":"image/cgm","friendly":{"en":"Computer Graphics Metafile"},"encoding":"base64","extensions":["cgm"],"xrefs":{"person":["Alan_Francis"],"template":["image/cgm"]},"registered":true,"sort-priority":15},{"content-type":"image/cmu-raster","encoding":"base64","obsolete":true,"use-instead":"image/x-cmu-raster","registered":false,"sort-priority":176},{"content-type":"image/dicom-rle","encoding":"base64","xrefs":{"person":["DICOM_Standard_Committee","David_Clunie"],"template":["image/dicom-rle"]},"registered":true,"sort-priority":16},{"content-type":"image/dpx","encoding":"base64","xrefs":{"person":["SMPTE","SMPTE_Director_of_Standards_Development"],"template":["image/dpx"]},"registered":true,"sort-priority":16},{"content-type":"image/emf","encoding":"base64","extensions":["emf"],"xrefs":{"rfc":["rfc7903"],"template":["image/emf"]},"registered":true,"sort-priority":15},{"content-type":"image/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["image/example"]},"registered":true,"sort-priority":16},{"content-type":"image/fits","encoding":"base64","xrefs":{"rfc":["rfc4047"],"template":["image/fits"]},"registered":true,"sort-priority":16},{"content-type":"image/g3fax","friendly":{"en":"G3 Fax Image"},"encoding":"base64","extensions":["g3"],"xrefs":{"rfc":["rfc1494"],"template":["image/g3fax"]},"registered":true,"sort-priority":15},{"content-type":"image/gif","friendly":{"en":"Graphics Interchange Format"},"encoding":"base64","extensions":["gif"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["image/gif"]},"registered":true,"sort-priority":15},{"content-type":"image/heic","encoding":"base64","extensions":["heic","hif"],"xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/heic"]},"registered":true,"sort-priority":14},{"content-type":"image/heic-sequence","encoding":"base64","extensions":["heics","hif"],"xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/heic-sequence"]},"registered":true,"sort-priority":14},{"content-type":"image/heif","encoding":"base64","extensions":["heif","hif"],"xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/heif"]},"registered":true,"sort-priority":14},{"content-type":"image/heif-sequence","encoding":"base64","extensions":["heifs","hif"],"xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["image/heif-sequence"]},"registered":true,"sort-priority":14},{"content-type":"image/hej2k","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/hej2k"]},"registered":true,"sort-priority":16},{"content-type":"image/hsj2","encoding":"base64","obsolete":true,"xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/hsj2"],"notes":["(OBSOLETE)"]},"registered":true,"sort-priority":144},{"content-type":"image/icns","encoding":"base64","extensions":["icns"],"registered":false,"sort-priority":47},{"content-type":"image/ief","friendly":{"en":"Image Exchange Format"},"encoding":"base64","extensions":["ief"],"xrefs":{"rfc":["rfc1314"],"template":["image/ief"]},"registered":true,"sort-priority":15},{"content-type":"image/j2c","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ISO-IEC_JTC_1_SC_29_WG_1","ITU-T"],"template":["image/j2c"]},"registered":true,"sort-priority":16},{"content-type":"image/j2is","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1-SC_29-WG_1_Convenor"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"image/jaii","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1_SC_29_WG_1","Ye-Kui_Wang"],"template":["image/jaii"]},"registered":true,"sort-priority":16},{"content-type":"image/jais","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1_SC_29_WG_1","Ye-Kui_Wang"],"template":["image/jais"]},"registered":true,"sort-priority":16},{"content-type":"image/jls","encoding":"base64","xrefs":{"person":["DICOM_Standard_Committee","David_Clunie"],"template":["image/jls"]},"registered":true,"sort-priority":16},{"content-type":"image/jp2","encoding":"base64","extensions":["jp2","jpg2"],"xrefs":{"rfc":["rfc3745"],"template":["image/jp2"]},"registered":true,"sort-priority":14},{"content-type":"image/jpeg","friendly":{"en":"JPEG Image"},"encoding":"base64","extensions":["jpeg","jpg","jpe","jfif","jif","jfi"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["image/jpeg"]},"registered":true,"sort-priority":10},{"content-type":"image/jph","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/jph"]},"registered":true,"sort-priority":16},{"content-type":"image/jphc","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/jphc"]},"registered":true,"sort-priority":16},{"content-type":"image/jpm","encoding":"base64","extensions":["jpm","jpgm"],"xrefs":{"rfc":["rfc3745"],"template":["image/jpm"]},"registered":true,"sort-priority":14},{"content-type":"image/jpx","encoding":"base64","extensions":["jpx","jpf"],"xrefs":{"rfc":["rfc3745"],"person":["ISO-IEC_JTC_1_SC_29_WG_1"],"template":["image/jpx"]},"registered":true,"sort-priority":14},{"content-type":"image/jxl","encoding":"base64","extensions":["jxl"],"xrefs":{"person":["ISO-IEC_JTC_1","ISO-IEC_JTC_1_SC_29_WG_1"],"template":["image/jxl"]},"registered":true,"sort-priority":15},{"content-type":"image/jxr","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/jxr"]},"registered":true,"sort-priority":16},{"content-type":"image/jxrA","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/jxrA"]},"registered":true,"sort-priority":16},{"content-type":"image/jxrS","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1","ITU-T"],"template":["image/jxrS"]},"registered":true,"sort-priority":16},{"content-type":"image/jxs","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1"],"template":["image/jxs"]},"registered":true,"sort-priority":16},{"content-type":"image/jxsc","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1"],"template":["image/jxsc"]},"registered":true,"sort-priority":16},{"content-type":"image/jxsi","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1"],"template":["image/jxsi"]},"registered":true,"sort-priority":16},{"content-type":"image/jxss","encoding":"base64","xrefs":{"person":["ISO-IEC_JTC_1"],"template":["image/jxss"]},"registered":true,"sort-priority":16},{"content-type":"image/ktx","friendly":{"en":"OpenGL Textures (KTX)"},"encoding":"base64","extensions":["ktx"],"xrefs":{"person":["Khronos","Mark_Callow"],"template":["image/ktx"]},"registered":true,"sort-priority":15},{"content-type":"image/ktx2","encoding":"base64","xrefs":{"person":["Khronos","Mark_Callow"],"template":["image/ktx2"]},"registered":true,"sort-priority":16},{"content-type":"image/naplps","encoding":"base64","xrefs":{"person":["Ilya_Ferber"],"template":["image/naplps"]},"registered":true,"sort-priority":16},{"content-type":"image/nitf","encoding":"base64","extensions":["ntf","nitf"],"registered":false,"sort-priority":46},{"content-type":"image/pdc","encoding":"base64","obsolete":true,"xrefs":{"person":["Pierre-Anthony_Lemieux"]},"registered":true,"sort-priority":144},{"content-type":"image/pjpeg","docs":"Fixes a bug with IE6 and progressive JPEGs","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"image/png","friendly":{"en":"Portable Network Graphics (PNG)"},"encoding":"base64","extensions":["png"],"xrefs":{"person":["PNG_WG","W3C"],"uri":["https://www.w3.org/TR/PNG/"],"template":["image/png"]},"registered":true,"sort-priority":15},{"content-type":"image/prs.btif","friendly":{"en":"BTIF"},"encoding":"base64","extensions":["btif"],"xrefs":{"person":["Ben_Simon"],"template":["image/prs.btif"]},"registered":true,"sort-priority":15},{"content-type":"image/prs.pti","encoding":"base64","xrefs":{"person":["Juern_Laun"],"template":["image/prs.pti"]},"registered":true,"sort-priority":16},{"content-type":"image/pwg-raster","encoding":"base64","xrefs":{"person":["Michael_Sweet"],"template":["image/pwg-raster"]},"registered":true,"sort-priority":16},{"content-type":"image/sgi","encoding":"base64","extensions":["sgi"],"registered":false,"sort-priority":47},{"content-type":"image/svg+xml","friendly":{"en":"Scalable Vector Graphics (SVG)"},"encoding":"8bit","extensions":["svg","svgz"],"xrefs":{"person":["W3C"],"uri":["http://www.w3.org/TR/SVG/mimereg.html"],"template":["image/svg+xml"]},"registered":true,"sort-priority":14},{"content-type":"image/t38","encoding":"base64","xrefs":{"rfc":["rfc3362"],"template":["image/t38"]},"registered":true,"sort-priority":16},{"content-type":"image/targa","encoding":"base64","extensions":["tga"],"obsolete":true,"use-instead":"image/x-targa","registered":false,"sort-priority":175},{"content-type":"image/tiff","friendly":{"en":"Tagged Image File Format"},"encoding":"base64","extensions":["tiff","tif"],"xrefs":{"rfc":["rfc3302"],"template":["image/tiff"]},"registered":true,"sort-priority":14},{"content-type":"image/tiff-fx","encoding":"base64","xrefs":{"rfc":["rfc3950"],"template":["image/tiff-fx"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.adobe.photoshop","friendly":{"en":"Photoshop Document"},"encoding":"base64","extensions":["psd"],"xrefs":{"person":["Kim_Scarborough"],"template":["image/vnd.adobe.photoshop"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.adobe.premiere","encoding":"base64","extensions":["ppj"],"registered":false,"sort-priority":47},{"content-type":"image/vnd.airzip.accelerator.azv","encoding":"base64","xrefs":{"person":["Gary_Clueit"],"template":["image/vnd.airzip.accelerator.azv"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.blockfact.facti","encoding":"base64","xrefs":{"person":["Egbert_von_Frankenberg"],"template":["image/vnd.blockfact.facti"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.clip","encoding":"base64","xrefs":{"person":["Ryo_Inaba"],"template":["image/vnd.clip"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.cns.inf2","encoding":"base64","xrefs":{"person":["Ann_McLaughlin"],"template":["image/vnd.cns.inf2"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.dece.graphic","friendly":{"en":"DECE Graphic"},"encoding":"base64","extensions":["uvg","uvi","uvvg","uvvi"],"xrefs":{"person":["Michael_A_Dolan"],"template":["image/vnd.dece.graphic"]},"registered":true,"sort-priority":12},{"content-type":"image/vnd.dgn","encoding":"base64","extensions":["dgn","dgnlib","cel"],"obsolete":true,"use-instead":"image/x-vnd.dgn","registered":false,"sort-priority":173},{"content-type":"image/vnd.djvu","friendly":{"en":"DjVu"},"encoding":"base64","extensions":["djvu","djv"],"xrefs":{"person":["Leon_Bottou"],"template":["image/vnd.djvu"]},"registered":true,"sort-priority":14},{"content-type":"image/vnd.dvb.subtitle","friendly":{"en":"Close Captioning - Subtitle"},"encoding":"base64","extensions":["sub"],"xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["image/vnd.dvb.subtitle"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.dwg","friendly":{"en":"DWG Drawing"},"encoding":"base64","extensions":["dwg"],"xrefs":{"person":["Jodi_Moline"],"template":["image/vnd.dwg"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.dxb","encoding":"base64","extensions":["dxb"],"registered":false,"sort-priority":47},{"content-type":"image/vnd.dxf","friendly":{"en":"AutoCAD DXF"},"encoding":"base64","extensions":["dxf"],"xrefs":{"person":["Jodi_Moline"],"template":["image/vnd.dxf"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.fastbidsheet","friendly":{"en":"FastBid Sheet"},"encoding":"base64","extensions":["fbs"],"xrefs":{"person":["Scott_Becker"],"template":["image/vnd.fastbidsheet"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.fpx","friendly":{"en":"FlashPix"},"encoding":"base64","extensions":["fpx"],"xrefs":{"person":["Marc_Douglas_Spencer"],"template":["image/vnd.fpx"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.fst","friendly":{"en":"FAST Search & Transfer ASA"},"encoding":"base64","extensions":["fst"],"xrefs":{"person":["Arild_Fuldseth"],"template":["image/vnd.fst"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.fujixerox.edmics-mmr","friendly":{"en":"EDMICS 2000"},"encoding":"base64","extensions":["mmr"],"xrefs":{"person":["Masanori_Onda"],"template":["image/vnd.fujixerox.edmics-mmr"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.fujixerox.edmics-rlc","friendly":{"en":"EDMICS 2000"},"encoding":"base64","extensions":["rlc"],"xrefs":{"person":["Masanori_Onda"],"template":["image/vnd.fujixerox.edmics-rlc"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.globalgraphics.pgb","encoding":"base64","extensions":["pgb"],"xrefs":{"person":["Martin_Bailey"],"template":["image/vnd.globalgraphics.pgb"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.microsoft.icon","encoding":"base64","extensions":["ico"],"xrefs":{"person":["Simon_Butcher"],"template":["image/vnd.microsoft.icon"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.mix","encoding":"base64","xrefs":{"person":["Saveen_Reddy"],"template":["image/vnd.mix"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.mozilla.apng","encoding":"base64","xrefs":{"person":["Stuart_Parmenter"],"template":["image/vnd.mozilla.apng"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.ms-modi","friendly":{"en":"Microsoft Document Imaging Format"},"encoding":"base64","extensions":["mdi"],"xrefs":{"person":["Gregory_Vaughan"],"template":["image/vnd.ms-modi"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.ms-photo","encoding":"base64","extensions":["wdp"],"registered":false,"sort-priority":47},{"content-type":"image/vnd.net-fpx","friendly":{"en":"FlashPix"},"encoding":"base64","extensions":["npx"],"xrefs":{"person":["Marc_Douglas_Spencer"],"template":["image/vnd.net-fpx"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.net.fpx","encoding":"base64","obsolete":true,"use-instead":"image/vnd.net-fpx","registered":false,"sort-priority":176},{"content-type":"image/vnd.pco.b16","encoding":"base64","xrefs":{"person":["Jan_Zeman","PCO_AG"],"template":["image/vnd.pco.b16"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.radiance","encoding":"base64","xrefs":{"person":["Greg_Ward","Randolph_Fritz"],"template":["image/vnd.radiance"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.sealed.png","encoding":"base64","xrefs":{"person":["David_Petersen"],"template":["image/vnd.sealed.png"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.sealedmedia.softseal.gif","encoding":"base64","xrefs":{"person":["David_Petersen"],"template":["image/vnd.sealedmedia.softseal.gif"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.sealedmedia.softseal.jpg","encoding":"base64","xrefs":{"person":["David_Petersen"],"template":["image/vnd.sealedmedia.softseal.jpg"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.svf","encoding":"base64","xrefs":{"person":["Jodi_Moline"],"template":["image/vnd.svf"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.tencent.tap","encoding":"base64","xrefs":{"person":["Ni_Hui"],"template":["image/vnd.tencent.tap"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.valve.source.texture","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["image/vnd.valve.source.texture"]},"registered":true,"sort-priority":16},{"content-type":"image/vnd.wap.wbmp","friendly":{"en":"WAP Bitamp (WBMP)"},"encoding":"base64","extensions":["wbmp"],"xrefs":{"person":["Peter_Stark"],"template":["image/vnd.wap.wbmp"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.xiff","friendly":{"en":"eXtended Image File Format (XIFF)"},"encoding":"base64","extensions":["xif"],"xrefs":{"person":["Steven_Martin"],"template":["image/vnd.xiff"]},"registered":true,"sort-priority":15},{"content-type":"image/vnd.zbrush.dcx","encoding":"base64","extensions":["dcx"],"registered":false,"sort-priority":47},{"content-type":"image/vnd.zbrush.pcx","encoding":"base64","extensions":["pcx"],"xrefs":{"person":["Chris_Charabaruk"],"template":["image/vnd.zbrush.pcx"]},"registered":true,"sort-priority":15},{"content-type":"image/webp","friendly":{"en":"WebP Image"},"encoding":"base64","extensions":["webp"],"xrefs":{"rfc":["rfc9649"],"template":["image/webp"]},"registered":true,"sort-priority":15},{"content-type":"image/wmf","encoding":"base64","extensions":["wmf"],"xrefs":{"rfc":["rfc7903"],"template":["image/wmf"]},"registered":true,"sort-priority":15},{"content-type":"image/x-3ds","encoding":"base64","extensions":["3ds"],"registered":false,"sort-priority":47},{"content-type":"image/x-adobe-dng","friendly":{"en":"Adobe Digital Negative"},"encoding":"base64","extensions":["dng"],"registered":false,"sort-priority":47},{"content-type":"image/x-bmp","encoding":"base64","extensions":["bmp"],"obsolete":true,"use-instead":"image/bmp","registered":false,"sort-priority":175},{"content-type":"image/x-bpg","encoding":"base64","extensions":["bpg"],"registered":false,"sort-priority":47},{"content-type":"image/x-canon-cr2","friendly":{"en":"Canon Raw Image"},"encoding":"base64","extensions":["cr2"],"registered":false,"sort-priority":47},{"content-type":"image/x-canon-cr3","encoding":"base64","extensions":["cr3"],"registered":false,"sort-priority":47},{"content-type":"image/x-canon-crw","friendly":{"en":"Canon Raw Image"},"encoding":"base64","extensions":["crw"],"registered":false,"sort-priority":47},{"content-type":"image/x-cmu-raster","friendly":{"en":"CMU Image"},"encoding":"base64","extensions":["ras"],"registered":false,"sort-priority":47},{"content-type":"image/x-cmx","friendly":{"en":"Corel Metafile Exchange (CMX)"},"encoding":"base64","extensions":["cmx"],"registered":false,"sort-priority":47},{"content-type":"image/x-compressed-xcf","docs":"see-also:image/x-xcf","encoding":"base64","extensions":["xcfbz2","xcfgz"],"registered":false,"sort-priority":46},{"content-type":"image/x-dpx","encoding":"base64","extensions":["dpx"],"registered":false,"sort-priority":47},{"content-type":"image/x-emf","encoding":"base64","obsolete":true,"use-instead":"image/emf","xrefs":{"rfc":["rfc7903"],"template":["image/emf"],"notes":["- DEPRECATED in favor of image/emf"]},"registered":true,"sort-priority":144},{"content-type":"image/x-emf-compressed","encoding":"base64","extensions":["emz"],"registered":false,"sort-priority":47},{"content-type":"image/x-epson-erf","friendly":{"en":"Epson Raw Image"},"encoding":"base64","extensions":["erf"],"registered":false,"sort-priority":47},{"content-type":"image/x-freehand","friendly":{"en":"FreeHand MX"},"encoding":"base64","extensions":["fh","fh4","fh5","fh7","fhc","fh40","fh50","fh8","fh9","fh10","fh11","fh12","ft7","ft8","ft9","ft10","ft11","ft12"],"registered":false,"sort-priority":32},{"content-type":"image/x-fuji-raf","friendly":{"en":"Fuji Raw Image"},"encoding":"base64","extensions":["raf"],"registered":false,"sort-priority":47},{"content-type":"image/x-hasselblad-3fr","encoding":"base64","extensions":["3fr"],"registered":false,"sort-priority":47},{"content-type":"image/x-icon","friendly":{"en":"Icon Image"},"encoding":"base64","extensions":["ico"],"registered":false,"sort-priority":47},{"content-type":"image/x-jbig2","encoding":"base64","extensions":["jb2","jbig2"],"registered":false,"sort-priority":46},{"content-type":"image/x-jp2-codestream","encoding":"base64","extensions":["j2c"],"registered":false,"sort-priority":47},{"content-type":"image/x-jp2-container","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"image/x-kodak-dcr","friendly":{"en":"Kodak Raw Image"},"encoding":"base64","extensions":["dcr"],"registered":false,"sort-priority":47},{"content-type":"image/x-kodak-k25","friendly":{"en":"Kodak Raw Image"},"encoding":"base64","extensions":["k25"],"registered":false,"sort-priority":47},{"content-type":"image/x-kodak-kdc","friendly":{"en":"Kodak Raw Image"},"encoding":"base64","extensions":["kdc"],"registered":false,"sort-priority":47},{"content-type":"image/x-minolta-mrw","friendly":{"en":"Minolta Raw Image"},"encoding":"base64","extensions":["mrw"],"registered":false,"sort-priority":47},{"content-type":"image/x-mrsid-image","encoding":"base64","extensions":["sid"],"registered":false,"sort-priority":47},{"content-type":"image/x-ms-bmp","friendly":{"en":"Bitmap Image File"},"encoding":"base64","extensions":["bmp"],"obsolete":true,"registered":false,"sort-priority":175},{"content-type":"image/x-niff","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"image/x-nikon-nef","friendly":{"en":"Nikon Raw Image"},"encoding":"base64","extensions":["nef"],"registered":false,"sort-priority":47},{"content-type":"image/x-olympus-orf","friendly":{"en":"Olympus Raw Image"},"encoding":"base64","extensions":["orf"],"registered":false,"sort-priority":47},{"content-type":"image/x-paintshoppro","encoding":"base64","extensions":["psp","pspimage"],"registered":false,"sort-priority":46},{"content-type":"image/x-panasonic-raw","friendly":{"en":"Panasonic Raw Image"},"encoding":"base64","extensions":["raw"],"registered":false,"sort-priority":47},{"content-type":"image/x-pcx","friendly":{"en":"PCX Image"},"encoding":"base64","extensions":["pcx"],"registered":false,"sort-priority":47},{"content-type":"image/x-pentax-pef","friendly":{"en":"Pentax Raw Image"},"encoding":"base64","extensions":["pef"],"registered":false,"sort-priority":47},{"content-type":"image/x-pict","friendly":{"en":"PICT Image"},"encoding":"base64","extensions":["pct","pic","pict"],"registered":false,"sort-priority":45},{"content-type":"image/x-portable-anymap","friendly":{"en":"Portable Anymap Image"},"encoding":"base64","extensions":["pnm"],"registered":false,"sort-priority":47},{"content-type":"image/x-portable-arbitrarymap","encoding":"base64","extensions":["pam"],"registered":false,"sort-priority":47},{"content-type":"image/x-portable-bitmap","friendly":{"en":"Portable Bitmap Format"},"encoding":"base64","extensions":["pbm"],"registered":false,"sort-priority":47},{"content-type":"image/x-portable-graymap","friendly":{"en":"Portable Graymap Format"},"encoding":"base64","extensions":["pgm"],"registered":false,"sort-priority":47},{"content-type":"image/x-portable-pixmap","friendly":{"en":"Portable Pixmap Format"},"encoding":"base64","extensions":["ppm"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-adobe","encoding":"base64","extensions":["dng"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-canon","encoding":"base64","extensions":["crw"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-casio","encoding":"base64","extensions":["bay"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-epson","encoding":"base64","extensions":["erf"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-fuji","encoding":"base64","extensions":["raf"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-hasselblad","encoding":"base64","extensions":["3fr"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-imacon","encoding":"base64","extensions":["fff"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-kodak","encoding":"base64","extensions":["k25","kdc","dcs","drf"],"registered":false,"sort-priority":44},{"content-type":"image/x-raw-leaf","encoding":"base64","extensions":["mos"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-logitech","encoding":"base64","extensions":["pxn"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-mamiya","encoding":"base64","extensions":["mef"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-minolta","encoding":"base64","extensions":["mrw"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-nikon","encoding":"base64","extensions":["nef","nrw"],"registered":false,"sort-priority":46},{"content-type":"image/x-raw-olympus","encoding":"base64","extensions":["orf"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-panasonic","encoding":"base64","extensions":["raw","rw2"],"registered":false,"sort-priority":46},{"content-type":"image/x-raw-pentax","encoding":"base64","extensions":["ptx","pef"],"registered":false,"sort-priority":46},{"content-type":"image/x-raw-phaseone","encoding":"base64","extensions":["iiq"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-rawzor","encoding":"base64","extensions":["rwz"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-red","encoding":"base64","extensions":["r3d"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-sigma","encoding":"base64","extensions":["x3f"],"registered":false,"sort-priority":47},{"content-type":"image/x-raw-sony","encoding":"base64","extensions":["arw","srf","sr2"],"registered":false,"sort-priority":45},{"content-type":"image/x-rgb","friendly":{"en":"Silicon Graphics RGB Bitmap"},"encoding":"base64","extensions":["rgb"],"registered":false,"sort-priority":47},{"content-type":"image/x-sigma-x3f","friendly":{"en":"Sigma Raw Image"},"encoding":"base64","extensions":["x3f"],"registered":false,"sort-priority":47},{"content-type":"image/x-sony-arw","friendly":{"en":"Sony Raw Image"},"encoding":"base64","extensions":["arw"],"registered":false,"sort-priority":47},{"content-type":"image/x-sony-sr2","friendly":{"en":"Sony Raw Image"},"encoding":"base64","extensions":["sr2"],"registered":false,"sort-priority":47},{"content-type":"image/x-sony-srf","friendly":{"en":"Sony Raw Image"},"encoding":"base64","extensions":["srf"],"registered":false,"sort-priority":47},{"content-type":"image/x-targa","encoding":"base64","extensions":["tga"],"registered":false,"sort-priority":47},{"content-type":"image/x-tga","encoding":"base64","extensions":["tga","icb","vda"],"registered":false,"sort-priority":45},{"content-type":"image/x-vnd.dgn","encoding":"base64","extensions":["dgn"],"registered":false,"sort-priority":47},{"content-type":"image/x-win-bmp","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"image/x-wmf","encoding":"base64","obsolete":true,"use-instead":"image/wmf","xrefs":{"rfc":["rfc7903"],"template":["image/wmf"],"notes":["- DEPRECATED in favor of image/wmf"]},"registered":true,"sort-priority":144},{"content-type":"image/x-xbitmap","friendly":{"en":"X BitMap"},"encoding":"7bit","extensions":["xbm"],"registered":false,"sort-priority":47},{"content-type":"image/x-xbm","encoding":"7bit","extensions":["xbm"],"registered":false,"sort-priority":47},{"content-type":"image/x-xcf","encoding":"base64","extensions":["xcf"],"registered":false,"sort-priority":47},{"content-type":"image/x-xpixmap","friendly":{"en":"X PixMap"},"encoding":"8bit","extensions":["xpm"],"registered":false,"sort-priority":47},{"content-type":"image/x-xwindowdump","friendly":{"en":"X Window Dump"},"encoding":"base64","extensions":["xwd"],"registered":false,"sort-priority":47},{"content-type":"message/bhttp","encoding":"base64","xrefs":{"rfc":["rfc9292"],"template":["message/bhttp"]},"registered":true,"sort-priority":16},{"content-type":"message/CPIM","encoding":"base64","xrefs":{"rfc":["rfc3862"],"template":["message/CPIM"]},"registered":true,"sort-priority":16},{"content-type":"message/delivery-status","encoding":"base64","xrefs":{"rfc":["rfc1894"],"template":["message/delivery-status"]},"registered":true,"sort-priority":16},{"content-type":"message/disposition-notification","encoding":"base64","xrefs":{"rfc":["rfc8098"],"template":["message/disposition-notification"]},"registered":true,"sort-priority":16},{"content-type":"message/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["message/example"]},"registered":true,"sort-priority":16},{"content-type":"message/external-body","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["message/external-body"]},"registered":true,"sort-priority":16},{"content-type":"message/feedback-report","encoding":"base64","xrefs":{"rfc":["rfc5965"],"template":["message/feedback-report"]},"registered":true,"sort-priority":16},{"content-type":"message/global","encoding":"base64","xrefs":{"rfc":["rfc6532"],"template":["message/global"]},"registered":true,"sort-priority":16},{"content-type":"message/global-delivery-status","encoding":"base64","xrefs":{"rfc":["rfc6533"],"template":["message/global-delivery-status"]},"registered":true,"sort-priority":16},{"content-type":"message/global-disposition-notification","encoding":"base64","xrefs":{"rfc":["rfc6533"],"template":["message/global-disposition-notification"]},"registered":true,"sort-priority":16},{"content-type":"message/global-headers","encoding":"base64","xrefs":{"rfc":["rfc6533"],"template":["message/global-headers"]},"registered":true,"sort-priority":16},{"content-type":"message/http","encoding":"base64","xrefs":{"rfc":["rfc9112"],"template":["message/http"]},"registered":true,"sort-priority":16},{"content-type":"message/imdn+xml","encoding":"base64","xrefs":{"rfc":["rfc5438"],"template":["message/imdn+xml"]},"registered":true,"sort-priority":16},{"content-type":"message/mls","encoding":"base64","xrefs":{"rfc":["rfc9420"],"template":["message/mls"]},"registered":true,"sort-priority":16},{"content-type":"message/news","encoding":"8bit","obsolete":true,"xrefs":{"rfc":["rfc5537"],"person":["Henry_Spencer"],"template":["message/news"],"notes":["(OBSOLETED by )"]},"registered":true,"sort-priority":144},{"content-type":"message/ohttp-req","encoding":"base64","xrefs":{"rfc":["rfc9458"],"template":["message/ohttp-req"]},"registered":true,"sort-priority":16},{"content-type":"message/ohttp-res","encoding":"base64","xrefs":{"rfc":["rfc9458"],"template":["message/ohttp-res"]},"registered":true,"sort-priority":16},{"content-type":"message/partial","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["message/partial"]},"registered":true,"sort-priority":16},{"content-type":"message/rfc822","friendly":{"en":"Email Message"},"encoding":"8bit","extensions":["eml","mime"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["message/rfc822"]},"registered":true,"sort-priority":14},{"content-type":"message/s-http","encoding":"base64","obsolete":true,"xrefs":{"rfc":["rfc2660"],"uri":["https://datatracker.ietf.org/doc/status-change-http-experiments-to-historic"],"template":["message/s-http"],"notes":["(OBSOLETE)"]},"registered":true,"sort-priority":144},{"content-type":"message/sip","encoding":"base64","xrefs":{"rfc":["rfc3261"],"template":["message/sip"]},"registered":true,"sort-priority":16},{"content-type":"message/sipfrag","encoding":"base64","xrefs":{"rfc":["rfc3420"],"template":["message/sipfrag"]},"registered":true,"sort-priority":16},{"content-type":"message/tracking-status","encoding":"base64","xrefs":{"rfc":["rfc3886"],"template":["message/tracking-status"]},"registered":true,"sort-priority":16},{"content-type":"message/vnd.si.simp","encoding":"base64","obsolete":true,"xrefs":{"person":["Nicholas_Parks_Young"],"template":["message/vnd.si.simp"],"notes":["(OBSOLETED by request)"]},"registered":true,"sort-priority":144},{"content-type":"message/vnd.wfa.wsc","encoding":"base64","xrefs":{"person":["Mick_Conley"],"template":["message/vnd.wfa.wsc"]},"registered":true,"sort-priority":16},{"content-type":"message/x-emlx","encoding":"base64","extensions":["emlx"],"registered":false,"sort-priority":47},{"content-type":"model/3mf","encoding":"base64","xrefs":{"uri":["http://www.3mf.io/specification"],"person":["Michael_Sweet","_3MF"],"template":["model/3mf"]},"registered":true,"sort-priority":16},{"content-type":"model/e57","encoding":"base64","extensions":["e57"],"xrefs":{"person":["ASTM"],"template":["model/e57"]},"registered":true,"sort-priority":15},{"content-type":"model/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["model/example"]},"registered":true,"sort-priority":16},{"content-type":"model/gltf+json","encoding":"base64","xrefs":{"person":["Khronos","Uli_Klumpp"],"template":["model/gltf+json"]},"registered":true,"sort-priority":16},{"content-type":"model/gltf-binary","encoding":"base64","xrefs":{"person":["Khronos","Saurabh_Bhatia"],"template":["model/gltf-binary"]},"registered":true,"sort-priority":16},{"content-type":"model/iges","friendly":{"en":"Initial Graphics Exchange Specification (IGES)"},"encoding":"base64","extensions":["igs","iges"],"xrefs":{"person":["Curtis_Parks"],"template":["model/iges"]},"registered":true,"sort-priority":14},{"content-type":"model/JT","encoding":"base64","xrefs":{"person":["ISO-TC_184-SC_4","Michael_Zink"],"template":["model/JT"]},"registered":true,"sort-priority":16},{"content-type":"model/mesh","friendly":{"en":"Mesh Data Type"},"encoding":"base64","extensions":["msh","mesh","silo"],"xrefs":{"rfc":["rfc2077"],"template":["model/mesh"]},"registered":true,"sort-priority":13},{"content-type":"model/mtl","encoding":"base64","xrefs":{"person":["Carolyn_Hull","DICOM_Standard_Committee","DICOM_WG_17"],"template":["model/mtl"]},"registered":true,"sort-priority":16},{"content-type":"model/obj","encoding":"base64","xrefs":{"person":["Carolyn_Hull","DICOM_Standard_Committee","DICOM_WG_17"],"template":["model/obj"]},"registered":true,"sort-priority":16},{"content-type":"model/prc","encoding":"base64","xrefs":{"person":["Betsy_Fanning","ISO-TC_171-SC_2"],"template":["model/prc"]},"registered":true,"sort-priority":16},{"content-type":"model/step","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["model/step"]},"registered":true,"sort-priority":16},{"content-type":"model/step+xml","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["model/step+xml"]},"registered":true,"sort-priority":16},{"content-type":"model/step+zip","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["model/step+zip"]},"registered":true,"sort-priority":16},{"content-type":"model/step-xml+zip","encoding":"base64","xrefs":{"person":["Dana_Tripp","ISO-TC_184-SC_4"],"template":["model/step-xml+zip"]},"registered":true,"sort-priority":16},{"content-type":"model/stl","encoding":"base64","xrefs":{"person":["Carolyn_Hull","DICOM_Standard_Committee","DICOM_WG_17"],"template":["model/stl"]},"registered":true,"sort-priority":16},{"content-type":"model/u3d","encoding":"base64","xrefs":{"person":["PDF_Association","Peter_Wyatt"],"template":["model/u3d"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.bary","encoding":"base64","xrefs":{"person":["Displaced_Micro-Mesh_SDK_Support"],"template":["model/vnd.bary"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.cld","encoding":"base64","xrefs":{"person":["Robert_Monaghan"],"template":["model/vnd.cld"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.collada+xml","friendly":{"en":"COLLADA"},"encoding":"base64","extensions":["dae"],"xrefs":{"person":["James_Riordon"],"template":["model/vnd.collada+xml"]},"registered":true,"sort-priority":15},{"content-type":"model/vnd.dwf","friendly":{"en":"Autodesk Design Web Format (DWF)"},"encoding":"base64","extensions":["dwf"],"xrefs":{"person":["Jason_Pratt"],"template":["model/vnd.dwf"]},"registered":true,"sort-priority":15},{"content-type":"model/vnd.dwfx+xps","encoding":"base64","extensions":["dwfx"],"registered":false,"sort-priority":47},{"content-type":"model/vnd.flatland.3dml","encoding":"base64","xrefs":{"person":["Michael_Powers"],"template":["model/vnd.flatland.3dml"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.gdl","friendly":{"en":"Geometric Description Language (GDL)"},"encoding":"base64","extensions":["gdl"],"xrefs":{"person":["Attila_Babits"],"template":["model/vnd.gdl"]},"registered":true,"sort-priority":15},{"content-type":"model/vnd.gs-gdl","encoding":"base64","xrefs":{"person":["Attila_Babits"],"template":["model/vnd.gs-gdl"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.gs.gdl","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"model/vnd.gtw","friendly":{"en":"Gen-Trix Studio"},"encoding":"base64","extensions":["gtw"],"xrefs":{"person":["Yutaka_Ozaki"],"template":["model/vnd.gtw"]},"registered":true,"sort-priority":15},{"content-type":"model/vnd.moml+xml","encoding":"base64","xrefs":{"person":["Christopher_Brooks"],"template":["model/vnd.moml+xml"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.mts","friendly":{"en":"Virtue MTS"},"encoding":"base64","extensions":["mts"],"xrefs":{"person":["Boris_Rabinovitch"],"template":["model/vnd.mts"]},"registered":true,"sort-priority":15},{"content-type":"model/vnd.opengex","encoding":"base64","xrefs":{"person":["Eric_Lengyel"],"template":["model/vnd.opengex"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.parasolid.transmit.binary","encoding":"base64","extensions":["x_b","xmt_bin"],"xrefs":{"person":["Parasolid"],"template":["model/vnd.parasolid.transmit.binary"]},"registered":true,"sort-priority":14},{"content-type":"model/vnd.parasolid.transmit.text","encoding":"quoted-printable","extensions":["x_t","xmt_txt"],"xrefs":{"person":["Parasolid"],"template":["model/vnd.parasolid.transmit.text"]},"registered":true,"sort-priority":14},{"content-type":"model/vnd.pytha.pyox","encoding":"base64","xrefs":{"person":["Daniel_Flassig"],"template":["model/vnd.pytha.pyox"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.rosette.annotated-data-model","encoding":"base64","xrefs":{"person":["Benson_Margulies"],"template":["model/vnd.rosette.annotated-data-model"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.sap.vds","encoding":"base64","xrefs":{"person":["Igor_Afanasyev","SAP_SE"],"template":["model/vnd.sap.vds"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.usda","encoding":"base64","xrefs":{"person":["Sebastian_Grassia"],"template":["model/vnd.usda"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.usdz+zip","encoding":"base64","xrefs":{"person":["Sebastian_Grassia"],"template":["model/vnd.usdz+zip"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.valve.source.compiled-map","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["model/vnd.valve.source.compiled-map"]},"registered":true,"sort-priority":16},{"content-type":"model/vnd.vtu","friendly":{"en":"Virtue VTU"},"encoding":"base64","extensions":["vtu"],"xrefs":{"person":["Boris_Rabinovitch"],"template":["model/vnd.vtu"]},"registered":true,"sort-priority":15},{"content-type":"model/vrml","friendly":{"en":"Virtual Reality Modeling Language"},"encoding":"base64","extensions":["wrl","vrml"],"xrefs":{"rfc":["rfc2077"],"template":["model/vrml"]},"registered":true,"sort-priority":14},{"content-type":"model/x.stl-ascii","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"model/x.stl-binary","encoding":"base64","extensions":["stl"],"registered":false,"sort-priority":47},{"content-type":"model/x3d+binary","encoding":"base64","extensions":["x3db","x3dbz"],"registered":false,"sort-priority":46},{"content-type":"model/x3d+fastinfoset","encoding":"base64","xrefs":{"person":["Web3D_X3D"],"template":["model/x3d+fastinfoset"]},"registered":true,"sort-priority":16},{"content-type":"model/x3d+vrml","encoding":"base64","extensions":["x3dv","x3dvz"],"registered":false,"sort-priority":46},{"content-type":"model/x3d+xml","encoding":"base64","extensions":["x3d","x3dz"],"xrefs":{"person":["Web3D","Web3D_X3D"],"template":["model/x3d+xml"]},"registered":true,"sort-priority":14},{"content-type":"model/x3d-vrml","encoding":"base64","xrefs":{"person":["Web3D","Web3D_X3D"],"template":["model/x3d-vrml"]},"registered":true,"sort-priority":16},{"content-type":"multipart/alternative","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["multipart/alternative"]},"registered":true,"sort-priority":16},{"content-type":"multipart/appledouble","encoding":"8bit","xrefs":{"person":["Patrik_Faltstrom"],"template":["multipart/appledouble"]},"registered":true,"sort-priority":16},{"content-type":"multipart/byteranges","encoding":"base64","xrefs":{"rfc":["rfc9110"],"template":["multipart/byteranges"]},"registered":true,"sort-priority":16},{"content-type":"multipart/digest","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["multipart/digest"]},"registered":true,"sort-priority":16},{"content-type":"multipart/encrypted","encoding":"base64","xrefs":{"rfc":["rfc1847"],"template":["multipart/encrypted"]},"registered":true,"sort-priority":16},{"content-type":"multipart/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["multipart/example"]},"registered":true,"sort-priority":16},{"content-type":"multipart/form-data","encoding":"base64","xrefs":{"rfc":["rfc7578"],"template":["multipart/form-data"]},"registered":true,"sort-priority":16},{"content-type":"multipart/header-set","encoding":"base64","xrefs":{"person":["Dave_Crocker"],"template":["multipart/header-set"]},"registered":true,"sort-priority":16},{"content-type":"multipart/mixed","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["multipart/mixed"]},"registered":true,"sort-priority":16},{"content-type":"multipart/multilingual","encoding":"base64","xrefs":{"rfc":["rfc8255"],"template":["multipart/multilingual"]},"registered":true,"sort-priority":16},{"content-type":"multipart/parallel","encoding":"8bit","xrefs":{"rfc":["rfc2045","rfc2046"],"template":["multipart/parallel"]},"registered":true,"sort-priority":16},{"content-type":"multipart/related","encoding":"base64","extensions":["mht","mhtml"],"xrefs":{"rfc":["rfc2387"],"template":["multipart/related"]},"registered":true,"sort-priority":14},{"content-type":"multipart/report","encoding":"base64","xrefs":{"rfc":["rfc6522"],"template":["multipart/report"]},"registered":true,"sort-priority":16},{"content-type":"multipart/signed","encoding":"base64","xrefs":{"rfc":["rfc1847"],"template":["multipart/signed"]},"registered":true,"sort-priority":16},{"content-type":"multipart/vnd.bint.med-plus","encoding":"base64","xrefs":{"person":["Heinz-Peter_Schütz"],"template":["multipart/vnd.bint.med-plus"]},"registered":true,"sort-priority":16},{"content-type":"multipart/voice-message","encoding":"base64","xrefs":{"rfc":["rfc3801"],"template":["multipart/voice-message"]},"registered":true,"sort-priority":16},{"content-type":"multipart/x-gzip","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"multipart/x-mixed-replace","encoding":"base64","xrefs":{"person":["Robin_Berjon","W3C"],"template":["multipart/x-mixed-replace"]},"registered":true,"sort-priority":16},{"content-type":"multipart/x-parallel","encoding":"base64","obsolete":true,"use-instead":"multipart/parallel","registered":false,"sort-priority":176},{"content-type":"multipart/x-tar","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"multipart/x-ustar","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"multipart/x-www-form-urlencoded","encoding":"base64","obsolete":true,"use-instead":"application/x-www-form-urlencoded","registered":false,"sort-priority":176},{"content-type":"multipart/x-zip","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"text/1d-interleaved-parityfec","encoding":"quoted-printable","xrefs":{"rfc":["rfc6015"],"template":["text/1d-interleaved-parityfec"]},"registered":true,"sort-priority":16},{"content-type":"text/asciidoc","encoding":"quoted-printable","xrefs":{"person":["Frédéric_Desbiens"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"text/asp","encoding":"quoted-printable","extensions":["asp"],"registered":false,"sort-priority":47},{"content-type":"text/aspdotnet","encoding":"quoted-printable","extensions":["aspx"],"registered":false,"sort-priority":47},{"content-type":"text/cache-manifest","encoding":"quoted-printable","extensions":["appcache","manifest"],"xrefs":{"person":["Robin_Berjon","W3C"],"template":["text/cache-manifest"]},"registered":true,"sort-priority":14},{"content-type":"text/calendar","friendly":{"en":"iCalendar"},"encoding":"quoted-printable","extensions":["ics","ifb"],"xrefs":{"rfc":["rfc5545"],"template":["text/calendar"]},"registered":true,"sort-priority":14},{"content-type":"text/cmcd","encoding":"quoted-printable","xrefs":{"person":["Alex_Giladi"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"text/comma-separated-values","encoding":"8bit","extensions":["csv"],"obsolete":true,"use-instead":"text/csv","registered":false,"sort-priority":175},{"content-type":"text/cql","encoding":"quoted-printable","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["text/cql"]},"registered":true,"sort-priority":16},{"content-type":"text/cql-expression","encoding":"quoted-printable","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["text/cql-expression"]},"registered":true,"sort-priority":16},{"content-type":"text/cql-identifier","encoding":"quoted-printable","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["text/cql-identifier"]},"registered":true,"sort-priority":16},{"content-type":"text/css","friendly":{"en":"Cascading Style Sheets (CSS)"},"encoding":"8bit","extensions":["css"],"xrefs":{"rfc":["rfc2318"],"template":["text/css"]},"registered":true,"sort-priority":15},{"content-type":"text/csv","friendly":{"en":"Comma-Separated Values"},"encoding":"8bit","extensions":["csv"],"xrefs":{"rfc":["rfc4180","rfc7111"],"template":["text/csv"]},"registered":true,"sort-priority":15},{"content-type":"text/csv-schema","encoding":"quoted-printable","xrefs":{"person":["David_Underdown","National_Archives_UK"],"template":["text/csv-schema"]},"registered":true,"sort-priority":16},{"content-type":"text/directory","encoding":"quoted-printable","obsolete":true,"xrefs":{"rfc":["rfc2425","rfc6350"],"template":["text/directory"],"notes":["- DEPRECATED by RFC6350"]},"registered":true,"sort-priority":144},{"content-type":"text/dns","encoding":"quoted-printable","xrefs":{"rfc":["rfc4027"],"template":["text/dns"]},"registered":true,"sort-priority":16},{"content-type":"text/ecmascript","encoding":"quoted-printable","extensions":["es","ecma"],"obsolete":true,"use-instead":"text/javascript","xrefs":{"rfc":["rfc9239"],"template":["text/ecmascript"],"notes":["(OBSOLETED in favor of text/javascript)"]},"registered":true,"sort-priority":142},{"content-type":"text/encaprtp","encoding":"quoted-printable","xrefs":{"rfc":["rfc6849"],"template":["text/encaprtp"]},"registered":true,"sort-priority":16},{"content-type":"text/enriched","encoding":"quoted-printable","xrefs":{"rfc":["rfc1896"],"template":["text/enriched"]},"registered":true,"sort-priority":16},{"content-type":"text/example","encoding":"quoted-printable","xrefs":{"rfc":["rfc4735"],"template":["text/example"]},"registered":true,"sort-priority":16},{"content-type":"text/fhirpath","encoding":"quoted-printable","xrefs":{"person":["Bryn_Rhodes","HL7"],"template":["text/fhirpath"]},"registered":true,"sort-priority":16},{"content-type":"text/flexfec","encoding":"quoted-printable","xrefs":{"rfc":["rfc8627"],"template":["text/flexfec"]},"registered":true,"sort-priority":16},{"content-type":"text/fwdred","encoding":"quoted-printable","xrefs":{"rfc":["rfc6354"],"template":["text/fwdred"]},"registered":true,"sort-priority":16},{"content-type":"text/gff3","encoding":"quoted-printable","xrefs":{"person":["Sequence_Ontology"],"template":["text/gff3"]},"registered":true,"sort-priority":16},{"content-type":"text/grammar-ref-list","encoding":"quoted-printable","xrefs":{"rfc":["rfc6787"],"template":["text/grammar-ref-list"]},"registered":true,"sort-priority":16},{"content-type":"text/hl7v2","encoding":"quoted-printable","xrefs":{"person":["HL7","Marc_Duteau"],"template":["text/hl7v2"]},"registered":true,"sort-priority":16},{"content-type":"text/html","friendly":{"en":"HyperText Markup Language (HTML)"},"encoding":"8bit","extensions":["html","htm","htmlx","shtml","htx"],"xrefs":{"person":["Robin_Berjon","W3C"],"template":["text/html"]},"registered":true,"sort-priority":11},{"content-type":"text/iso19139+xml","encoding":"quoted-printable","extensions":["iso19139"],"registered":false,"sort-priority":47},{"content-type":"text/javascript","encoding":"quoted-printable","extensions":["js","mjs","cjs"],"xrefs":{"rfc":["rfc9239"],"template":["text/javascript"]},"registered":true,"sort-priority":13},{"content-type":"text/javascript1.0","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/javascript1.1","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/javascript1.2","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/javascript1.3","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/javascript1.4","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/jcr-cnd","encoding":"quoted-printable","xrefs":{"person":["Peeter_Piegaze"],"template":["text/jcr-cnd"]},"registered":true,"sort-priority":16},{"content-type":"text/jscript","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/livescript","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/markdown","encoding":"quoted-printable","extensions":["markdown","md","mkd"],"xrefs":{"rfc":["rfc7763"],"template":["text/markdown"]},"registered":true,"sort-priority":13},{"content-type":"text/mizar","encoding":"quoted-printable","xrefs":{"person":["Jesse_Alama"],"template":["text/mizar"]},"registered":true,"sort-priority":16},{"content-type":"text/n3","friendly":{"en":"Notation3"},"encoding":"quoted-printable","extensions":["n3"],"xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["text/n3"]},"registered":true,"sort-priority":15},{"content-type":"text/nfo","encoding":"quoted-printable","xrefs":{"person":["Sean_Leonard"]},"registered":true,"provisional":true,"sort-priority":80},{"content-type":"text/parameters","encoding":"quoted-printable","xrefs":{"rfc":["rfc7826"],"template":["text/parameters"]},"registered":true,"sort-priority":16},{"content-type":"text/parityfec","encoding":"quoted-printable","xrefs":{"rfc":["rfc3009"],"template":["text/parityfec"]},"registered":true,"sort-priority":16},{"content-type":"text/plain","friendly":{"en":"Text File"},"encoding":"quoted-printable","extensions":["txt","asc","c","cc","h","hh","cpp","hpp","dat","hlp","conf","def","in","list","log","rst","text","textile","install","keys","license","notice","readme","abs-linkmap","abs-menulinks","aart","ac","am","apt","bsh","classpath","cnd","cwiki","data","dcl","dsp","dsw","egrm","ent","ft","fn","fv","grm","g",".htaccess","handlers","htc","ihtml","jmx","junit","jx","manifest","m4","mf","meta","mdo","n3","pen","pod","pom","project","rng","rnx","roles","schemas","tld","types","vm","vsl","wsdd","xargs","xcat","xegrm","xgrm","xlex","xlog","xmap","xroles","xsamples","xsp","xtest","xweb","xwelcome"],"xrefs":{"rfc":["rfc2046","rfc3676","rfc5147"],"template":["text/plain"]},"registered":true,"sort-priority":0},{"content-type":"text/provenance-notation","encoding":"quoted-printable","xrefs":{"person":["Ivan_Herman","W3C"],"template":["text/provenance-notation"]},"registered":true,"sort-priority":16},{"content-type":"text/prs.fallenstein.rst","encoding":"quoted-printable","extensions":["rst"],"xrefs":{"person":["Benja_Fallenstein"],"template":["text/prs.fallenstein.rst"]},"registered":true,"sort-priority":15},{"content-type":"text/prs.lines.tag","friendly":{"en":"PRS Lines Tag"},"encoding":"quoted-printable","extensions":["dsc"],"xrefs":{"person":["John_Lines"],"template":["text/prs.lines.tag"]},"registered":true,"sort-priority":15},{"content-type":"text/prs.prop.logic","encoding":"quoted-printable","xrefs":{"person":["Hans-Dieter_A._Hiep"],"template":["text/prs.prop.logic"]},"registered":true,"sort-priority":16},{"content-type":"text/prs.texi","encoding":"quoted-printable","xrefs":{"person":["Matin_Bavardi"],"template":["text/prs.texi"]},"registered":true,"sort-priority":16},{"content-type":"text/raptorfec","encoding":"quoted-printable","xrefs":{"rfc":["rfc6682"],"template":["text/raptorfec"]},"registered":true,"sort-priority":16},{"content-type":"text/RED","encoding":"quoted-printable","xrefs":{"rfc":["rfc4102"],"template":["text/RED"]},"registered":true,"sort-priority":16},{"content-type":"text/rfc822-headers","encoding":"quoted-printable","xrefs":{"rfc":["rfc6522"],"template":["text/rfc822-headers"]},"registered":true,"sort-priority":16},{"content-type":"text/richtext","friendly":{"en":"Rich Text Format (RTF)"},"encoding":"8bit","extensions":["rtx"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["text/richtext"]},"registered":true,"sort-priority":15},{"content-type":"text/rtf","encoding":"8bit","extensions":["rtf"],"xrefs":{"person":["Paul_Lindner"],"template":["text/rtf"]},"registered":true,"sort-priority":15},{"content-type":"text/rtp-enc-aescm128","encoding":"quoted-printable","xrefs":{"person":["_3GPP"],"template":["text/rtp-enc-aescm128"]},"registered":true,"sort-priority":16},{"content-type":"text/rtploopback","encoding":"quoted-printable","xrefs":{"rfc":["rfc6849"],"template":["text/rtploopback"]},"registered":true,"sort-priority":16},{"content-type":"text/rtx","encoding":"quoted-printable","xrefs":{"rfc":["rfc4588"],"template":["text/rtx"]},"registered":true,"sort-priority":16},{"content-type":"text/sgml","friendly":{"en":"Standard Generalized Markup Language (SGML)"},"encoding":"quoted-printable","extensions":["sgml","sgm"],"xrefs":{"rfc":["rfc1874"],"template":["text/SGML"]},"registered":true,"sort-priority":14},{"content-type":"text/shaclc","encoding":"quoted-printable","xrefs":{"person":["Vladimir_Alexiev","W3C_SHACL_Community_Group"],"template":["text/shaclc"]},"registered":true,"sort-priority":16},{"content-type":"text/shex","encoding":"quoted-printable","xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["text/shex"]},"registered":true,"sort-priority":16},{"content-type":"text/spdx","encoding":"quoted-printable","xrefs":{"person":["Linux_Foundation","Rose_Judge"],"template":["text/spdx"]},"registered":true,"sort-priority":16},{"content-type":"text/strings","encoding":"quoted-printable","xrefs":{"person":["IEEE-ISTO-PWG-PPP"],"template":["text/strings"]},"registered":true,"sort-priority":16},{"content-type":"text/t140","encoding":"quoted-printable","xrefs":{"rfc":["rfc4103"],"template":["text/t140"]},"registered":true,"sort-priority":16},{"content-type":"text/tab-separated-values","friendly":{"en":"Tab Separated Values"},"encoding":"quoted-printable","extensions":["tsv"],"xrefs":{"person":["Paul_Lindner"],"template":["text/tab-separated-values"]},"registered":true,"sort-priority":15},{"content-type":"text/troff","friendly":{"en":"troff"},"encoding":"8bit","extensions":["t","tr","roff","troff","man","me","ms","nroff"],"xrefs":{"rfc":["rfc4263"],"template":["text/troff"]},"registered":true,"sort-priority":8},{"content-type":"text/turtle","friendly":{"en":"Turtle (Terse RDF Triple Language)"},"encoding":"quoted-printable","extensions":["ttl"],"xrefs":{"person":["Eric_Prudhommeaux","W3C"],"template":["text/turtle"]},"registered":true,"sort-priority":15},{"content-type":"text/ulpfec","encoding":"quoted-printable","xrefs":{"rfc":["rfc5109"],"template":["text/ulpfec"]},"registered":true,"sort-priority":16},{"content-type":"text/uri-list","friendly":{"en":"URI Resolution Services"},"encoding":"quoted-printable","extensions":["uri","uris","urls"],"xrefs":{"rfc":["rfc2483"],"template":["text/uri-list"]},"registered":true,"sort-priority":13},{"content-type":"text/vcard","encoding":"quoted-printable","extensions":["vcard"],"xrefs":{"rfc":["rfc6350"],"template":["text/vcard"]},"registered":true,"signature":true,"sort-priority":15},{"content-type":"text/vnd.a","encoding":"quoted-printable","xrefs":{"person":["Regis_Dehoux"],"template":["text/vnd.a"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.abc","encoding":"quoted-printable","xrefs":{"person":["Steve_Allen"],"template":["text/vnd.abc"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.ascii-art","encoding":"quoted-printable","xrefs":{"person":["Kim_Scarborough"],"template":["text/vnd.ascii-art"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.curl","friendly":{"en":"Curl - Applet"},"encoding":"quoted-printable","extensions":["curl"],"xrefs":{"person":["Robert_Byrnes"],"template":["text/vnd.curl"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.curl.dcurl","friendly":{"en":"Curl - Detached Applet"},"encoding":"quoted-printable","extensions":["dcurl"],"registered":false,"sort-priority":47},{"content-type":"text/vnd.curl.mcurl","friendly":{"en":"Curl - Manifest File"},"encoding":"quoted-printable","extensions":["mcurl"],"registered":false,"sort-priority":47},{"content-type":"text/vnd.curl.scurl","friendly":{"en":"Curl - Source Code"},"encoding":"quoted-printable","extensions":["scurl"],"registered":false,"sort-priority":47},{"content-type":"text/vnd.debian.copyright","encoding":"quoted-printable","xrefs":{"person":["Charles_Plessy"],"template":["text/vnd.debian.copyright"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.DMClientScript","encoding":"quoted-printable","xrefs":{"person":["Dan_Bradley"],"template":["text/vnd.DMClientScript"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.dvb.subtitle","encoding":"quoted-printable","extensions":["sub"],"xrefs":{"person":["Michael_Lagally","Peter_Siebert"],"template":["text/vnd.dvb.subtitle"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.esmertec.theme-descriptor","encoding":"quoted-printable","xrefs":{"person":["Stefan_Eilemann"],"template":["text/vnd.esmertec.theme-descriptor"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.exchangeable","encoding":"quoted-printable","xrefs":{"person":["Martin_Cizek"],"template":["text/vnd.exchangeable"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.familysearch.gedcom","encoding":"quoted-printable","xrefs":{"person":["Gordon_Clarke"],"template":["text/vnd.familysearch.gedcom"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.ficlab.flt","encoding":"quoted-printable","xrefs":{"person":["Steve_Gilberd"],"template":["text/vnd.ficlab.flt"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.flatland.3dml","encoding":"quoted-printable","obsolete":true,"use-instead":"model/vnd.flatland.3dml","registered":false,"sort-priority":176},{"content-type":"text/vnd.fly","friendly":{"en":"mod_fly / fly.cgi"},"encoding":"quoted-printable","extensions":["fly"],"xrefs":{"person":["John-Mark_Gurney"],"template":["text/vnd.fly"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.fmi.flexstor","friendly":{"en":"FLEXSTOR"},"encoding":"quoted-printable","extensions":["flx"],"xrefs":{"person":["Kari_E._Hurtta"],"template":["text/vnd.fmi.flexstor"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.gml","encoding":"quoted-printable","xrefs":{"person":["Mi_Tar"],"template":["text/vnd.gml"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.graphviz","friendly":{"en":"Graphviz"},"encoding":"quoted-printable","extensions":["gv"],"xrefs":{"person":["John_Ellson"],"template":["text/vnd.graphviz"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.hans","encoding":"quoted-printable","xrefs":{"person":["Hill_Hanxv"],"template":["text/vnd.hans"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.hgl","encoding":"quoted-printable","xrefs":{"person":["Heungsub_Lee"],"template":["text/vnd.hgl"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.in3d.3dml","friendly":{"en":"In3D - 3DML"},"encoding":"quoted-printable","extensions":["3dml"],"xrefs":{"person":["Michael_Powers"],"template":["text/vnd.in3d.3dml"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.in3d.spot","friendly":{"en":"In3D - 3DML"},"encoding":"quoted-printable","extensions":["spot"],"xrefs":{"person":["Michael_Powers"],"template":["text/vnd.in3d.spot"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.iptc.anpa","encoding":"quoted-printable","extensions":["anpa"],"registered":false,"sort-priority":47},{"content-type":"text/vnd.IPTC.NewsML","encoding":"quoted-printable","xrefs":{"person":["IPTC"],"template":["text/vnd.IPTC.NewsML"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.IPTC.NITF","encoding":"quoted-printable","xrefs":{"person":["IPTC"],"template":["text/vnd.IPTC.NITF"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.latex-z","encoding":"quoted-printable","xrefs":{"person":["Mikusiak_Lubos"],"template":["text/vnd.latex-z"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.motorola.reflex","encoding":"quoted-printable","xrefs":{"person":["Mark_Patton"],"template":["text/vnd.motorola.reflex"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.ms-mediapackage","encoding":"quoted-printable","xrefs":{"person":["Jan_Nelson"],"template":["text/vnd.ms-mediapackage"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.net2phone.commcenter.command","encoding":"quoted-printable","extensions":["ccc"],"xrefs":{"person":["Feiyu_Xie"],"template":["text/vnd.net2phone.commcenter.command"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.radisys.msml-basic-layout","encoding":"quoted-printable","xrefs":{"rfc":["rfc5707"],"template":["text/vnd.radisys.msml-basic-layout"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.senx.warpscript","encoding":"quoted-printable","xrefs":{"person":["Pierre_Papin"],"template":["text/vnd.senx.warpscript"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.si.uricatalogue","encoding":"quoted-printable","obsolete":true,"xrefs":{"person":["Nicholas_Parks_Young"],"template":["text/vnd.si.uricatalogue"],"notes":["(OBSOLETED by request)"]},"registered":true,"sort-priority":144},{"content-type":"text/vnd.sosi","encoding":"quoted-printable","xrefs":{"person":["Petter_Reinholdtsen"],"template":["text/vnd.sosi"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.sun.j2me.app-descriptor","friendly":{"en":"J2ME App Descriptor"},"encoding":"8bit","extensions":["jad"],"xrefs":{"person":["Gary_Adams"],"template":["text/vnd.sun.j2me.app-descriptor"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.trolltech.linguist","encoding":"quoted-printable","xrefs":{"person":["David_Lee_Lambert"],"template":["text/vnd.trolltech.linguist"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.typst","encoding":"quoted-printable","xrefs":{"person":["Martin_Haug"],"template":["text/vnd.typst"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.vcf","encoding":"quoted-printable","xrefs":{"person":["Anand_Jahagirdar"],"template":["text/vnd.vcf"]},"registered":true,"sort-priority":16},{"content-type":"text/vnd.wap.si","encoding":"quoted-printable","extensions":["si"],"xrefs":{"person":["WAP-Forum"],"template":["text/vnd.wap.si"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.wap.sl","encoding":"quoted-printable","extensions":["sl"],"xrefs":{"person":["WAP-Forum"],"template":["text/vnd.wap.sl"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.wap.wml","friendly":{"en":"Wireless Markup Language (WML)"},"encoding":"quoted-printable","extensions":["wml"],"xrefs":{"person":["Peter_Stark"],"template":["text/vnd.wap.wml"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.wap.wmlscript","friendly":{"en":"Wireless Markup Language Script (WMLScript)"},"encoding":"quoted-printable","extensions":["wmls"],"xrefs":{"person":["Peter_Stark"],"template":["text/vnd.wap.wmlscript"]},"registered":true,"sort-priority":15},{"content-type":"text/vnd.zoo.kcl","encoding":"quoted-printable","xrefs":{"person":["Jessie_Frazelle"],"template":["text/vnd.zoo.kcl"]},"registered":true,"sort-priority":16},{"content-type":"text/vtt","encoding":"quoted-printable","extensions":["vtt"],"xrefs":{"person":["Silvia_Pfeiffer","W3C"],"template":["text/vtt"]},"registered":true,"sort-priority":15},{"content-type":"text/wgsl","encoding":"quoted-printable","xrefs":{"person":["David_Neto","W3C"],"template":["text/wgsl"]},"registered":true,"sort-priority":16},{"content-type":"text/x-actionscript","encoding":"quoted-printable","extensions":["as"],"registered":false,"sort-priority":47},{"content-type":"text/x-ada","encoding":"quoted-printable","extensions":["ada","adb","ads"],"registered":false,"sort-priority":45},{"content-type":"text/x-applescript","encoding":"quoted-printable","extensions":["applescript"],"registered":false,"sort-priority":47},{"content-type":"text/x-asciidoc","encoding":"quoted-printable","extensions":["asciidoc","adoc","ad","ad.txt","adoc.txt"],"registered":false,"sort-priority":43},{"content-type":"text/x-asm","friendly":{"en":"Assembler Source File"},"encoding":"quoted-printable","extensions":["asm","s"],"registered":false,"sort-priority":46},{"content-type":"text/x-aspectj","encoding":"quoted-printable","extensions":["aj"],"registered":false,"sort-priority":47},{"content-type":"text/x-assembly","encoding":"quoted-printable","extensions":["s","asm"],"registered":false,"sort-priority":46},{"content-type":"text/x-awk","encoding":"quoted-printable","extensions":["awk"],"registered":false,"sort-priority":47},{"content-type":"text/x-basic","encoding":"quoted-printable","extensions":["bas"],"registered":false,"sort-priority":47},{"content-type":"text/x-c","friendly":{"en":"C Source File"},"encoding":"quoted-printable","extensions":["c","cc","cpp","cxx","dic","h","hh"],"registered":false,"sort-priority":41},{"content-type":"text/x-c++hdr","encoding":"quoted-printable","extensions":["hpp","hxx","hh","h","h++","hp"],"registered":false,"sort-priority":42},{"content-type":"text/x-c++src","encoding":"quoted-printable","extensions":["cpp","cxx","cc","c","c++"],"registered":false,"sort-priority":43},{"content-type":"text/x-cgi","encoding":"quoted-printable","extensions":["cgi"],"registered":false,"sort-priority":47},{"content-type":"text/x-chdr","encoding":"quoted-printable","extensions":["h"],"registered":false,"sort-priority":47},{"content-type":"text/x-clojure","encoding":"quoted-printable","extensions":["clj"],"registered":false,"sort-priority":47},{"content-type":"text/x-cobol","encoding":"quoted-printable","extensions":["cbl","cob"],"registered":false,"sort-priority":46},{"content-type":"text/x-coffeescript","encoding":"quoted-printable","extensions":["coffee"],"registered":false,"sort-priority":47},{"content-type":"text/x-coffescript","encoding":"8bit","extensions":["coffee"],"registered":false,"sort-priority":47},{"content-type":"text/x-coldfusion","encoding":"quoted-printable","extensions":["cfm","cfml","cfc"],"registered":false,"sort-priority":45},{"content-type":"text/x-common-lisp","encoding":"quoted-printable","extensions":["cl","jl","lisp","lsp"],"registered":false,"sort-priority":44},{"content-type":"text/x-component","encoding":"8bit","extensions":["htc"],"registered":false,"sort-priority":47},{"content-type":"text/x-config","encoding":"quoted-printable","extensions":["config","conf","cfg","xconf"],"registered":false,"sort-priority":44},{"content-type":"text/x-csharp","encoding":"quoted-printable","extensions":["cs"],"registered":false,"sort-priority":47},{"content-type":"text/x-csrc","encoding":"quoted-printable","extensions":["c"],"registered":false,"sort-priority":47},{"content-type":"text/x-d","encoding":"quoted-printable","extensions":["d"],"registered":false,"sort-priority":47},{"content-type":"text/x-diff","encoding":"quoted-printable","extensions":["diff","patch"],"registered":false,"sort-priority":46},{"content-type":"text/x-ecmascript","encoding":"quoted-printable","obsolete":true,"use-instead":"text/javascript","registered":false,"sort-priority":176},{"content-type":"text/x-eiffel","encoding":"quoted-printable","extensions":["e"],"registered":false,"sort-priority":47},{"content-type":"text/x-emacs-lisp","encoding":"quoted-printable","extensions":["el"],"registered":false,"sort-priority":47},{"content-type":"text/x-erlang","encoding":"quoted-printable","extensions":["erl"],"registered":false,"sort-priority":47},{"content-type":"text/x-expect","encoding":"quoted-printable","extensions":["exp"],"registered":false,"sort-priority":47},{"content-type":"text/x-forth","encoding":"quoted-printable","extensions":["4th"],"registered":false,"sort-priority":47},{"content-type":"text/x-fortran","friendly":{"en":"Fortran Source File"},"encoding":"quoted-printable","extensions":["f","f77","f90","for"],"registered":false,"sort-priority":44},{"content-type":"text/x-go","encoding":"quoted-printable","extensions":["go"],"registered":false,"sort-priority":47},{"content-type":"text/x-groovy","encoding":"quoted-printable","extensions":["groovy"],"registered":false,"sort-priority":47},{"content-type":"text/x-haml","encoding":"quoted-printable","extensions":["haml"],"registered":false,"sort-priority":47},{"content-type":"text/x-haskell","encoding":"quoted-printable","extensions":["hs","lhs"],"registered":false,"sort-priority":46},{"content-type":"text/x-haxe","encoding":"quoted-printable","extensions":["hx"],"registered":false,"sort-priority":47},{"content-type":"text/x-idl","encoding":"quoted-printable","extensions":["idl"],"registered":false,"sort-priority":47},{"content-type":"text/x-ini","encoding":"quoted-printable","extensions":["ini"],"registered":false,"sort-priority":47},{"content-type":"text/x-java-properties","encoding":"quoted-printable","extensions":["properties"],"registered":false,"sort-priority":47},{"content-type":"text/x-java-source","friendly":{"en":"Java Source File"},"encoding":"quoted-printable","extensions":["java"],"registered":false,"sort-priority":47},{"content-type":"text/x-jsp","encoding":"quoted-printable","extensions":["jsp"],"registered":false,"sort-priority":47},{"content-type":"text/x-less","encoding":"quoted-printable","extensions":["less"],"registered":false,"sort-priority":47},{"content-type":"text/x-lex","encoding":"quoted-printable","extensions":["l"],"registered":false,"sort-priority":47},{"content-type":"text/x-log","encoding":"quoted-printable","extensions":["log"],"registered":false,"sort-priority":47},{"content-type":"text/x-lua","encoding":"quoted-printable","extensions":["lua"],"registered":false,"sort-priority":47},{"content-type":"text/x-makefile","encoding":"quoted-printable","extensions":["makefile","gnumakefile"],"registered":false,"sort-priority":46},{"content-type":"text/x-matlab","encoding":"quoted-printable","registered":false,"sort-priority":48},{"content-type":"text/x-ml","encoding":"quoted-printable","extensions":["ml"],"registered":false,"sort-priority":47},{"content-type":"text/x-modula","encoding":"quoted-printable","extensions":["m3","i3","mg","ig"],"registered":false,"sort-priority":44},{"content-type":"text/x-nfo","encoding":"quoted-printable","extensions":["nfo"],"registered":false,"sort-priority":47},{"content-type":"text/x-objcsrc","encoding":"quoted-printable","extensions":["m"],"registered":false,"sort-priority":47},{"content-type":"text/x-ocaml","encoding":"quoted-printable","extensions":["ocaml","mli"],"registered":false,"sort-priority":46},{"content-type":"text/x-opml","encoding":"quoted-printable","extensions":["opml"],"registered":false,"sort-priority":47},{"content-type":"text/x-pascal","friendly":{"en":"Pascal Source File"},"encoding":"quoted-printable","extensions":["p","pas","pp","dpr"],"registered":false,"sort-priority":44},{"content-type":"text/x-perl","encoding":"quoted-printable","extensions":["pl","pm","al","perl"],"registered":false,"sort-priority":44},{"content-type":"text/x-php","encoding":"quoted-printable","extensions":["php","php3","php4"],"registered":false,"sort-priority":45},{"content-type":"text/x-prolog","encoding":"quoted-printable","extensions":["pro"],"registered":false,"sort-priority":47},{"content-type":"text/x-python","encoding":"quoted-printable","extensions":["py"],"registered":false,"sort-priority":47},{"content-type":"text/x-rexx","encoding":"quoted-printable","extensions":["rexx"],"registered":false,"sort-priority":47},{"content-type":"text/x-robots","encoding":"quoted-printable","registered":false,"sort-priority":48},{"content-type":"text/x-rsrc","encoding":"quoted-printable","extensions":["r"],"registered":false,"sort-priority":47},{"content-type":"text/x-rst","encoding":"quoted-printable","extensions":["rest","rst","restx"],"registered":false,"sort-priority":45},{"content-type":"text/x-rtf","encoding":"8bit","extensions":["rtf"],"obsolete":true,"use-instead":"text/rtf","registered":false,"sort-priority":175},{"content-type":"text/x-ruby","encoding":"quoted-printable","extensions":["rb"],"registered":false,"sort-priority":47},{"content-type":"text/x-scala","encoding":"quoted-printable","extensions":["scala"],"registered":false,"sort-priority":47},{"content-type":"text/x-scheme","encoding":"quoted-printable","extensions":["scm"],"registered":false,"sort-priority":47},{"content-type":"text/x-sed","encoding":"quoted-printable","extensions":["sed"],"registered":false,"sort-priority":47},{"content-type":"text/x-setext","friendly":{"en":"Setext"},"encoding":"quoted-printable","extensions":["etx"],"registered":false,"sort-priority":47},{"content-type":"text/x-sfv","encoding":"quoted-printable","extensions":["sfv"],"registered":false,"sort-priority":47},{"content-type":"text/x-sql","encoding":"quoted-printable","extensions":["sql"],"registered":false,"sort-priority":47},{"content-type":"text/x-stsrc","encoding":"quoted-printable","extensions":["st"],"registered":false,"sort-priority":47},{"content-type":"text/x-tcl","encoding":"quoted-printable","extensions":["itk","tcl","tk"],"registered":false,"sort-priority":45},{"content-type":"text/x-tika-text-based-message","encoding":"quoted-printable","registered":false,"sort-priority":48},{"content-type":"text/x-uuencode","friendly":{"en":"UUEncode"},"encoding":"quoted-printable","extensions":["uu"],"registered":false,"sort-priority":47},{"content-type":"text/x-vbasic","encoding":"quoted-printable","extensions":["cls","frm"],"registered":false,"sort-priority":46},{"content-type":"text/x-vbdotnet","encoding":"quoted-printable","extensions":["vb"],"registered":false,"sort-priority":47},{"content-type":"text/x-vbscript","encoding":"quoted-printable","extensions":["vbs"],"registered":false,"sort-priority":47},{"content-type":"text/x-vcalendar","friendly":{"en":"vCalendar"},"encoding":"8bit","extensions":["vcs"],"registered":false,"sort-priority":47},{"content-type":"text/x-vcard","friendly":{"en":"vCard"},"encoding":"8bit","extensions":["vcf"],"registered":false,"signature":true,"sort-priority":47},{"content-type":"text/x-verilog","encoding":"quoted-printable","extensions":["v"],"registered":false,"sort-priority":47},{"content-type":"text/x-vhdl","encoding":"quoted-printable","extensions":["vhd","vhdl"],"registered":false,"sort-priority":46},{"content-type":"text/x-vnd.flatland.3dml","encoding":"quoted-printable","obsolete":true,"use-instead":"model/vnd.flatland.3dml","registered":false,"sort-priority":176},{"content-type":"text/x-web-markdown","encoding":"quoted-printable","extensions":["md","mdtext","mkd","markdown"],"registered":false,"sort-priority":44},{"content-type":"text/x-yacc","encoding":"quoted-printable","extensions":["y"],"registered":false,"sort-priority":47},{"content-type":"text/x-yaml","encoding":"8bit","extensions":["yaml","yml"],"registered":false,"sort-priority":46},{"content-type":"text/xml","encoding":"8bit","extensions":["xml","dtd","xsd"],"xrefs":{"rfc":["rfc7303"],"template":["text/xml"]},"registered":true,"sort-priority":13},{"content-type":"text/xml-external-parsed-entity","encoding":"quoted-printable","xrefs":{"rfc":["rfc7303"],"template":["text/xml-external-parsed-entity"]},"registered":true,"sort-priority":16},{"content-type":"video/1d-interleaved-parityfec","encoding":"base64","xrefs":{"rfc":["rfc6015"],"template":["video/1d-interleaved-parityfec"]},"registered":true,"sort-priority":16},{"content-type":"video/3gpp","friendly":{"en":"3GP"},"encoding":"base64","extensions":["3gp","3gpp"],"xrefs":{"rfc":["rfc3839","rfc6381"],"template":["video/3gpp"]},"registered":true,"sort-priority":14},{"content-type":"video/3gpp-tt","encoding":"base64","xrefs":{"rfc":["rfc4396"],"template":["video/3gpp-tt"]},"registered":true,"sort-priority":16},{"content-type":"video/3gpp2","friendly":{"en":"3GP2"},"encoding":"base64","extensions":["3g2","3gpp2"],"xrefs":{"rfc":["rfc4393","rfc6381"],"template":["video/3gpp2"]},"registered":true,"sort-priority":14},{"content-type":"video/AV1","encoding":"base64","xrefs":{"person":["Alliance_for_Open_Media"],"template":["video/AV1"]},"registered":true,"sort-priority":16},{"content-type":"video/BMPEG","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/BMPEG"]},"registered":true,"sort-priority":16},{"content-type":"video/BT656","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/BT656"]},"registered":true,"sort-priority":16},{"content-type":"video/CelB","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/CelB"]},"registered":true,"sort-priority":16},{"content-type":"video/daala","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"video/dl","encoding":"base64","extensions":["dl"],"obsolete":true,"use-instead":"video/x-dl","registered":false,"sort-priority":175},{"content-type":"video/DV","encoding":"base64","extensions":["dv"],"xrefs":{"rfc":["rfc6469"],"template":["video/DV"]},"registered":true,"sort-priority":15},{"content-type":"video/encaprtp","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["video/encaprtp"]},"registered":true,"sort-priority":16},{"content-type":"video/evc","encoding":"base64","xrefs":{"rfc":["rfc9584"],"template":["video/evc"]},"registered":true,"sort-priority":16},{"content-type":"video/example","encoding":"base64","xrefs":{"rfc":["rfc4735"],"template":["video/example"]},"registered":true,"sort-priority":16},{"content-type":"video/FFV1","encoding":"base64","xrefs":{"rfc":["rfc9043"],"template":["video/FFV1"]},"registered":true,"sort-priority":16},{"content-type":"video/flexfec","encoding":"base64","xrefs":{"rfc":["rfc8627"],"template":["video/flexfec"]},"registered":true,"sort-priority":16},{"content-type":"video/gl","encoding":"base64","extensions":["gl"],"obsolete":true,"use-instead":"video/x-gl","registered":false,"sort-priority":175},{"content-type":"video/H261","friendly":{"en":"H.261"},"encoding":"base64","extensions":["h261"],"xrefs":{"rfc":["rfc4587"],"template":["video/H261"]},"registered":true,"sort-priority":15},{"content-type":"video/H263","friendly":{"en":"H.263"},"encoding":"base64","extensions":["h263"],"xrefs":{"rfc":["rfc3555"],"template":["video/H263"]},"registered":true,"sort-priority":15},{"content-type":"video/H263-1998","encoding":"base64","xrefs":{"rfc":["rfc4629"],"template":["video/H263-1998"]},"registered":true,"sort-priority":16},{"content-type":"video/H263-2000","encoding":"base64","xrefs":{"rfc":["rfc4629"],"template":["video/H263-2000"]},"registered":true,"sort-priority":16},{"content-type":"video/H264","friendly":{"en":"H.264"},"encoding":"base64","extensions":["h264"],"xrefs":{"rfc":["rfc6184"],"template":["video/H264"]},"registered":true,"sort-priority":15},{"content-type":"video/H264-RCDO","encoding":"base64","xrefs":{"rfc":["rfc6185"],"template":["video/H264-RCDO"]},"registered":true,"sort-priority":16},{"content-type":"video/H264-SVC","encoding":"base64","xrefs":{"rfc":["rfc6190"],"template":["video/H264-SVC"]},"registered":true,"sort-priority":16},{"content-type":"video/H265","encoding":"base64","xrefs":{"rfc":["rfc7798"],"template":["video/H265"]},"registered":true,"sort-priority":16},{"content-type":"video/H266","encoding":"base64","xrefs":{"rfc":["rfc9328"],"template":["video/H266"]},"registered":true,"sort-priority":16},{"content-type":"video/iso.segment","encoding":"base64","extensions":["m4s"],"xrefs":{"person":["David_Singer","ISO-IEC_JTC_1"],"template":["video/iso.segment"]},"registered":true,"sort-priority":15},{"content-type":"video/JPEG","friendly":{"en":"JPGVideo"},"encoding":"base64","extensions":["jpgv"],"xrefs":{"rfc":["rfc3555"],"template":["video/JPEG"]},"registered":true,"sort-priority":15},{"content-type":"video/jpeg2000","encoding":"base64","xrefs":{"rfc":["rfc5371","rfc5372"],"template":["video/jpeg2000"]},"registered":true,"sort-priority":16},{"content-type":"video/jpeg2000-scl","encoding":"base64","xrefs":{"rfc":["rfc9828"],"template":["video/jpeg2000-scl"]},"registered":true,"sort-priority":16},{"content-type":"video/jpm","friendly":{"en":"JPEG 2000 Compound Image File Format"},"encoding":"base64","extensions":["jpgm","jpm"],"registered":false,"sort-priority":46},{"content-type":"video/jxsv","encoding":"base64","xrefs":{"rfc":["rfc9134"],"template":["video/jxsv"]},"registered":true,"sort-priority":16},{"content-type":"video/lottie+json","encoding":"base64","xrefs":{"person":["Lottie_Animation_Community"],"template":["video/lottie+json"]},"registered":true,"sort-priority":16},{"content-type":"video/matroska","encoding":"base64","xrefs":{"rfc":["rfc9559"],"template":["video/matroska"]},"registered":true,"sort-priority":16},{"content-type":"video/matroska-3d","encoding":"base64","xrefs":{"rfc":["rfc9559"],"template":["video/matroska-3d"]},"registered":true,"sort-priority":16},{"content-type":"video/MJ2","friendly":{"en":"Motion JPEG 2000"},"encoding":"base64","extensions":["mj2","mjp2"],"xrefs":{"rfc":["rfc3745"],"template":["video/mj2"]},"registered":true,"sort-priority":14},{"content-type":"video/MP1S","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/MP1S"]},"registered":true,"sort-priority":16},{"content-type":"video/MP2P","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/MP2P"]},"registered":true,"sort-priority":16},{"content-type":"video/MP2T","encoding":"base64","extensions":["ts","mts","m2ts","cpi","clpi","mpl","mpls","bdm","m2t"],"xrefs":{"rfc":["rfc3555"],"template":["video/MP2T"]},"registered":true,"sort-priority":7},{"content-type":"video/mp4","friendly":{"en":"MPEG-4 Video"},"encoding":"base64","extensions":["mp4","mpg4","f4v","f4p","mp4v"],"xrefs":{"rfc":["rfc4337","rfc6381"],"template":["video/mp4"]},"registered":true,"sort-priority":11},{"content-type":"video/MP4V-ES","encoding":"base64","xrefs":{"rfc":["rfc6416"],"template":["video/MP4V-ES"]},"registered":true,"sort-priority":16},{"content-type":"video/mpeg","friendly":{"en":"MPEG Video"},"encoding":"base64","extensions":["mp2","mp3g","mpe","mpeg","mpg","m1v","m2v"],"xrefs":{"rfc":["rfc2045","rfc2046"],"template":["video/mpeg"]},"registered":true,"sort-priority":9},{"content-type":"video/mpeg4-generic","encoding":"base64","xrefs":{"rfc":["rfc3640"],"template":["video/mpeg4-generic"]},"registered":true,"sort-priority":16},{"content-type":"video/MPV","encoding":"base64","xrefs":{"rfc":["rfc3555"],"template":["video/MPV"]},"registered":true,"sort-priority":16},{"content-type":"video/nv","encoding":"base64","xrefs":{"rfc":["rfc4856"],"template":["video/nv"]},"registered":true,"sort-priority":16},{"content-type":"video/ogg","friendly":{"en":"Ogg Video"},"encoding":"base64","extensions":["ogg","ogv"],"xrefs":{"rfc":["rfc5334","rfc7845"],"template":["video/ogg"]},"registered":true,"sort-priority":14},{"content-type":"video/parityfec","encoding":"base64","xrefs":{"rfc":["rfc3009"],"template":["video/parityfec"]},"registered":true,"sort-priority":16},{"content-type":"video/pointer","encoding":"base64","xrefs":{"rfc":["rfc2862"],"template":["video/pointer"]},"registered":true,"sort-priority":16},{"content-type":"video/quicktime","friendly":{"en":"Quicktime Video"},"encoding":"base64","extensions":["qt","mov"],"xrefs":{"rfc":["rfc6381"],"person":["Paul_Lindner"],"template":["video/quicktime"]},"registered":true,"sort-priority":14},{"content-type":"video/raptorfec","encoding":"base64","xrefs":{"rfc":["rfc6682"],"template":["video/raptorfec"]},"registered":true,"sort-priority":16},{"content-type":"video/raw","encoding":"base64","xrefs":{"rfc":["rfc4175"],"template":["video/raw"]},"registered":true,"sort-priority":16},{"content-type":"video/rtp-enc-aescm128","encoding":"base64","xrefs":{"person":["_3GPP"],"template":["video/rtp-enc-aescm128"]},"registered":true,"sort-priority":16},{"content-type":"video/rtploopback","encoding":"base64","xrefs":{"rfc":["rfc6849"],"template":["video/rtploopback"]},"registered":true,"sort-priority":16},{"content-type":"video/rtx","encoding":"base64","xrefs":{"rfc":["rfc4588"],"template":["video/rtx"]},"registered":true,"sort-priority":16},{"content-type":"video/scip","encoding":"base64","xrefs":{"rfc":["rfc9607"],"template":["video/scip"]},"registered":true,"sort-priority":16},{"content-type":"video/smpte291","encoding":"base64","xrefs":{"rfc":["rfc8331"],"template":["video/smpte291"]},"registered":true,"sort-priority":16},{"content-type":"video/SMPTE292M","encoding":"base64","xrefs":{"rfc":["rfc3497"],"template":["video/SMPTE292M"]},"registered":true,"sort-priority":16},{"content-type":"video/theora","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"video/ulpfec","encoding":"base64","xrefs":{"rfc":["rfc5109"],"template":["video/ulpfec"]},"registered":true,"sort-priority":16},{"content-type":"video/vc1","encoding":"base64","xrefs":{"rfc":["rfc4425"],"template":["video/vc1"]},"registered":true,"sort-priority":16},{"content-type":"video/vc2","encoding":"base64","xrefs":{"rfc":["rfc8450"],"template":["video/vc2"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.blockfact.factv","encoding":"base64","xrefs":{"person":["Egbert_von_Frankenberg"],"template":["video/vnd.blockfact.factv"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.CCTV","encoding":"base64","xrefs":{"person":["Frank_Rottmann"],"template":["video/vnd.CCTV"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.dece.hd","friendly":{"en":"DECE High Definition Video"},"encoding":"base64","extensions":["uvh","uvvh"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.hd"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.dece.mobile","friendly":{"en":"DECE Mobile Video"},"encoding":"base64","extensions":["uvm","uvvm"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.mobile"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.dece.mp4","encoding":"base64","xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.mp4"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.dece.pd","friendly":{"en":"DECE PD Video"},"encoding":"base64","extensions":["uvp","uvvp"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.pd"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.dece.sd","friendly":{"en":"DECE SD Video"},"encoding":"base64","extensions":["uvs","uvvs"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.sd"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.dece.video","friendly":{"en":"DECE Video"},"encoding":"base64","extensions":["uvv","uvvv"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.dece.video"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.directv.mpeg","encoding":"base64","xrefs":{"person":["Nathan_Zerbe"],"template":["video/vnd.directv.mpeg"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.directv.mpeg-tts","encoding":"base64","xrefs":{"person":["Nathan_Zerbe"],"template":["video/vnd.directv.mpeg-tts"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.dlna.mpeg-tts","encoding":"base64","xrefs":{"person":["Edwin_Heredia"],"template":["video/vnd.dlna.mpeg-tts"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.dvb.file","encoding":"base64","extensions":["dvb"],"xrefs":{"person":["Kevin_Murray","Peter_Siebert"],"template":["video/vnd.dvb.file"]},"registered":true,"sort-priority":15},{"content-type":"video/vnd.fvt","friendly":{"en":"FAST Search & Transfer ASA"},"encoding":"base64","extensions":["fvt"],"xrefs":{"person":["Arild_Fuldseth"],"template":["video/vnd.fvt"]},"registered":true,"sort-priority":15},{"content-type":"video/vnd.hns.video","encoding":"base64","xrefs":{"person":["Swaminathan"],"template":["video/vnd.hns.video"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.1dparityfec-1010","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.1dparityfec-1010"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.1dparityfec-2005","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.1dparityfec-2005"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.2dparityfec-1010","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.2dparityfec-1010"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.2dparityfec-2005","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.2dparityfec-2005"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.ttsavc","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.ttsavc"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.iptvforum.ttsmpeg2","encoding":"base64","xrefs":{"person":["Shuji_Nakamura"],"template":["video/vnd.iptvforum.ttsmpeg2"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.motorola.video","encoding":"base64","xrefs":{"person":["Tom_McGinty"],"template":["video/vnd.motorola.video"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.motorola.videop","encoding":"base64","xrefs":{"person":["Tom_McGinty"],"template":["video/vnd.motorola.videop"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.mpegurl","friendly":{"en":"MPEG Url"},"encoding":"8bit","extensions":["mxu","m4u"],"xrefs":{"person":["Heiko_Recktenwald"],"template":["video/vnd.mpegurl"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.ms-playready.media.pyv","friendly":{"en":"Microsoft PlayReady Ecosystem Video"},"encoding":"base64","extensions":["pyv"],"xrefs":{"person":["Steve_DiAcetis"],"template":["video/vnd.ms-playready.media.pyv"]},"registered":true,"sort-priority":15},{"content-type":"video/vnd.nokia.interleaved-multimedia","encoding":"base64","extensions":["nim"],"xrefs":{"person":["Petteri_Kangaslampi"],"template":["video/vnd.nokia.interleaved-multimedia"]},"registered":true,"sort-priority":15},{"content-type":"video/vnd.nokia.mp4vr","encoding":"base64","xrefs":{"person":["Miska_M._Hannuksela"],"template":["video/vnd.nokia.mp4vr"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.nokia.videovoip","encoding":"base64","xrefs":{"person":["Nokia"],"template":["video/vnd.nokia.videovoip"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.objectvideo","encoding":"base64","extensions":["mp4","m4v"],"xrefs":{"person":["John_Clark"],"template":["video/vnd.objectvideo"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.planar","encoding":"base64","xrefs":{"person":["David_Atkins"],"template":["video/vnd.planar"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.radgamettools.bink","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["video/vnd.radgamettools.bink"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.radgamettools.smacker","encoding":"base64","xrefs":{"person":["Henrik_Andersson"],"template":["video/vnd.radgamettools.smacker"]},"registered":true,"sort-priority":16},{"content-type":"video/vnd.sealed.mpeg1","encoding":"base64","extensions":["s11"],"xrefs":{"person":["David_Petersen"],"template":["video/vnd.sealed.mpeg1"]},"registered":true,"sort-priority":15},{"content-type":"video/vnd.sealed.mpeg4","encoding":"base64","extensions":["smpg","s14"],"xrefs":{"person":["David_Petersen"],"template":["video/vnd.sealed.mpeg4"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.sealed.swf","encoding":"base64","extensions":["sswf","ssw"],"xrefs":{"person":["David_Petersen"],"template":["video/vnd.sealed.swf"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.sealedmedia.softseal.mov","encoding":"base64","extensions":["smov","smo","s1q"],"xrefs":{"person":["David_Petersen"],"template":["video/vnd.sealedmedia.softseal.mov"]},"registered":true,"sort-priority":13},{"content-type":"video/vnd.uvvu.mp4","friendly":{"en":"DECE MP4"},"encoding":"base64","extensions":["uvu","uvvu"],"xrefs":{"person":["Michael_A_Dolan"],"template":["video/vnd.uvvu.mp4"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.vivo","friendly":{"en":"Vivo"},"encoding":"base64","extensions":["viv","vivo"],"xrefs":{"person":["John_Wolfe"],"template":["video/vnd.vivo"]},"registered":true,"sort-priority":14},{"content-type":"video/vnd.youtube.yt","encoding":"base64","xrefs":{"person":["Google"],"template":["video/vnd.youtube.yt"]},"registered":true,"sort-priority":16},{"content-type":"video/VP8","encoding":"base64","xrefs":{"rfc":["rfc7741"],"template":["video/VP8"]},"registered":true,"sort-priority":16},{"content-type":"video/VP9","encoding":"base64","xrefs":{"rfc":["rfc9628"],"template":["video/VP9"]},"registered":true,"sort-priority":16},{"content-type":"video/webm","friendly":{"en":"Open Web Media Project - Video"},"encoding":"base64","extensions":["webm"],"registered":false,"sort-priority":47},{"content-type":"video/x-dirac","encoding":"base64","extensions":["drc"],"registered":false,"sort-priority":47},{"content-type":"video/x-dl","encoding":"base64","extensions":["dl"],"registered":false,"sort-priority":47},{"content-type":"video/x-dv","encoding":"base64","extensions":["dv"],"obsolete":true,"use-instead":"video/DV","registered":false,"sort-priority":175},{"content-type":"video/x-f4v","friendly":{"en":"Flash Video"},"encoding":"base64","extensions":["f4v"],"registered":false,"sort-priority":47},{"content-type":"video/x-flc","encoding":"base64","extensions":["flc"],"registered":false,"sort-priority":47},{"content-type":"video/x-fli","friendly":{"en":"FLI/FLC Animation Format"},"encoding":"base64","extensions":["fli"],"registered":false,"sort-priority":47},{"content-type":"video/x-flv","friendly":{"en":"Flash Video"},"encoding":"base64","extensions":["flv"],"registered":false,"sort-priority":47},{"content-type":"video/x-gl","encoding":"base64","extensions":["gl"],"registered":false,"sort-priority":47},{"content-type":"video/x-ivf","encoding":"base64","extensions":["ivf"],"registered":false,"sort-priority":47},{"content-type":"video/x-jng","encoding":"base64","extensions":["jng"],"registered":false,"sort-priority":47},{"content-type":"video/x-m4v","friendly":{"en":"M4v"},"encoding":"base64","extensions":["m4v"],"registered":false,"sort-priority":47},{"content-type":"video/x-matroska","encoding":"base64","extensions":["mk3d","mks","mkv"],"registered":false,"sort-priority":45},{"content-type":"video/x-mng","encoding":"base64","extensions":["mng"],"registered":false,"sort-priority":47},{"content-type":"video/x-motion-jpeg","encoding":"base64","extensions":["mjpg","mjpeg"],"registered":false,"sort-priority":46},{"content-type":"video/x-ms-asf","friendly":{"en":"Microsoft Advanced Systems Format (ASF)"},"encoding":"base64","extensions":["asf","asx"],"registered":false,"sort-priority":46},{"content-type":"video/x-ms-vob","encoding":"base64","extensions":["vob"],"registered":false,"sort-priority":47},{"content-type":"video/x-ms-wm","friendly":{"en":"Microsoft Windows Media"},"encoding":"base64","extensions":["wm"],"registered":false,"sort-priority":47},{"content-type":"video/x-ms-wmv","friendly":{"en":"Microsoft Windows Media Video"},"encoding":"base64","extensions":["wmv"],"registered":false,"sort-priority":47},{"content-type":"video/x-ms-wmx","friendly":{"en":"Microsoft Windows Media Audio/Video Playlist"},"encoding":"base64","extensions":["wmx"],"registered":false,"sort-priority":47},{"content-type":"video/x-ms-wvx","friendly":{"en":"Microsoft Windows Media Video Playlist"},"encoding":"base64","extensions":["wvx"],"registered":false,"sort-priority":47},{"content-type":"video/x-msvideo","friendly":{"en":"Audio Video Interleave (AVI)"},"encoding":"base64","extensions":["avi"],"registered":false,"sort-priority":47},{"content-type":"video/x-oggrgb","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"video/x-ogguvs","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"video/x-oggyuv","encoding":"base64","registered":false,"sort-priority":48},{"content-type":"video/x-ogm","encoding":"base64","extensions":["ogm"],"registered":false,"sort-priority":47},{"content-type":"video/x-sgi-movie","friendly":{"en":"SGI Movie"},"encoding":"base64","extensions":["movie"],"registered":false,"sort-priority":47},{"content-type":"video/x-smv","encoding":"base64","extensions":["smv"],"registered":false,"sort-priority":47},{"content-type":"x-chemical/x-pdb","encoding":"base64","extensions":["pdb"],"registered":false,"sort-priority":47},{"content-type":"x-chemical/x-xyz","encoding":"base64","extensions":["xyz"],"registered":false,"sort-priority":47},{"content-type":"x-conference/x-cooltalk","friendly":{"en":"CoolTalk"},"encoding":"base64","extensions":["ice"],"registered":false,"sort-priority":47},{"content-type":"x-drawing/dwf","encoding":"base64","extensions":["dwf"],"registered":false,"sort-priority":47},{"content-type":"x-world/x-vrml","encoding":"base64","extensions":["wrl","vrml"],"registered":false,"sort-priority":46}] diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.content_type.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.content_type.column new file mode 100644 index 0000000..d0c7fd5 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.content_type.column @@ -0,0 +1,3021 @@ +application/1d-interleaved-parityfec +application/1ob +application/3gpdash-qoe-report+xml +application/3gpp-ims+xml +application/3gppHal+json +application/3gppHalForms+json +application/A2L +application/acad +application/access mdf mda mdb mde +application/ace+cbor +application/ace+json +application/ace-groupcomm+cbor +application/ace-trl+cbor +application/activemessage +application/activity+json +application/aif+cbor +application/aif+json +application/akn+xml +application/alto-cdni+json +application/alto-cdnifilter+json +application/alto-costmap+json +application/alto-costmapfilter+json +application/alto-directory+json +application/alto-endpointcost+json +application/alto-endpointcostparams+json +application/alto-endpointprop+json +application/alto-endpointpropparams+json +application/alto-error+json +application/alto-networkmap+json +application/alto-networkmapfilter+json +application/alto-propmap+json +application/alto-propmapparams+json +application/alto-tips+json +application/alto-tipsparams+json +application/alto-updatestreamcontrol+json +application/alto-updatestreamparams+json +application/AML +application/andrew-inset ez +application/appledouble +application/applefile +application/application/jwk-set+jwt +application/applixware aw +application/at+jwt +application/ATF +application/ATFX +application/atom+xml atom +application/atomcat+xml atomcat +application/atomdeleted+xml +application/atomicmail +application/atomsvc+xml atomsvc +application/atsc-dwd+xml +application/atsc-dynamic-event-message +application/atsc-held+xml +application/atsc-rdt+json +application/atsc-rsat+xml +application/ATXML +application/auth-policy+xml +application/automationml-aml+xml +application/automationml-amlx+zip +application/bacnet-xdd+zip +application/batch-SMTP +application/beep+xml +application/bizagi-modeler bpm +application/bleeper bleep +application/bufr +application/c2pa +application/calendar+json +application/calendar+xml +application/call-completion +application/cals-1840 +application/cals1840 +application/cap+xml +application/captive+json +application/cbor cbor +application/cbor-seq +application/cccex +application/ccmp+xml +application/ccxml+xml ccxml +application/cda+xml +application/CDFX+XML +application/cdmi-capability cdmia +application/cdmi-container cdmic +application/cdmi-domain cdmid +application/cdmi-object cdmio +application/cdmi-queue cdmiq +application/cdni +application/ce+cbor +application/CEA +application/cea-2018+xml +application/cellml+xml +application/cert-chain+cbor +application/CESR +application/cfw +application/cid +application/cid-edhoc+cbor-seq +application/city+json +application/city+json-seq +application/clariscad +application/clr +application/clue+xml +application/clue_info+xml +application/cms +application/cmw+cbor +application/cnrp+xml +application/coap-eap +application/coap-group+json +application/coap-payload +application/commonground +application/concise-problem-details+cbor +application/conference-info+xml +application/coreldraw cdr +application/cose +application/cose-key +application/cose-key-set +application/cose-x509 +application/cpl+xml +application/csrattrs +application/csta+xml +application/CSTAdata+xml +application/csvm+json +application/cu-seeme cu +application/cwl +application/cwl+json +application/cwl+yaml +application/cwt +application/cybercash +application/dash+xml mpd +application/dash-patch+xml +application/dashdelta +application/davmount+xml davmount +application/dca-rft +application/DCD +application/dec-dx +application/deflate +application/dialog-info+xml +application/dicom dcm +application/dicom+json +application/dicom+xml +application/did +application/dif+xml dif +application/DII +application/DIT +application/dita+xml +application/dns +application/dns+json +application/dns-message +application/docbook+xml dbk +application/dots+cbor +application/dpop+jwt +application/drafting +application/dskpp+xml +application/dssc+der dssc +application/dssc+xml xdssc +application/dvcs +application/dxf +application/eat+cwt +application/eat+jwt +application/eat-bun+cbor +application/eat-bun+json +application/eat-ucs+cbor +application/eat-ucs+json +application/ecmascript ecma es +application/edhoc+cbor-seq +application/EDI-consent +application/EDI-X12 +application/EDIFACT +application/efi +application/elm+json +application/elm+xml +application/EmergencyCallData.cap+xml +application/EmergencyCallData.Comment+xml +application/EmergencyCallData.Control+xml +application/EmergencyCallData.DeviceInfo+xml +application/EmergencyCallData.eCall.MSD +application/EmergencyCallData.LegacyESN+json +application/EmergencyCallData.ProviderInfo+xml +application/EmergencyCallData.ServiceInfo+xml +application/EmergencyCallData.SubscriberInfo+xml +application/EmergencyCallData.VEDS+xml +application/emma+xml emma +application/emotionml+xml +application/encaprtp +application/entity-statement+jwt +application/envi.hdr hdr +application/epp+xml +application/epub+zip epub +application/eshop +application/example +application/excel xls xlt +application/exi exi +application/expect-ct-report+json +application/express +application/fastinfoset +application/fastsoap +application/fdf +application/fdt+xml +application/fhir+json +application/fhir+xml +application/fits fits fit fts +application/flexfec +application/font-sfnt otf ttf +application/font-tdpfr pfr +application/font-woff woff woff2 +application/fractals +application/framework-attributes+xml +application/futuresplash spl +application/geo+json +application/geo+json-seq +application/geofeed+csv +application/geopackage+sqlite3 +application/geopose+json +application/geoxacml+json +application/geoxacml+xml +application/ghostview +application/gltf-buffer +application/gml+xml gml +application/gnap-binding-jws +application/gnap-binding-jwsd +application/gnap-binding-rotation-jws +application/gnap-binding-rotation-jwsd +application/gpx+xml gpx +application/grib +application/gxf gxf +application/gzip gz tgz +application/H224 +application/held+xml +application/hep hep +application/hl7v2+xml +application/http +application/hwp+zip hwpx +application/hyperstudio stk +application/i-deas +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/illustrator ai +application/illustrator+ps +application/im-iscomposing+xml +application/imagemap imagemap imap +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/inf +application/inkml+xml ink inkml +application/ion +application/iotp +application/ipfix ipfix +application/ipp +application/isup +application/its+xml +application/java-archive jar +application/java-serialized-object ser +application/java-vm class +application/javascript js mjs sj +application/jf2feed+json +application/jose +application/jose+json +application/jrd+json +application/jscalendar+json +application/jscontact+json +application/json json +application/json-nd +application/json-patch+json +application/json-patch-query+json +application/json-seq +application/jsonml+json jsonml +application/jsonpath +application/jwk+json +application/jwk-set+json +application/jwk-set+jwt +application/jwt +application/kate +application/kb+jwt +application/kpml-request+xml +application/kpml-response+xml +application/ld+json +application/lgr+xml +application/link-format +application/linkset +application/linkset+json +application/load-control+xml +application/logout+jwt +application/lost+xml lostxml +application/lostsync+xml +application/lotus-123 wks +application/lpf+zip +application/LXF +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macbinary +application/macwriteii +application/mads+xml mads +application/manifest+json webmanifest +application/marc mrc +application/marcxml+xml mrcx +application/mathcad mcd +application/mathematica ma mb nb +application/mathematica-old +application/mathml+xml mathml +application/mathml-content+xml +application/mathml-presentation+xml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-schedule+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/media-policy-dataset+xml +application/media_control+xml +application/mediaservercontrol+xml mscml +application/merge-patch+json +application/metalink+xml metalink +application/metalink4+xml meta4 +application/mets+xml mets +application/MF4 +application/mikey +application/mipc +application/missing-blocks+cbor-seq +application/mmt-aei+xml +application/mmt-usd+xml +application/mods+xml mods +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request +application/mp21 m21 mp21 +application/mp4 mp4 mpg4 mp4s +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/mrb-consumer+xml +application/mrb-publish+xml +application/msc-ivr+xml +application/msc-mixer+xml +application/msword doc dot wrd +application/msword2 +application/msword5 +application/mud+json +application/multipart-core +application/mxf mxf +application/n-quads +application/n-triples +application/nasdata +application/netcdf nc cdf +application/news-checkgroups +application/news-groupinfo +application/news-message-id +application/news-transmission +application/nlsml+xml +application/node +application/nss +application/oauth-authz-req+jwt +application/oblivious-dns-message +application/ocsp-request +application/ocsp-response +application/octet-stream bin dms lha lzh class ani pgp gpg so dll dylib bpk deploy dist distz dump elc lrf mar pkg ipa +application/oda oda +application/odm+json +application/odm+xml +application/ODX +application/oebps-package+xml opf +application/ogg ogx +application/ohttp-keys +application/omdoc+xml omdoc +application/onenote onepkg onetmp onetoc onetoc2 +application/onix-message+xml +application/onix-message-short+xml +application/opc-nodeset+xml +application/oscore +application/oxps oxps +application/p21 +application/p21+zip +application/p2p-overlay+xml +application/parityfec +application/passport +application/patch-ops-error+xml xer +application/pdf pdf ai +application/PDX +application/pem-certificate-chain +application/pgp-encrypted pgp gpg +application/pgp-keys +application/pgp-signature asc sig +application/pics-rules prf +application/pidf+xml +application/pidf-diff+xml +application/pkcs10 p10 +application/pkcs12 +application/pkcs7-mime p7m p7c +application/pkcs7-signature p7s +application/pkcs8 p8 +application/pkcs8-encrypted +application/pkix-attr-cert ac +application/pkix-cert cer +application/pkix-crl crl +application/pkix-keyinfo +application/pkix-pkipath pkipath +application/pkixcmp pki +application/pls+xml pls +application/poc-settings+xml +application/postscript eps ps ai epsf epsi +application/powerpoint ppt pps pot +application/ppsp-tracker+json +application/private-token-issuer-directory +application/private-token-request +application/private-token-response +application/pro_eng +application/problem+json +application/problem+xml +application/provenance+xml +application/provided-claims+jwt +application/prql prql +application/prs.alvestrand.titrax-sheet +application/prs.cww cw cww +application/prs.cyn +application/prs.hpub+zip +application/prs.implied-document+xml +application/prs.implied-executable +application/prs.implied-object+json +application/prs.implied-object+json-seq +application/prs.implied-object+yaml +application/prs.implied-structure +application/prs.mayfile +application/prs.nprend rnd rct +application/prs.plucker +application/prs.rdf-xml-crypt +application/prs.vcfbzip2 +application/prs.xsf+xml +application/pskc+xml pskcxml +application/pvd+json +application/qsig +application/quicktime +application/quicktimeplayer qtl +application/raptorfec +application/rdap+json +application/rdf+xml rdf owl xmp +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/remote_printing +application/reports+json +application/reputon+json +application/resolve-response+jwt +application/resource-lists+xml rl +application/resource-lists-diff+xml rld +application/rfc+xml +application/rif+xml +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/route-apd+xml +application/route-s-tsid+xml +application/route-usd+xml +application/rpki-checklist +application/rpki-ghostbusters gbr +application/rpki-manifest mft +application/rpki-publication +application/rpki-roa roa +application/rpki-signed-tal +application/rpki-updown +application/rs-metadata+xml +application/rsd+xml rsd +application/rss+xml rss +application/rtf rtf +application/rtploopback +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sarif+json +application/sarif-external-properties+json +application/sbe +application/sbml+xml sbml +application/scaip+xml +application/scim+json +application/scvp-cv-request scq +application/scvp-cv-response scs +application/scvp-vp-request spq +application/scvp-vp-response spp +application/sd-jwt +application/sd-jwt+json +application/sdf+json +application/sdp sdp +application/secevent+jwt +application/senml+cbor +application/senml+json +application/senml+xml +application/senml-etch+cbor +application/senml-etch+json +application/senml-exi +application/sensml+cbor +application/sensml+json +application/sensml+xml +application/sensml-exi +application/sep+xml +application/sep-exi +application/sereal srl +application/session-info +application/set +application/set-payment +application/set-payment-initiation setpay +application/set-registration +application/set-registration-initiation setreg +application/sgml sgml +application/sgml-open-catalog soc +application/shf+xml shf +application/sieve siv +application/signed-exchange +application/simple-filter+xml +application/simple-message-summary +application/simpleSymbolContainer +application/sipc +application/SLA +application/slate +application/sldworks sldprt sldasm slddrw +application/smil smi smil +application/smil+xml smi smil sml +application/smpte336m +application/soap+fastinfoset +application/soap+xml +application/solids +application/sparql-query rq +application/sparql-results+xml srx +application/spdx+json +application/spirits-event+xml +application/sql +application/srgs gram +application/srgs+xml grxml +application/sru+xml sru +application/ssdl+xml ssdl +application/sslkeylogfile +application/ssml+xml ssml +application/ST2110-41 +application/STEP +application/stix+json +application/stratum +application/suit-envelope+cose +application/swid+cbor +application/swid+xml +application/tamp-apex-update +application/tamp-apex-update-confirm +application/tamp-community-update +application/tamp-community-update-confirm +application/tamp-error +application/tamp-sequence-adjust +application/tamp-sequence-adjust-confirm +application/tamp-status-query +application/tamp-status-response +application/tamp-update +application/tamp-update-confirm +application/taxii+json +application/td+json +application/tei+xml tei teicorpus +application/TETRA_ISI +application/texinfo +application/thraud+xml tfi +application/timestamp-query +application/timestamp-reply +application/timestamped-data tsd +application/tlsrpt+gzip +application/tlsrpt+json +application/tm+json +application/tnauthlist +application/toc+cbor +application/token-introspection+jwt +application/toml +application/toolbook tbk +application/trickle-ice-sdpfrag +application/trig +application/trust-chain+json +application/trust-mark+jwt +application/trust-mark-delegation+jwt +application/ttml+xml ttml +application/tve-trigger +application/tzif +application/tzif-leap +application/uccs+cbor +application/ujcs+json +application/ulpfec +application/urc-grpsheet+xml +application/urc-ressheet+xml +application/urc-targetdesc+xml +application/urc-uisocketdesc+xml +application/vc +application/vc+cose +application/vc+jwt +application/vcard+json +application/vcard+xml +application/vda +application/vemmi +application/vividence.scriptfile +application/VMSBACKUP bck +application/vnd.1000minds.decision-model+xml +application/vnd.1ob +application/vnd.3gpp-prose+xml +application/vnd.3gpp-prose-pc3a+xml +application/vnd.3gpp-prose-pc3ach+xml +application/vnd.3gpp-prose-pc3ch+xml +application/vnd.3gpp-prose-pc8+xml +application/vnd.3gpp-v2x-local-service-information +application/vnd.3gpp.5gnas +application/vnd.3gpp.5gsa2x +application/vnd.3gpp.5gsa2x-local-service-information +application/vnd.3gpp.5gsv2x +application/vnd.3gpp.5gsv2x-local-service-information +application/vnd.3gpp.access-transfer-events+xml +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.crs+xml +application/vnd.3gpp.current-location-discovery+xml +application/vnd.3gpp.GMOP+xml +application/vnd.3gpp.gtpc +application/vnd.3gpp.interworking-data +application/vnd.3gpp.lpp +application/vnd.3gpp.mc-signalling-ear +application/vnd.3gpp.mcdata-affiliation-command+xml +application/vnd.3gpp.mcdata-info+xml +application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml +application/vnd.3gpp.mcdata-payload +application/vnd.3gpp.mcdata-regroup+xml +application/vnd.3gpp.mcdata-service-config+xml +application/vnd.3gpp.mcdata-signalling +application/vnd.3gpp.mcdata-ue-config+xml +application/vnd.3gpp.mcdata-user-profile+xml +application/vnd.3gpp.mcptt-affiliation-command+xml +application/vnd.3gpp.mcptt-floor-request+xml +application/vnd.3gpp.mcptt-info+xml +application/vnd.3gpp.mcptt-location-info+xml +application/vnd.3gpp.mcptt-mbms-usage-info+xml +application/vnd.3gpp.mcptt-regroup+xml +application/vnd.3gpp.mcptt-service-config+xml +application/vnd.3gpp.mcptt-signed+xml +application/vnd.3gpp.mcptt-ue-config+xml +application/vnd.3gpp.mcptt-ue-init-config+xml +application/vnd.3gpp.mcptt-user-profile+xml +application/vnd.3gpp.mcvideo-affiliation-command+xml +application/vnd.3gpp.mcvideo-affiliation-info+xml +application/vnd.3gpp.mcvideo-info+xml +application/vnd.3gpp.mcvideo-location-info+xml +application/vnd.3gpp.mcvideo-mbms-usage-info+xml +application/vnd.3gpp.mcvideo-regroup+xml +application/vnd.3gpp.mcvideo-service-config+xml +application/vnd.3gpp.mcvideo-transmission-request+xml +application/vnd.3gpp.mcvideo-ue-config+xml +application/vnd.3gpp.mcvideo-user-profile+xml +application/vnd.3gpp.mid-call+xml +application/vnd.3gpp.ngap +application/vnd.3gpp.pfcp +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +application/vnd.3gpp.pinapp-info+xml +application/vnd.3gpp.s1ap +application/vnd.3gpp.seal-app-comm-requirements-info+xml +application/vnd.3gpp.seal-data-delivery-info+cbor +application/vnd.3gpp.seal-data-delivery-info+xml +application/vnd.3gpp.seal-group-doc+xml +application/vnd.3gpp.seal-info+xml +application/vnd.3gpp.seal-location-info+cbor +application/vnd.3gpp.seal-location-info+xml +application/vnd.3gpp.seal-mbms-usage-info+xml +application/vnd.3gpp.seal-mbs-usage-info+xml +application/vnd.3gpp.seal-network-QoS-management-info+xml +application/vnd.3gpp.seal-network-resource-info+cbor +application/vnd.3gpp.seal-ue-config-info+xml +application/vnd.3gpp.seal-unicast-info+xml +application/vnd.3gpp.seal-user-profile-info+xml +application/vnd.3gpp.sms sms +application/vnd.3gpp.sms+xml +application/vnd.3gpp.srvcc-ext+xml +application/vnd.3gpp.SRVCC-info+xml +application/vnd.3gpp.state-and-event-info+xml +application/vnd.3gpp.ussd+xml +application/vnd.3gpp.v2x +application/vnd.3gpp.vae-info+xml +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms +application/vnd.3gpp2.tcap tcap +application/vnd.3lightssoftware.imagescal +application/vnd.3M.Post-it-Notes pwn +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acm.addressxfer+json +application/vnd.acm.chatbot+json +application/vnd.acucobol acu +application/vnd.acucorp atc acutc +application/vnd.adobe.aftereffects.project aep +application/vnd.adobe.aftereffects.template aet +application/vnd.adobe.air-application-installer-package+zip air +application/vnd.adobe.flash.movie +application/vnd.adobe.formscentral.fcdt fcdt +application/vnd.adobe.fxp fxp fxpl +application/vnd.adobe.indesign-idml-package idml +application/vnd.adobe.partial-upload +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.afpc.afplinedata +application/vnd.afpc.afplinedata-pagedef +application/vnd.afpc.cmoca-cmresource +application/vnd.afpc.foca-charset +application/vnd.afpc.foca-codedfont +application/vnd.afpc.foca-codepage +application/vnd.afpc.modca +application/vnd.afpc.modca-cmtable +application/vnd.afpc.modca-formdef +application/vnd.afpc.modca-mediummap +application/vnd.afpc.modca-objectcontainer +application/vnd.afpc.modca-overlay +application/vnd.afpc.modca-pagesegment +application/vnd.age +application/vnd.ah-barcode +application/vnd.ahead.space ahead +application/vnd.airzip.filesecure.azf azf +application/vnd.airzip.filesecure.azs azs +application/vnd.amadeus+json +application/vnd.amazon.ebook azw +application/vnd.amazon.mobi8-ebook +application/vnd.americandynamics.acc acc +application/vnd.amiga.ami ami +application/vnd.amundsen.maze+xml +application/vnd.android.ota +application/vnd.android.package-archive apk +application/vnd.anki +application/vnd.anser-web-certificate-issue-initiation cii +application/vnd.anser-web-funds-transfer-initiation fti +application/vnd.antix.game-component atx +application/vnd.apache.arrow.file +application/vnd.apache.arrow.stream +application/vnd.apache.parquet +application/vnd.apache.thrift.binary +application/vnd.apache.thrift.compact +application/vnd.apache.thrift.json +application/vnd.apexlang +application/vnd.api+json +application/vnd.aplextor.warrp+json +application/vnd.apothekende.reservation+json +application/vnd.apple.installer+xml mpkg +application/vnd.apple.iwork +application/vnd.apple.keynote key +application/vnd.apple.mpegurl m3u8 +application/vnd.apple.numbers numbers +application/vnd.apple.pages pages +application/vnd.apple.pkpass pkpass +application/vnd.apple.unknown.13 +application/vnd.arastra.swi swi +application/vnd.aristanetworks.swi swi +application/vnd.artisan+json +application/vnd.artsquare +application/vnd.astraea-software.iota iota +application/vnd.audiograph aep +application/vnd.autopackage +application/vnd.avalon+json +application/vnd.avistar+xml +application/vnd.balsamiq.bmml+xml +application/vnd.balsamiq.bmpr +application/vnd.banana-accounting +application/vnd.bbf.usp.error +application/vnd.bbf.usp.msg +application/vnd.bbf.usp.msg+json +application/vnd.bekitzur-stech+json +application/vnd.belightsoft.lhzd+zip +application/vnd.belightsoft.lhzl+zip +application/vnd.bint.med-content +application/vnd.biopax.rdf+xml +application/vnd.blink-idb-value-wrapper +application/vnd.blueice.multipass mpm +application/vnd.bluetooth.ep.oob +application/vnd.bluetooth.le.oob +application/vnd.bmi bmi +application/vnd.bpf +application/vnd.bpf3 +application/vnd.businessobjects rep +application/vnd.byu.uapi+json +application/vnd.bzip3 +application/vnd.c3voc.schedule+xml +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.capasystems-pg+json +application/vnd.cel +application/vnd.cendio.thinlinc.clientconf +application/vnd.century-systems.tcp_stream +application/vnd.chemdraw+xml cdxml +application/vnd.chess-pgn +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.ciedi +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.citationstyles.style+xml +application/vnd.claymore cla +application/vnd.cloanto.rp9 rp9 +application/vnd.clonk.c4group c4d c4f c4g c4p c4u +application/vnd.cluetrust.cartomobile-config c11amc +application/vnd.cluetrust.cartomobile-config-pkg c11amz +application/vnd.cncf.helm.chart.content.v1.tar+gzip +application/vnd.cncf.helm.chart.provenance.v1.prov +application/vnd.cncf.helm.config.v1+json +application/vnd.coffeescript +application/vnd.collabio.xodocuments.document +application/vnd.collabio.xodocuments.document-template +application/vnd.collabio.xodocuments.presentation +application/vnd.collabio.xodocuments.presentation-template +application/vnd.collabio.xodocuments.spreadsheet +application/vnd.collabio.xodocuments.spreadsheet-template +application/vnd.collection+json +application/vnd.collection.doc+json +application/vnd.collection.next+json +application/vnd.comicbook+zip +application/vnd.comicbook-rar +application/vnd.commerce-battelle +application/vnd.commonspace csp +application/vnd.contact.cmsg cdbcmsg +application/vnd.coreos.ignition+json +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.cryptii.pipe+json +application/vnd.crypto-shade-file +application/vnd.cryptomator.encrypted +application/vnd.cryptomator.vault +application/vnd.ctc-posml pml +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl curl +application/vnd.curl.car car +application/vnd.curl.pcurl pcurl +application/vnd.cyan.dean.root+xml +application/vnd.cybank +application/vnd.cyclonedx+json +application/vnd.cyclonedx+xml +application/vnd.d2l.coursepackage1p0+zip +application/vnd.d3m-dataset +application/vnd.d3m-problem +application/vnd.dart dart +application/vnd.data-vision.rdz rdz +application/vnd.datalog +application/vnd.datapackage+json +application/vnd.dataresource+json +application/vnd.dbf +application/vnd.dcmp+xml +application/vnd.debian.binary-package +application/vnd.dece.data uvd uvf uvvd uvvf +application/vnd.dece.ttml+xml uvt uvvt +application/vnd.dece.unspecified uvvx uvx +application/vnd.dece.zip uvvz uvz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.desmume.movie +application/vnd.digilite.prolights +application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dm.delegation+xml +application/vnd.dna dna +application/vnd.document+json +application/vnd.dolby.mlp mlp +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 +application/vnd.doremir.scorecloud-binary-document +application/vnd.dpgraph dpg +application/vnd.dreamfactory dfac +application/vnd.drive+json +application/vnd.ds-keypoint kpxx +application/vnd.dtg.local +application/vnd.dtg.local.flash +application/vnd.dtg.local.html +application/vnd.dvb.ait ait +application/vnd.dvb.dvbisl+xml +application/vnd.dvb.dvbj +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcesgaccess2 +application/vnd.dvb.ipdcesgpdd +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +application/vnd.dvb.pfr +application/vnd.dvb.service svc +application/vnd.dxr +application/vnd.dynageo geo +application/vnd.dzr +application/vnd.easykaraoke.cdgdownload +application/vnd.ecdis-update +application/vnd.ecip.rlp +application/vnd.eclipse.ditto+json +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.efi.img +application/vnd.efi.iso +application/vnd.eln+zip +application/vnd.emclient.accessrequest+xml +application/vnd.enliven nml +application/vnd.enphase.envoy +application/vnd.eprints.data+xml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall +application/vnd.erofs +application/vnd.espass-espass+zip +application/vnd.eszigno3+xml es3 et3 +application/vnd.etsi.aoc+xml +application/vnd.etsi.asic-e+zip asice +application/vnd.etsi.asic-s+zip asics +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvservice+xml +application/vnd.etsi.iptvsync+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.mheg5 +application/vnd.etsi.overload-control-policy-dataset+xml +application/vnd.etsi.pstn+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.etsi.timestamp-token +application/vnd.etsi.tsl+xml +application/vnd.etsi.tsl.der +application/vnd.eu.kasparian.car+json +application/vnd.eudora.data +application/vnd.evolv.ecig.profile +application/vnd.evolv.ecig.settings +application/vnd.evolv.ecig.theme +application/vnd.exstream-empower+zip +application/vnd.exstream-package +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.f-secure.mobile +application/vnd.familysearch.gedcom+zip +application/vnd.fastcopy-disk-image +application/vnd.fdf fdf +application/vnd.fdsn.mseed mseed +application/vnd.fdsn.seed dataless seed +application/vnd.fdsn.stationxml+xml +application/vnd.ffsns +application/vnd.fgb +application/vnd.ficlab.flb+zip +application/vnd.filmit.zfc +application/vnd.fints +application/vnd.firemonkeys.cloudcell +application/vnd.FloGraphIt gph +application/vnd.fluxtime.clip ftc +application/vnd.font-fontforge-sfd +application/vnd.framemaker frm maker frame fm fb book fbdoc +application/vnd.freelog.comic +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujifilm.fb.docuworks +application/vnd.fujifilm.fb.docuworks.binder +application/vnd.fujifilm.fb.docuworks.container +application/vnd.fujifilm.fb.jfi+xml +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.ART-EX +application/vnd.fujixerox.ART4 +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fujixerox.docuworks.container +application/vnd.fujixerox.HBPL +application/vnd.fut-misnet +application/vnd.futoin+cbor +application/vnd.futoin+json +application/vnd.fuzzysheet fzs +application/vnd.g3pix.g3fc +application/vnd.ga4gh.passport+jwt +application/vnd.genomatix.tuxedo txd +application/vnd.genozip +application/vnd.gentics.grd+json +application/vnd.gentoo.catmetadata+xml +application/vnd.gentoo.ebuild +application/vnd.gentoo.eclass +application/vnd.gentoo.gpkg +application/vnd.gentoo.manifest +application/vnd.gentoo.pkgmetadata+xml +application/vnd.gentoo.xpak +application/vnd.geo+json +application/vnd.geocube+xml +application/vnd.geogebra.file ggb +application/vnd.geogebra.pinboard +application/vnd.geogebra.slides ggs +application/vnd.geogebra.tool ggt +application/vnd.geometry-explorer gex gre +application/vnd.geonext gxt +application/vnd.geoplan g2w +application/vnd.geospace g3w +application/vnd.gerber +application/vnd.globalplatform.card-content-mgt +application/vnd.globalplatform.card-content-mgt-response +application/vnd.gmx gmx +application/vnd.gnu.taler.exchange+json +application/vnd.gnu.taler.merchant+json +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.gov.sk.e-form+xml +application/vnd.gov.sk.e-form+zip +application/vnd.gov.sk.xmldatacontainer+xml +application/vnd.gpxsee.map+xml +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.hal+json +application/vnd.hal+xml hal +application/vnd.HandHeld-Entertainment+xml zmm +application/vnd.hbci hbci hbc kom upa pkd bpd +application/vnd.hc+json +application/vnd.hcl-bireports +application/vnd.hdt +application/vnd.heroku+json +application/vnd.hhe.lesson-player les +application/vnd.hl7cda+xml +application/vnd.hl7v2+xml +application/vnd.hp-HPGL plt hpgl +application/vnd.hp-hpid hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-PCL pcl +application/vnd.hp-PCLXL pclxl +application/vnd.hsl +application/vnd.httphone +application/vnd.hydrostatix.sof-data sfd-hdstx +application/vnd.hyper+json +application/vnd.hyper-item+json +application/vnd.hyperdrive+json +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media emm +application/vnd.ibm.MiniPay mpy +application/vnd.ibm.modcap afp list3820 listafp +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.iccprofile icc icm +application/vnd.ieee.1905 +application/vnd.igloader igl +application/vnd.imagemeter.folder+zip +application/vnd.imagemeter.image+zip +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.ims.imsccv1p1 +application/vnd.ims.imsccv1p2 +application/vnd.ims.imsccv1p3 +application/vnd.ims.lis.v2.result+json +application/vnd.ims.lti.v2.toolconsumerprofile+json +application/vnd.ims.lti.v2.toolproxy+json +application/vnd.ims.lti.v2.toolproxy.id+json +application/vnd.ims.lti.v2.toolsettings+json +application/vnd.ims.lti.v2.toolsettings.simple+json +application/vnd.informedcontrol.rms+xml +application/vnd.informix-visionary +application/vnd.infotech.project +application/vnd.infotech.project+xml +application/vnd.innopath.wamp.notification +application/vnd.insors.igm igm +application/vnd.intercon.formnet xpw xpx +application/vnd.intergeo i2g +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.ipfs.ipns-record +application/vnd.ipld.car +application/vnd.ipld.dag-cbor +application/vnd.ipld.dag-json +application/vnd.ipld.raw +application/vnd.iptc.g2.catalogitem+xml +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.newsmessage+xml nar +application/vnd.iptc.g2.packageitem+xml +application/vnd.iptc.g2.planningitem+xml +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.isac.fcs fcs +application/vnd.iso11783-10+zip +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.java.hprof hprof +application/vnd.java.hprof.text hprof.txt +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.joost.joda-archive joda +application/vnd.jsk.isdn-ngn +application/vnd.kahootz ktr ktz +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kdl +application/vnd.kenameaapp htke +application/vnd.keyman.kmp+zip +application/vnd.keyman.kmx +application/vnd.kidspiration kia +application/vnd.Kinar kne knp sdf +application/vnd.koan skd skm skp skt +application/vnd.kodak-descriptor sse +application/vnd.las +application/vnd.las.las+json +application/vnd.las.las+xml lasxml +application/vnd.laszip +application/vnd.ldev.productlicensing +application/vnd.leap+json +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.logipipe.circuit+zip +application/vnd.loom +application/vnd.lotus-1-2-3 wks 123 wk1 wk2 wk3 wk4 +application/vnd.lotus-approach apr +application/vnd.lotus-freelance pre +application/vnd.lotus-notes nsf +application/vnd.lotus-organizer org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp +application/vnd.macports.portpkg portpkg +application/vnd.mapbox-vector-tile +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf +application/vnd.mason+json +application/vnd.maxar.archive.3tz+zip +application/vnd.maxmind.maxmind-db +application/vnd.mcd mcd +application/vnd.mdl +application/vnd.mdl-mbsdf +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.medicalholodeck.recordxr +application/vnd.meridian-slingshot +application/vnd.mermaid +application/vnd.MFER mwf +application/vnd.mfmp mfm +application/vnd.micro+json +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.microsoft.portable-executable +application/vnd.microsoft.windows.thumbnail-cache +application/vnd.miele+json +application/vnd.mif mif +application/vnd.mindjet.mindmanager mmp mmap mmpt mmat mmmp mmas +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.Mobius.DAF daf +application/vnd.Mobius.DIS dis +application/vnd.Mobius.MBK mbk +application/vnd.Mobius.MQY mqy +application/vnd.Mobius.MSL msl +application/vnd.Mobius.PLC plc +application/vnd.Mobius.TXF txf +application/vnd.modl +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm +application/vnd.mozilla.xul+xml xul +application/vnd.ms-3mfdocument +application/vnd.ms-artgalry cil +application/vnd.ms-asf asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xls xlt xla xlc xlm xlw xll xld +application/vnd.ms-excel.addin.macroEnabled.12 xlam +application/vnd.ms-excel.sheet.2 +application/vnd.ms-excel.sheet.3 +application/vnd.ms-excel.sheet.4 +application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb +application/vnd.ms-excel.sheet.macroEnabled.12 xlsm +application/vnd.ms-excel.template.macroEnabled.12 xltm +application/vnd.ms-excel.workspace.3 +application/vnd.ms-excel.workspace.4 +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-office.activeX+xml +application/vnd.ms-officetheme thmx +application/vnd.ms-outlook msg +application/vnd.ms-outlook-pst pst ost +application/vnd.ms-package.3dmanufacturing-3dmodel+xml 3mf +application/vnd.ms-pki.seccat cat +application/vnd.ms-pki.stl stl +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint ppt pps pot ppz ppa +application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam +application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm +application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm +application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm +application/vnd.ms-powerpoint.template.macroEnabled.12 potm +application/vnd.ms-PrintDeviceCapabilities+xml +application/vnd.ms-PrintSchemaTicket+xml +application/vnd.ms-project mpp mpt +application/vnd.ms-spreadsheetml +application/vnd.ms-tnef +application/vnd.ms-visio.drawing vsdx +application/vnd.ms-visio.drawing.macroEnabled.12 vsdm +application/vnd.ms-visio.stencil vssx +application/vnd.ms-visio.stencil.macroEnabled.12 vssm +application/vnd.ms-visio.template vstx +application/vnd.ms-visio.template.macroEnabled.12 vstm +application/vnd.ms-windows.devicepairing +application/vnd.ms-windows.nwprinting.oob +application/vnd.ms-windows.printerpairing +application/vnd.ms-windows.wsd.oob +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-word.document.macroEnabled.12 docm +application/vnd.ms-word.template.macroEnabled.12 dotm +application/vnd.ms-word2006ml +application/vnd.ms-wordml +application/vnd.ms-works wcm wdb wks wps +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps oxps +application/vnd.msa-disk-image msa +application/vnd.mseq mseq +application/vnd.msgpack +application/vnd.msign +application/vnd.multiad.creator +application/vnd.multiad.creator.cif +application/vnd.music-niff +application/vnd.musician mus +application/vnd.muvee.style msty +application/vnd.mynfc taglet +application/vnd.nacamar.ybrid+json +application/vnd.nato.bindingdataobject+cbor +application/vnd.nato.bindingdataobject+json +application/vnd.nato.bindingdataobject+xml +application/vnd.nato.openxmlformats-package.iepd+zip +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nearst.inv+json +application/vnd.nebumind.line +application/vnd.nervana ent entity req request bkm kcm +application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +application/vnd.nimn +application/vnd.nintendo.nitro.rom +application/vnd.nintendo.snes.rom +application/vnd.nitf nitf ntf +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.iSDS-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.ncd+xml +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.EDM edm +application/vnd.novadigm.EDX edx +application/vnd.novadigm.EXT ext +application/vnd.ntt-local.content-share +application/vnd.ntt-local.file-transfer +application/vnd.ntt-local.ogw_remote-access +application/vnd.ntt-local.sip-ta_remote +application/vnd.ntt-local.sip-ta_tcp_stream +application/vnd.nubaltec.nudoku-game +application/vnd.oai.workflows +application/vnd.oai.workflows+json +application/vnd.oai.workflows+yaml +application/vnd.oasis.opendocument.base odb +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template odc otc +application/vnd.oasis.opendocument.database odb +application/vnd.oasis.opendocument.flat.presentation fodp +application/vnd.oasis.opendocument.flat.spreadsheet fods +application/vnd.oasis.opendocument.flat.text fodt +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template odf odft +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template odi oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master odm otm +application/vnd.oasis.opendocument.text-master-template +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.oasis.opendocument.tika.flat.document +application/vnd.obn +application/vnd.ocf+cbor +application/vnd.oci.image.manifest.v1+json +application/vnd.oftn.l10n+json +application/vnd.oipf.contentaccessdownload+xml +application/vnd.oipf.contentaccessstreaming+xml +application/vnd.oipf.cspg-hexbinary +application/vnd.oipf.dae.svg+xml +application/vnd.oipf.dae.xhtml+xml +application/vnd.oipf.mippvcontrolmessage+xml +application/vnd.oipf.pae.gem +application/vnd.oipf.spdiscovery+xml +application/vnd.oipf.spdlist+xml +application/vnd.oipf.ueprofile+xml +application/vnd.oipf.userprofile+xml +application/vnd.olpc-sugar xo +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.cab-address-book+xml +application/vnd.oma.cab-feature-handler+xml +application/vnd.oma.cab-pcc+xml +application/vnd.oma.cab-subs-invite+xml +application/vnd.oma.cab-user-prefs+xml +application/vnd.oma.dcd +application/vnd.oma.dcdc +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.lwm2m+cbor +application/vnd.oma.lwm2m+json +application/vnd.oma.lwm2m+tlv +application/vnd.oma.pal+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.push +application/vnd.oma.scidm.messages+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.oms.cellular-cose-content+cbor +application/vnd.onepager +application/vnd.onepagertamp +application/vnd.onepagertamx +application/vnd.onepagertat +application/vnd.onepagertatp +application/vnd.onepagertatx +application/vnd.onvif.metadata +application/vnd.openblox.game+xml +application/vnd.openblox.game-binary +application/vnd.openeye.oeb +application/vnd.openofficeorg.autotext bau +application/vnd.openofficeorg.extension oxt +application/vnd.openstreetmap.data+xml +application/vnd.opentimestamps.ots +application/vnd.openvpi.dspx+json +application/vnd.openxmlformats-officedocument.custom-properties+xml +application/vnd.openxmlformats-officedocument.customXmlProperties+xml +application/vnd.openxmlformats-officedocument.drawing+xml +application/vnd.openxmlformats-officedocument.drawingml.chart+xml +application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml +application/vnd.openxmlformats-officedocument.extended-properties+xml +application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml +application/vnd.openxmlformats-officedocument.presentationml.comments+xml +application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx thmx +application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml +application/vnd.openxmlformats-officedocument.presentationml.presProps+xml +application/vnd.openxmlformats-officedocument.presentationml.slide sldx +application/vnd.openxmlformats-officedocument.presentationml.slide+xml +application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml +application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx +application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml +application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml +application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml +application/vnd.openxmlformats-officedocument.presentationml.tags+xml +application/vnd.openxmlformats-officedocument.presentationml.template potx +application/vnd.openxmlformats-officedocument.presentationml.template.main+xml +application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx +application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml +application/vnd.openxmlformats-officedocument.theme+xml +application/vnd.openxmlformats-officedocument.themeOverride+xml +application/vnd.openxmlformats-officedocument.vmlDrawing +application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx +application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx +application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml +application/vnd.openxmlformats-package.core-properties+xml +application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml +application/vnd.openxmlformats-package.relationships+xml +application/vnd.oracle.resource+json +application/vnd.orange.indata +application/vnd.osa.netdeploy +application/vnd.osgeo.mapguide.package mgp +application/vnd.osgi.bundle +application/vnd.osgi.dp dp +application/vnd.osgi.subsystem esa +application/vnd.otps.ct-kip+xml +application/vnd.oxli.countgraph +application/vnd.pagerduty+json +application/vnd.palm prc pdb pqa oprc +application/vnd.panoply +application/vnd.paos.xml +application/vnd.patentdive +application/vnd.patientecommsdoc +application/vnd.pawaafile paw +application/vnd.pcos +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-licence +application/vnd.picsel efif +application/vnd.pmi.widget wg +application/vnd.pmtiles +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.pp.systemverify+xml +application/vnd.preminet +application/vnd.previewsystems.box box +application/vnd.proteus.magazine mgz +application/vnd.psfs +application/vnd.pt.mundusmundi +application/vnd.publishare-delta-tree qps +application/vnd.pvi.ptid1 pti ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.pyon+json +application/vnd.qualcomm.brew-app-res +application/vnd.quarantainenet +application/vnd.Quark.QuarkXPress qxd qxt qwd qwt qxl qxb +application/vnd.quobject-quoxdocument +application/vnd.R74n.sandboxels+json +application/vnd.radisys.moml+xml +application/vnd.radisys.msml+xml +application/vnd.radisys.msml-audit+xml +application/vnd.radisys.msml-audit-conf+xml +application/vnd.radisys.msml-audit-conn+xml +application/vnd.radisys.msml-audit-dialog+xml +application/vnd.radisys.msml-audit-stream+xml +application/vnd.radisys.msml-conf+xml +application/vnd.radisys.msml-dialog+xml +application/vnd.radisys.msml-dialog-base+xml +application/vnd.radisys.msml-dialog-fax-detect+xml +application/vnd.radisys.msml-dialog-fax-sendrecv+xml +application/vnd.radisys.msml-dialog-group+xml +application/vnd.radisys.msml-dialog-speech+xml +application/vnd.radisys.msml-dialog-transform+xml +application/vnd.rainstor.data +application/vnd.rapid +application/vnd.rar +application/vnd.realvnc.bed bed +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml musicxml +application/vnd.relpipe +application/vnd.RenLearn.rlprint +application/vnd.resilient.logic +application/vnd.restful+json +application/vnd.rig.cryptonote cryptonote +application/vnd.rim.cod cod +application/vnd.rn-realmedia rm +application/vnd.rn-realmedia-vbr rmvb +application/vnd.route66.link66+xml link66 +application/vnd.rs-274x +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sailingtracker.track st +application/vnd.sar +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc sdoc sdo s1w +application/vnd.sealed.eml seml sem +application/vnd.sealed.mht smht smh +application/vnd.sealed.net +application/vnd.sealed.ppt sppt spp s1p +application/vnd.sealed.tiff +application/vnd.sealed.xls sxls sxl s1e +application/vnd.sealedmedia.softseal.html stml stm s1h +application/vnd.sealedmedia.softseal.pdf spdf spd s1a +application/vnd.seemail see +application/vnd.seis+json +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shade-save-file +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.shootproof+json +application/vnd.shopkick+json +application/vnd.shp +application/vnd.shx +application/vnd.sigrok.session +application/vnd.SimTech-MindMapper twd twds +application/vnd.siren+json +application/vnd.sirtx.vmv0 +application/vnd.sketchometry +application/vnd.smaf mmf +application/vnd.smart.notebook +application/vnd.smart.teacher teacher +application/vnd.smintio.portals.archive +application/vnd.snesdev-page-table +application/vnd.software602.filler.form+xml +application/vnd.software602.filler.form-xml-zip +application/vnd.solent.sdkm+xml sdkd sdkm +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sqlite3 +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +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 smf +application/vnd.stardivision.writer sdw vor +application/vnd.stardivision.writer-global sgl +application/vnd.stepmania.package smzip +application/vnd.stepmania.stepchart sm +application/vnd.street-stream +application/vnd.sun.wadl+xml +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.sun.xml.math sxm +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.global sxg +application/vnd.sun.xml.writer.template stw +application/vnd.superfile.super +application/vnd.sus-calendar sus susp +application/vnd.svd svd +application/vnd.swiftview-ics +application/vnd.sybyl.mol2 +application/vnd.sycle+xml +application/vnd.syft+json +application/vnd.symbian.install sis sisx +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.dm.notification +application/vnd.syncml.dmddf+wbxml +application/vnd.syncml.dmddf+xml +application/vnd.syncml.dmtnds+wbxml +application/vnd.syncml.dmtnds+xml +application/vnd.syncml.ds.notification +application/vnd.tableschema+json +application/vnd.tao.intent-module-archive tao +application/vnd.tcpdump.pcap cap dmp pcap +application/vnd.tcpdump.pcapng pcapng +application/vnd.think-cell.ppttc+json +application/vnd.tmd.mediaflex.api+xml +application/vnd.tml +application/vnd.tmobile-livetv tmo +application/vnd.tri.onesource +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +application/vnd.ubisoft.webplayer +application/vnd.ufdl ufd ufdl +application/vnd.uic.osdm+json +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.uri-map +application/vnd.valve.source.material +application/vnd.vcx vcx +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vel+json +application/vnd.veraison.tsm-report+cbor +application/vnd.veraison.tsm-report+json +application/vnd.verifier-attestation+jwt +application/vnd.verimatrix.vcas +application/vnd.veritone.aion+json +application/vnd.veryant.thin +application/vnd.ves.encrypted +application/vnd.vidsoft.vidconference vsc +application/vnd.visio vsd vst vsw vss +application/vnd.visionary vis +application/vnd.vividence.scriptfile +application/vnd.vocalshaper.vsp4 +application/vnd.vsf vsf +application/vnd.wantverse +application/vnd.wap.sic sic +application/vnd.wap.slc slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.wasmflow.wafl +application/vnd.webturbo wtb +application/vnd.wfa.dpp +application/vnd.wfa.p2p +application/vnd.wfa.wsc +application/vnd.windows.devicepairing +application/vnd.wmap +application/vnd.wmc +application/vnd.wmf.bootstrap +application/vnd.wolfram.mathematica +application/vnd.wolfram.mathematica.package +application/vnd.wolfram.player nbp +application/vnd.wolfram.wl wl +application/vnd.wordlift +application/vnd.wordperfect wpd wp wp5 wp6 w60 wp61 wpt +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+wbxml wv +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml +application/vnd.xacml+json +application/vnd.xara xar +application/vnd.xarin.cpj +application/vnd.xecrets-encrypted +application/vnd.xfdl xfdl +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.openscoreformat osf +application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg +application/vnd.yamaha.remote-setup +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yamaha.through-ngn +application/vnd.yamaha.tunnel-udpencap +application/vnd.yaoweme +application/vnd.yellowriver-custom-menu cmp +application/vnd.youtube.yt +application/vnd.zul zir zirz +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/voucher+cose +application/voucher-cms+json +application/voucher-cose+cbor +application/voucher-jws+json +application/vp +application/vp+cose +application/vp+jwt +application/vq-rtcpxr +application/warc warc +application/warc+gz warc.gz +application/wasm wasm +application/watcherinfo+xml wif +application/webbundle +application/webpush-options+json +application/whoispp-query +application/whoispp-response +application/widget wgt +application/winhlp hlp +application/wita +application/won +application/word doc dot +application/wordperfect wp +application/wordperfect5.1 wp5 wp +application/wordperfect6.1 wp6 +application/wordperfectd wpd +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-123 wk +application/x-7z-compressed 7z +application/x-abiword abw +application/x-access mdf mda mdb mde +application/x-ace-compressed ace +application/x-activemime +application/x-adobe-indesign indd +application/x-adobe-indesign-interchange inx +application/x-amf amf +application/x-amiga-disk-format adf +application/x-apple-diskimage dmg +application/x-appleworks cwk +application/x-archive ar a +application/x-arj arj +application/x-asprs las laz +application/x-atari-floppy-disk-image +application/x-authorware-bin aab u32 vox x32 +application/x-authorware-map aam +application/x-authorware-seg aas +application/x-axcrypt axx +application/x-bat bat cmd +application/x-bcpio bcpio +application/x-bentley-besqlite +application/x-bentley-localization +application/x-berkeley-db +application/x-bibtex-text-file bib bibtex +application/x-bittorrent torrent +application/x-bleeper bleep +application/x-blorb blb blorb +application/x-bplist +application/x-brotli br brotli +application/x-bzip bz tbz +application/x-bzip2 boz bz2 tbz2 +application/x-cbr cb7 cba cbr cbt cbz +application/x-cdf cda +application/x-cdlink vcd +application/x-cfs-compressed cfs +application/x-chat chat +application/x-chess-pgn pgn +application/x-chrome-extension crx +application/x-chrome-package crx +application/x-clariscad +application/x-compress z Z +application/x-compressed z Z +application/x-conference nsc +application/x-coredump +application/x-corelpresentations shw +application/x-cpio cpio +application/x-csh csh tcsh +application/x-cu-seeme csm cu +application/x-dbf dbf dbase dbase3 +application/x-debian-package deb udeb +application/x-dex dex +application/x-dgc-compressed dgc +application/x-director dcr @dir @dxr cct cst cxt dir dxr fgd swa w3d +application/x-doom wad +application/x-dosexec exe +application/x-drafting +application/x-dtbncx+xml ncx +application/x-dtbook+xml dtb +application/x-dtbresource+xml res +application/x-dvd-ifo ifo bup +application/x-dvi dvi +application/x-dxf +application/x-ebu-stl +application/x-ecmascript +application/x-elc elc +application/x-elf +application/x-endnote-refer enw enr +application/x-endnote-style ens +application/x-envoy evy +application/x-erdas-hfa hfa +application/x-esri-layer lyr +application/x-esri-spatially-enabled-db +application/x-eva eva +application/x-excel +application/x-executable +application/x-fat-diskimage +application/x-fictionbook+xml fb2 +application/x-filemaker fp7 +application/x-font-adobe-metric afm acfm amfm +application/x-font-bdf bdf +application/x-font-dos +application/x-font-framemaker +application/x-font-ghostscript gsf +application/x-font-libgrx +application/x-font-linux-psf psf +application/x-font-opentype otf +application/x-font-otf otf +application/x-font-pcf pcf +application/x-font-printer-metric pfm +application/x-font-snf snf +application/x-font-speedo +application/x-font-sunos-news +application/x-font-truetype ttf +application/x-font-ttf ttc ttf +application/x-font-type1 afm pfa pfb pfm +application/x-font-vfont +application/x-fossil-checkout +application/x-fossil-global-conf +application/x-fossil-repository +application/x-foxmail +application/x-fractals +application/x-freearc arc +application/x-futuresplash spl +application/x-gca-compressed gca +application/x-geopackage gpkg +application/x-ghostview +application/x-glulx ulx +application/x-gnucash gnucash +application/x-gnumeric gnumeric +application/x-gramps-xml gramps +application/x-grib grb grb1 grb2 +application/x-gtar gtar tgz tbz2 tbz +application/x-guitar-pro gp4 +application/x-gzip gz +application/x-hdf hdf he5 h5 +application/x-hep hep +application/x-html+ruby rhtml +application/x-httpd-php phtml pht php +application/x-httpresponse +application/x-hwp +application/x-hwp-v5 +application/x-ibooks+zip ibooks +application/x-ica ica +application/x-ideas +application/x-idl-save-file +application/x-imagemap imagemap imap +application/x-install-instructions install +application/x-internet-archive arc +application/x-isatab +application/x-isatab-assay +application/x-isatab-investigation +application/x-iso9660-image iso +application/x-itunes-bplist +application/x-itunes-ipa ipa +application/x-iwork-keynote-sffkey key +application/x-iwork-numbers-sffnumbers numbers +application/x-iwork-pages-sffpages pages +application/x-java-archive jar +application/x-java-jnilib jnilib +application/x-java-jnlp-file jnlp +application/x-java-keystore jks +application/x-java-pack200 pack +application/x-java-serialized-object ser +application/x-java-vm class +application/x-javascript js mjs +application/x-jeol-jdf jdf +application/x-jigdo +application/x-kdelnk +application/x-killustrator kil +application/x-koan skp skd skt skm +application/x-latex ltx latex +application/x-lha +application/x-lharc +application/x-lotus-123 wks +application/x-lz4 lz4 +application/x-lzh-compressed lha lzh +application/x-lzip lz +application/x-lzma lzma +application/x-mac bin +application/x-mac-compactpro cpt +application/x-macbase64 bin +application/x-macbinary +application/x-mach-o +application/x-mach-o-bundle +application/x-mach-o-core +application/x-mach-o-dsym +application/x-mach-o-dylib +application/x-mach-o-dylib-stub +application/x-mach-o-dylinker +application/x-mach-o-executable +application/x-mach-o-fvmlib +application/x-mach-o-kext-bundle +application/x-mach-o-object +application/x-mach-o-preload +application/x-mach-o-universal +application/x-maker frm maker frame fm fb book fbdoc +application/x-mathcad mcd +application/x-mathematica-old +application/x-matlab-data mat +application/x-matroska +application/x-mbtiles +application/x-memgraph memgraph +application/x-mie mie +application/x-mif mif +application/x-mmm-digisonde +application/x-mobipocket-ebook mobi prc +application/x-monotone-source-repo +application/x-ms-application application +application/x-ms-asx asx +application/x-ms-compress-szdd +application/x-ms-dos-executable exe +application/x-ms-installer msi msp mst +application/x-ms-nls +application/x-ms-owner +application/x-ms-shortcut lnk +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-ms-xbap xbap +application/x-msaccess mda mdb mde mdf accdb +application/x-msbinder obd +application/x-mscardfile crd +application/x-msclip clp +application/x-msdos-program cmd bat com exe reg ps1 vbs +application/x-msdownload exe com cmd bat dll msi reg ps1 vbs +application/x-msmediaview m13 m14 mvb +application/x-msmetafile emf emz wmf wmz +application/x-msmoney mny +application/x-mspublisher pub +application/x-msschedule scd +application/x-msterminal trm +application/x-msword doc dot wrd +application/x-mswrite wri +application/x-mysql-db +application/x-mysql-misam-compressed-index myi +application/x-mysql-misam-data myd +application/x-mysql-misam-index +application/x-mysql-table-definition +application/x-nesrom nes +application/x-netcdf nc cdf +application/x-ns-proxy-autoconfig pac +application/x-nzb nzb +application/x-object +application/x-openscad scad +application/x-opera-extension oex +application/x-pagemaker pm pm5 pt5 +application/x-parquet parquet +application/x-pds +application/x-perl pl pm +application/x-pgp +application/x-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-pki-message +application/x-plist +application/x-project mpx +application/x-prt prt +application/x-python py +application/x-quattro-pro wq1 wq2 wkq qpw wb1 wb2 wb3 +application/x-quicktimeplayer qtl +application/x-rar-compressed rar +application/x-remote_printing +application/x-research-info-systems ris +application/x-roxio-toast toast +application/x-rpm rpm +application/x-rtf rtf +application/x-ruby rb rbw +application/x-sas sas +application/x-sas-access sa7 sas7bacs +application/x-sas-audit st7 sas7baud +application/x-sas-backup sas7bbak +application/x-sas-catalog sc7 sas7bcat +application/x-sas-data sd7 sas7bdat +application/x-sas-data-index si7 sas7bndx +application/x-sas-data-v6 sd2 +application/x-sas-dmdb s7m sas7bdmd +application/x-sas-fdb sf7 sas7bfdb +application/x-sas-itemstor sr7 sas7bitm +application/x-sas-mddb sm7 sas7bmdb +application/x-sas-program-data ss7 sas7bpgm +application/x-sas-putility sp7 sas7bput +application/x-sas-transport stx +application/x-sas-utility su7 sas7butl +application/x-sas-view sv7 sas7bvew +application/x-sas-xport xpt xport +application/x-sc +application/x-set +application/x-sfdu sfdu +application/x-sh sh bash +application/x-shapefile shp +application/x-shar shar +application/x-sharedlib +application/x-shockwave-flash swf +application/x-sibelius sib +application/x-silverlight-app xap +application/x-SLA +application/x-smarttech-notebook notebook +application/x-snappy-framed sz +application/x-solids +application/x-spectrum-tzx tzx +application/x-spss sav sbs sps spo spp +application/x-spss-sav sav +application/x-sql sql +application/x-sqlite3 +application/x-staroffice-template vor +application/x-stata-do do +application/x-stata-dta dta +application/x-STEP +application/x-stuffit sit +application/x-stuffitx sitx +application/x-subrip srt +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-t3vm-image t3 +application/x-tads gam +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-tex-tfm tfm +application/x-tex-virtual-font vf +application/x-texinfo texinfo texi +application/x-texnicard +application/x-tgif obj +application/x-tika-iworks-protected +application/x-tika-java-enterprise-archive ear +application/x-tika-java-web-archive war +application/x-tika-msoffice +application/x-tika-msoffice-embedded +application/x-tika-msworks-spreadsheet xlr +application/x-tika-old-excel +application/x-tika-ooxml +application/x-tika-ooxml-protected +application/x-tika-staroffice +application/x-tika-unix-dump +application/x-tika-visio-ooxml +application/x-tmx tmx +application/x-toolbook tbk +application/x-touhou +application/x-troff t tr roff +application/x-troff-man man +application/x-troff-me me +application/x-troff-ms ms +application/x-u-star +application/x-uc2-compressed uc2 +application/x-ustar ustar +application/x-vhd +application/x-vmdk vmdk +application/x-VMSBACKUP bck +application/x-vnd.datapackage+gz +application/x-vnd.datapackage+json +application/x-vnd.datapackage+zip +application/x-wacz +application/x-wais-source src +application/x-web-app-manifest+json webapp +application/x-webarchive webarchive +application/x-Wingz wz wkz +application/x-word doc dot +application/x-wordperfect wp +application/x-wordperfect6.1 wp6 +application/x-wordperfectd wpd +application/x-www-form-urlencoded +application/x-x509-ca-cert crt der +application/x-x509-ca-ra-cert +application/x-x509-cert crt +application/x-x509-dsa-parameters +application/x-x509-ec-parameters +application/x-x509-key +application/x-x509-next-ca-cert +application/x-xfig fig +application/x-xliff+xml xlf xliff +application/x-xliff+zip xlz +application/x-xmind xmind +application/x-xpinstall xpi +application/x-xz xz +application/x-zim +application/x-zip-compressed zip +application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8 +application/x-zoo zoo +application/x400-bp +application/x400.bp +application/xacml+xml +application/xaml+xml xaml +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-diff+xml xdf +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xcon-conference-info+xml +application/xcon-conference-info-diff+xml +application/xenc+xml xenc +application/xfdf +application/xhtml+xml xht xhtml xhtml2 +application/xhtml-voice+xml +application/xliff+xml +application/xml xml xsl xsd +application/xml-dtd dtd +application/xml-external-parsed-entity +application/xml-patch+xml +application/xmpp+xml +application/xop+xml xop +application/xproc+xml xpl +application/xquery xq xquery +application/xslfo+xml xslfo fo +application/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvm xvml +application/yaml +application/yang yang +application/yang-data+cbor +application/yang-data+json +application/yang-data+xml +application/yang-patch+json +application/yang-patch+xml +application/yang-sid+json +application/yin+xml yin +application/zip zip zipx +application/zlib +application/zstd zst +audio/1d-interleaved-parityfec +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/aac aac +audio/ac3 ac3 +audio/adpcm adp +audio/AMR amr +audio/AMR-WB awb +audio/amr-wb+ +audio/aptx +audio/asc +audio/ATRAC-ADVANCED-LOSSLESS +audio/ATRAC-X +audio/ATRAC3 +audio/basic au snd +audio/BV16 +audio/BV32 +audio/clearmode +audio/CN +audio/DAT12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/DV +audio/DVI4 +audio/eac3 +audio/encaprtp +audio/EVRC evc +audio/EVRC-QCP +audio/EVRC0 +audio/EVRC1 +audio/EVRCB +audio/EVRCB0 +audio/EVRCB1 +audio/EVRCNW +audio/EVRCNW0 +audio/EVRCNW1 +audio/EVRCWB +audio/EVRCWB0 +audio/EVRCWB1 +audio/EVS +audio/example +audio/flac flac +audio/flexfec +audio/fwdred +audio/G711-0 +audio/G719 +audio/G722 +audio/G7221 +audio/G723 +audio/G726-16 +audio/G726-24 +audio/G726-32 +audio/G726-40 +audio/G728 +audio/G729 +audio/G7291 +audio/G729D +audio/G729E +audio/GSM +audio/GSM-EFR +audio/GSM-HR-08 +audio/iLBC +audio/ip-mr_v2.5 +audio/L16 l16 +audio/L20 +audio/L24 +audio/L8 +audio/LPC +audio/matroska mka +audio/MELP +audio/MELP1200 +audio/MELP2400 +audio/MELP600 +audio/mhas +audio/midi kar mid midi rmi +audio/midi-clip +audio/mobile-xmf +audio/mp4 mp4 mpg4 f4a f4b mp4a m4a m4b +audio/MP4A-LATM m4a +audio/MPA +audio/mpa-robust +audio/mpeg mpga mp2 mp3 m2a m3a mp2a +audio/mpeg4-generic +audio/ogg oga ogg spx opus +audio/opus opus +audio/parityfec +audio/PCMA +audio/PCMA-WB +audio/PCMU +audio/PCMU-WB +audio/prs.sid +audio/QCELP +audio/raptorfec +audio/RED +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtploopback +audio/rtx +audio/s3m s3m +audio/scip +audio/silk sil +audio/SMV smv +audio/SMV-QCP +audio/SMV0 +audio/sofa +audio/sp-midi +audio/speex spx +audio/t140c +audio/t38 +audio/telephone-event +audio/TETRA_ACELP +audio/TETRA_ACELP_BB +audio/tone +audio/TSVCIS +audio/UEMCLIP +audio/ulpfec +audio/usac +audio/VDVI +audio/VMR-WB +audio/vnd.3gpp.iufp +audio/vnd.4SB +audio/vnd.adobe.soundbooth asnd +audio/vnd.audiokoz +audio/vnd.blockfact.facta +audio/vnd.CELP +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.dece.audio uva uvva +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z +audio/vnd.dolby.pulse.1 +audio/vnd.dra dra +audio/vnd.dts dts +audio/vnd.dts.hd dtshd +audio/vnd.dts.uhd +audio/vnd.dvb.file +audio/vnd.everad.plj plj +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.ms-playready.media.pya pya +audio/vnd.nokia.mobile-xmf mxmf +audio/vnd.nortel.vbk vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +audio/vnd.presonus.multitrack +audio/vnd.qcelp qcp +audio/vnd.rhetorex.32kadpcm +audio/vnd.rip rip +audio/vnd.sealedmedia.softseal.mpeg smp3 smp s1m +audio/vnd.vmx.cvsd +audio/vnd.wave wav +audio/vorbis ogg +audio/vorbis-config +audio/wav wav +audio/webm weba webm +audio/x-aac aac +audio/x-adpcm +audio/x-aiff aif aifc aiff +audio/x-caf caf +audio/x-dec-adpcm +audio/x-dec-basic +audio/x-flac flac +audio/x-m4a +audio/x-matroska mka +audio/x-midi mid midi kar +audio/x-mod mod +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-ms-wmv wmv +audio/x-oggflac +audio/x-oggpcm +audio/x-pn-realaudio ra ram +audio/x-pn-realaudio-plugin rmp rpm +audio/x-psf psf1 psflib minipsf minipsf1 gslib minigsf +audio/x-realaudio ra +audio/x-sap sap +audio/x-wav wav +audio/xm xm +chemical/x-cdx cdx +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-csml csml +chemical/x-pdb pdb +chemical/x-xyz xyz +drawing/dwf dwf +font/collection ttc +font/otf otf +font/sfnt +font/ttf ttf +font/woff woff +font/woff2 woff2 +haptics/hjif +haptics/hmpg +haptics/ivs +image/aces exr +image/apng +image/avci +image/avcs +image/avif avif +image/bmp bmp dib +image/cgm cgm +image/cmu-raster +image/dicom-rle +image/dpx +image/emf emf +image/example +image/fits +image/g3fax g3 +image/gif gif +image/heic heic hif +image/heic-sequence heics hif +image/heif heif hif +image/heif-sequence heifs hif +image/hej2k +image/hsj2 +image/icns icns +image/ief ief +image/j2c +image/j2is +image/jaii +image/jais +image/jls +image/jp2 jp2 jpg2 +image/jpeg jpeg jpg jpe jfif jif jfi +image/jph +image/jphc +image/jpm jpm jpgm +image/jpx jpx jpf +image/jxl jxl +image/jxr +image/jxrA +image/jxrS +image/jxs +image/jxsc +image/jxsi +image/jxss +image/ktx ktx +image/ktx2 +image/naplps +image/nitf ntf nitf +image/pdc +image/pjpeg +image/png png +image/prs.btif btif +image/prs.pti +image/pwg-raster +image/sgi sgi +image/svg+xml svg svgz +image/t38 +image/targa tga +image/tiff tiff tif +image/tiff-fx +image/vnd.adobe.photoshop psd +image/vnd.adobe.premiere ppj +image/vnd.airzip.accelerator.azv +image/vnd.blockfact.facti +image/vnd.clip +image/vnd.cns.inf2 +image/vnd.dece.graphic uvg uvi uvvg uvvi +image/vnd.dgn dgn dgnlib cel +image/vnd.djvu djvu djv +image/vnd.dvb.subtitle sub +image/vnd.dwg dwg +image/vnd.dxb dxb +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb pgb +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.mozilla.apng +image/vnd.ms-modi mdi +image/vnd.ms-photo wdp +image/vnd.net-fpx npx +image/vnd.net.fpx +image/vnd.pco.b16 +image/vnd.radiance +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf +image/vnd.tencent.tap +image/vnd.valve.source.texture +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +image/vnd.zbrush.dcx dcx +image/vnd.zbrush.pcx pcx +image/webp webp +image/wmf wmf +image/x-3ds 3ds +image/x-adobe-dng dng +image/x-bmp bmp +image/x-bpg bpg +image/x-canon-cr2 cr2 +image/x-canon-cr3 cr3 +image/x-canon-crw crw +image/x-cmu-raster ras +image/x-cmx cmx +image/x-compressed-xcf xcfbz2 xcfgz +image/x-dpx dpx +image/x-emf +image/x-emf-compressed emz +image/x-epson-erf erf +image/x-freehand fh fh4 fh5 fh7 fhc fh40 fh50 fh8 fh9 fh10 fh11 fh12 ft7 ft8 ft9 ft10 ft11 ft12 +image/x-fuji-raf raf +image/x-hasselblad-3fr 3fr +image/x-icon ico +image/x-jbig2 jb2 jbig2 +image/x-jp2-codestream j2c +image/x-jp2-container +image/x-kodak-dcr dcr +image/x-kodak-k25 k25 +image/x-kodak-kdc kdc +image/x-minolta-mrw mrw +image/x-mrsid-image sid +image/x-ms-bmp bmp +image/x-niff +image/x-nikon-nef nef +image/x-olympus-orf orf +image/x-paintshoppro psp pspimage +image/x-panasonic-raw raw +image/x-pcx pcx +image/x-pentax-pef pef +image/x-pict pct pic pict +image/x-portable-anymap pnm +image/x-portable-arbitrarymap pam +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-raw-adobe dng +image/x-raw-canon crw +image/x-raw-casio bay +image/x-raw-epson erf +image/x-raw-fuji raf +image/x-raw-hasselblad 3fr +image/x-raw-imacon fff +image/x-raw-kodak k25 kdc dcs drf +image/x-raw-leaf mos +image/x-raw-logitech pxn +image/x-raw-mamiya mef +image/x-raw-minolta mrw +image/x-raw-nikon nef nrw +image/x-raw-olympus orf +image/x-raw-panasonic raw rw2 +image/x-raw-pentax ptx pef +image/x-raw-phaseone iiq +image/x-raw-rawzor rwz +image/x-raw-red r3d +image/x-raw-sigma x3f +image/x-raw-sony arw srf sr2 +image/x-rgb rgb +image/x-sigma-x3f x3f +image/x-sony-arw arw +image/x-sony-sr2 sr2 +image/x-sony-srf srf +image/x-targa tga +image/x-tga tga icb vda +image/x-vnd.dgn dgn +image/x-win-bmp +image/x-wmf +image/x-xbitmap xbm +image/x-xbm xbm +image/x-xcf xcf +image/x-xpixmap xpm +image/x-xwindowdump xwd +message/bhttp +message/CPIM +message/delivery-status +message/disposition-notification +message/example +message/external-body +message/feedback-report +message/global +message/global-delivery-status +message/global-disposition-notification +message/global-headers +message/http +message/imdn+xml +message/mls +message/news +message/ohttp-req +message/ohttp-res +message/partial +message/rfc822 eml mime +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +message/vnd.wfa.wsc +message/x-emlx emlx +model/3mf +model/e57 e57 +model/example +model/gltf+json +model/gltf-binary +model/iges igs iges +model/JT +model/mesh msh mesh silo +model/mtl +model/obj +model/prc +model/step +model/step+xml +model/step+zip +model/step-xml+zip +model/stl +model/u3d +model/vnd.bary +model/vnd.cld +model/vnd.collada+xml dae +model/vnd.dwf dwf +model/vnd.dwfx+xps dwfx +model/vnd.flatland.3dml +model/vnd.gdl gdl +model/vnd.gs-gdl +model/vnd.gs.gdl +model/vnd.gtw gtw +model/vnd.moml+xml +model/vnd.mts mts +model/vnd.opengex +model/vnd.parasolid.transmit.binary x_b xmt_bin +model/vnd.parasolid.transmit.text x_t xmt_txt +model/vnd.pytha.pyox +model/vnd.rosette.annotated-data-model +model/vnd.sap.vds +model/vnd.usda +model/vnd.usdz+zip +model/vnd.valve.source.compiled-map +model/vnd.vtu vtu +model/vrml wrl vrml +model/x.stl-ascii +model/x.stl-binary stl +model/x3d+binary x3db x3dbz +model/x3d+fastinfoset +model/x3d+vrml x3dv x3dvz +model/x3d+xml x3d x3dz +model/x3d-vrml +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/example +multipart/form-data +multipart/header-set +multipart/mixed +multipart/multilingual +multipart/parallel +multipart/related mht mhtml +multipart/report +multipart/signed +multipart/vnd.bint.med-plus +multipart/voice-message +multipart/x-gzip +multipart/x-mixed-replace +multipart/x-parallel +multipart/x-tar +multipart/x-ustar +multipart/x-www-form-urlencoded +multipart/x-zip +text/1d-interleaved-parityfec +text/asciidoc +text/asp asp +text/aspdotnet aspx +text/cache-manifest appcache manifest +text/calendar ics ifb +text/cmcd +text/comma-separated-values csv +text/cql +text/cql-expression +text/cql-identifier +text/css css +text/csv csv +text/csv-schema +text/directory +text/dns +text/ecmascript es ecma +text/encaprtp +text/enriched +text/example +text/fhirpath +text/flexfec +text/fwdred +text/gff3 +text/grammar-ref-list +text/hl7v2 +text/html html htm htmlx shtml htx +text/iso19139+xml iso19139 +text/javascript js mjs cjs +text/javascript1.0 +text/javascript1.1 +text/javascript1.2 +text/javascript1.3 +text/javascript1.4 +text/jcr-cnd +text/jscript +text/livescript +text/markdown markdown md mkd +text/mizar +text/n3 n3 +text/nfo +text/parameters +text/parityfec +text/plain txt asc c cc h hh cpp hpp dat hlp conf def in list log rst text textile install keys license notice readme abs-linkmap abs-menulinks aart ac am apt bsh classpath cnd cwiki data dcl dsp dsw egrm ent ft fn fv grm g .htaccess handlers htc ihtml jmx junit jx manifest m4 mf meta mdo n3 pen pod pom project rng rnx roles schemas tld types vm vsl wsdd xargs xcat xegrm xgrm xlex xlog xmap xroles xsamples xsp xtest xweb xwelcome +text/provenance-notation +text/prs.fallenstein.rst rst +text/prs.lines.tag dsc +text/prs.prop.logic +text/prs.texi +text/raptorfec +text/RED +text/rfc822-headers +text/richtext rtx +text/rtf rtf +text/rtp-enc-aescm128 +text/rtploopback +text/rtx +text/sgml sgml sgm +text/shaclc +text/shex +text/spdx +text/strings +text/t140 +text/tab-separated-values tsv +text/troff t tr roff troff man me ms nroff +text/turtle ttl +text/ulpfec +text/uri-list uri uris urls +text/vcard vcard +text/vnd.a +text/vnd.abc +text/vnd.ascii-art +text/vnd.curl curl +text/vnd.curl.dcurl dcurl +text/vnd.curl.mcurl mcurl +text/vnd.curl.scurl scurl +text/vnd.debian.copyright +text/vnd.DMClientScript +text/vnd.dvb.subtitle sub +text/vnd.esmertec.theme-descriptor +text/vnd.exchangeable +text/vnd.familysearch.gedcom +text/vnd.ficlab.flt +text/vnd.flatland.3dml +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.gml +text/vnd.graphviz gv +text/vnd.hans +text/vnd.hgl +text/vnd.in3d.3dml 3dml +text/vnd.in3d.spot spot +text/vnd.iptc.anpa anpa +text/vnd.IPTC.NewsML +text/vnd.IPTC.NITF +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command ccc +text/vnd.radisys.msml-basic-layout +text/vnd.senx.warpscript +text/vnd.si.uricatalogue +text/vnd.sosi +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist +text/vnd.typst +text/vnd.vcf +text/vnd.wap.si si +text/vnd.wap.sl sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/vnd.zoo.kcl +text/vtt vtt +text/wgsl +text/x-actionscript as +text/x-ada ada adb ads +text/x-applescript applescript +text/x-asciidoc asciidoc adoc ad ad.txt adoc.txt +text/x-asm asm s +text/x-aspectj aj +text/x-assembly s asm +text/x-awk awk +text/x-basic bas +text/x-c c cc cpp cxx dic h hh +text/x-c++hdr hpp hxx hh h h++ hp +text/x-c++src cpp cxx cc c c++ +text/x-cgi cgi +text/x-chdr h +text/x-clojure clj +text/x-cobol cbl cob +text/x-coffeescript coffee +text/x-coffescript coffee +text/x-coldfusion cfm cfml cfc +text/x-common-lisp cl jl lisp lsp +text/x-component htc +text/x-config config conf cfg xconf +text/x-csharp cs +text/x-csrc c +text/x-d d +text/x-diff diff patch +text/x-ecmascript +text/x-eiffel e +text/x-emacs-lisp el +text/x-erlang erl +text/x-expect exp +text/x-forth 4th +text/x-fortran f f77 f90 for +text/x-go go +text/x-groovy groovy +text/x-haml haml +text/x-haskell hs lhs +text/x-haxe hx +text/x-idl idl +text/x-ini ini +text/x-java-properties properties +text/x-java-source java +text/x-jsp jsp +text/x-less less +text/x-lex l +text/x-log log +text/x-lua lua +text/x-makefile makefile gnumakefile +text/x-matlab +text/x-ml ml +text/x-modula m3 i3 mg ig +text/x-nfo nfo +text/x-objcsrc m +text/x-ocaml ocaml mli +text/x-opml opml +text/x-pascal p pas pp dpr +text/x-perl pl pm al perl +text/x-php php php3 php4 +text/x-prolog pro +text/x-python py +text/x-rexx rexx +text/x-robots +text/x-rsrc r +text/x-rst rest rst restx +text/x-rtf rtf +text/x-ruby rb +text/x-scala scala +text/x-scheme scm +text/x-sed sed +text/x-setext etx +text/x-sfv sfv +text/x-sql sql +text/x-stsrc st +text/x-tcl itk tcl tk +text/x-tika-text-based-message +text/x-uuencode uu +text/x-vbasic cls frm +text/x-vbdotnet vb +text/x-vbscript vbs +text/x-vcalendar vcs +text/x-vcard vcf +text/x-verilog v +text/x-vhdl vhd vhdl +text/x-vnd.flatland.3dml +text/x-web-markdown md mdtext mkd markdown +text/x-yacc y +text/x-yaml yaml yml +text/xml xml dtd xsd +text/xml-external-parsed-entity +video/1d-interleaved-parityfec +video/3gpp 3gp 3gpp +video/3gpp-tt +video/3gpp2 3g2 3gpp2 +video/AV1 +video/BMPEG +video/BT656 +video/CelB +video/daala +video/dl dl +video/DV dv +video/encaprtp +video/evc +video/example +video/FFV1 +video/flexfec +video/gl gl +video/H261 h261 +video/H263 h263 +video/H263-1998 +video/H263-2000 +video/H264 h264 +video/H264-RCDO +video/H264-SVC +video/H265 +video/H266 +video/iso.segment m4s +video/JPEG jpgv +video/jpeg2000 +video/jpeg2000-scl +video/jpm jpgm jpm +video/jxsv +video/lottie+json +video/matroska +video/matroska-3d +video/MJ2 mj2 mjp2 +video/MP1S +video/MP2P +video/MP2T ts mts m2ts cpi clpi mpl mpls bdm m2t +video/mp4 mp4 mpg4 f4v f4p mp4v +video/MP4V-ES +video/mpeg mp2 mp3g mpe mpeg mpg m1v m2v +video/mpeg4-generic +video/MPV +video/nv +video/ogg ogg ogv +video/parityfec +video/pointer +video/quicktime qt mov +video/raptorfec +video/raw +video/rtp-enc-aescm128 +video/rtploopback +video/rtx +video/scip +video/smpte291 +video/SMPTE292M +video/theora +video/ulpfec +video/vc1 +video/vc2 +video/vnd.blockfact.factv +video/vnd.CCTV +video/vnd.dece.hd uvh uvvh +video/vnd.dece.mobile uvm uvvm +video/vnd.dece.mp4 +video/vnd.dece.pd uvp uvvp +video/vnd.dece.sd uvs uvvs +video/vnd.dece.video uvv uvvv +video/vnd.directv.mpeg +video/vnd.directv.mpeg-tts +video/vnd.dlna.mpeg-tts +video/vnd.dvb.file dvb +video/vnd.fvt fvt +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl mxu m4u +video/vnd.ms-playready.media.pyv pyv +video/vnd.nokia.interleaved-multimedia nim +video/vnd.nokia.mp4vr +video/vnd.nokia.videovoip +video/vnd.objectvideo mp4 m4v +video/vnd.planar +video/vnd.radgamettools.bink +video/vnd.radgamettools.smacker +video/vnd.sealed.mpeg1 s11 +video/vnd.sealed.mpeg4 smpg s14 +video/vnd.sealed.swf sswf ssw +video/vnd.sealedmedia.softseal.mov smov smo s1q +video/vnd.uvvu.mp4 uvu uvvu +video/vnd.vivo viv vivo +video/vnd.youtube.yt +video/VP8 +video/VP9 +video/webm webm +video/x-dirac drc +video/x-dl dl +video/x-dv dv +video/x-f4v f4v +video/x-flc flc +video/x-fli fli +video/x-flv flv +video/x-gl gl +video/x-ivf ivf +video/x-jng jng +video/x-m4v m4v +video/x-matroska mk3d mks mkv +video/x-mng mng +video/x-motion-jpeg mjpg mjpeg +video/x-ms-asf asf asx +video/x-ms-vob vob +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-oggrgb +video/x-ogguvs +video/x-oggyuv +video/x-ogm ogm +video/x-sgi-movie movie +video/x-smv smv +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 diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.docs.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.docs.column new file mode 100644 index 0000000..a283a5b --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.docs.column @@ -0,0 +1,3021 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +Fixes a bug with IE6 and progressive JPEGs +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +see-also:image/x-xcf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.encoding.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.encoding.column new file mode 100644 index 0000000..cf61e79 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.encoding.column @@ -0,0 +1,3021 @@ +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +8bit +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +7bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +7bit +7bit +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +8bit +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +quoted-printable +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +8bit +base64 +8bit +base64 +base64 +base64 +base64 +8bit +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +8bit +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +8bit +quoted-printable +quoted-printable +quoted-printable +quoted-printable +quoted-printable +8bit +8bit +quoted-printable +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +8bit +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 +base64 diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.flags.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.flags.column new file mode 100644 index 0000000..129ead8 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.flags.column @@ -0,0 +1,3021 @@ +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +1 1 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 1 0 +0 1 1 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 1 0 +0 1 0 0 +0 1 1 0 +0 1 1 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +1 0 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 1 +0 0 0 0 +1 0 0 0 +0 1 0 0 +1 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 1 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +1 0 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +1 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +1 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 1 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +1 0 0 0 +1 0 0 0 +1 0 0 0 +1 0 0 0 +1 0 0 0 +0 1 0 0 +1 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 1 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 1 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 1 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +1 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 1 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +1 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 +0 0 0 0 diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.friendly.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.friendly.column new file mode 100644 index 0000000..36e2223 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.friendly.column @@ -0,0 +1,3021 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Andrew Toolkit +- +- +- +en^Applixware +- +- +- +en^Atom Syndication Format +en^Atom Publishing Protocol +- +- +en^Atom Publishing Protocol Service Document +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Voice Browser Call Control +- +- +en^Cloud Data Management Interface (CDMI) - Capability +en^Cloud Data Management Interface (CDMI) - Contaimer +en^Cloud Data Management Interface (CDMI) - Domain +en^Cloud Data Management Interface (CDMI) - Object +en^Cloud Data Management Interface (CDMI) - Queue +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^CU-SeeMe +- +- +- +- +- +- +- +- +en^Web Distributed Authoring and Versioning +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Data Structure for the Security Suitability of Cryptographic Algorithms +en^Data Structure for the Security Suitability of Cryptographic Algorithms +- +- +- +- +- +- +- +- +en^ECMAScript +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Extensible MultiModal Annotation +- +- +- +- +- +en^Electronic Publication +- +- +- +en^Efficient XML Interchange +- +- +- +- +- +- +- +- +- +- +- +en^Portable Font Resource +en^Web Open Font Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Hyperstudio +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Internet Protocol Flow Information Export +- +- +- +en^Java Archive +en^Java Serialized Object +en^Java Bytecode File +en^JavaScript +- +- +- +- +- +- +en^JavaScript Object Notation (JSON) +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Macintosh BinHex 4.0 +en^Compact Pro +- +- +en^Metadata Authority Description Schema +- +en^MARC Formats +en^MARC21 XML Schema +- +en^Mathematica Notebooks +- +en^Mathematical Markup Language +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Mbox database files +- +- +en^Media Server Control Markup Language +- +- +en^Metalink +en^Metadata Encoding and Transmission Standard +- +- +- +- +- +- +en^Metadata Object Description Schema +- +- +- +- +en^MPEG-21 +en^MPEG4 +- +- +- +- +- +- +- +en^Microsoft Word +- +- +- +- +en^Material Exchange Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Binary Data +en^Office Document Architecture +- +- +- +en^Open eBook Publication Structure +en^Ogg +- +- +en^Microsoft OneNote +- +- +- +- +- +- +- +- +- +- +en^XML Patch Framework +en^Adobe Portable Document Format +- +- +en^Pretty Good Privacy +- +en^Pretty Good Privacy - Signature +en^PICSRules +- +- +en^PKCS #10 - Certification Request Standard +- +en^PKCS #7 - Cryptographic Message Syntax Standard +en^PKCS #7 - Cryptographic Message Syntax Standard +en^PKCS #8 - Private-Key Information Syntax Standard +- +en^Attribute Certificate +en^Internet Public Key Infrastructure - Certificate +en^Internet Public Key Infrastructure - Certificate Revocation Lists +- +en^Internet Public Key Infrastructure - Certification Path +en^Internet Public Key Infrastructure - Certificate Management Protocole +en^Pronunciation Lexicon Specification +- +en^PostScript +- +- +- +- +- +- +- +- +- +- +en^Pipelined Relational Query Language +- +en^CU-Writer +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Portable Symmetric Key Container +- +- +- +- +- +- +en^Resource Description Framework +en^IMS Networks +en^Relax NG Compact Syntax +- +- +- +- +- +en^XML Resource Lists +en^XML Resource Lists Diff +- +- +- +- +en^XML Resource Lists +- +- +- +- +- +- +- +- +- +- +- +en^Really Simple Discovery +en^RSS - Really Simple Syndication +en^Rich Text Format +- +- +- +- +- +- +- +en^Systems Biology Markup Language +- +- +en^Server-Based Certificate Validation Protocol - Validation Request +en^Server-Based Certificate Validation Protocol - Validation Response +en^Server-Based Certificate Validation Protocol - Validation Policies - Request +en^Server-Based Certificate Validation Protocol - Validation Policies - Response +- +- +- +en^Session Description Protocol +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Secure Electronic Transaction - Payment +- +en^Secure Electronic Transaction - Registration +- +- +en^S Hexdump Format +- +- +- +- +- +- +- +- +- +- +en^Synchronized Multimedia Integration Language +- +- +- +- +en^SPARQL - Query +en^SPARQL - Results +- +- +- +en^Speech Recognition Grammar Specification +en^Speech Recognition Grammar Specification - XML +en^Search/Retrieve via URL Response Format +- +- +en^Speech Synthesis Markup Language +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Text Encoding and Interchange +- +- +en^Sharing Transaction Fraud Data +- +- +en^Time Stamped Data Envelope +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^3rd Generation Partnership Project - Pic Large +en^3rd Generation Partnership Project - Pic Small +en^3rd Generation Partnership Project - Pic Var +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^3rd Generation Partnership Project - Transaction Capabilities Application Part +- +en^3M Post It Notes +en^Simply Accounting +en^Simply Accounting - Data Import +- +- +en^ACU Cobol +en^ACU Cobol +- +- +en^Adobe AIR Application +- +- +en^Adobe Flex Project +- +- +en^Adobe XML Data Package +en^Adobe XML Forms Data Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Ahead AIR Application +en^AirZip FileSECURE +en^AirZip FileSECURE +- +en^Amazon Kindle eBook format +- +en^Active Content Compression +en^AmigaDE +- +- +en^Android Package Archive +- +en^ANSER-WEB Terminal Client - Certificate Issue +en^ANSER-WEB Terminal Client - Web Funds Transfer +en^Antix Game Player +- +- +- +- +- +- +- +- +- +- +en^Apple Installer Package +- +- +en^Multimedia Playlist Unicode +- +- +- +- +- +en^Arista Networks Software Image +- +- +- +en^Audiograph +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Blueice Research Multipass +- +- +en^BMI Drawing Data Interchange +- +- +en^BusinessObjects +- +- +- +- +- +- +- +- +- +- +en^CambridgeSoft Chem Draw +- +en^Karaoke on Chipnuts Chipsets +- +en^Interactive Geometry Software Cinderella +- +- +en^Claymore Data Files +en^RetroPlatform Player +en^Clonk Game +en^ClueTrust CartoMobile - Config +en^ClueTrust CartoMobile - Config Package +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Sixth Floor Media - CommonSpace +en^CIM Database +- +en^CosmoCaller +en^CrickSoftware - Clicker +en^CrickSoftware - Clicker - Keyboard +en^CrickSoftware - Clicker - Palette +en^CrickSoftware - Clicker - Template +en^CrickSoftware - Clicker - Wordbank +en^Critical Tools - PERT Chart EXPERT +- +- +- +- +en^PosML +- +- +- +en^Adobe PostScript Printer Description File Format +- +- +- +en^CURL Applet +en^CURL Applet +- +- +- +- +- +- +- +- +en^RemoteDocs R-Viewer +- +- +- +- +- +- +- +- +- +- +en^FCS Express Layout Link +- +- +- +- +en^New Moon Liftoff/DNA +- +en^Dolby Meridian Lossless Packing +- +- +- +en^DPGraph +en^DreamFactory +- +- +- +- +- +en^Digital Video Broadcasting +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Digital Video Broadcasting +- +en^DynaGeo +- +- +- +- +- +en^EcoWin Chart +- +- +- +- +- +- +- +- +- +en^Enliven Viewer +- +- +en^QUASS Stream Player +en^QUASS Stream Player +en^QuickAnime Player +en^SimpleAnimeLite Player +en^QUASS Stream Player +- +- +- +en^MICROSEC e-Szign¢ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^EZPix Secure Photo Album +en^EZPix Secure Photo Album +- +- +- +en^Forms Data Format +- +en^Digital Siesmograph Networks - SEED Datafiles +- +- +- +- +- +- +- +en^NpGraphIt +en^FluxTime Clip +- +en^FrameMaker Normal Format +- +en^Frogans Player +en^Frogans Player +en^Friendly Software Corporation +- +- +- +- +en^Fujitsu Oasys +en^Fujitsu Oasys +en^Fujitsu Oasys +en^Fujitsu Oasys +en^Fujitsu Oasys +- +- +en^Fujitsu - Xerox 2D CAD Data +en^Fujitsu - Xerox DocuWorks +en^Fujitsu - Xerox DocuWorks Binder +- +- +- +- +- +en^FuzzySheet +- +- +en^Genomatix Tuxedo Framework +- +- +- +- +- +- +- +- +- +- +- +en^GeoGebra +- +- +en^GeoGebra +en^GeoMetry Explorer +en^GEONExT and JSXGraph +en^GeoplanW +en^GeospacW +- +- +- +en^GameMaker ActiveX +- +- +en^Google Earth - KML +en^Google Earth - Zipped KML +- +- +- +- +en^GrafEq +- +en^Groove - Account +en^Groove - Help +en^Groove - Identity Message +en^Groove - Injector +en^Groove - Tool Message +en^Groove - Tool Template +en^Groove - Vcard +- +en^Hypertext Application Language +en^ZVUE Media Manager +en^Homebanking Computer Interface (HBCI) +- +- +- +- +en^Archipelago Lesson Player +- +- +en^HP-GL/2 and HP RTL +en^Hewlett Packard Instant Delivery +en^Hewlett-Packard's WebPrintSmart +en^HP Indigo Digital Press - Job Layout Languate +en^HP Printer Command Language +en^PCL 6 Enhanced (Formely PCL XL) +- +- +en^Hydrostatix Master Suite +- +- +- +en^3D Crossword Plugin +- +- +en^MiniPay +en^MO:DCA-P +en^IBM DB2 Rights Manager +en^IBM Electronic Media Management System - Secure Container +en^ICC profile +- +en^igLoader +- +- +en^ImmerVision PURE Players +en^ImmerVision PURE Players +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^IOCOM Visimeet +en^Intercon FormNet +en^Interactive Geometry Software +- +- +en^Open Financial Exchange +en^Quicken +- +- +- +- +- +- +- +- +- +- +- +- +en^IP Unplugged Roaming Client +en^iRepository / Lucidoc Editor +en^Express by Infoseek +en^International Society for Advancement of Cytometry +- +en^Lightspeed Audio Lab +- +- +- +- +- +- +- +- +- +- +en^Mobile Information Device Profile +en^RhymBox +en^Joda Archive +- +en^Kahootz +en^KDE KOffice Office Suite - Karbon +en^KDE KOffice Office Suite - KChart +en^KDE KOffice Office Suite - Kformula +en^KDE KOffice Office Suite - Kivio +en^KDE KOffice Office Suite - Kontour +en^KDE KOffice Office Suite - Kpresenter +en^KDE KOffice Office Suite - Kspread +en^KDE KOffice Office Suite - Kword +- +en^Kenamea App +- +- +en^Kidspiration +en^Kinar Applications +en^SSEYO Koan Play File +en^Kodak Storyshare +- +- +en^Laser App Enterprise +- +- +- +- +en^Life Balance - Desktop Edition +en^Life Balance - Exchange Format +- +- +en^Lotus 1-2-3 +en^Lotus Approach +en^Lotus Freelance +en^Lotus Notes +en^Lotus Organizer +en^Lotus Screencam +en^Lotus Wordpro +en^MacPorts Port System +- +- +- +- +- +- +- +- +en^Micro CADAM Helix D&D +- +- +en^MedCalc +en^MediaRemote +- +- +- +en^Medical Waveform Encoding Format +en^Melody Format for Mobile Platform +- +en^Micrografx +en^Micrografx iGrafx Professional +- +- +- +en^FrameMaker Interchange Format +- +- +- +en^Mobius Management Systems - UniversalArchive +en^Mobius Management Systems - Distribution Database +en^Mobius Management Systems - Basket file +en^Mobius Management Systems - Query File +en^Mobius Management Systems - Script Language +en^Mobius Management Systems - Policy Definition Language File +en^Mobius Management Systems - Topic Index File +- +en^Mophun VM +en^Mophun Certificate +- +- +- +- +- +- +- +- +en^XUL - XML User Interface Language +- +en^Microsoft Artgalry +- +en^Microsoft Cabinet File +en^Microsoft Excel +en^Microsoft Excel - Add-In File +- +- +- +en^Microsoft Excel - Binary Workbook +en^Microsoft Excel - Macro-Enabled Workbook +en^Microsoft Excel - Macro-Enabled Template File +- +- +en^Microsoft Embedded OpenType +en^Microsoft Html Help File +en^Microsoft Class Server +en^Microsoft Learning Resource Module +- +en^Microsoft Office System Release Theme +- +- +- +en^Microsoft Trust UI Provider - Security Catalog +en^Microsoft Trust UI Provider - Certificate Trust Link +- +en^Microsoft PowerPoint +en^Microsoft PowerPoint - Add-in file +en^Microsoft PowerPoint - Macro-Enabled Presentation File +en^Microsoft PowerPoint - Macro-Enabled Open XML Slide +en^Microsoft PowerPoint - Macro-Enabled Slide Show File +en^Micosoft PowerPoint - Macro-Enabled Template File +- +- +en^Microsoft Project +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Micosoft Word - Macro-Enabled Document +en^Micosoft Word - Macro-Enabled Template +- +- +en^Microsoft Works +en^Microsoft Windows Media Player Playlist +en^Microsoft XML Paper Specification +- +en^3GPP MSEQ File +- +- +- +- +- +en^MUsical Score Interpreted Code Invented for the ASCII designation of Notation +en^Muvee Automatic Video Editing +- +- +- +- +- +- +- +- +- +- +- +- +en^neuroLanguage +- +- +- +- +en^NobleNet Directory +en^NobleNet Sealer +en^NobleNet Web +- +- +- +- +- +- +- +- +- +en^N-Gage Game Data +en^N-Gage Game Installer +- +- +- +- +en^Nokia Radio Application - Preset +en^Nokia Radio Application - Preset +en^Novadigm's RADIA and EDM products +en^Novadigm's RADIA and EDM products +en^Novadigm's RADIA and EDM products +- +- +- +- +- +- +- +- +- +- +en^OpenDocument Chart +en^OpenDocument Chart Template +en^OpenDocument Database +- +- +- +en^OpenDocument Formula +en^OpenDocument Formula Template +en^OpenDocument Graphics +en^OpenDocument Graphics Template +en^OpenDocument Image +en^OpenDocument Image Template +en^OpenDocument Presentation +en^OpenDocument Presentation Template +en^OpenDocument Spreadsheet +en^OpenDocument Spreadsheet Template +en^OpenDocument Text +en^OpenDocument Text Master +- +en^OpenDocument Text Template +en^Open Document Text Web +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Sugar Linux Application Bundle +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^OMA Download Agents +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Open Office Extension +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Microsoft Office - OOXML - Presentation +- +- +en^Microsoft Office - OOXML - Presentation (Slide) +- +- +- +en^Microsoft Office - OOXML - Presentation (Slideshow) +- +- +- +- +en^Microsoft Office - OOXML - Presentation Template +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Microsoft Office - OOXML - Spreadsheet +- +- +- +- +- +en^Microsoft Office - OOXML - Spreadsheet Teplate +- +- +- +- +- +- +- +- +en^Microsoft Office - OOXML - Word Document +- +- +- +- +- +- +- +- +- +en^Microsoft Office - OOXML - Word Document Template +- +- +- +- +- +- +- +- +en^MapGuide DBXML +- +en^OSGi Deployment Package +- +- +- +- +en^PalmOS Data +- +- +- +- +en^PawaaFILE +- +en^Proprietary P&G Standard Reporting System +en^Proprietary P&G Standard Reporting System +- +en^Pcsel eFIF File +en^Qualcomm's Plaza Mobile Internet +- +- +en^PocketLearn Viewers +en^PowerBuilder +- +- +- +- +- +- +- +en^Preview Systems ZipLock/VBox +en^EFI Proteus +- +- +en^PubliShare Objects +en^Princeton Video Image +- +- +- +- +- +en^QuarkXPress +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^RealVNC +en^Recordare Applications +en^Recordare Applications +- +- +- +- +en^CryptoNote +en^Blackberry COD File +en^RealMedia +- +en^ROUTE 66 Location Based Services +- +- +- +en^SailingTracker +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^SeeMail +- +en^Secured eMail +en^Secured eMail +en^Secured eMail +- +en^Shana Informed Filler +en^Shana Informed Filler +en^Shana Informed Filler +en^Shana Informed Filler +- +- +- +- +- +en^SimTech MindMapper +- +- +- +en^SMAF File +- +en^SMART Technologies Apps +- +- +- +- +en^SudokuMagic +en^TIBCO Spotfire +en^TIBCO Spotfire +- +- +- +- +en^StarOffice - Calc +- +en^StarOffice - Draw +en^StarOffice - Impress +en^StarOffice - Math +en^StarOffice - Writer +en^StarOffice - Writer (Global) +- +en^StepMania +- +- +en^OpenOffice - Calc (Spreadsheet) +en^OpenOffice - Calc Template (Spreadsheet) +en^OpenOffice - Draw (Graphics) +en^OpenOffice - Draw Template (Graphics) +en^OpenOffice - Impress (Presentation) +en^OpenOffice - Impress Template (Presentation) +en^OpenOffice - Math (Formula) +en^OpenOffice - Writer (Text - HTML) +en^OpenOffice - Writer (Text - HTML) +en^OpenOffice - Writer Template (Text - HTML) +- +en^ScheduleUs +en^SourceView Document +- +- +- +- +en^Symbian Install Package +en^SyncML +en^SyncML - Device Management +en^SyncML - Device Management +- +- +- +- +- +- +- +en^Tao Intent +- +- +- +- +- +en^MobileTV +- +en^TRI Systems Config +en^Triscape Map Explorer +en^True BASIC +- +- +en^Universal Forms Description Language +- +en^User Interface Quartz - Theme (Symbian) +en^UMAJIN +en^Unity 3d +en^Unique Object Markup Language +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^VirtualCatalog +- +- +- +- +- +- +- +- +- +- +- +en^Microsoft Visio +en^Visionary +- +- +en^Viewport+ +- +- +- +en^WAP Binary XML (WBXML) +en^Compiled Wireless Markup Language (WMLC) +en^WMLScript +- +en^WebTurbo +- +- +- +- +- +- +- +- +- +en^Mathematica Notebook Player +- +- +en^Wordperfect +en^SundaHus WQ +- +en^Worldtalk +- +- +- +- +en^CorelXARA +- +- +en^Extensible Forms Description Language +- +- +- +- +- +- +- +en^HV Voice Dictionary +en^HV Script +en^HV Voice Parameter +en^Open Score Format +en^OSFPVG +- +en^SMAF Audio +en^SMAF Phrase +- +- +- +en^CustomMenu +- +en^Z.U.L. Geometry +en^Zzazz Deck +en^VoiceXML +- +- +- +- +- +- +- +- +- +- +en^WebAssembly +- +- +- +- +- +en^Widget Packaging and XML Configuration +en^WinHelp +- +- +- +- +- +- +- +en^WSDL - Web Services Description Language +en^Web Services Policy +- +en^7-Zip +en^AbiWord +- +en^Ace Archive +- +- +- +- +- +- +- +- +- +- +- +en^Adobe (Macropedia) Authorware - Binary File +en^Adobe (Macropedia) Authorware - Map +en^Adobe (Macropedia) Authorware - Segment File +- +- +en^Binary CPIO Archive +- +- +- +- +en^BitTorrent +- +- +- +- +en^Bzip Archive +en^Bzip2 Archive +- +- +en^Video CD +- +en^pIRCh +en^Portable Game Notation (Chess Games) +- +- +- +- +- +- +- +- +en^CPIO Archive +en^C Shell Script +- +- +en^Debian Package +- +- +en^Adobe Shockwave Player +en^Doom Video Game +- +- +en^Navigation Control file for XML (for ePub) +en^Digital Talking Book +en^Digital Talking Book - Resource File +- +en^Device Independent File Format (DVI) +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Glyph Bitmap Distribution Format +- +- +en^Ghostscript Font +- +en^PSF Fonts +- +en^OpenType Font File +en^Portable Compiled Format +- +en^Server Normal Format +- +- +- +en^TrueType Font +en^PostScript Fonts +- +- +- +- +- +- +- +en^FutureSplash Animator +- +- +- +- +- +en^Gnumeric +- +- +en^GNU Tar Files +- +- +en^Hierarchical Data Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Java Network Launching Protocol +- +- +- +- +- +- +- +- +- +- +en^LaTeX +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Mobipocket +- +en^Microsoft ClickOnce +- +- +- +- +- +- +- +en^Microsoft Windows Media Player Download Package +en^Microsoft Windows Media Player Skin Package +en^Microsoft XAML Browser Application +en^Microsoft Access +en^Microsoft Office Binder +en^Microsoft Information Card +en^Microsoft Clipboard Clip +- +en^Microsoft Application +en^Microsoft MediaView +en^Microsoft Windows Metafile +en^Microsoft Money +en^Microsoft Publisher +en^Microsoft Schedule+ +en^Microsoft Windows Terminal Services +- +en^Microsoft Wordpad +- +- +- +- +- +- +en^Network Common Data Form (NetCDF) +- +- +- +- +- +- +- +- +- +- +en^PKCS #12 - Personal Information Exchange Syntax Standard +en^PKCS #7 - Cryptographic Message Syntax Standard (Certificates) +en^PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response) +- +- +- +- +- +- +- +en^RAR Archive +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Bourne Shell Script +- +en^Shell Archive +- +en^Adobe Flash +- +en^Microsoft Silverlight +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Stuffit Archive +en^Stuffit Archive +- +en^System V Release 4 CPIO Archive +en^System V Release 4 CPIO Checksum Data +- +- +en^Tar File (Tape Archive) +en^Tcl Script +en^TeX +en^TeX Font Metric +- +en^GNU Texinfo Document +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Ustar (Uniform Standard Tape Archive) +- +- +- +- +- +- +- +en^WAIS Source +- +- +- +- +- +- +- +- +en^X.509 Certificate +- +- +- +- +- +- +en^Xfig +- +- +- +en^XPInstall - Mozilla +- +- +en^Zip Archive +- +- +- +- +- +- +- +- +en^XML Configuration Access Protocol - XCAP Diff +- +- +- +- +- +en^XML Encryption Syntax and Processing +- +en^XHTML - The Extensible HyperText Markup Language +- +- +en^XML - Extensible Markup Language +en^Document Type Definition +- +- +- +en^XML-Binary Optimized Packaging +- +- +- +en^XML Transformations +en^XSPF - XML Shareable Playlist Format +en^MXML +- +en^YANG Data Modeling Language +- +- +- +- +- +- +en^YIN (YANG - XML) +en^Zip Archive +- +- +- +- +- +- +- +- +en^Adaptive differential pulse-code modulation +- +- +- +- +- +- +- +- +en^Sun Audio - Au file format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^MIDI - Musical Instrument Digital Interface +- +- +en^MPEG-4 Audio +- +- +- +en^MPEG Audio +- +en^Ogg Audio +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^DECE Audio +en^Digital Winds Music +- +- +- +- +- +- +- +- +- +en^DRA Audio +en^DTS Audio +en^DTS High Definition Audio +- +- +- +- +en^Lucent Voice +en^Microsoft PlayReady Ecosystem +- +- +en^Nuera ECELP 4800 +en^Nuera ECELP 7470 +en^Nuera ECELP 9600 +- +- +- +- +en^Hit'n'Mix +- +- +- +- +- +en^Waveform Audio File Format (WAV) +en^Open Web Media Project - Audio +en^Advanced Audio Coding (AAC) +- +en^Audio Interchange File Format +- +- +- +- +- +- +- +- +en^M3U (Multimedia Playlist) +en^Microsoft Windows Media Audio Redirector +en^Microsoft Windows Media Audio +- +- +- +en^Real Audio Sound +en^Real Audio Sound +- +- +- +en^Waveform Audio File Format (WAV) +- +en^ChemDraw eXchange file +en^Crystallographic Interchange Format +en^CrystalMaker Data Format +en^Chemical Markup Language +en^Chemical Style Markup Language +- +en^XYZ File Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Bitmap Image File +en^Computer Graphics Metafile +- +- +- +- +- +- +en^G3 Fax Image +en^Graphics Interchange Format +- +- +- +- +- +- +- +en^Image Exchange Format +- +- +- +- +- +- +en^JPEG Image +- +- +- +- +- +- +- +- +- +- +- +- +en^OpenGL Textures (KTX) +- +- +- +- +- +en^Portable Network Graphics (PNG) +en^BTIF +- +- +- +en^Scalable Vector Graphics (SVG) +- +- +en^Tagged Image File Format +- +en^Photoshop Document +- +- +- +- +- +en^DECE Graphic +- +en^DjVu +en^Close Captioning - Subtitle +en^DWG Drawing +- +en^AutoCAD DXF +en^FastBid Sheet +en^FlashPix +en^FAST Search & Transfer ASA +en^EDMICS 2000 +en^EDMICS 2000 +- +- +- +- +en^Microsoft Document Imaging Format +- +en^FlashPix +- +- +- +- +- +- +- +- +- +en^WAP Bitamp (WBMP) +en^eXtended Image File Format (XIFF) +- +- +en^WebP Image +- +- +en^Adobe Digital Negative +- +- +en^Canon Raw Image +- +en^Canon Raw Image +en^CMU Image +en^Corel Metafile Exchange (CMX) +- +- +- +- +en^Epson Raw Image +en^FreeHand MX +en^Fuji Raw Image +- +en^Icon Image +- +- +- +en^Kodak Raw Image +en^Kodak Raw Image +en^Kodak Raw Image +en^Minolta Raw Image +- +en^Bitmap Image File +- +en^Nikon Raw Image +en^Olympus Raw Image +- +en^Panasonic Raw Image +en^PCX Image +en^Pentax Raw Image +en^PICT Image +en^Portable Anymap Image +- +en^Portable Bitmap Format +en^Portable Graymap Format +en^Portable Pixmap Format +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Silicon Graphics RGB Bitmap +en^Sigma Raw Image +en^Sony Raw Image +en^Sony Raw Image +en^Sony Raw Image +- +- +- +- +- +en^X BitMap +- +- +en^X PixMap +en^X Window Dump +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Email Message +- +- +- +- +- +- +- +- +- +- +- +- +en^Initial Graphics Exchange Specification (IGES) +- +en^Mesh Data Type +- +- +- +- +- +- +- +- +- +- +- +en^COLLADA +en^Autodesk Design Web Format (DWF) +- +- +en^Geometric Description Language (GDL) +- +- +en^Gen-Trix Studio +- +en^Virtue MTS +- +- +- +- +- +- +- +- +- +en^Virtue VTU +en^Virtual Reality Modeling Language +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^iCalendar +- +- +- +- +- +en^Cascading Style Sheets (CSS) +en^Comma-Separated Values +- +- +- +- +- +- +- +- +- +- +- +- +- +en^HyperText Markup Language (HTML) +- +- +- +- +- +- +- +- +- +- +- +- +en^Notation3 +- +- +- +en^Text File +- +- +en^PRS Lines Tag +- +- +- +- +- +en^Rich Text Format (RTF) +- +- +- +- +en^Standard Generalized Markup Language (SGML) +- +- +- +- +- +en^Tab Separated Values +en^troff +en^Turtle (Terse RDF Triple Language) +- +en^URI Resolution Services +- +- +- +- +en^Curl - Applet +en^Curl - Detached Applet +en^Curl - Manifest File +en^Curl - Source Code +- +- +- +- +- +- +- +- +en^mod_fly / fly.cgi +en^FLEXSTOR +- +en^Graphviz +- +- +en^In3D - 3DML +en^In3D - 3DML +- +- +- +- +- +- +- +- +- +- +- +en^J2ME App Descriptor +- +- +- +- +- +en^Wireless Markup Language (WML) +en^Wireless Markup Language Script (WMLScript) +- +- +- +- +- +- +- +en^Assembler Source File +- +- +- +- +en^C Source File +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Fortran Source File +- +- +- +- +- +- +- +- +en^Java Source File +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Pascal Source File +- +- +- +- +- +- +- +- +- +- +- +- +- +en^Setext +- +- +- +- +- +en^UUEncode +- +- +- +en^vCalendar +en^vCard +- +- +- +- +- +- +- +- +- +en^3GP +- +en^3GP2 +- +- +- +- +- +- +- +- +- +- +- +- +- +en^H.261 +en^H.263 +- +- +en^H.264 +- +- +- +- +- +en^JPGVideo +- +- +en^JPEG 2000 Compound Image File Format +- +- +- +- +en^Motion JPEG 2000 +- +- +- +en^MPEG-4 Video +- +en^MPEG Video +- +- +- +en^Ogg Video +- +- +en^Quicktime Video +- +- +- +- +- +- +- +- +- +- +- +- +- +- +en^DECE High Definition Video +en^DECE Mobile Video +- +en^DECE PD Video +en^DECE SD Video +en^DECE Video +- +- +- +- +en^FAST Search & Transfer ASA +- +- +- +- +- +- +- +- +- +en^MPEG Url +en^Microsoft PlayReady Ecosystem Video +- +- +- +- +- +- +- +- +- +- +- +en^DECE MP4 +en^Vivo +- +- +- +en^Open Web Media Project - Video +- +- +- +en^Flash Video +- +en^FLI/FLC Animation Format +en^Flash Video +- +- +- +en^M4v +- +- +- +en^Microsoft Advanced Systems Format (ASF) +- +en^Microsoft Windows Media +en^Microsoft Windows Media Video +en^Microsoft Windows Media Audio/Video Playlist +en^Microsoft Windows Media Video Playlist +en^Audio Video Interleave (AVI) +- +- +- +- +en^SGI Movie +- +- +- +en^CoolTalk +- +- diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.pext.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.pext.column new file mode 100644 index 0000000..3f149c4 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.pext.column @@ -0,0 +1,3021 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.spri.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.spri.column new file mode 100644 index 0000000..4a939d9 Binary files /dev/null and b/gems/gems/mime-types-data-3.2025.0909/data/mime.spri.column differ diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.use_instead.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.use_instead.column new file mode 100644 index 0000000..f59d793 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.use_instead.column @@ -0,0 +1,3021 @@ +- +- +- +- +- +- +- +- +application/x-msaccess +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x-bleeper +- +- +- +- +- +- +application/cals-1840 +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.ms-excel +- +- +- +- +- +- +- +- +- +- +- +font/sfnt +- +font/woff +- +- +application/x-futuresplash +- +- +- +- +- +- +- +application/x-ghostview +- +- +- +- +- +- +- +- +- +- +- +- +application/x-hep +- +- +- +- +- +- +- +- +- +- +- +- +application/x-imagemap +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.lotus-1-2-3 +- +- +- +application/x-mac-compactpro +- +- +- +- +- +- +application/vnd.mcd +- +application/x-mathematica-old +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x-quicktimeplayer +- +- +- +- +- +- +application/remote-printing +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/smil+xml +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x-toolbook +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x-VMSBACKUP +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.3gpp.mcvideo-info+xml +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.aristanetworks.swi +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/geo+json +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +vnd.afpc.afplinedata +- +- +application/vnd.afpc.modca +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.visionary +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.nokia.ncd +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.oasis.opendocument.base +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +video/vnd.youtube.yt +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.wordperfect +- +application/x-wordperfect6.1 +application/vnd.wordperfect +- +- +application/vnd.lotus-1-2-3 +- +- +application/x-msaccess +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x-compressed +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +- +application/vnd.ms-excel +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/gzip +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +application/vnd.lotus-1-2-3 +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/vnd.framemaker +application/vnd.mcd +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/msword +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/rtf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/troff +- +- +- +application/x-ustar +- +- +- +- +- +- +- +- +- +- +- +- +- +application/msword +application/vnd.wordperfect +- +application/vnd.wordperfect +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +application/x400-bp +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +audio/qcelp +- +- +- +- +- +- +- +- +- +audio/aac +- +- +- +- +- +audio/flac +- +audio/matroska +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +x-chemical/x-pdb +x-chemical/x-xyz +x-drawing/dwf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +image/x-cmu-raster +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +image/x-targa +- +- +- +- +- +- +- +- +- +image/x-vnd.dgn +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +image/vnd.net-fpx +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +image/bmp +- +- +- +- +- +- +- +- +image/emf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +image/wmf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +multipart/parallel +- +- +application/x-www-form-urlencoded +- +- +- +- +- +- +- +- +text/csv +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +text/javascript +text/javascript +text/javascript +text/javascript +- +text/javascript +text/javascript +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +model/vnd.flatland.3dml +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/javascript +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +text/rtf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +model/vnd.flatland.3dml +- +- +- +- +- +- +- +- +- +- +- +- +- +- +video/x-dl +- +- +- +- +- +- +video/x-gl +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +video/DV +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/gems/gems/mime-types-data-3.2025.0909/data/mime.xrefs.column b/gems/gems/mime-types-data-3.2025.0909/data/mime.xrefs.column new file mode 100644 index 0000000..772af86 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/data/mime.xrefs.column @@ -0,0 +1,3021 @@ +rfc^rfc6015|template^application/1d-interleaved-parityfec +person^Rob_Coyle +person^Ozgur_Oyman^_3GPP|template^application/3gpdash-qoe-report+xml +person^John_M_Meredith^_3GPP|template^application/3gpp-ims+xml +person^Ulrich_Wiehe^_3GPP|template^application/3gppHal+json +person^Ulrich_Wiehe^_3GPP|template^application/3gppHalForms+json +person^ASAM^Thomas_Thomsen|template^application/A2L +- +- +rfc^rfc9200|template^application/ace+cbor +rfc^rfc9431|template^application/ace+json +rfc^rfc9594|template^application/ace-groupcomm+cbor +rfc^rfc9770|template^application/ace-trl+cbor +person^Ehud_Shapiro|template^application/activemessage +person^Benjamin_Goering^W3C|template^application/activity+json +rfc^rfc9237|template^application/aif+cbor +rfc^rfc9237|template^application/aif+json +person^Chet_Ensign +rfc^rfc9241|template^application/alto-cdni+json +rfc^rfc9241|template^application/alto-cdnifilter+json +rfc^rfc7285|template^application/alto-costmap+json +rfc^rfc7285|template^application/alto-costmapfilter+json +rfc^rfc7285|template^application/alto-directory+json +rfc^rfc7285|template^application/alto-endpointcost+json +rfc^rfc7285|template^application/alto-endpointcostparams+json +rfc^rfc7285|template^application/alto-endpointprop+json +rfc^rfc7285|template^application/alto-endpointpropparams+json +rfc^rfc7285|template^application/alto-error+json +rfc^rfc7285|template^application/alto-networkmap+json +rfc^rfc7285|template^application/alto-networkmapfilter+json +rfc^rfc9240|template^application/alto-propmap+json +rfc^rfc9240|template^application/alto-propmapparams+json +rfc^rfc9569|template^application/alto-tips+json +rfc^rfc9569|template^application/alto-tipsparams+json +rfc^rfc8895|template^application/alto-updatestreamcontrol+json +rfc^rfc8895|template^application/alto-updatestreamparams+json +person^ASAM^Thomas_Thomsen|template^application/AML +person^Nathaniel_Borenstein|template^application/andrew-inset +- +person^Patrik_Faltstrom|template^application/applefile +person^OpenID_Foundation_Artifact_Binding_WG|template^application/application/jwk-set+jwt +- +rfc^rfc9068|template^application/at+jwt +person^ASAM^Thomas_Thomsen|template^application/ATF +person^ASAM^Thomas_Thomsen|template^application/ATFX +rfc^rfc4287^rfc5023|template^application/atom+xml +rfc^rfc5023|template^application/atomcat+xml +rfc^rfc6721|template^application/atomdeleted+xml +person^Nathaniel_Borenstein|template^application/atomicmail +rfc^rfc5023|template^application/atomsvc+xml +person^ATSC|template^application/atsc-dwd+xml +person^ATSC|template^application/atsc-dynamic-event-message +person^ATSC|template^application/atsc-held+xml +person^ATSC|template^application/atsc-rdt+json +person^ATSC|template^application/atsc-rsat+xml +person^ASAM^Thomas_Thomsen|template^application/ATXML +rfc^rfc4745|template^application/auth-policy+xml +person^AutomationML_e.V.|template^application/automationml-aml+xml +person^AutomationML_e.V.|template^application/automationml-amlx+zip +person^ASHRAE^Dave_Robin|template^application/bacnet-xdd+zip +rfc^rfc2442|template^application/batch-SMTP +rfc^rfc3080|template^application/beep+xml +- +- +person^Anna_Milan^World_Meterological_Organization|template^application/bufr +person^C2PA^Leonard_Rosenthol|template^application/c2pa +rfc^rfc7265|template^application/calendar+json +rfc^rfc6321|template^application/calendar+xml +rfc^rfc6910|template^application/call-completion +rfc^rfc1895|template^application/CALS-1840 +- +draft^RFC-ietf-ecrit-data-only-ea-22|template^application/cap+xml +rfc^rfc8908|template^application/captive+json +rfc^rfc8949|template^application/cbor +rfc^rfc8742|template^application/cbor-seq +person^_3GPP|template^application/cccex +rfc^rfc6503|template^application/ccmp+xml +rfc^rfc4267|template^application/ccxml+xml +person^HL7^Marc_Duteau|template^application/cda+xml +person^ASAM^Thomas_Thomsen|template^application/CDFX+XML +rfc^rfc6208|template^application/cdmi-capability +rfc^rfc6208|template^application/cdmi-container +rfc^rfc6208|template^application/cdmi-domain +rfc^rfc6208|template^application/cdmi-object +rfc^rfc6208|template^application/cdmi-queue +rfc^rfc7736|template^application/cdni +person^Ned_M._Smith^TCG_DICE_WG|template^application/ce+cbor|uri^https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1_10April25.pdf +person^ASAM^Thomas_Thomsen|template^application/CEA +person^Gottfried_Zimmermann|template^application/cea-2018+xml +rfc^rfc4708|template^application/cellml+xml +draft^draft-yasskin-http-origin-signed-responses-07 +person^Samuel_M._Smith +rfc^rfc6230|template^application/cfw +person^Michael_B_Jones^W3C_Verifiable_Credentials_WG|template^application/cid +rfc^rfc9528|template^application/cid-edhoc+cbor-seq +person^OGC^Scott_Simmons|template^application/city+json +person^OGC^Scott_Simmons|template^application/city+json-seq +- +person^Andy_Miller^IMS_Global|template^application/clr +rfc^rfc8847|template^application/clue+xml +rfc^rfc8846|template^application/clue_info+xml +rfc^rfc7193|template^application/cms +draft^draft-ietf-rats-msg-wrap-04 +rfc^rfc3367|template^application/cnrp+xml +draft^RFC-ietf-ace-wg-coap-eap-14|template^application/coap-eap +rfc^rfc7390|template^application/coap-group+json +rfc^rfc8075|template^application/coap-payload +person^David_Glazer|template^application/commonground +rfc^rfc9290|template^application/concise-problem-details+cbor +rfc^rfc4575|template^application/conference-info+xml +- +rfc^rfc9052|template^application/cose +rfc^rfc9052|template^application/cose-key +rfc^rfc9052|template^application/cose-key-set +rfc^rfc9360|template^application/cose-x509 +rfc^rfc3880|template^application/cpl+xml +rfc^rfc7030|template^application/csrattrs +person^Ecma_International_Helpdesk|template^application/csta+xml +person^Ecma_International_Helpdesk|template^application/CSTAdata+xml +person^Ivan_Herman^W3C|template^application/csvm+json +- +person^CWL_Project^Michael_R._Crusoe|template^application/cwl +person^CWL_Project^Michael_R._Crusoe|template^application/cwl+json +person^CWL_Project^Michael_R._Crusoe|template^application/cwl+yaml +rfc^rfc8392|template^application/cwt +person^Donald_E._Eastlake_3rd|template^application/cybercash +person^ISO-IEC_JTC_1^Thomas_Stockhammer|template^application/dash+xml +person^ISO-IEC_JTC_1|template^application/dash-patch+xml +person^David_Furbeck|template^application/dashdelta +rfc^rfc4709|template^application/davmount+xml +person^Larry_Campbell|template^application/dca-rft +person^ASAM^Thomas_Thomsen|template^application/DCD +person^Larry_Campbell|template^application/dec-dx +person^David_Clunie +rfc^rfc4235|template^application/dialog-info+xml +rfc^rfc3240|template^application/dicom +person^DICOM_Standard_Committee^David_Clunie|template^application/dicom+json +person^DICOM_Standard_Committee^David_Clunie|template^application/dicom+xml +person^W3C_DID_WG|template^application/did +- +person^ASAM^Thomas_Thomsen|template^application/DII +person^ASAM^Thomas_Thomsen|template^application/DIT +- +rfc^rfc4027|template^application/dns +rfc^rfc8427|template^application/dns+json +rfc^rfc8484|template^application/dns-message +- +rfc^rfc9132|template^application/dots+cbor +rfc^rfc9449|template^application/dpop+jwt +- +rfc^rfc6063|template^application/dskpp+xml +rfc^rfc5698|template^application/dssc+der +rfc^rfc5698|template^application/dssc+xml +rfc^rfc3029|template^application/dvcs +- +rfc^rfc9782|template^application/eat+cwt +rfc^rfc9782|template^application/eat+jwt +rfc^rfc9782|template^application/eat-bun+cbor +rfc^rfc9782|template^application/eat-bun+json +rfc^rfc9782|template^application/eat-ucs+cbor +rfc^rfc9782|template^application/eat-ucs+json +notes^(OBSOLETED in favor of text/javascript)|rfc^rfc4329^rfc9239|template^application/ecmascript +rfc^rfc9528|template^application/edhoc+cbor-seq +rfc^rfc1767|template^application/EDI-consent +rfc^rfc1767|template^application/EDI-X12 +rfc^rfc1767|template^application/EDIFACT +person^Samer_El-Haj-Mahmoud^UEFI_Forum|template^application/efi +person^Bryn_Rhodes^HL7|template^application/elm+json +person^Bryn_Rhodes^HL7|template^application/elm+xml +rfc^rfc8876|template^application/EmergencyCallData.cap+xml +rfc^rfc7852|template^application/EmergencyCallData.Comment+xml +rfc^rfc8147|template^application/EmergencyCallData.Control+xml +rfc^rfc7852|template^application/EmergencyCallData.DeviceInfo+xml +rfc^rfc8147|template^application/EmergencyCallData.eCall.MSD +person^NENA^Randall_Gellens|template^application/EmergencyCallData.LegacyESN+json +rfc^rfc7852|template^application/EmergencyCallData.ProviderInfo+xml +rfc^rfc7852|template^application/EmergencyCallData.ServiceInfo+xml +rfc^rfc7852|template^application/EmergencyCallData.SubscriberInfo+xml +rfc^rfc8148|rfc-errata^6500|template^application/EmergencyCallData.VEDS+xml +person^ISO-IEC_JTC_1^W3C|template^application/emma+xml|uri^http://www.w3.org/TR/2007/CR-emma-20071211/#media-type-registration +person^Kazuyuki_Ashimura^W3C|template^application/emotionml+xml +rfc^rfc6849|template^application/encaprtp +person^OpenID_Foundation_Artifact_Binding_WG|template^application/entity-statement+jwt +- +rfc^rfc5730|template^application/epp+xml +person^EPUB_3_WG^W3C|template^application/epub+zip +person^Steve_Katz|template^application/eshop +rfc^rfc4735|template^application/example +- +person^W3C|template^application/exi|uri^http://www.w3.org/TR/2009/CR-exi-20091208/#mediaTypeRegistration +rfc^rfc9163|template^application/expect-ct-report+json +person^Dana_Tripp^ISO-TC_184-SC_4|template^application/express +person^ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur^ITU-T_ASN.1_Rapporteur|template^application/fastinfoset +person^ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur^ITU-T_ASN.1_Rapporteur|template^application/fastsoap +person^Betsy_Fanning^ISO-TC_171-SC_2|template^application/fdf +rfc^rfc6726|template^application/fdt+xml +person^Grahame_Grieve^HL7|template^application/fhir+json +person^Grahame_Grieve^HL7|template^application/fhir+xml +rfc^rfc4047|template^application/fits +rfc^rfc8627|template^application/flexfec +notes^- DEPRECATED in favor of font/sfnt|person^ISO-IEC_JTC_1^Levantovsky|rfc^rfc8081|template^application/font-sfnt +rfc^rfc3073|template^application/font-tdpfr +notes^- DEPRECATED in favor of font/woff|person^W3C|rfc^rfc8081|template^application/font-woff +- +rfc^rfc6230|template^application/framework-attributes+xml +- +rfc^rfc7946|template^application/geo+json +rfc^rfc8142|template^application/geo+json-seq +draft^RFC-ietf-regext-rdap-geofeed-14|template^application/geofeed+csv +person^OGC^Scott_Simmons|template^application/geopackage+sqlite3 +person^OGC^Scott_Simmons|template^application/geopose+json +person^OGC^Scott_Simmons|template^application/geoxacml+json +person^OGC^Scott_Simmons|template^application/geoxacml+xml +- +person^Khronos^Saurabh_Bhatia|template^application/gltf-buffer +person^Clemens_Portele^OGC|template^application/gml+xml +rfc^rfc9635|template^application/gnap-binding-jws +rfc^rfc9635|template^application/gnap-binding-jwsd +rfc^rfc9635|template^application/gnap-binding-rotation-jws +rfc^rfc9635|template^application/gnap-binding-rotation-jwsd +- +person^Anna_Milan^World_Meterological_Organization|template^application/grib +- +rfc^rfc6713|template^application/gzip +rfc^rfc4573|template^application/H224 +rfc^rfc5985|template^application/held+xml +- +person^HL7^Marc_Duteau|template^application/hl7v2+xml +rfc^rfc9112|template^application/http +- +person^Michael_Domino|template^application/hyperstudio +- +rfc^rfc5408|template^application/ibe-key-request+xml +rfc^rfc5408|template^application/ibe-pkg-reply+xml +rfc^rfc5408|template^application/ibe-pp-data +person^Curtis_Parks|template^application/iges +- +- +rfc^rfc3994|template^application/im-iscomposing+xml +- +rfc^rfc2652|template^application/index +rfc^rfc2652|template^application/index.cmd +rfc^rfc2652|template^application/index.obj +rfc^rfc2652|template^application/index.response +rfc^rfc2652|template^application/index.vnd +- +person^Kazuyuki_Ashimura|template^application/inkml+xml +person^Jonathan_Hohle +rfc^rfc2935|template^application/IOTP +rfc^rfc5655|template^application/ipfix +rfc^rfc8010|template^application/ipp +rfc^rfc3204|template^application/ISUP +person^ITS-IG-W3C^W3C|template^application/its+xml +person^Iris_Clark^JCP|template^application/java-archive +- +- +notes^(OBSOLETED in favor of text/javascript)|rfc^rfc4329^rfc9239|template^application/javascript +person^Ivan_Herman^W3C|template^application/jf2feed+json +rfc^rfc7515|template^application/jose +rfc^rfc7515|template^application/jose+json +rfc^rfc7033|template^application/jrd+json +rfc^rfc8984|template^application/jscalendar+json +rfc^rfc9553|template^application/jscontact+json +rfc^rfc8259|template^application/json +person^Glen_Kleidon +rfc^rfc6902|template^application/json-patch+json +person^Lorna_Mitchell^TM_Forum|template^application/json-patch-query+json +rfc^rfc7464|template^application/json-seq +- +rfc^rfc9535|template^application/jsonpath +rfc^rfc7517|template^application/jwk+json +rfc^rfc7517|template^application/jwk-set+json +person^OpenID_Foundation_Artifact_Binding_WG|template^application/jwk-set+jwt +rfc^rfc7519|template^application/jwt +- +draft^RFC-ietf-oauth-selective-disclosure-jwt-22|template^application/kb+jwt +rfc^rfc4730|template^application/kpml-request+xml +rfc^rfc4730|template^application/kpml-response+xml +person^Ivan_Herman^W3C|template^application/ld+json +rfc^rfc7940|template^application/lgr+xml +rfc^rfc6690|template^application/link-format +rfc^rfc9264|template^application/linkset +rfc^rfc9264|template^application/linkset+json +rfc^rfc7200|template^application/load-control+xml +person^OpenID_Foundation_Artifact_Binding_WG|template^application/logout+jwt +rfc^rfc5222|template^application/lost+xml +rfc^rfc6739|template^application/lostsync+xml +- +person^Ivan_Herman^W3C|template^application/lpf+zip +person^ASAM^Thomas_Thomsen|template^application/LXF +person^Patrik_Faltstrom|template^application/mac-binhex40 +- +- +person^Paul_Lindner|template^application/macwriteii +rfc^rfc6207|template^application/mads+xml +person^Marcos_Caceres^W3C|template^application/manifest+json +rfc^rfc2220|template^application/marc +rfc^rfc6207|template^application/marcxml+xml +- +person^Wolfram|template^application/mathematica +- +person^W3C|template^application/mathml+xml|uri^http://www.w3.org/TR/MathML3/appendixb.html +person^W3C|template^application/mathml-content+xml|uri^http://www.w3.org/TR/MathML3/appendixb.html +person^W3C|template^application/mathml-presentation+xml|uri^http://www.w3.org/TR/MathML3/appendixb.html +person^_3GPP|template^application/mbms-associated-procedure-description+xml +person^_3GPP|template^application/mbms-deregister+xml +person^_3GPP|template^application/mbms-envelope+xml +person^_3GPP|template^application/mbms-msk+xml +person^_3GPP|template^application/mbms-msk-response+xml +person^_3GPP|template^application/mbms-protection-description+xml +person^_3GPP|template^application/mbms-reception-report+xml +person^_3GPP|template^application/mbms-register+xml +person^_3GPP|template^application/mbms-register-response+xml +person^Eric_Turcotte^_3GPP|template^application/mbms-schedule+xml +person^_3GPP|template^application/mbms-user-service-description+xml +rfc^rfc4155|template^application/mbox +rfc^rfc6796|template^application/media-policy-dataset+xml +rfc^rfc5168|template^application/media_control+xml +rfc^rfc5022|template^application/mediaservercontrol+xml +rfc^rfc7396|template^application/merge-patch+json +- +rfc^rfc5854|template^application/metalink4+xml +rfc^rfc6207|template^application/mets+xml +person^ASAM^Thomas_Thomsen|template^application/MF4 +rfc^rfc3830|template^application/mikey +person^Bryan_Blank^NCGIS|template^application/mipc +rfc^rfc9177|template^application/missing-blocks+cbor-seq +person^ATSC|template^application/mmt-aei+xml +person^ATSC|template^application/mmt-usd+xml +rfc^rfc6207|template^application/mods+xml +rfc^rfc1848|template^application/moss-keys +rfc^rfc1848|template^application/moss-signature +rfc^rfc1848|template^application/mosskey-data +rfc^rfc1848|template^application/mosskey-request +person^David_Singer|rfc^rfc6381|template^application/mp21 +rfc^rfc4337^rfc6381|template^application/mp4 +rfc^rfc3640|template^application/mpeg4-generic +rfc^rfc4337|template^application/mpeg4-iod +rfc^rfc4337|template^application/mpeg4-iod-xmt +rfc^rfc6917|template^application/mrb-consumer+xml +rfc^rfc6917|template^application/mrb-publish+xml +rfc^rfc6231|template^application/msc-ivr+xml +rfc^rfc6505|template^application/msc-mixer+xml +person^Paul_Lindner|template^application/msword +- +- +rfc^rfc8520|template^application/mud+json +rfc^rfc8710|template^application/multipart-core +rfc^rfc4539|template^application/mxf +person^Eric_Prudhommeaux^W3C|template^application/n-quads +person^Eric_Prudhommeaux^W3C|template^application/n-triples +rfc^rfc4707|template^application/nasdata +person^Ethan_Davis +rfc^rfc5537|template^application/news-checkgroups +rfc^rfc5537|template^application/news-groupinfo +- +rfc^rfc5537|template^application/news-transmission +rfc^rfc6787|template^application/nlsml+xml +person^Node.js_TSC|template^application/node +person^Michael_Hammer|template^application/nss +rfc^rfc9101|template^application/oauth-authz-req+jwt +rfc^rfc9230|template^application/oblivious-dns-message +rfc^rfc6960|template^application/ocsp-request +rfc^rfc6960|template^application/ocsp-response +rfc^rfc2045^rfc2046|template^application/octet-stream +rfc^rfc1494|template^application/ODA +person^Sam_Hume +person^CDISC^Sam_Hume|template^application/odm+xml +person^ASAM^Thomas_Thomsen|template^application/ODX +person^EPUB_3_WG^W3C|template^application/oebps-package+xml +rfc^rfc5334^rfc7845|template^application/ogg +rfc^rfc9458|template^application/ohttp-keys +- +- +- +- +person^OPC_Foundation|template^application/opc-nodeset+xml +rfc^rfc8613|template^application/oscore +person^Ecma_International_Helpdesk|template^application/oxps +person^Dana_Tripp^ISO-TC_184-SC_4|template^application/p21 +person^Dana_Tripp^ISO-TC_184-SC_4|template^application/p21+zip +rfc^rfc6940|template^application/p2p-overlay+xml +rfc^rfc3009|template^application/parityfec +rfc^rfc8225|template^application/passport +rfc^rfc5261|template^application/patch-ops-error+xml +rfc^rfc8118|template^application/pdf +person^ASAM^Thomas_Thomsen|template^application/PDX +rfc^rfc8555|template^application/pem-certificate-chain +rfc^rfc3156|template^application/pgp-encrypted +rfc^rfc3156|template^application/pgp-keys +rfc^rfc3156|template^application/pgp-signature +- +rfc^rfc3863|template^application/pidf+xml +rfc^rfc5262|template^application/pidf-diff+xml +rfc^rfc5967|template^application/pkcs10 +person^IETF|template^application/pkcs12 +rfc^rfc7114^rfc8551|template^application/pkcs7-mime +rfc^rfc8551|template^application/pkcs7-signature +rfc^rfc5958|template^application/pkcs8 +rfc^rfc8351|template^application/pkcs8-encrypted +rfc^rfc5877|template^application/pkix-attr-cert +rfc^rfc2585|template^application/pkix-cert +rfc^rfc2585|template^application/pkix-crl +draft^draft-hallambaker-mesh-udf-05 +rfc^rfc6066|template^application/pkix-pkipath +rfc^rfc9811|template^application/pkixcmp +rfc^rfc4267|template^application/pls+xml +rfc^rfc4354|template^application/poc-settings+xml +rfc^rfc2045^rfc2046|template^application/postscript +- +rfc^rfc7846|template^application/ppsp-tracker+json +rfc^rfc9578|template^application/private-token-issuer-directory +rfc^rfc9578|template^application/private-token-request +rfc^rfc9578|template^application/private-token-response +- +rfc^rfc9457|template^application/problem+json +rfc^rfc9457|template^application/problem+xml +person^Ivan_Herman^W3C|template^application/provenance+xml +person^Daniel_Fett^OpenID_Foundation_eKYC_and_IDA_WG|template^application/provided-claims+jwt +- +person^Harald_T._Alvestrand|template^application/prs.alvestrand.titrax-sheet +person^Khemchart_Rungchavalnont|template^application/prs.cww +person^Cynthia_Revström|template^application/prs.cyn +person^Giulio_Zambon|template^application/prs.hpub+zip +person^Marek_Čermák|template^application/prs.implied-document+xml +person^Marek_Čermák|template^application/prs.implied-executable +person^Marek_Čermák|template^application/prs.implied-object+json +person^Marek_Čermák|template^application/prs.implied-object+json-seq +person^Marek_Čermák|template^application/prs.implied-object+yaml +person^Marek_Čermák|template^application/prs.implied-structure +person^Azalea_Gardenia|template^application/prs.mayfile +person^Jay_Doggett|template^application/prs.nprend +person^Bill_Janssen|template^application/prs.plucker +person^Toby_Inkster|template^application/prs.rdf-xml-crypt +person^Paolo_Marcheschi|template^application/prs.vcfbzip2 +person^Maik_Stührenberg|template^application/prs.xsf+xml +rfc^rfc6030|template^application/pskc+xml +rfc^rfc8801|template^application/pvd+json +rfc^rfc3204|template^application/QSIG +- +- +rfc^rfc6682|template^application/raptorfec +rfc^rfc9083|template^application/rdap+json +rfc^rfc3870|template^application/rdf+xml +rfc^rfc3680|template^application/reginfo+xml +template^application/relax-ng-compact-syntax|uri^http://www.JTC_1sc34.org/repository/0661.pdf +notes^(OBSOLETE)|person^Marshall_Rose|rfc^rfc1486|template^application/remote-printing|uri^https://datatracker.ietf.org/doc/status-change-int-tlds-to-historic +- +person^Douglas_Creager +rfc^rfc7071|template^application/reputon+json +person^OpenID_Foundation_Artifact_Binding_WG|template^application/resolve-response+jwt +rfc^rfc4826|template^application/resource-lists+xml +rfc^rfc5362|template^application/resource-lists-diff+xml +rfc^rfc7991|template^application/rfc+xml +person^Sandro_Hawke +person^Nick_Smith|template^application/riscos +rfc^rfc4662|template^application/rlmi+xml +rfc^rfc4826|template^application/rls-services+xml +person^ATSC|template^application/route-apd+xml +person^ATSC|template^application/route-s-tsid+xml +person^ATSC|template^application/route-usd+xml +rfc^rfc9323|template^application/rpki-checklist +rfc^rfc6493|template^application/rpki-ghostbusters +rfc^rfc6481|template^application/rpki-manifest +rfc^rfc8181|template^application/rpki-publication +rfc^rfc9582|template^application/rpki-roa +rfc^rfc9691|template^application/rpki-signed-tal +rfc^rfc6492|template^application/rpki-updown +rfc^rfc7865^rfc9806|template^application/rs-metadata+xml +- +- +person^Paul_Lindner|template^application/rtf +rfc^rfc6849|template^application/rtploopback +rfc^rfc4588|template^application/rtx +person^OASIS_Security_Services_Technical_Committee_SSTC|template^application/samlassertion+xml +person^OASIS_Security_Services_Technical_Committee_SSTC|template^application/samlmetadata+xml +person^Laurence_J._Golding^Michael_C._Fanning^OASIS|template^application/sarif+json +person^David_Keaton^Michael_C._Fanning^OASIS|template^application/sarif-external-properties+json +person^Donald_L._Mendelson^FIX_Trading_Community|template^application/sbe +rfc^rfc3823|template^application/sbml+xml +person^Oskar_Jonsson^SIS|template^application/scaip+xml +rfc^rfc7644|template^application/scim+json +rfc^rfc5055|template^application/scvp-cv-request +rfc^rfc5055|template^application/scvp-cv-response +rfc^rfc5055|template^application/scvp-vp-request +rfc^rfc5055|template^application/scvp-vp-response +draft^RFC-ietf-oauth-selective-disclosure-jwt-22|template^application/sd-jwt +draft^RFC-ietf-oauth-selective-disclosure-jwt-22|template^application/sd-jwt+json +draft^RFC-ietf-asdf-sdf-23|template^application/sdf+json +rfc^rfc8866|template^application/sdp +rfc^rfc8417|template^application/secevent+jwt +rfc^rfc8428|template^application/senml+cbor +rfc^rfc8428|template^application/senml+json +rfc^rfc8428|template^application/senml+xml +rfc^rfc8790|template^application/senml-etch+cbor +rfc^rfc8790|template^application/senml-etch+json +rfc^rfc8428|template^application/senml-exi +rfc^rfc8428|template^application/sensml+cbor +rfc^rfc8428|template^application/sensml+json +rfc^rfc8428|template^application/sensml+xml +rfc^rfc8428|template^application/sensml-exi +person^IEEE^Robby_Simpson|template^application/sep+xml +person^IEEE^Robby_Simpson|template^application/sep-exi +- +person^Frederic_Firmin^_3GPP|template^application/session-info +- +person^Brian_Korver|template^application/set-payment +person^Brian_Korver|template^application/set-payment-initiation +person^Brian_Korver|template^application/set-registration +person^Brian_Korver|template^application/set-registration-initiation +rfc^rfc1874|template^application/SGML +person^Paul_Grosso|template^application/sgml-open-catalog +rfc^rfc4194|template^application/shf+xml +rfc^rfc5228|template^application/sieve +draft^draft-yasskin-http-origin-signed-responses-07 +rfc^rfc4661|template^application/simple-filter+xml +rfc^rfc3842|template^application/simple-message-summary +person^_3GPP|template^application/simpleSymbolContainer +person^Bryan_Blank^NCGIS|template^application/sipc +- +person^Terry_Crowley|template^application/slate +- +notes^(OBSOLETED in favor of application/smil+xml)|rfc^rfc4536|template^application/smil +rfc^rfc4536|template^application/smil+xml +rfc^rfc6597|template^application/smpte336m +person^ISO-IEC_JTC_1_SC_6_ASN.1_Rapporteur^ITU-T_ASN.1_Rapporteur|template^application/soap+fastinfoset +rfc^rfc3902|template^application/soap+xml +- +person^W3C|template^application/sparql-query|uri^http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/#mediaType +person^W3C|template^application/sparql-results+xml|uri^http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/#mime +person^Linux_Foundation^Rose_Judge|template^application/spdx+json +rfc^rfc3910|template^application/spirits-event+xml +rfc^rfc6922|template^application/sql +rfc^rfc4267|template^application/srgs +rfc^rfc4267|template^application/srgs+xml +rfc^rfc6207|template^application/sru+xml +- +draft^RFC-ietf-tls-keylogfile-05|template^application/sslkeylogfile +rfc^rfc4267|template^application/ssml+xml +person^SMPTE^SMPTE_Director_of_Standards_Development|template^application/ST2110-41 +- +person^Chet_Ensign^OASIS|template^application/stix+json +note^1|person^Ben_van_Hartingsveldt|template^application/stratum +draft^RFC-ietf-suit-manifest-34|template^application/suit-envelope+cose +rfc^rfc9393|template^application/swid+cbor +person^David_Waltermire^ISO-IEC_JTC_1^Ron_Brill|template^application/swid+xml +rfc^rfc5934|template^application/tamp-apex-update +rfc^rfc5934|template^application/tamp-apex-update-confirm +rfc^rfc5934|template^application/tamp-community-update +rfc^rfc5934|template^application/tamp-community-update-confirm +rfc^rfc5934|template^application/tamp-error +rfc^rfc5934|template^application/tamp-sequence-adjust +rfc^rfc5934|template^application/tamp-sequence-adjust-confirm +rfc^rfc5934|template^application/tamp-status-query +rfc^rfc5934|template^application/tamp-status-response +rfc^rfc5934|template^application/tamp-update +rfc^rfc5934|template^application/tamp-update-confirm +person^Chet_Ensign^OASIS|template^application/taxii+json +person^Matthias_Kovatsch^W3C|template^application/td+json +rfc^rfc6129|template^application/tei+xml +person^ETSI^Miguel_Angel_Reina_Ortega|template^application/TETRA_ISI +note^3|person^Simon_Josefsson|template^application/texinfo +rfc^rfc5941|template^application/thraud+xml +rfc^rfc3161|template^application/timestamp-query +rfc^rfc3161|template^application/timestamp-reply +rfc^rfc5955|template^application/timestamped-data +rfc^rfc8460|template^application/tlsrpt+gzip +rfc^rfc8460|template^application/tlsrpt+json +person^Sebastian_Kaebisch^W3C|template^application/tm+json +rfc^rfc8226|template^application/tnauthlist +person^Ned_M._Smith^TCG_DICE_WG|template^application/toc+cbor|uri^https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1_10April25.pdf +rfc^rfc9701|template^application/token-introspection+jwt +note^2|person^Ben_van_Hartingsveldt|template^application/toml|uri^https://github.com/toml-lang/toml/issues/870 +- +rfc^rfc8840|template^application/trickle-ice-sdpfrag +person^W3C^W3C_RDF_WG|template^application/trig +person^OpenID_Foundation_Artifact_Binding_WG|template^application/trust-chain+json +person^OpenID_Foundation_Artifact_Binding_WG|template^application/trust-mark+jwt +person^OpenID_Foundation_Artifact_Binding_WG|template^application/trust-mark-delegation+jwt +person^W3C^W3C_Timed_Text_WG|template^application/ttml+xml +person^Linda_Welsh|template^application/tve-trigger +rfc^rfc9636|template^application/tzif +rfc^rfc9636|template^application/tzif-leap +rfc^rfc9781|template^application/uccs+cbor +rfc^rfc9781|template^application/ujcs+json +rfc^rfc5109|template^application/ulpfec +person^Gottfried_Zimmermann^ISO-IEC_JTC_1|template^application/urc-grpsheet+xml +person^Gottfried_Zimmermann^ISO-IEC_JTC_1|template^application/urc-ressheet+xml +person^Gottfried_Zimmermann^ISO-IEC_JTC_1|template^application/urc-targetdesc+xml +person^Gottfried_Zimmermann|template^application/urc-uisocketdesc+xml +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vc +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vc+cose +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vc+jwt +rfc^rfc7095|template^application/vcard+json +rfc^rfc6351|template^application/vcard+xml +- +rfc^rfc2122|template^application/vemmi +- +- +person^Franz_Ombler|template^application/vnd.1000minds.decision-model+xml +person^Rob_Coyle|template^application/vnd.1ob +person^Frederic_Firmin|template^application/vnd.3gpp-prose+xml +person^Haorui_Yang|template^application/vnd.3gpp-prose-pc3a+xml +person^Haorui_Yang|template^application/vnd.3gpp-prose-pc3ach+xml +person^Frederic_Firmin|template^application/vnd.3gpp-prose-pc3ch+xml +person^Haorui_Yang|template^application/vnd.3gpp-prose-pc8+xml +person^Frederic_Firmin|template^application/vnd.3gpp-v2x-local-service-information +person^Jones_Lu_Yunjie^_3GPP|template^application/vnd.3gpp.5gnas +person^Dongwook_Kim^_3GPP_CT1|template^application/vnd.3gpp.5gsa2x +person^Dongwook_Kim^_3GPP_CT1|template^application/vnd.3gpp.5gsa2x-local-service-information +person^Dongwook_Kim^_3GPP_CT1|template^application/vnd.3gpp.5gsv2x +person^Dongwook_Kim^_3GPP_CT1|template^application/vnd.3gpp.5gsv2x-local-service-information +person^Frederic_Firmin|template^application/vnd.3gpp.access-transfer-events+xml +person^John_M_Meredith|template^application/vnd.3gpp.bsf+xml +person^Xu_Chen|template^application/vnd.3gpp.crs+xml +person^Peter_Leis|template^application/vnd.3gpp.current-location-discovery+xml +person^Frederic_Firmin|template^application/vnd.3gpp.GMOP+xml +person^Yang_Yong^_3GPP|template^application/vnd.3gpp.gtpc +person^Frederic_Firmin|template^application/vnd.3gpp.interworking-data +person^Jones_Lu_Yunjie^_3GPP|template^application/vnd.3gpp.lpp +person^Tim_Woodward|template^application/vnd.3gpp.mc-signalling-ear +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-affiliation-command+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-info+xml +person^Kiran_Kapale|template^application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-payload +person^Kiran_Kapale|template^application/vnd.3gpp.mcdata-regroup+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-service-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-signalling +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-ue-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcdata-user-profile+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-affiliation-command+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-floor-request+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-location-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-mbms-usage-info+xml +person^Kiran_Kapale|template^application/vnd.3gpp.mcptt-regroup+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-service-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-signed+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-ue-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-ue-init-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcptt-user-profile+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-affiliation-command+xml +notes^(OBSOLETED in favor of application/vnd.3gpp.mcvideo-info+xml)|person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-affiliation-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-location-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-mbms-usage-info+xml +person^Kiran_Kapale|template^application/vnd.3gpp.mcvideo-regroup+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-service-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-transmission-request+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-ue-config+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mcvideo-user-profile+xml +person^Frederic_Firmin|template^application/vnd.3gpp.mid-call+xml +person^Yang_Yong^_3GPP|template^application/vnd.3gpp.ngap +person^Bruno_Landais^_3GPP|template^application/vnd.3gpp.pfcp +person^John_M_Meredith|template^application/vnd.3gpp.pic-bw-large +person^John_M_Meredith|template^application/vnd.3gpp.pic-bw-small +person^John_M_Meredith|template^application/vnd.3gpp.pic-bw-var +person^Dongwook_Kim^_3GPP_CT1|template^application/vnd.3gpp.pinapp-info+xml +person^Yang_Yong^_3GPP|template^application/vnd.3gpp.s1ap +person^_3GPP|template^application/vnd.3gpp.seal-app-comm-requirements-info+xml +person^_3GPP|template^application/vnd.3gpp.seal-data-delivery-info+cbor +person^_3GPP|template^application/vnd.3gpp.seal-data-delivery-info+xml +person^Sapan_Shah|template^application/vnd.3gpp.seal-group-doc+xml +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.seal-info+xml +person^_3GPP|template^application/vnd.3gpp.seal-location-info+cbor +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.seal-location-info+xml +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.seal-mbms-usage-info+xml +person^_3GPP|template^application/vnd.3gpp.seal-mbs-usage-info+xml +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.seal-network-QoS-management-info+xml +person^_3GPP|template^application/vnd.3gpp.seal-network-resource-info+cbor +person^Sapan_Shah|template^application/vnd.3gpp.seal-ue-config-info+xml +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.seal-unicast-info+xml +person^Sapan_Shah|template^application/vnd.3gpp.seal-user-profile-info+xml +person^John_M_Meredith|template^application/vnd.3gpp.sms +person^Frederic_Firmin|template^application/vnd.3gpp.sms+xml +person^Frederic_Firmin|template^application/vnd.3gpp.srvcc-ext+xml +person^Frederic_Firmin|template^application/vnd.3gpp.SRVCC-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.state-and-event-info+xml +person^Frederic_Firmin|template^application/vnd.3gpp.ussd+xml +person^Sang_Min_Park|template^application/vnd.3gpp.v2x +person^Christian_Herrero-Veron^_3GPP|template^application/vnd.3gpp.vae-info+xml +person^AC_Mahendran|template^application/vnd.3gpp2.bcmcsinfo+xml +person^AC_Mahendran|template^application/vnd.3gpp2.sms +person^AC_Mahendran|template^application/vnd.3gpp2.tcap +person^Gus_Asadi|template^application/vnd.3lightssoftware.imagescal +person^Michael_OBrien|template^application/vnd.3M.Post-it-Notes +person^Steve_Leow|template^application/vnd.accpac.simply.aso +person^Steve_Leow|template^application/vnd.accpac.simply.imp +person^Sridhar_Ramakrishnan|template^application/vnd.acm.addressxfer+json +person^Sridhar_Ramakrishnan|template^application/vnd.acm.chatbot+json +person^Dovid_Lubin|template^application/vnd.acucobol +person^Dovid_Lubin|template^application/vnd.acucorp +- +- +- +person^Henrik_Andersson|template^application/vnd.adobe.flash.movie +person^Chris_Solc|template^application/vnd.adobe.formscentral.fcdt +person^Steven_Heintz|template^application/vnd.adobe.fxp +- +person^Tapani_Otala|template^application/vnd.adobe.partial-upload +person^John_Brinkman|template^application/vnd.adobe.xdp+xml +person^Roberto_Perelman|template^application/vnd.adobe.xfdf +person^Jay_Moskowitz|template^application/vnd.aether.imp +person^Jörg_Palmer|template^application/vnd.afpc.afplinedata +person^Jörg_Palmer|template^application/vnd.afpc.afplinedata-pagedef +person^Jörg_Palmer|template^application/vnd.afpc.cmoca-cmresource +person^Jörg_Palmer|template^application/vnd.afpc.foca-charset +person^Jörg_Palmer|template^application/vnd.afpc.foca-codedfont +person^Jörg_Palmer|template^application/vnd.afpc.foca-codepage +person^Jörg_Palmer|template^application/vnd.afpc.modca +person^Jörg_Palmer|template^application/vnd.afpc.modca-cmtable +person^Jörg_Palmer|template^application/vnd.afpc.modca-formdef +person^Jörg_Palmer|template^application/vnd.afpc.modca-mediummap +person^Jörg_Palmer|template^application/vnd.afpc.modca-objectcontainer +person^Jörg_Palmer|template^application/vnd.afpc.modca-overlay +person^Jörg_Palmer|template^application/vnd.afpc.modca-pagesegment +person^Filippo_Valsorda|template^application/vnd.age +person^Katsuhiko_Ichinose|template^application/vnd.ah-barcode +person^Tor_Kristensen|template^application/vnd.ahead.space +person^Daniel_Mould^Gary_Clueit|template^application/vnd.airzip.filesecure.azf +person^Daniel_Mould^Gary_Clueit|template^application/vnd.airzip.filesecure.azs +person^Patrick_Brosse|template^application/vnd.amadeus+json +- +person^Kim_Scarborough|template^application/vnd.amazon.mobi8-ebook +person^Gary_Sands|template^application/vnd.americandynamics.acc +person^Kevin_Blumberg|template^application/vnd.amiga.ami +person^Mike_Amundsen|template^application/vnd.amundsen.maze+xml +person^Greg_Kaiser|template^application/vnd.android.ota +- +person^Kerrick_Staley|template^application/vnd.anki +person^Hiroyoshi_Mori|template^application/vnd.anser-web-certificate-issue-initiation +- +person^Daniel_Shelton|template^application/vnd.antix.game-component +person^Apache_Arrow_Project|template^application/vnd.apache.arrow.file +person^Apache_Arrow_Project|template^application/vnd.apache.arrow.stream +person^Apache_Parquet_Project|template^application/vnd.apache.parquet +person^Roger_Meier|template^application/vnd.apache.thrift.binary +person^Roger_Meier|template^application/vnd.apache.thrift.compact +person^Roger_Meier|template^application/vnd.apache.thrift.json +person^Fawad_Shaikh|template^application/vnd.apexlang +person^Steve_Klabnik|template^application/vnd.api+json +person^Oleg_Uryutin|template^application/vnd.aplextor.warrp+json +person^Adrian_Föder|template^application/vnd.apothekende.reservation+json +person^Peter_Bierman|template^application/vnd.apple.installer+xml +- +person^Manichandra_Sajjanapu|template^application/vnd.apple.keynote +rfc^rfc8216|template^application/vnd.apple.mpegurl +person^Manichandra_Sajjanapu|template^application/vnd.apple.numbers +person^Manichandra_Sajjanapu|template^application/vnd.apple.pages +- +- +notes^(OBSOLETED in favor of application/vnd.aristanetworks.swi)|person^Bill_Fenner|template^application/vnd.arastra.swi +person^Bill_Fenner|template^application/vnd.aristanetworks.swi +person^Brad_Turner|template^application/vnd.artisan+json +person^Christopher_Smith|template^application/vnd.artsquare +person^Christopher_Snazell|template^application/vnd.astraea-software.iota +person^Horia_Cristian_Slusanschi|template^application/vnd.audiograph +person^Mike_Hearn|template^application/vnd.autopackage +person^Ben_Hinman|template^application/vnd.avalon+json +person^Vladimir_Vysotsky|template^application/vnd.avistar+xml +person^Giacomo_Guilizzoni|template^application/vnd.balsamiq.bmml+xml +person^Giacomo_Guilizzoni|template^application/vnd.balsamiq.bmpr +person^José_Del_Romano|template^application/vnd.banana-accounting +person^Broadband_Forum|template^application/vnd.bbf.usp.error +person^Broadband_Forum|template^application/vnd.bbf.usp.msg +person^Broadband_Forum|template^application/vnd.bbf.usp.msg+json +person^Jegulsky|template^application/vnd.bekitzur-stech+json +person^Dmytro_Yunchyk|template^application/vnd.belightsoft.lhzd+zip +person^Dmytro_Yunchyk|template^application/vnd.belightsoft.lhzl+zip +person^Heinz-Peter_Schütz|template^application/vnd.bint.med-content +person^Pathway_Commons|template^application/vnd.biopax.rdf+xml +person^Victor_Costan|template^application/vnd.blink-idb-value-wrapper +person^Thomas_Holmstrom|template^application/vnd.blueice.multipass +person^Mike_Foley|template^application/vnd.bluetooth.ep.oob +person^Mark_Powell|template^application/vnd.bluetooth.le.oob +person^Tadashi_Gotoh|template^application/vnd.bmi +person^Bryan_Blank^NCGIS|template^application/vnd.bpf +person^Bryan_Blank^NCGIS|template^application/vnd.bpf3 +person^Philippe_Imoucha|template^application/vnd.businessobjects +person^Brent_Moore|template^application/vnd.byu.uapi+json +person^Kamila_Szewczyk|template^application/vnd.bzip3 +person^Andreas_Hubel|template^application/vnd.c3voc.schedule+xml +person^Joerg_Falkenberg|template^application/vnd.cab-jscript +person^Shin_Muto|template^application/vnd.canon-cpdl +person^Shin_Muto|template^application/vnd.canon-lips +person^Yüksel_Aydemir|template^application/vnd.capasystems-pg+json +person^Tristan_Swadell|template^application/vnd.cel +person^Peter_Astrand|template^application/vnd.cendio.thinlinc.clientconf +person^Shuji_Fujii|template^application/vnd.century-systems.tcp_stream +person^Glenn_Howes|template^application/vnd.chemdraw+xml +person^Kim_Scarborough|template^application/vnd.chess-pgn +person^Chunyun_Xiong|template^application/vnd.chipnuts.karaoke-mmd +person^Hidekazu_Enjo|template^application/vnd.ciedi +person^Ulrich_Kortenkamp|template^application/vnd.cinderella +person^Pascal_Mayeux|template^application/vnd.cirpack.isdn-ext +person^Rintze_M._Zelle|template^application/vnd.citationstyles.style+xml +person^Ray_Simpson|template^application/vnd.claymore +person^Mike_Labatt|template^application/vnd.cloanto.rp9 +person^Guenther_Brammer|template^application/vnd.clonk.c4group +person^Gaige_Paulsen|template^application/vnd.cluetrust.cartomobile-config +person^Gaige_Paulsen|template^application/vnd.cluetrust.cartomobile-config-pkg +person^Andrew_Block|template^application/vnd.cncf.helm.chart.content.v1.tar+gzip +person^Andrew_Block|template^application/vnd.cncf.helm.chart.provenance.v1.prov +person^Andrew_Block|template^application/vnd.cncf.helm.config.v1+json +person^Devyn_Collier_Johnson|template^application/vnd.coffeescript +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.document +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.document-template +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.presentation +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.presentation-template +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.spreadsheet +person^Alexey_Meandrov|template^application/vnd.collabio.xodocuments.spreadsheet-template +person^Mike_Amundsen|template^application/vnd.collection+json +person^Irakli_Nadareishvili|template^application/vnd.collection.doc+json +person^Ioseb_Dzmanashvili|template^application/vnd.collection.next+json +person^Kim_Scarborough|template^application/vnd.comicbook+zip +person^Kim_Scarborough|template^application/vnd.comicbook-rar +person^David_Applebaum|template^application/vnd.commerce-battelle +person^Ravinder_Chandhok|template^application/vnd.commonspace +person^Frank_Patz|template^application/vnd.contact.cmsg +person^Alex_Crawford|template^application/vnd.coreos.ignition+json +person^Steve_Dellutri|template^application/vnd.cosmocaller +person^Andrew_Burt|template^application/vnd.crick.clicker +person^Andrew_Burt|template^application/vnd.crick.clicker.keyboard +person^Andrew_Burt|template^application/vnd.crick.clicker.palette +person^Andrew_Burt|template^application/vnd.crick.clicker.template +person^Andrew_Burt|template^application/vnd.crick.clicker.wordbank +person^Jim_Spiller|template^application/vnd.criticaltools.wbs+xml +person^Fränz_Friederes|template^application/vnd.cryptii.pipe+json +person^Connor_Horman|template^application/vnd.crypto-shade-file +person^Sebastian_Stenzel|template^application/vnd.cryptomator.encrypted +person^Sebastian_Stenzel|template^application/vnd.cryptomator.vault +person^Bayard_Kohlhepp|template^application/vnd.ctc-posml +person^Jim_Ancona|template^application/vnd.ctct.ws+xml +person^Michael_Sweet|template^application/vnd.cups-pdf +person^Michael_Sweet|template^application/vnd.cups-postscript +person^Michael_Sweet|template^application/vnd.cups-ppd +person^Michael_Sweet|template^application/vnd.cups-raster +person^Michael_Sweet|template^application/vnd.cups-raw +person^Robert_Byrnes|template^application/vnd.curl +- +- +person^Matt_Kern|template^application/vnd.cyan.dean.root+xml +person^Nor_Helmee|template^application/vnd.cybank +person^Patrick_Dwyer|template^application/vnd.cyclonedx+json +person^Patrick_Dwyer|template^application/vnd.cyclonedx+xml +person^Viktor_Haag|template^application/vnd.d2l.coursepackage1p0+zip +person^Mi_Tar|template^application/vnd.d3m-dataset +person^Mi_Tar|template^application/vnd.d3m-problem +person^Anders_Sandholm|template^application/vnd.dart +person^James_Fields|template^application/vnd.data-vision.rdz +person^Simon_Johnston|template^application/vnd.datalog +person^Paul_Walsh|template^application/vnd.datapackage+json +person^Paul_Walsh|template^application/vnd.dataresource+json +person^Mi_Tar|template^application/vnd.dbf +person^Jan_Boström|template^application/vnd.dcmp+xml +person^Debian_Policy_mailing_list|template^application/vnd.debian.binary-package +person^Michael_A_Dolan|template^application/vnd.dece.data +person^Michael_A_Dolan|template^application/vnd.dece.ttml+xml +person^Michael_A_Dolan|template^application/vnd.dece.unspecified +person^Michael_A_Dolan|template^application/vnd.dece.zip +person^Michael_Dixon|template^application/vnd.denovo.fcselayout-link +person^Henrik_Andersson|template^application/vnd.desmume.movie +- +person^Yamanaka|template^application/vnd.dir-bi.plate-dl-nosuffix +person^Axel_Ferrazzini|template^application/vnd.dm.delegation+xml +person^Meredith_Searcy|template^application/vnd.dna +person^Tom_Christie|template^application/vnd.document+json +- +person^Steve_Hattersley|template^application/vnd.dolby.mobile.1 +person^Steve_Hattersley|template^application/vnd.dolby.mobile.2 +person^Erik_Ronström|template^application/vnd.doremir.scorecloud-binary-document +person^David_Parker|template^application/vnd.dpgraph +person^William_C._Appleton|template^application/vnd.dreamfactory +person^Keith_Kester|template^application/vnd.drive+json +- +person^Ali_Teffahi|template^application/vnd.dtg.local +person^Ali_Teffahi|template^application/vnd.dtg.local.flash +person^Ali_Teffahi|template^application/vnd.dtg.local.html +person^Michael_Lagally^Peter_Siebert|template^application/vnd.dvb.ait +person^Emily_DUBS|template^application/vnd.dvb.dvbisl+xml +person^Michael_Lagally^Peter_Siebert|template^application/vnd.dvb.dvbj +person^Joerg_Heuer|template^application/vnd.dvb.esgcontainer +person^Roy_Yue|template^application/vnd.dvb.ipdcdftnotifaccess +person^Joerg_Heuer|template^application/vnd.dvb.ipdcesgaccess +person^Jerome_Marcon|template^application/vnd.dvb.ipdcesgaccess2 +person^Jerome_Marcon|template^application/vnd.dvb.ipdcesgpdd +person^Yiling_Xu|template^application/vnd.dvb.ipdcroaming +person^Jean-Baptiste_Henry|template^application/vnd.dvb.iptv.alfec-base +person^Jean-Baptiste_Henry|template^application/vnd.dvb.iptv.alfec-enhancement +person^Roy_Yue|template^application/vnd.dvb.notif-aggregate-root+xml +person^Roy_Yue|template^application/vnd.dvb.notif-container+xml +person^Roy_Yue|template^application/vnd.dvb.notif-generic+xml +person^Roy_Yue|template^application/vnd.dvb.notif-ia-msglist+xml +person^Roy_Yue|template^application/vnd.dvb.notif-ia-registration-request+xml +person^Roy_Yue|template^application/vnd.dvb.notif-ia-registration-response+xml +person^Roy_Yue|template^application/vnd.dvb.notif-init+xml +person^Michael_Lagally^Peter_Siebert|template^application/vnd.dvb.pfr +person^Michael_Lagally^Peter_Siebert|template^application/vnd.dvb.service +person^Michael_Duffy|template^application/vnd.dxr +person^Roland_Mechling|template^application/vnd.dynageo +person^Carl_Anderson|template^application/vnd.dzr +person^Iain_Downs|template^application/vnd.easykaraoke.cdgdownload +person^Gert_Buettgenbach|template^application/vnd.ecdis-update +person^Wei_Tang|template^application/vnd.ecip.rlp +person^Eclipse_Ditto_developers|template^application/vnd.eclipse.ditto+json +person^Thomas_Olsson|template^application/vnd.ecowin.chart +person^Thomas_Olsson|template^application/vnd.ecowin.filerequest +person^Thomas_Olsson|template^application/vnd.ecowin.fileupdate +person^Thomas_Olsson|template^application/vnd.ecowin.series +person^Thomas_Olsson|template^application/vnd.ecowin.seriesrequest +person^Thomas_Olsson|template^application/vnd.ecowin.seriesupdate +person^Fu_Siyuan^UEFI_Forum|template^application/vnd.efi.img +person^Fu_Siyuan^UEFI_Forum|template^application/vnd.efi.iso +person^Nicolas_CARPI|template^application/vnd.eln+zip +person^Filip_Navara|template^application/vnd.emclient.accessrequest+xml +person^Paul_Santinelli_Jr.|template^application/vnd.enliven +person^Chris_Eich|template^application/vnd.enphase.envoy +person^Tim_Brody|template^application/vnd.eprints.data+xml +person^Shoji_Hoshina|template^application/vnd.epson.esf +person^Shoji_Hoshina|template^application/vnd.epson.msf +person^Yu_Gu|template^application/vnd.epson.quickanime +person^Yasuhito_Nagatomo|template^application/vnd.epson.salt +person^Shoji_Hoshina|template^application/vnd.epson.ssf +person^Paul_Tidwell|template^application/vnd.ericsson.quickcall +person^Xiang_Gao|template^application/vnd.erofs +person^Marcus_Ligi_Büschleb|template^application/vnd.espass-espass+zip +person^Szilveszter_Tóth|template^application/vnd.eszigno3+xml +person^Shicheng_Hu|template^application/vnd.etsi.aoc+xml +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.asic-e+zip +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.asic-s+zip +person^Shicheng_Hu|template^application/vnd.etsi.cug+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvcommand+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvdiscovery+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvprofile+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvsad-bc+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvsad-cod+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvsad-npvr+xml +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.iptvservice+xml +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.iptvsync+xml +person^Shicheng_Hu|template^application/vnd.etsi.iptvueprofile+xml +person^Shicheng_Hu|template^application/vnd.etsi.mcid+xml +person^Ian_Medland^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.mheg5 +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.overload-control-policy-dataset+xml +person^Jiwan_Han^Thomas_Belling|template^application/vnd.etsi.pstn+xml +person^Shicheng_Hu|template^application/vnd.etsi.sci+xml +person^Shicheng_Hu|template^application/vnd.etsi.simservs+xml +person^Miguel_Angel_Reina_Ortega|template^application/vnd.etsi.timestamp-token +person^Shicheng_Hu|template^application/vnd.etsi.tsl+xml +person^Shicheng_Hu|template^application/vnd.etsi.tsl.der +person^Hervé_Kasparian|template^application/vnd.eu.kasparian.car+json +person^Pete_Resnick|template^application/vnd.eudora.data +person^James_Bellinger|template^application/vnd.evolv.ecig.profile +person^James_Bellinger|template^application/vnd.evolv.ecig.settings +person^James_Bellinger|template^application/vnd.evolv.ecig.theme +person^Bill_Kidwell|template^application/vnd.exstream-empower+zip +person^Bill_Kidwell|template^application/vnd.exstream-package +person^ElectronicZombieCorp|template^application/vnd.ezpix-album +person^ElectronicZombieCorp|template^application/vnd.ezpix-package +person^Samu_Sarivaara|template^application/vnd.f-secure.mobile +person^Gordon_Clarke|template^application/vnd.familysearch.gedcom+zip +person^Thomas_Huth|template^application/vnd.fastcopy-disk-image +person^Steve_Zilles|template^application/vnd.fdf +person^International_FDSN|template^application/vnd.fdsn.mseed +person^Chad_Trabant|template^application/vnd.fdsn.seed +person^International_FDSN|template^application/vnd.fdsn.stationxml+xml +person^Holstage|template^application/vnd.ffsns +person^Björn_Harrtell|template^application/vnd.fgb +person^Steve_Gilberd|template^application/vnd.ficlab.flb+zip +person^Harms_Moeller|template^application/vnd.filmit.zfc +person^Ingo_Hammann|template^application/vnd.fints +person^Alex_Dubov|template^application/vnd.firemonkeys.cloudcell +person^Dick_Floersch|template^application/vnd.FloGraphIt +person^Marc_Winter|template^application/vnd.fluxtime.clip +person^George_Williams|template^application/vnd.font-fontforge-sfd +person^Mike_Wexler|template^application/vnd.framemaker +person^Liu_Qiancen|template^application/vnd.freelog.comic +notes^(OBSOLETE)|person^Alexis_Tamas^OP3FT|template^application/vnd.frogans.fnc +notes^(OBSOLETE)|person^Alexis_Tamas^OP3FT|template^application/vnd.frogans.ltf +person^Derek_Smith|template^application/vnd.fsc.weblaunch +person^Kazuya_Iimura|template^application/vnd.fujifilm.fb.docuworks +person^Kazuya_Iimura|template^application/vnd.fujifilm.fb.docuworks.binder +person^Kazuya_Iimura|template^application/vnd.fujifilm.fb.docuworks.container +person^Keitaro_Ishida|template^application/vnd.fujifilm.fb.jfi+xml +person^Nobukazu_Togashi|template^application/vnd.fujitsu.oasys +person^Nobukazu_Togashi|template^application/vnd.fujitsu.oasys2 +person^Seiji_Okudaira|template^application/vnd.fujitsu.oasys3 +person^Masahiko_Sugimoto|template^application/vnd.fujitsu.oasysgp +person^Masumi_Ogita|template^application/vnd.fujitsu.oasysprs +person^Fumio_Tanabe|template^application/vnd.fujixerox.ART-EX +person^Fumio_Tanabe|template^application/vnd.fujixerox.ART4 +person^Masanori_Onda|template^application/vnd.fujixerox.ddd +person^Takatomo_Wakibayashi|template^application/vnd.fujixerox.docuworks +person^Takashi_Matsumoto|template^application/vnd.fujixerox.docuworks.binder +person^Kiyoshi_Tashiro|template^application/vnd.fujixerox.docuworks.container +person^Fumio_Tanabe|template^application/vnd.fujixerox.HBPL +person^Jann_Pruulman|template^application/vnd.fut-misnet +person^Andrey_Galkin|template^application/vnd.futoin+cbor +person^Andrey_Galkin|template^application/vnd.futoin+json +person^Simon_Birtwistle|template^application/vnd.fuzzysheet +person^Lucas_Guimarães|template^application/vnd.g3pix.g3fc +person^GA4GH_Secretariat|template^application/vnd.ga4gh.passport+jwt +person^Torben_Frey|template^application/vnd.genomatix.tuxedo +person^Divon_Lan|template^application/vnd.genozip +person^Philipp_Gortan|template^application/vnd.gentics.grd+json +person^Michał_Górny|template^application/vnd.gentoo.catmetadata+xml +person^Michał_Górny|template^application/vnd.gentoo.ebuild +person^Michał_Górny|template^application/vnd.gentoo.eclass +person^Michał_Górny|template^application/vnd.gentoo.gpkg +person^Michał_Górny|template^application/vnd.gentoo.manifest +person^Michał_Górny|template^application/vnd.gentoo.pkgmetadata+xml +person^Gentoo_Portage_Project|template^application/vnd.gentoo.xpak +notes^(OBSOLETED by in favor of application/geo+json)|person^Sean_Gillies|rfc^rfc7946|template^application/vnd.geo+json +notes^(OBSOLETED by request)|person^Francois_Pirsch|template^application/vnd.geocube+xml +person^GeoGebra^Yves_Kreis|template^application/vnd.geogebra.file +person^GeoGebra^Michael_Borcherds|template^application/vnd.geogebra.pinboard +person^GeoGebra^Markus_Hohenwarter^Michael_Borcherds|template^application/vnd.geogebra.slides +person^GeoGebra^Yves_Kreis|template^application/vnd.geogebra.tool +person^Michael_Hvidsten|template^application/vnd.geometry-explorer +person^Matthias_Ehmann|template^application/vnd.geonext +person^Christian_Mercat|template^application/vnd.geoplan +person^Christian_Mercat|template^application/vnd.geospace +person^Thomas_Weyn|template^application/vnd.gerber +person^Gil_Bernabeu|template^application/vnd.globalplatform.card-content-mgt +person^Gil_Bernabeu|template^application/vnd.globalplatform.card-content-mgt-response +notes^- DEPRECATED|person^Christian_V._Sciberras|template^application/vnd.gmx +person^Christian_Grothoff|template^application/vnd.gnu.taler.exchange+json +person^Christian_Grothoff|template^application/vnd.gnu.taler.merchant+json +person^Michael_Ashbridge|template^application/vnd.google-earth.kml+xml +person^Michael_Ashbridge|template^application/vnd.google-earth.kmz +notes^(OBSOLETED by request)|person^Stefan_Szilva|template^application/vnd.gov.sk.e-form+xml +person^Stefan_Szilva|template^application/vnd.gov.sk.e-form+zip +person^Stefan_Szilva|template^application/vnd.gov.sk.xmldatacontainer+xml +person^Martin_Tůma|template^application/vnd.gpxsee.map+xml +person^Jeff_Tupper|template^application/vnd.grafeq +person^Jeff_Lawson|template^application/vnd.gridmp +person^Todd_Joseph|template^application/vnd.groove-account +person^Todd_Joseph|template^application/vnd.groove-help +person^Todd_Joseph|template^application/vnd.groove-identity-message +person^Todd_Joseph|template^application/vnd.groove-injector +person^Todd_Joseph|template^application/vnd.groove-tool-message +person^Todd_Joseph|template^application/vnd.groove-tool-template +person^Todd_Joseph|template^application/vnd.groove-vcard +person^Mike_Kelly|template^application/vnd.hal+json +person^Mike_Kelly|template^application/vnd.hal+xml +person^Eric_Hamilton|template^application/vnd.HandHeld-Entertainment+xml +person^Ingo_Hammann|template^application/vnd.hbci +person^Jan_Schütze|template^application/vnd.hc+json +person^Doug_R._Serres|template^application/vnd.hcl-bireports +person^Javier_D._Fernández|template^application/vnd.hdt +person^Wesley_Beary|template^application/vnd.heroku+json +person^Randy_Jones|template^application/vnd.hhe.lesson-player +person^Marc_Duteau|template^application/vnd.hl7cda+xml +person^Marc_Duteau|template^application/vnd.hl7v2+xml +person^Bob_Pentecost|template^application/vnd.hp-HPGL +person^Aloke_Gupta|template^application/vnd.hp-hpid +person^Steve_Aubrey|template^application/vnd.hp-hps +person^Amir_Gaash|template^application/vnd.hp-jlyt +person^Bob_Pentecost|template^application/vnd.hp-PCL +person^Bob_Pentecost|template^application/vnd.hp-PCLXL +person^Heungsub_Lee|template^application/vnd.hsl +person^Franck_Lefevre|template^application/vnd.httphone +person^Allen_Gillam|template^application/vnd.hydrostatix.sof-data +person^Irakli_Nadareishvili|template^application/vnd.hyper+json +person^Mario_Demuth|template^application/vnd.hyper-item+json +person^Daniel_Sims|template^application/vnd.hyperdrive+json +person^James_Minnis|template^application/vnd.hzn-3d-crossword +notes^(OBSOLETED in favor of vnd.afpc.afplinedata)|person^Roger_Buis|template^application/vnd.ibm.afplinedata +person^Bruce_Tantlinger|template^application/vnd.ibm.electronic-media +person^Amir_Herzberg|template^application/vnd.ibm.MiniPay +notes^(OBSOLETED in favor of application/vnd.afpc.modca)|person^Reinhard_Hohensee|template^application/vnd.ibm.modcap +person^Bruce_Tantlinger|template^application/vnd.ibm.rights-management +person^Bruce_Tantlinger|template^application/vnd.ibm.secure-container +person^Phil_Green|template^application/vnd.iccprofile +person^Purva_R_Rajkotia|template^application/vnd.ieee.1905 +person^Tim_Fisher|template^application/vnd.igloader +person^Dirk_Farin|template^application/vnd.imagemeter.folder+zip +person^Dirk_Farin|template^application/vnd.imagemeter.image+zip +person^Mathieu_Villegas|template^application/vnd.immervision-ivp +person^Mathieu_Villegas|template^application/vnd.immervision-ivu +person^Lisa_Mattson|template^application/vnd.ims.imsccv1p1 +person^Lisa_Mattson|template^application/vnd.ims.imsccv1p2 +person^Lisa_Mattson|template^application/vnd.ims.imsccv1p3 +person^Lisa_Mattson|template^application/vnd.ims.lis.v2.result+json +person^Lisa_Mattson|template^application/vnd.ims.lti.v2.toolconsumerprofile+json +person^Lisa_Mattson|template^application/vnd.ims.lti.v2.toolproxy+json +person^Lisa_Mattson|template^application/vnd.ims.lti.v2.toolproxy.id+json +person^Lisa_Mattson|template^application/vnd.ims.lti.v2.toolsettings+json +person^Lisa_Mattson|template^application/vnd.ims.lti.v2.toolsettings.simple+json +person^Mark_Wahl|template^application/vnd.informedcontrol.rms+xml +notes^(OBSOLETED in favor of application/vnd.visionary)|person^Christopher_Gales|template^application/vnd.informix-visionary +person^Charles_Engelke|template^application/vnd.infotech.project +person^Charles_Engelke|template^application/vnd.infotech.project+xml +person^Takanori_Sudo|template^application/vnd.innopath.wamp.notification +person^Jon_Swanson|template^application/vnd.insors.igm +person^Tom_Gurak|template^application/vnd.intercon.formnet +person^Yves_Kreis_2|template^application/vnd.intergeo +person^Luke_Tomasello|template^application/vnd.intertrust.digibox +person^Luke_Tomasello|template^application/vnd.intertrust.nncp +person^Greg_Scratchley|template^application/vnd.intu.qbo +person^Greg_Scratchley|template^application/vnd.intu.qfx +person^Marcin_Rataj|template^application/vnd.ipfs.ipns-record +person^Marcin_Rataj|template^application/vnd.ipld.car +person^Marcin_Rataj|template^application/vnd.ipld.dag-cbor +person^Marcin_Rataj|template^application/vnd.ipld.dag-json +person^Marcin_Rataj|template^application/vnd.ipld.raw +person^Michael_Steidl|template^application/vnd.iptc.g2.catalogitem+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.conceptitem+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.knowledgeitem+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.newsitem+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.newsmessage+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.packageitem+xml +person^Michael_Steidl|template^application/vnd.iptc.g2.planningitem+xml +person^Per_Ersson|template^application/vnd.ipunplugged.rcprofile +person^Martin_Knowles|template^application/vnd.irepository.package+xml +person^Satish_Navarajan|template^application/vnd.is-xpr +person^Ryan_Brinkman|template^application/vnd.isac.fcs +person^Frank_Wiebeler|template^application/vnd.iso11783-10+zip +person^Brijesh_Kumar|template^application/vnd.jam +person^Kiyofusa_Fujii|template^application/vnd.japannet-directory-service +person^Jun_Yoshitake|template^application/vnd.japannet-jpnstore-wakeup +person^Kiyofusa_Fujii|template^application/vnd.japannet-payment-wakeup +person^Jun_Yoshitake|template^application/vnd.japannet-registration +person^Kiyofusa_Fujii|template^application/vnd.japannet-registration-wakeup +person^Jun_Yoshitake|template^application/vnd.japannet-setstore-wakeup +person^Jun_Yoshitake|template^application/vnd.japannet-verification +person^Kiyofusa_Fujii|template^application/vnd.japannet-verification-wakeup +- +- +person^Mikhail_Gorshenev|template^application/vnd.jcp.javame.midlet-rms +person^Sebastiaan_Deckers|template^application/vnd.jisp +person^Joost|template^application/vnd.joost.joda-archive +person^Yokoyama_Kiyonobu|template^application/vnd.jsk.isdn-ngn +person^Tim_Macdonald|template^application/vnd.kahootz +person^David_Faure|template^application/vnd.kde.karbon +person^David_Faure|template^application/vnd.kde.kchart +person^David_Faure|template^application/vnd.kde.kformula +person^David_Faure|template^application/vnd.kde.kivio +person^David_Faure|template^application/vnd.kde.kontour +person^David_Faure|template^application/vnd.kde.kpresenter +person^David_Faure|template^application/vnd.kde.kspread +person^David_Faure|template^application/vnd.kde.kword +person^Katerina_Zoé_Marchán_Salvá|template^application/vnd.kdl +person^Dirk_DiGiorgio-Haag|template^application/vnd.kenameaapp +person^Marc_Durdin|template^application/vnd.keyman.kmp+zip +person^Marc_Durdin|template^application/vnd.keyman.kmx +person^Jack_Bennett|template^application/vnd.kidspiration +person^Hemant_Thakkar|template^application/vnd.Kinar +person^Pete_Cole|template^application/vnd.koan +person^Michael_J._Donahue|template^application/vnd.kodak-descriptor +person^Bryan_Blank^NCGIS|template^application/vnd.las +person^Rob_Bailey|template^application/vnd.las.las+json +person^Rob_Bailey|template^application/vnd.las.las+xml +person^Bryan_Blank^NCGIS|template^application/vnd.laszip +person^L.development_Polska|template^application/vnd.ldev.productlicensing +person^Mark_C_Fralick|template^application/vnd.leap+json +person^Brett_McDowell|template^application/vnd.liberty-request+xml +person^Catherine_E._White|template^application/vnd.llamagraphics.life-balance.desktop +person^Catherine_E._White|template^application/vnd.llamagraphics.life-balance.exchange+xml +person^Victor_Kuchynsky|template^application/vnd.logipipe.circuit+zip +person^Sten_Linnarsson|template^application/vnd.loom +person^Paul_Wattenberger|template^application/vnd.lotus-1-2-3 +person^Paul_Wattenberger|template^application/vnd.lotus-approach +person^Paul_Wattenberger|template^application/vnd.lotus-freelance +person^Michael_Laramie|template^application/vnd.lotus-notes +person^Paul_Wattenberger|template^application/vnd.lotus-organizer +person^Paul_Wattenberger|template^application/vnd.lotus-screencam +person^Paul_Wattenberger|template^application/vnd.lotus-wordpro +person^James_Berry|template^application/vnd.macports.portpkg +person^Blake_Thompson|template^application/vnd.mapbox-vector-tile +person^Gary_Ellison|template^application/vnd.marlin.drm.actiontoken+xml +person^Gary_Ellison|template^application/vnd.marlin.drm.conftoken+xml +person^Gary_Ellison|template^application/vnd.marlin.drm.license+xml +person^Gary_Ellison|template^application/vnd.marlin.drm.mdcf +person^Jorn_Wildt|template^application/vnd.mason+json +person^Erik_Dahlström|template^application/vnd.maxar.archive.3tz+zip +person^William_Stevenson|template^application/vnd.maxmind.maxmind-db +person^Tadashi_Gotoh|template^application/vnd.mcd +person^Lutz_Kettner|template^application/vnd.mdl +person^Lutz_Kettner|template^application/vnd.mdl-mbsdf +person^Frank_Schoonjans|template^application/vnd.medcalcdata +person^Henry_Flurry|template^application/vnd.mediastation.cdkey +person^Dominique_Sandoz|template^application/vnd.medicalholodeck.recordxr +person^Eric_Wedel|template^application/vnd.meridian-slingshot +person^Sidharth_Vinod|template^application/vnd.mermaid +person^Masaaki_Hirai|template^application/vnd.MFER +person^Yukari_Ikeda|template^application/vnd.mfmp +person^Dali_Zheng|template^application/vnd.micro+json +person^Joe_Prevo|template^application/vnd.micrografx.flo +person^Joe_Prevo|template^application/vnd.micrografx.igx +person^Henrik_Andersson|template^application/vnd.microsoft.portable-executable +person^Henrik_Andersson|template^application/vnd.microsoft.windows.thumbnail-cache +person^Nils_Langhammer|template^application/vnd.miele+json +person^Mike_Wexler|template^application/vnd.mif +- +person^Chris_Bartram|template^application/vnd.minisoft-hp3000-save +person^Tanaka|template^application/vnd.mitsubishi.misty-guard.trustweb +person^Allen_K._Kabayama|template^application/vnd.Mobius.DAF +person^Allen_K._Kabayama|template^application/vnd.Mobius.DIS +person^Alex_Devasia|template^application/vnd.Mobius.MBK +person^Alex_Devasia|template^application/vnd.Mobius.MQY +person^Allen_K._Kabayama|template^application/vnd.Mobius.MSL +person^Allen_K._Kabayama|template^application/vnd.Mobius.PLC +person^Allen_K._Kabayama|template^application/vnd.Mobius.TXF +person^Elliott_Brown|template^application/vnd.modl +person^Bjorn_Wennerstrom|template^application/vnd.mophun.application +person^Bjorn_Wennerstrom|template^application/vnd.mophun.certificate +person^Mark_Patton|template^application/vnd.motorola.flexsuite +person^Mark_Patton|template^application/vnd.motorola.flexsuite.adsi +person^Mark_Patton|template^application/vnd.motorola.flexsuite.fis +person^Mark_Patton|template^application/vnd.motorola.flexsuite.gotap +person^Mark_Patton|template^application/vnd.motorola.flexsuite.kmr +person^Mark_Patton|template^application/vnd.motorola.flexsuite.ttc +person^Mark_Patton|template^application/vnd.motorola.flexsuite.wem +person^Rafie_Shamsaasef|template^application/vnd.motorola.iprm +person^Braden_N_McDaniel|template^application/vnd.mozilla.xul+xml +person^Shawn_Maloney|template^application/vnd.ms-3mfdocument +person^Dean_Slawson|template^application/vnd.ms-artgalry +person^Eric_Fleischman|template^application/vnd.ms-asf +person^Kim_Scarborough|template^application/vnd.ms-cab-compressed +person^Sukvinder_S._Gill|template^application/vnd.ms-excel +person^Chris_Rae|template^application/vnd.ms-excel.addin.macroEnabled.12 +- +- +- +person^Chris_Rae|template^application/vnd.ms-excel.sheet.binary.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-excel.sheet.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-excel.template.macroEnabled.12 +- +- +person^Kim_Scarborough|template^application/vnd.ms-fontobject +person^Anatoly_Techtonik|template^application/vnd.ms-htmlhelp +person^Eric_Ledoux|template^application/vnd.ms-ims +person^Eric_Ledoux|template^application/vnd.ms-lrm +person^Chris_Rae|template^application/vnd.ms-office.activeX+xml +person^Chris_Rae|template^application/vnd.ms-officetheme +- +- +- +- +- +person^Daniel_Schneider|template^application/vnd.ms-playready.initiator+xml +person^Sukvinder_S._Gill|template^application/vnd.ms-powerpoint +person^Chris_Rae|template^application/vnd.ms-powerpoint.addin.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-powerpoint.presentation.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-powerpoint.slide.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-powerpoint.slideshow.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-powerpoint.template.macroEnabled.12 +person^Justin_Hutchings|template^application/vnd.ms-PrintDeviceCapabilities+xml +person^Justin_Hutchings|template^application/vnd.ms-PrintSchemaTicket+xml +person^Sukvinder_S._Gill|template^application/vnd.ms-project +- +person^Sukvinder_S._Gill|template^application/vnd.ms-tnef +- +- +- +- +- +- +person^Justin_Hutchings|template^application/vnd.ms-windows.devicepairing +person^Justin_Hutchings|template^application/vnd.ms-windows.nwprinting.oob +person^Justin_Hutchings|template^application/vnd.ms-windows.printerpairing +person^Justin_Hutchings|template^application/vnd.ms-windows.wsd.oob +person^Kevin_Lau|template^application/vnd.ms-wmdrm.lic-chlg-req +person^Kevin_Lau|template^application/vnd.ms-wmdrm.lic-resp +person^Kevin_Lau|template^application/vnd.ms-wmdrm.meter-chlg-req +person^Kevin_Lau|template^application/vnd.ms-wmdrm.meter-resp +person^Chris_Rae|template^application/vnd.ms-word.document.macroEnabled.12 +person^Chris_Rae|template^application/vnd.ms-word.template.macroEnabled.12 +- +- +person^Sukvinder_S._Gill|template^application/vnd.ms-works +person^Dan_Plastina|template^application/vnd.ms-wpl +person^Jesse_McGatha|template^application/vnd.ms-xpsdocument +person^Thomas_Huth|template^application/vnd.msa-disk-image +person^Gwenael_Le_Bodic|template^application/vnd.mseq +person^Alexander_Ivanov|template^application/vnd.msgpack +person^Malte_Borcherding|template^application/vnd.msign +person^Steve_Mills|template^application/vnd.multiad.creator +person^Steve_Mills|template^application/vnd.multiad.creator.cif +person^Tim_Butler|template^application/vnd.music-niff +person^Greg_Adams|template^application/vnd.musician +person^Chandrashekhara_Anantharamu|template^application/vnd.muvee.style +person^Franck_Lefevre|template^application/vnd.mynfc +person^Sebastian_A._Weiss|template^application/vnd.nacamar.ybrid+json +person^Aidan_Murdock|template^application/vnd.nato.bindingdataobject+cbor +person^Aidan_Murdock|template^application/vnd.nato.bindingdataobject+json +person^Aidan_Murdock|template^application/vnd.nato.bindingdataobject+xml +person^Aidan_Murdock|template^application/vnd.nato.openxmlformats-package.iepd+zip +person^Lauri_Tarkkala|template^application/vnd.ncd.control +person^Lauri_Tarkkala|template^application/vnd.ncd.reference +person^Thomas_Schoffelen|template^application/vnd.nearst.inv+json +person^Andreas_Molzer|template^application/vnd.nebumind.line +person^Steve_Judkins|template^application/vnd.nervana +person^Andy_Mutz|template^application/vnd.netfpx +person^Dan_DuFeu|template^application/vnd.neurolanguage.nlu +person^Amit_Kumar_Gupta|template^application/vnd.nimn +person^Henrik_Andersson|template^application/vnd.nintendo.nitro.rom +person^Henrik_Andersson|template^application/vnd.nintendo.snes.rom +person^Steve_Rogan|template^application/vnd.nitf +person^Monty_Solomon|template^application/vnd.noblenet-directory +person^Monty_Solomon|template^application/vnd.noblenet-sealer +person^Monty_Solomon|template^application/vnd.noblenet-web +person^Nokia|template^application/vnd.nokia.catalogs +person^Nokia|template^application/vnd.nokia.conml+wbxml +person^Nokia|template^application/vnd.nokia.conml+xml +person^Nokia|template^application/vnd.nokia.iptv.config+xml +person^Nokia|template^application/vnd.nokia.iSDS-radio-presets +person^Nokia|template^application/vnd.nokia.landmark+wbxml +person^Nokia|template^application/vnd.nokia.landmark+xml +person^Nokia|template^application/vnd.nokia.landmarkcollection+xml +person^Nokia|template^application/vnd.nokia.n-gage.ac+xml +person^Nokia|template^application/vnd.nokia.n-gage.data +notes^(OBSOLETE; no replacement given)|person^Nokia|template^application/vnd.nokia.n-gage.symbian.install +person^Nokia|template^application/vnd.nokia.ncd +- +person^Nokia|template^application/vnd.nokia.pcd+wbxml +person^Nokia|template^application/vnd.nokia.pcd+xml +person^Nokia|template^application/vnd.nokia.radio-preset +person^Nokia|template^application/vnd.nokia.radio-presets +person^Janine_Swenson|template^application/vnd.novadigm.EDM +person^Janine_Swenson|template^application/vnd.novadigm.EDX +person^Janine_Swenson|template^application/vnd.novadigm.EXT +person^Akinori_Taya|template^application/vnd.ntt-local.content-share +person^NTT-local|template^application/vnd.ntt-local.file-transfer +person^NTT-local|template^application/vnd.ntt-local.ogw_remote-access +person^NTT-local|template^application/vnd.ntt-local.sip-ta_remote +person^NTT-local|template^application/vnd.ntt-local.sip-ta_tcp_stream +person^Peter_Koellner|template^application/vnd.nubaltec.nudoku-game +person^Frank_Kilcommins|template^application/vnd.oai.workflows +person^Frank_Kilcommins|template^application/vnd.oai.workflows+json +person^Frank_Kilcommins|template^application/vnd.oai.workflows+yaml +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.base +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.chart +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.chart-template +notes^(OBSOLETED in favor of application/vnd.oasis.opendocument.base)|person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.database +- +- +- +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.formula +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.formula-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.graphics +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.graphics-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.image +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.image-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.presentation +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.presentation-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.spreadsheet +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.spreadsheet-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.text +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.text-master +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.text-master-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.text-template +person^OASIS^OASIS_TC_Admin|template^application/vnd.oasis.opendocument.text-web +- +person^Matthias_Hessling|template^application/vnd.obn +person^Michael_Koster|template^application/vnd.ocf+cbor +person^Steven_Lasker|template^application/vnd.oci.image.manifest.v1+json +person^Eli_Grey|template^application/vnd.oftn.l10n+json +person^Claire_DEsclercs|template^application/vnd.oipf.contentaccessdownload+xml +person^Claire_DEsclercs|template^application/vnd.oipf.contentaccessstreaming+xml +person^Claire_DEsclercs|template^application/vnd.oipf.cspg-hexbinary +person^Claire_DEsclercs|template^application/vnd.oipf.dae.svg+xml +person^Claire_DEsclercs|template^application/vnd.oipf.dae.xhtml+xml +person^Claire_DEsclercs|template^application/vnd.oipf.mippvcontrolmessage+xml +person^Claire_DEsclercs|template^application/vnd.oipf.pae.gem +person^Claire_DEsclercs|template^application/vnd.oipf.spdiscovery+xml +person^Claire_DEsclercs|template^application/vnd.oipf.spdlist+xml +person^Claire_DEsclercs|template^application/vnd.oipf.ueprofile+xml +person^Claire_DEsclercs|template^application/vnd.oipf.userprofile+xml +person^John_Palmieri|template^application/vnd.olpc-sugar +person^Ilan_Mahalal|template^application/vnd.oma-scws-config +person^Ilan_Mahalal|template^application/vnd.oma-scws-http-request +person^Ilan_Mahalal|template^application/vnd.oma-scws-http-response +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.associated-procedure-parameter+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.drm-trigger+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.imd+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.ltkm +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.notification+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.provisioningtrigger +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.sgboot +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.sgdd+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.sgdu +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.simple-symbol-container +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.smartcard-trigger+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.sprov+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.bcast.stkm +person^Hao_Wang^OMA|template^application/vnd.oma.cab-address-book+xml +person^Hao_Wang^OMA|template^application/vnd.oma.cab-feature-handler+xml +person^Hao_Wang^OMA|template^application/vnd.oma.cab-pcc+xml +person^Hao_Wang^OMA|template^application/vnd.oma.cab-subs-invite+xml +person^Hao_Wang^OMA|template^application/vnd.oma.cab-user-prefs+xml +person^Avi_Primo^Open_Mobile_Naming_Authority|template^application/vnd.oma.dcd +person^Avi_Primo^Open_Mobile_Naming_Authority|template^application/vnd.oma.dcdc +person^Jun_Sato^Open_Mobile_Alliance_BAC_DLDRM_WG|template^application/vnd.oma.dd2+xml +person^Open_Mobile_Naming_Authority^Uwe_Rauschenbach|template^application/vnd.oma.drm.risd+xml +person^OMA_Presence_and_Availability_PAG_WG^Sean_Kelley|template^application/vnd.oma.group-usage-list+xml +person^John_Mudge^Open_Mobile_Naming_Authority|template^application/vnd.oma.lwm2m+cbor +person^John_Mudge^Open_Mobile_Naming_Authority|template^application/vnd.oma.lwm2m+json +person^John_Mudge^Open_Mobile_Naming_Authority|template^application/vnd.oma.lwm2m+tlv +person^Brian_McColgan^Open_Mobile_Naming_Authority|template^application/vnd.oma.pal+xml +person^OMA_Push_to_Talk_over_Cellular_POC_WG|template^application/vnd.oma.poc.detailed-progress-report+xml +person^OMA_Push_to_Talk_over_Cellular_POC_WG|template^application/vnd.oma.poc.final-report+xml +person^OMA_Push_to_Talk_over_Cellular_POC_WG^Sean_Kelley|template^application/vnd.oma.poc.groups+xml +person^OMA_Push_to_Talk_over_Cellular_POC_WG|template^application/vnd.oma.poc.invocation-descriptor+xml +person^OMA_Push_to_Talk_over_Cellular_POC_WG|template^application/vnd.oma.poc.optimized-progress-report+xml +person^Bryan_Sullivan^OMA|template^application/vnd.oma.push +person^Open_Mobile_Naming_Authority^Wenjun_Zeng|template^application/vnd.oma.scidm.messages+xml +person^OMA_Presence_and_Availability_PAG_WG^Sean_Kelley|template^application/vnd.oma.xcap-directory+xml +person^OMA_Data_Synchronization_WG|template^application/vnd.omads-email+xml +person^OMA_Data_Synchronization_WG|template^application/vnd.omads-file+xml +person^OMA_Data_Synchronization_WG|template^application/vnd.omads-folder+xml +person^Julien_Grange|template^application/vnd.omaloc-supl-init +person^OMS-Group_e._V.^Torben_Markussen|template^application/vnd.oms.cellular-cose-content+cbor +person^Nathan_Black|template^application/vnd.onepager +person^Nathan_Black|template^application/vnd.onepagertamp +person^Nathan_Black|template^application/vnd.onepagertamx +person^Nathan_Black|template^application/vnd.onepagertat +person^Nathan_Black|template^application/vnd.onepagertatp +person^Nathan_Black|template^application/vnd.onepagertatx +person^Hans_Busch|template^application/vnd.onvif.metadata +person^Mark_Otaris|template^application/vnd.openblox.game+xml +person^Mark_Otaris|template^application/vnd.openblox.game-binary +person^Craig_Bruce|template^application/vnd.openeye.oeb +- +- +person^Paul_Norman|template^application/vnd.openstreetmap.data+xml +person^Peter_Todd|template^application/vnd.opentimestamps.ots +person^Crindzebra_Sjimo|template^application/vnd.openvpi.dspx+json +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.custom-properties+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.customXmlProperties+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawing+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.chart+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.extended-properties+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.comments+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.presentation +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.presProps+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slide +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slide+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slideshow +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.tags+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.template +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.template.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.sheet +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.template +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.theme+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.themeOverride+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.vmlDrawing +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.document +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.template +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-package.core-properties+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml +person^Makoto_Murata|template^application/vnd.openxmlformats-package.relationships+xml +person^Ning_Dong|template^application/vnd.oracle.resource+json +person^CHATRAS_Bruno|template^application/vnd.orange.indata +person^Steven_Klos|template^application/vnd.osa.netdeploy +person^Jason_Birch|template^application/vnd.osgeo.mapguide.package +person^Peter_Kriens|template^application/vnd.osgi.bundle +person^Peter_Kriens|template^application/vnd.osgi.dp +person^Peter_Kriens|template^application/vnd.osgi.subsystem +person^Magnus_Nystrom|template^application/vnd.otps.ct-kip+xml +person^C._Titus_Brown|template^application/vnd.oxli.countgraph +person^Steve_Rice|template^application/vnd.pagerduty+json +person^Gavin_Peacock|template^application/vnd.palm +person^Natarajan_Balasundara|template^application/vnd.panoply +person^John_Kemp|template^application/vnd.paos.xml +person^Christian_Trosclair|template^application/vnd.patentdive +person^Andrew_David_Kendall|template^application/vnd.patientecommsdoc +person^Prakash_Baskaran|template^application/vnd.pawaafile +person^Slawomir_Lisznianski|template^application/vnd.pcos +person^April_Gandert|template^application/vnd.pg.format +person^April_Gandert|template^application/vnd.pg.osasli +person^Lucas_Maneos|template^application/vnd.piaccess.application-licence +person^Giuseppe_Naccarato|template^application/vnd.picsel +person^Rhys_Lewis|template^application/vnd.pmi.widget +person^Sascha_Brawer|template^application/vnd.pmtiles +person^OMA_Push_to_Talk_over_Cellular_POC_WG^Sean_Kelley|template^application/vnd.poc.group-advertisement+xml +person^Jorge_Pando|template^application/vnd.pocketlearn +person^David_Guy|template^application/vnd.powerbuilder6 +person^David_Guy|template^application/vnd.powerbuilder6-s +person^Reed_Shilts|template^application/vnd.powerbuilder7 +person^Reed_Shilts|template^application/vnd.powerbuilder7-s +person^Reed_Shilts|template^application/vnd.powerbuilder75 +person^Reed_Shilts|template^application/vnd.powerbuilder75-s +person^Graham_Leggett|template^application/vnd.pp.systemverify+xml +person^Juoko_Tenhunen|template^application/vnd.preminet +person^Roman_Smolgovsky|template^application/vnd.previewsystems.box +person^Pete_Hoch|template^application/vnd.proteus.magazine +person^Kristopher_Durski|template^application/vnd.psfs +person^Igor_Lima_Bolacha_Severino|template^application/vnd.pt.mundusmundi +person^Oren_Ben-Kiki|template^application/vnd.publishare-delta-tree +person^Charles_P._Lamb|template^application/vnd.pvi.ptid1 +rfc^rfc3391|template^application/vnd.pwg-multiplexed +person^Don_Wright|template^application/vnd.pwg-xhtml-print+xml +person^Eduardo_Rodrigues|template^application/vnd.pyon+json +person^Glenn_Forrester|template^application/vnd.qualcomm.brew-app-res +person^Casper_Joost_Eyckelhof|template^application/vnd.quarantainenet +person^Hannes_Scheidler|template^application/vnd.Quark.QuarkXPress +person^Matthias_Ludwig|template^application/vnd.quobject-quoxdocument +person^R74n|template^application/vnd.R74n.sandboxels+json +rfc^rfc5707|template^application/vnd.radisys.moml+xml +rfc^rfc5707|template^application/vnd.radisys.msml+xml +rfc^rfc5707|template^application/vnd.radisys.msml-audit+xml +rfc^rfc5707|template^application/vnd.radisys.msml-audit-conf+xml +rfc^rfc5707|template^application/vnd.radisys.msml-audit-conn+xml +rfc^rfc5707|template^application/vnd.radisys.msml-audit-dialog+xml +rfc^rfc5707|template^application/vnd.radisys.msml-audit-stream+xml +rfc^rfc5707|template^application/vnd.radisys.msml-conf+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-base+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-fax-detect+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-fax-sendrecv+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-group+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-speech+xml +rfc^rfc5707|template^application/vnd.radisys.msml-dialog-transform+xml +person^Kevin_Crook|template^application/vnd.rainstor.data +person^Etay_Szekely|template^application/vnd.rapid +person^Kim_Scarborough|template^application/vnd.rar +person^Nick_Reeves|template^application/vnd.realvnc.bed +person^W3C_Music_Notation_Community_Group|template^application/vnd.recordare.musicxml +person^W3C_Music_Notation_Community_Group|template^application/vnd.recordare.musicxml+xml +person^Frantisek_Kucera|template^application/vnd.relpipe +person^James_Wick|template^application/vnd.RenLearn.rlprint +person^Benedikt_Muessig|template^application/vnd.resilient.logic +person^Stephen_Mizell|template^application/vnd.restful+json +person^Ken_Jibiki|template^application/vnd.rig.cryptonote +- +- +- +person^Sybren_Kikstra|template^application/vnd.route66.link66+xml +person^Lee_Harding|template^application/vnd.rs-274x +person^Jerry_Harris|template^application/vnd.ruckus.download +person^Lauri_Tarkkala|template^application/vnd.s3sms +person^Heikki_Vesalainen|template^application/vnd.sailingtracker.track +person^Markus_Strehle|template^application/vnd.sar +person^Shinji_Kusakari|template^application/vnd.sbm.cid +person^Masanori_Murai|template^application/vnd.sbm.mid2 +person^Craig_Bradney|template^application/vnd.scribus +person^John_Kwan|template^application/vnd.sealed.3df +person^John_Kwan|template^application/vnd.sealed.csf +person^David_Petersen|template^application/vnd.sealed.doc +person^David_Petersen|template^application/vnd.sealed.eml +person^David_Petersen|template^application/vnd.sealed.mht +person^Martin_Lambert|template^application/vnd.sealed.net +person^David_Petersen|template^application/vnd.sealed.ppt +person^John_Kwan^Martin_Lambert|template^application/vnd.sealed.tiff +person^David_Petersen|template^application/vnd.sealed.xls +person^David_Petersen|template^application/vnd.sealedmedia.softseal.html +person^David_Petersen|template^application/vnd.sealedmedia.softseal.pdf +person^Steve_Webb|template^application/vnd.seemail +person^ICT_Manager|template^application/vnd.seis+json +person^Anders_Hansson|template^application/vnd.sema +person^Anders_Hansson|template^application/vnd.semd +person^Anders_Hansson|template^application/vnd.semf +person^Connor_Horman|template^application/vnd.shade-save-file +person^Guy_Selzler|template^application/vnd.shana.informed.formdata +person^Guy_Selzler|template^application/vnd.shana.informed.formtemplate +person^Guy_Selzler|template^application/vnd.shana.informed.interchange +person^Guy_Selzler|template^application/vnd.shana.informed.package +person^Ben_Ramsey|template^application/vnd.shootproof+json +person^Ronald_Jacobs|template^application/vnd.shopkick+json +person^Mi_Tar|template^application/vnd.shp +person^Mi_Tar|template^application/vnd.shx +person^Uwe_Hermann|template^application/vnd.sigrok.session +person^Patrick_Koh|template^application/vnd.SimTech-MindMapper +person^Kevin_Swiber|template^application/vnd.siren+json +person^Philipp_Schafft|template^application/vnd.sirtx.vmv0 +person^Center_for_Mobile_Learning_with_Digital_Technology|template^application/vnd.sketchometry +person^Hiroaki_Takahashi|template^application/vnd.smaf +person^Jonathan_Neitz|template^application/vnd.smart.notebook +person^Michael_Boyle|template^application/vnd.smart.teacher +person^Reinhard_Holzner|template^application/vnd.smintio.portals.archive +person^Connor_Horman|template^application/vnd.snesdev-page-table +person^Jakub_Hytka^Martin_Vondrous|template^application/vnd.software602.filler.form+xml +person^Jakub_Hytka^Martin_Vondrous|template^application/vnd.software602.filler.form-xml-zip +person^Cliff_Gauntlett|template^application/vnd.solent.sdkm+xml +person^Stefan_Jernberg|template^application/vnd.spotfire.dxp +person^Stefan_Jernberg|template^application/vnd.spotfire.sfs +person^Clemens_Ladisch|template^application/vnd.sqlite3 +person^Asang_Dani|template^application/vnd.sss-cod +person^Eric_Bruno|template^application/vnd.sss-dtf +person^Eric_Bruno|template^application/vnd.sss-ntf +- +- +- +- +- +- +- +person^Henrik_Andersson|template^application/vnd.stepmania.package +person^Henrik_Andersson|template^application/vnd.stepmania.stepchart +person^Glenn_Levitt|template^application/vnd.street-stream +person^Marc_Hadley|template^application/vnd.sun.wadl+xml +- +- +- +- +- +- +- +- +- +- +person^Shane_Valdez|template^application/vnd.superfile.super +person^Jonathan_Niedfeldt|template^application/vnd.sus-calendar +person^Scott_Becker|template^application/vnd.svd +person^Glenn_Widener|template^application/vnd.swiftview-ics +person^Finn_Rayk_Gärtner|template^application/vnd.sybyl.mol2 +person^Johann_Terblanche|template^application/vnd.sycle+xml +person^Dan_Nurmi|template^application/vnd.syft+json +- +person^OMA_Data_Synchronization_WG|template^application/vnd.syncml+xml +person^OMA-DM_Work_Group|template^application/vnd.syncml.dm+wbxml +person^Bindu_Rama_Rao^OMA-DM_Work_Group|template^application/vnd.syncml.dm+xml +person^OMA-DM_Work_Group^Peter_Thompson|template^application/vnd.syncml.dm.notification +person^OMA-DM_Work_Group|template^application/vnd.syncml.dmddf+wbxml +person^OMA-DM_Work_Group|template^application/vnd.syncml.dmddf+xml +person^OMA-DM_Work_Group|template^application/vnd.syncml.dmtnds+wbxml +person^OMA-DM_Work_Group|template^application/vnd.syncml.dmtnds+xml +person^OMA_Data_Synchronization_WG|template^application/vnd.syncml.ds.notification +person^Paul_Walsh|template^application/vnd.tableschema+json +person^Daniel_Shelton|template^application/vnd.tao.intent-module-archive +person^Glen_Turner^Guy_Harris|template^application/vnd.tcpdump.pcap +- +person^Arno_Schoedl|template^application/vnd.think-cell.ppttc+json +person^Alex_Sibilev|template^application/vnd.tmd.mediaflex.api+xml +person^Joey_Smith|template^application/vnd.tml +person^Nicolas_Helin|template^application/vnd.tmobile-livetv +person^Rick_Rupp|template^application/vnd.tri.onesource +person^Frank_Cusack|template^application/vnd.trid.tpt +person^Steven_Simonoff|template^application/vnd.triscape.mxs +person^J._Scott_Hepler|template^application/vnd.trueapp +person^Brad_Chase|template^application/vnd.truedoc +person^Martin_Talbot|template^application/vnd.ubisoft.webplayer +person^Dave_Manning|template^application/vnd.ufdl +person^David_Sarfatti|template^application/vnd.uic.osdm+json +person^Tim_Ocock|template^application/vnd.uiq.theme +person^Jamie_Riden|template^application/vnd.umajin +person^Unity3d|template^application/vnd.unity +person^Arne_Gerdes|template^application/vnd.uoml+xml +person^Bruce_Martin|template^application/vnd.uplanet.alert +person^Bruce_Martin|template^application/vnd.uplanet.alert-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.bearer-choice +person^Bruce_Martin|template^application/vnd.uplanet.bearer-choice-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.cacheop +person^Bruce_Martin|template^application/vnd.uplanet.cacheop-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.channel +person^Bruce_Martin|template^application/vnd.uplanet.channel-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.list +person^Bruce_Martin|template^application/vnd.uplanet.list-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.listcmd +person^Bruce_Martin|template^application/vnd.uplanet.listcmd-wbxml +person^Bruce_Martin|template^application/vnd.uplanet.signal +person^Sebastian_Baer|template^application/vnd.uri-map +person^Henrik_Andersson|template^application/vnd.valve.source.material +person^Taisuke_Sugimoto|template^application/vnd.vcx +person^Luc_Rogge|template^application/vnd.vd-study +person^Biplab_Sarkar^Lyndsey_Ferguson|template^application/vnd.vectorworks +person^James_Wigger|template^application/vnd.vel+json +person^Thomas_Fossati|template^application/vnd.veraison.tsm-report+cbor +person^Thomas_Fossati|template^application/vnd.veraison.tsm-report+json +person^Oliver_Terbu^OpenID_Foundation_Digital_Credentials_Protocols_WG|template^application/vnd.verifier-attestation+jwt +person^Petr_Peterka|template^application/vnd.verimatrix.vcas +person^Al_Brown|template^application/vnd.veritone.aion+json +person^Massimo_Bertoli|template^application/vnd.veryant.thin +person^Jim_Zubov|template^application/vnd.ves.encrypted +person^Robert_Hess|template^application/vnd.vidsoft.vidconference +person^Troy_Sandal|template^application/vnd.visio +person^Gayatri_Aravindakumar|template^application/vnd.visionary +person^Mark_Risher|template^application/vnd.vividence.scriptfile +person^Wu_Chang|template^application/vnd.vocalshaper.vsp4 +person^Delton_Rowe|template^application/vnd.vsf +person^John_J_Kolb_V|template^application/vnd.wantverse +person^WAP-Forum|template^application/vnd.wap.sic +person^WAP-Forum|template^application/vnd.wap.slc +person^Peter_Stark|template^application/vnd.wap.wbxml +person^Peter_Stark|template^application/vnd.wap.wmlc +person^Peter_Stark|template^application/vnd.wap.wmlscriptc +person^Fawad_Shaikh|template^application/vnd.wasmflow.wafl +person^Yaser_Rehem|template^application/vnd.webturbo +person^Dr._Jun_Tian^Wi-Fi_Alliance|template^application/vnd.wfa.dpp +person^Mick_Conley|template^application/vnd.wfa.p2p +person^Wi-Fi_Alliance|template^application/vnd.wfa.wsc +person^Priya_Dandawate|template^application/vnd.windows.devicepairing +person^Rubén_Fabián_Beltrán_del_Río_Vara|template^application/vnd.wmap +person^Thomas_Kjornes|template^application/vnd.wmc +person^Prakash_Iyer^Thinh_Nguyenphu|template^application/vnd.wmf.bootstrap +person^Wolfram|template^application/vnd.wolfram.mathematica +person^Wolfram|template^application/vnd.wolfram.mathematica.package +person^Wolfram|template^application/vnd.wolfram.player +- +person^David_Riccitelli|template^application/vnd.wordlift +person^Kim_Scarborough|template^application/vnd.wordperfect +person^Jan_Boström|template^application/vnd.wqd +person^Chris_Bartram|template^application/vnd.wrq-hp3000-labelled +person^Bill_Wohler|template^application/vnd.wt.stf +person^Matti_Salmi|template^application/vnd.wv.csp+wbxml +person^John_Ingi_Ingimundarson|template^application/vnd.wv.csp+xml +person^John_Ingi_Ingimundarson|template^application/vnd.wv.ssp+xml +person^David_Brossard|template^application/vnd.xacml+json +person^David_Matthewman|template^application/vnd.xara +person^Ben_Brown|template^application/vnd.xarin.cpj +person^Svante_Seleborg|template^application/vnd.xecrets-encrypted +person^Dave_Manning|template^application/vnd.xfdl +person^Michael_Mansell|template^application/vnd.xfdl.webform +person^Fred_Waskiewicz|template^application/vnd.xmi+xml +person^Reuven_Sherwin|template^application/vnd.xmpie.cpkg +person^Reuven_Sherwin|template^application/vnd.xmpie.dpkg +person^Reuven_Sherwin|template^application/vnd.xmpie.plan +person^Reuven_Sherwin|template^application/vnd.xmpie.ppkg +person^Reuven_Sherwin|template^application/vnd.xmpie.xlim +person^Tomohiro_Yamamoto|template^application/vnd.yamaha.hv-dic +person^Tomohiro_Yamamoto|template^application/vnd.yamaha.hv-script +person^Tomohiro_Yamamoto|template^application/vnd.yamaha.hv-voice +person^Mark_Olleson|template^application/vnd.yamaha.openscoreformat +person^Mark_Olleson|template^application/vnd.yamaha.openscoreformat.osfpvg+xml +person^Takehiro_Sukizaki|template^application/vnd.yamaha.remote-setup +person^Keiichi_Shinoda|template^application/vnd.yamaha.smaf-audio +person^Keiichi_Shinoda|template^application/vnd.yamaha.smaf-phrase +person^Takehiro_Sukizaki|template^application/vnd.yamaha.through-ngn +person^Takehiro_Sukizaki|template^application/vnd.yamaha.tunnel-udpencap +person^Jens_Jorgensen|template^application/vnd.yaoweme +person^Mr._Yellow|template^application/vnd.yellowriver-custom-menu +notes^(OBSOLETED in favor of video/vnd.youtube.yt)|person^Laura_Wood|template^application/vnd.youtube.yt +person^Rene_Grothmann|template^application/vnd.zul +person^Micheal_Hewett|template^application/vnd.zzazz.deck+xml +rfc^rfc4267|template^application/voicexml+xml +draft^draft-ietf-anima-constrained-voucher-23 +rfc^rfc8366|template^application/voucher-cms+json +draft^draft-ietf-anima-constrained-voucher-17 +draft^RFC-ietf-anima-jws-voucher-16|template^application/voucher-jws+json +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vp +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vp+cose +person^Ivan_Herman^W3C_Verifiable_Credentials_WG|template^application/vp+jwt +rfc^rfc6035|template^application/vq-rtcpxr +- +- +person^Eric_Prudhommeaux^W3C|template^application/wasm +rfc^rfc3858|template^application/watcherinfo+xml +draft^draft-yasskin-wpack-bundled-exchanges-02 +rfc^rfc8292|template^application/webpush-options+json +rfc^rfc2957|template^application/whoispp-query +rfc^rfc2958|template^application/whoispp-response +person^Steven_Pemberton^W3C|template^application/widget|uri^http://www.w3.org/TR/widgets/#media-type-registration-for-application/widget +- +person^Larry_Campbell|template^application/wita +person^Roy_T._Fielding +- +- +person^Paul_Lindner|template^application/wordperfect5.1 +- +- +person^W3C|template^application/wsdl+xml +person^W3C|template^application/wspolicy+xml +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +rfc^rfc8894|template^application/x-pki-message +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +person^Anne_van_Kesteren^WHATWG|template^application/x-www-form-urlencoded +rfc^rfc8894|template^application/x-x509-ca-cert +rfc^rfc8894|template^application/x-x509-ca-ra-cert +- +- +- +- +rfc^rfc8894|template^application/x-x509-next-ca-cert +- +- +- +- +- +- +- +- +- +- +rfc^rfc1494|template^application/x400-bp +- +rfc^rfc7061|template^application/xacml+xml +- +rfc^rfc4825|template^application/xcap-att+xml +rfc^rfc4825|template^application/xcap-caps+xml +rfc^rfc5874|template^application/xcap-diff+xml +rfc^rfc4825|template^application/xcap-el+xml +rfc^rfc4825|template^application/xcap-error+xml +rfc^rfc4825|template^application/xcap-ns+xml +rfc^rfc6502|template^application/xcon-conference-info+xml +rfc^rfc6502|template^application/xcon-conference-info-diff+xml +person^Joseph_Reagle^XENC_WG|template^application/xenc+xml +person^Betsy_Fanning^ISO-TC_171-SC_2|template^application/xfdf +person^Robin_Berjon^W3C|template^application/xhtml+xml +draft^draft-mccobb-xplusv-media-type|notes^- OBSOLETE; no replacement given|template^application/xhtml-voice+xml +person^Chet_Ensign^OASIS|template^application/xliff+xml +rfc^rfc7303|template^application/xml +rfc^rfc7303|template^application/xml-dtd +rfc^rfc7303|template^application/xml-external-parsed-entity +rfc^rfc7351|template^application/xml-patch+xml +rfc^rfc3923|template^application/xmpp+xml +person^Mark_Nottingham|template^application/xop+xml +- +- +- +person^W3C|template^application/xslt+xml|uri^http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration +- +rfc^rfc4374|template^application/xv+xml +rfc^rfc9512|template^application/yaml|uri^https://yaml.org/spec/1.2.2/ +rfc^rfc6020|template^application/yang +rfc^rfc9254|template^application/yang-data+cbor +rfc^rfc8040|template^application/yang-data+json +rfc^rfc8040|template^application/yang-data+xml +rfc^rfc8072|template^application/yang-patch+json +rfc^rfc8072|template^application/yang-patch+xml +rfc^rfc9595|template^application/yang-sid+json +rfc^rfc6020|template^application/yin+xml +person^Paul_Lindner|template^application/zip +rfc^rfc6713|template^application/zlib +rfc^rfc8878|template^application/zstd +rfc^rfc6015|template^audio/1d-interleaved-parityfec +rfc^rfc2421^rfc3802|template^audio/32kadpcm +rfc^rfc3839^rfc6381|template^audio/3gpp +rfc^rfc4393^rfc6381|template^audio/3gpp2 +person^ISO-IEC_JTC_1^Max_Neuendorf|template^audio/aac +rfc^rfc4184|template^audio/ac3 +- +rfc^rfc4867|template^audio/AMR +rfc^rfc4867|template^audio/AMR-WB +rfc^rfc4352|template^audio/amr-wb+ +rfc^rfc7310|template^audio/aptx +rfc^rfc6295|template^audio/asc +rfc^rfc5584|template^audio/ATRAC-ADVANCED-LOSSLESS +rfc^rfc5584|template^audio/ATRAC-X +rfc^rfc5584|template^audio/ATRAC3 +rfc^rfc2045^rfc2046|template^audio/basic +rfc^rfc4298|template^audio/BV16 +rfc^rfc4298|template^audio/BV32 +rfc^rfc4040|template^audio/clearmode +rfc^rfc3389|template^audio/CN +rfc^rfc3190|template^audio/DAT12 +rfc^rfc4613|template^audio/dls +rfc^rfc3557|template^audio/dsr-es201108 +rfc^rfc4060|template^audio/dsr-es202050 +rfc^rfc4060|template^audio/dsr-es202211 +rfc^rfc4060|template^audio/dsr-es202212 +rfc^rfc6469|template^audio/DV +rfc^rfc4856|template^audio/DVI4 +rfc^rfc4598|template^audio/eac3 +rfc^rfc6849|template^audio/encaprtp +rfc^rfc4788|template^audio/EVRC +rfc^rfc3625|template^audio/EVRC-QCP +rfc^rfc4788|template^audio/EVRC0 +rfc^rfc4788|template^audio/EVRC1 +rfc^rfc5188|template^audio/EVRCB +rfc^rfc5188|template^audio/EVRCB0 +rfc^rfc4788|template^audio/EVRCB1 +rfc^rfc6884|template^audio/EVRCNW +rfc^rfc6884|template^audio/EVRCNW0 +rfc^rfc6884|template^audio/EVRCNW1 +rfc^rfc5188|template^audio/EVRCWB +rfc^rfc5188|template^audio/EVRCWB0 +rfc^rfc5188|template^audio/EVRCWB1 +person^Kyunghun_Jung^_3GPP|template^audio/EVS +rfc^rfc4735|template^audio/example +rfc^rfc9639|template^audio/flac +rfc^rfc8627|template^audio/flexfec +rfc^rfc6354|template^audio/fwdred +rfc^rfc7655|template^audio/G711-0 +rfc^rfc5404|rfc-errata^3245|template^audio/G719 +rfc^rfc4856|template^audio/G722 +rfc^rfc5577|template^audio/G7221 +rfc^rfc4856|template^audio/G723 +rfc^rfc4856|template^audio/G726-16 +rfc^rfc4856|template^audio/G726-24 +rfc^rfc4856|template^audio/G726-32 +rfc^rfc4856|template^audio/G726-40 +rfc^rfc4856|template^audio/G728 +rfc^rfc4856|template^audio/G729 +rfc^rfc4749^rfc5459|template^audio/G7291 +rfc^rfc4856|template^audio/G729D +rfc^rfc4856|template^audio/G729E +rfc^rfc4856|template^audio/GSM +rfc^rfc4856|template^audio/GSM-EFR +rfc^rfc5993|template^audio/GSM-HR-08 +rfc^rfc3952|template^audio/iLBC +rfc^rfc6262|template^audio/ip-mr_v2.5 +rfc^rfc4856|template^audio/L16 +rfc^rfc3190|template^audio/L20 +rfc^rfc3190|template^audio/L24 +rfc^rfc4856|template^audio/L8 +rfc^rfc4856|template^audio/LPC +rfc^rfc9559|template^audio/matroska +rfc^rfc8130|template^audio/MELP +rfc^rfc8130|template^audio/MELP1200 +rfc^rfc8130|template^audio/MELP2400 +rfc^rfc8130|template^audio/MELP600 +person^ISO-IEC_JTC_1^Ingo_Hofmann^Nils_Peters|template^audio/mhas +- +person^Benjamin_Israel^MIDI_Association|template^audio/midi-clip +rfc^rfc4723|template^audio/mobile-xmf +rfc^rfc4337^rfc6381|template^audio/mp4 +rfc^rfc6416|template^audio/MP4A-LATM +rfc^rfc3555|template^audio/MPA +rfc^rfc5219|template^audio/mpa-robust +rfc^rfc3003|template^audio/mpeg +rfc^rfc3640^rfc5691^rfc6295|template^audio/mpeg4-generic +rfc^rfc5334^rfc7845|template^audio/ogg +rfc^rfc7587|template^audio/opus +rfc^rfc3009|template^audio/parityfec +rfc^rfc4856|template^audio/PCMA +rfc^rfc5391|template^audio/PCMA-WB +rfc^rfc4856|template^audio/PCMU +rfc^rfc5391|template^audio/PCMU-WB +person^Linus_Walleij|template^audio/prs.sid +rfc^rfc3555^rfc3625|template^audio/QCELP +rfc^rfc6682|template^audio/raptorfec +rfc^rfc3555|template^audio/RED +person^_3GPP|template^audio/rtp-enc-aescm128 +rfc^rfc6295|template^audio/rtp-midi +rfc^rfc6849|template^audio/rtploopback +rfc^rfc4588|template^audio/rtx +- +rfc^rfc9607|template^audio/scip +- +rfc^rfc3558|template^audio/SMV +rfc^rfc3625|template^audio/SMV-QCP +rfc^rfc3558|template^audio/SMV0 +person^AES^Piotr_Majdak|template^audio/sofa +person^Athan_Billias^MIDI_Association|template^audio/sp-midi +rfc^rfc5574|template^audio/speex +rfc^rfc4351|template^audio/t140c +rfc^rfc4612|template^audio/t38 +rfc^rfc4733|template^audio/telephone-event +person^ETSI^Miguel_Angel_Reina_Ortega|template^audio/TETRA_ACELP +person^ETSI^Miguel_Angel_Reina_Ortega|template^audio/TETRA_ACELP_BB +rfc^rfc4733|template^audio/tone +rfc^rfc8817|template^audio/TSVCIS +rfc^rfc5686|template^audio/UEMCLIP +rfc^rfc5109|template^audio/ulpfec +person^ISO-IEC_JTC_1^Max_Neuendorf|template^audio/usac +rfc^rfc4856|template^audio/VDVI +rfc^rfc4348^rfc4424|template^audio/VMR-WB +person^Thomas_Belling|template^audio/vnd.3gpp.iufp +person^Serge_De_Jaham|template^audio/vnd.4SB +- +person^Vicki_DeBarros|template^audio/vnd.audiokoz +person^Egbert_von_Frankenberg|template^audio/vnd.blockfact.facta +person^Serge_De_Jaham|template^audio/vnd.CELP +person^Rajesh_Kumar|template^audio/vnd.cisco.nse +person^Jean-Philippe_Goulet|template^audio/vnd.cmles.radio-events +person^Ann_McLaughlin|template^audio/vnd.cns.anp1 +person^Ann_McLaughlin|template^audio/vnd.cns.inf1 +person^Michael_A_Dolan|template^audio/vnd.dece.audio +person^Armands_Strazds|template^audio/vnd.digital-winds +person^Edwin_Heredia|template^audio/vnd.dlna.adts +person^Steve_Hattersley|template^audio/vnd.dolby.heaac.1 +person^Steve_Hattersley|template^audio/vnd.dolby.heaac.2 +person^Mike_Ward|template^audio/vnd.dolby.mlp +person^Steve_Hattersley|template^audio/vnd.dolby.mps +person^Steve_Hattersley|template^audio/vnd.dolby.pl2 +person^Steve_Hattersley|template^audio/vnd.dolby.pl2x +person^Steve_Hattersley|template^audio/vnd.dolby.pl2z +person^Steve_Hattersley|template^audio/vnd.dolby.pulse.1 +person^Jiang_Tian|template^audio/vnd.dra +person^William_Zou|template^audio/vnd.dts +person^William_Zou|template^audio/vnd.dts.hd +person^Phillip_Maness|template^audio/vnd.dts.uhd +person^Peter_Siebert|template^audio/vnd.dvb.file +person^Shay_Cicelsky|template^audio/vnd.everad.plj +person^Swaminathan|template^audio/vnd.hns.audio +person^Greg_Vaudreuil|template^audio/vnd.lucent.voice +person^Steve_DiAcetis|template^audio/vnd.ms-playready.media.pya +person^Nokia|template^audio/vnd.nokia.mobile-xmf +person^Glenn_Parsons|template^audio/vnd.nortel.vbk +person^Michael_Fox|template^audio/vnd.nuera.ecelp4800 +person^Michael_Fox|template^audio/vnd.nuera.ecelp7470 +person^Michael_Fox|template^audio/vnd.nuera.ecelp9600 +person^Greg_Vaudreuil|template^audio/vnd.octel.sbc +person^Matthias_Juwan|template^audio/vnd.presonus.multitrack +notes^- DEPRECATED in favor of audio/qcelp|rfc^rfc3625|template^audio/vnd.qcelp +person^Greg_Vaudreuil|template^audio/vnd.rhetorex.32kadpcm +person^Martin_Dawe|template^audio/vnd.rip +person^David_Petersen|template^audio/vnd.sealedmedia.softseal.mpeg +person^Greg_Vaudreuil|template^audio/vnd.vmx.cvsd +- +rfc^rfc5215|template^audio/vorbis +rfc^rfc5215|template^audio/vorbis-config +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +rfc^rfc8081|template^font/collection +rfc^rfc8081|template^font/otf +rfc^rfc8081|template^font/sfnt +rfc^rfc8081|template^font/ttf +rfc^rfc8081|template^font/woff +rfc^rfc8081|template^font/woff2 +rfc^rfc9695|template^haptics/hjif +rfc^rfc9695|template^haptics/hmpg +rfc^rfc9695|template^haptics/ivs +person^Howard_Lukk^SMPTE|template^image/aces +person^W3C^W3C_PNG_WG|template^image/apng +person^David_Singer^ISO-IEC_JTC_1|template^image/avci +person^David_Singer^ISO-IEC_JTC_1|template^image/avcs +person^Alliance_for_Open_Media^Cyril_Concolato|template^image/avif +rfc^rfc7903|template^image/bmp +person^Alan_Francis|template^image/cgm +- +person^DICOM_Standard_Committee^David_Clunie|template^image/dicom-rle +person^SMPTE^SMPTE_Director_of_Standards_Development|template^image/dpx +rfc^rfc7903|template^image/emf +rfc^rfc4735|template^image/example +rfc^rfc4047|template^image/fits +rfc^rfc1494|template^image/g3fax +rfc^rfc2045^rfc2046|template^image/gif +person^David_Singer^ISO-IEC_JTC_1|template^image/heic +person^David_Singer^ISO-IEC_JTC_1|template^image/heic-sequence +person^David_Singer^ISO-IEC_JTC_1|template^image/heif +person^David_Singer^ISO-IEC_JTC_1|template^image/heif-sequence +person^ISO-IEC_JTC_1^ITU-T|template^image/hej2k +notes^(OBSOLETE)|person^ISO-IEC_JTC_1^ITU-T|template^image/hsj2 +- +rfc^rfc1314|template^image/ief +person^ISO-IEC_JTC_1^ISO-IEC_JTC_1_SC_29_WG_1^ITU-T|template^image/j2c +person^ISO-IEC_JTC_1-SC_29-WG_1_Convenor +person^ISO-IEC_JTC_1_SC_29_WG_1^Ye-Kui_Wang|template^image/jaii +person^ISO-IEC_JTC_1_SC_29_WG_1^Ye-Kui_Wang|template^image/jais +person^DICOM_Standard_Committee^David_Clunie|template^image/jls +rfc^rfc3745|template^image/jp2 +rfc^rfc2045^rfc2046|template^image/jpeg +person^ISO-IEC_JTC_1^ITU-T|template^image/jph +person^ISO-IEC_JTC_1^ITU-T|template^image/jphc +rfc^rfc3745|template^image/jpm +person^ISO-IEC_JTC_1_SC_29_WG_1|rfc^rfc3745|template^image/jpx +person^ISO-IEC_JTC_1^ISO-IEC_JTC_1_SC_29_WG_1|template^image/jxl +person^ISO-IEC_JTC_1^ITU-T|template^image/jxr +person^ISO-IEC_JTC_1^ITU-T|template^image/jxrA +person^ISO-IEC_JTC_1^ITU-T|template^image/jxrS +person^ISO-IEC_JTC_1|template^image/jxs +person^ISO-IEC_JTC_1|template^image/jxsc +person^ISO-IEC_JTC_1|template^image/jxsi +person^ISO-IEC_JTC_1|template^image/jxss +person^Khronos^Mark_Callow|template^image/ktx +person^Khronos^Mark_Callow|template^image/ktx2 +person^Ilya_Ferber|template^image/naplps +- +person^Pierre-Anthony_Lemieux +- +person^PNG_WG^W3C|template^image/png|uri^https://www.w3.org/TR/PNG/ +person^Ben_Simon|template^image/prs.btif +person^Juern_Laun|template^image/prs.pti +person^Michael_Sweet|template^image/pwg-raster +- +person^W3C|template^image/svg+xml|uri^http://www.w3.org/TR/SVG/mimereg.html +rfc^rfc3362|template^image/t38 +- +rfc^rfc3302|template^image/tiff +rfc^rfc3950|template^image/tiff-fx +person^Kim_Scarborough|template^image/vnd.adobe.photoshop +- +person^Gary_Clueit|template^image/vnd.airzip.accelerator.azv +person^Egbert_von_Frankenberg|template^image/vnd.blockfact.facti +person^Ryo_Inaba|template^image/vnd.clip +person^Ann_McLaughlin|template^image/vnd.cns.inf2 +person^Michael_A_Dolan|template^image/vnd.dece.graphic +- +person^Leon_Bottou|template^image/vnd.djvu +person^Michael_Lagally^Peter_Siebert|template^image/vnd.dvb.subtitle +person^Jodi_Moline|template^image/vnd.dwg +- +person^Jodi_Moline|template^image/vnd.dxf +person^Scott_Becker|template^image/vnd.fastbidsheet +person^Marc_Douglas_Spencer|template^image/vnd.fpx +person^Arild_Fuldseth|template^image/vnd.fst +person^Masanori_Onda|template^image/vnd.fujixerox.edmics-mmr +person^Masanori_Onda|template^image/vnd.fujixerox.edmics-rlc +person^Martin_Bailey|template^image/vnd.globalgraphics.pgb +person^Simon_Butcher|template^image/vnd.microsoft.icon +person^Saveen_Reddy|template^image/vnd.mix +person^Stuart_Parmenter|template^image/vnd.mozilla.apng +person^Gregory_Vaughan|template^image/vnd.ms-modi +- +person^Marc_Douglas_Spencer|template^image/vnd.net-fpx +- +person^Jan_Zeman^PCO_AG|template^image/vnd.pco.b16 +person^Greg_Ward^Randolph_Fritz|template^image/vnd.radiance +person^David_Petersen|template^image/vnd.sealed.png +person^David_Petersen|template^image/vnd.sealedmedia.softseal.gif +person^David_Petersen|template^image/vnd.sealedmedia.softseal.jpg +person^Jodi_Moline|template^image/vnd.svf +person^Ni_Hui|template^image/vnd.tencent.tap +person^Henrik_Andersson|template^image/vnd.valve.source.texture +person^Peter_Stark|template^image/vnd.wap.wbmp +person^Steven_Martin|template^image/vnd.xiff +- +person^Chris_Charabaruk|template^image/vnd.zbrush.pcx +rfc^rfc9649|template^image/webp +rfc^rfc7903|template^image/wmf +- +- +- +- +- +- +- +- +- +- +- +notes^- DEPRECATED in favor of image/emf|rfc^rfc7903|template^image/emf +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +notes^- DEPRECATED in favor of image/wmf|rfc^rfc7903|template^image/wmf +- +- +- +- +- +rfc^rfc9292|template^message/bhttp +rfc^rfc3862|template^message/CPIM +rfc^rfc1894|template^message/delivery-status +rfc^rfc8098|template^message/disposition-notification +rfc^rfc4735|template^message/example +rfc^rfc2045^rfc2046|template^message/external-body +rfc^rfc5965|template^message/feedback-report +rfc^rfc6532|template^message/global +rfc^rfc6533|template^message/global-delivery-status +rfc^rfc6533|template^message/global-disposition-notification +rfc^rfc6533|template^message/global-headers +rfc^rfc9112|template^message/http +rfc^rfc5438|template^message/imdn+xml +rfc^rfc9420|template^message/mls +notes^(OBSOLETED by )|person^Henry_Spencer|rfc^rfc5537|template^message/news +rfc^rfc9458|template^message/ohttp-req +rfc^rfc9458|template^message/ohttp-res +rfc^rfc2045^rfc2046|template^message/partial +rfc^rfc2045^rfc2046|template^message/rfc822 +notes^(OBSOLETE)|rfc^rfc2660|template^message/s-http|uri^https://datatracker.ietf.org/doc/status-change-http-experiments-to-historic +rfc^rfc3261|template^message/sip +rfc^rfc3420|template^message/sipfrag +rfc^rfc3886|template^message/tracking-status +notes^(OBSOLETED by request)|person^Nicholas_Parks_Young|template^message/vnd.si.simp +person^Mick_Conley|template^message/vnd.wfa.wsc +- +person^Michael_Sweet^_3MF|template^model/3mf|uri^http://www.3mf.io/specification +person^ASTM|template^model/e57 +rfc^rfc4735|template^model/example +person^Khronos^Uli_Klumpp|template^model/gltf+json +person^Khronos^Saurabh_Bhatia|template^model/gltf-binary +person^Curtis_Parks|template^model/iges +person^ISO-TC_184-SC_4^Michael_Zink|template^model/JT +rfc^rfc2077|template^model/mesh +person^Carolyn_Hull^DICOM_Standard_Committee^DICOM_WG_17|template^model/mtl +person^Carolyn_Hull^DICOM_Standard_Committee^DICOM_WG_17|template^model/obj +person^Betsy_Fanning^ISO-TC_171-SC_2|template^model/prc +person^Dana_Tripp^ISO-TC_184-SC_4|template^model/step +person^Dana_Tripp^ISO-TC_184-SC_4|template^model/step+xml +person^Dana_Tripp^ISO-TC_184-SC_4|template^model/step+zip +person^Dana_Tripp^ISO-TC_184-SC_4|template^model/step-xml+zip +person^Carolyn_Hull^DICOM_Standard_Committee^DICOM_WG_17|template^model/stl +person^PDF_Association^Peter_Wyatt|template^model/u3d +person^Displaced_Micro-Mesh_SDK_Support|template^model/vnd.bary +person^Robert_Monaghan|template^model/vnd.cld +person^James_Riordon|template^model/vnd.collada+xml +person^Jason_Pratt|template^model/vnd.dwf +- +person^Michael_Powers|template^model/vnd.flatland.3dml +person^Attila_Babits|template^model/vnd.gdl +person^Attila_Babits|template^model/vnd.gs-gdl +- +person^Yutaka_Ozaki|template^model/vnd.gtw +person^Christopher_Brooks|template^model/vnd.moml+xml +person^Boris_Rabinovitch|template^model/vnd.mts +person^Eric_Lengyel|template^model/vnd.opengex +person^Parasolid|template^model/vnd.parasolid.transmit.binary +person^Parasolid|template^model/vnd.parasolid.transmit.text +person^Daniel_Flassig|template^model/vnd.pytha.pyox +person^Benson_Margulies|template^model/vnd.rosette.annotated-data-model +person^Igor_Afanasyev^SAP_SE|template^model/vnd.sap.vds +person^Sebastian_Grassia|template^model/vnd.usda +person^Sebastian_Grassia|template^model/vnd.usdz+zip +person^Henrik_Andersson|template^model/vnd.valve.source.compiled-map +person^Boris_Rabinovitch|template^model/vnd.vtu +rfc^rfc2077|template^model/vrml +- +- +- +person^Web3D_X3D|template^model/x3d+fastinfoset +- +person^Web3D^Web3D_X3D|template^model/x3d+xml +person^Web3D^Web3D_X3D|template^model/x3d-vrml +rfc^rfc2045^rfc2046|template^multipart/alternative +person^Patrik_Faltstrom|template^multipart/appledouble +rfc^rfc9110|template^multipart/byteranges +rfc^rfc2045^rfc2046|template^multipart/digest +rfc^rfc1847|template^multipart/encrypted +rfc^rfc4735|template^multipart/example +rfc^rfc7578|template^multipart/form-data +person^Dave_Crocker|template^multipart/header-set +rfc^rfc2045^rfc2046|template^multipart/mixed +rfc^rfc8255|template^multipart/multilingual +rfc^rfc2045^rfc2046|template^multipart/parallel +rfc^rfc2387|template^multipart/related +rfc^rfc6522|template^multipart/report +rfc^rfc1847|template^multipart/signed +person^Heinz-Peter_Schütz|template^multipart/vnd.bint.med-plus +rfc^rfc3801|template^multipart/voice-message +- +person^Robin_Berjon^W3C|template^multipart/x-mixed-replace +- +- +- +- +- +rfc^rfc6015|template^text/1d-interleaved-parityfec +person^Frédéric_Desbiens +- +- +person^Robin_Berjon^W3C|template^text/cache-manifest +rfc^rfc5545|template^text/calendar +person^Alex_Giladi +- +person^Bryn_Rhodes^HL7|template^text/cql +person^Bryn_Rhodes^HL7|template^text/cql-expression +person^Bryn_Rhodes^HL7|template^text/cql-identifier +rfc^rfc2318|template^text/css +rfc^rfc4180^rfc7111|template^text/csv +person^David_Underdown^National_Archives_UK|template^text/csv-schema +notes^- DEPRECATED by RFC6350|rfc^rfc2425^rfc6350|template^text/directory +rfc^rfc4027|template^text/dns +notes^(OBSOLETED in favor of text/javascript)|rfc^rfc9239|template^text/ecmascript +rfc^rfc6849|template^text/encaprtp +rfc^rfc1896|template^text/enriched +rfc^rfc4735|template^text/example +person^Bryn_Rhodes^HL7|template^text/fhirpath +rfc^rfc8627|template^text/flexfec +rfc^rfc6354|template^text/fwdred +person^Sequence_Ontology|template^text/gff3 +rfc^rfc6787|template^text/grammar-ref-list +person^HL7^Marc_Duteau|template^text/hl7v2 +person^Robin_Berjon^W3C|template^text/html +- +rfc^rfc9239|template^text/javascript +- +- +- +- +- +person^Peeter_Piegaze|template^text/jcr-cnd +- +- +rfc^rfc7763|template^text/markdown +person^Jesse_Alama|template^text/mizar +person^Eric_Prudhommeaux^W3C|template^text/n3 +person^Sean_Leonard +rfc^rfc7826|template^text/parameters +rfc^rfc3009|template^text/parityfec +rfc^rfc2046^rfc3676^rfc5147|template^text/plain +person^Ivan_Herman^W3C|template^text/provenance-notation +person^Benja_Fallenstein|template^text/prs.fallenstein.rst +person^John_Lines|template^text/prs.lines.tag +person^Hans-Dieter_A._Hiep|template^text/prs.prop.logic +person^Matin_Bavardi|template^text/prs.texi +rfc^rfc6682|template^text/raptorfec +rfc^rfc4102|template^text/RED +rfc^rfc6522|template^text/rfc822-headers +rfc^rfc2045^rfc2046|template^text/richtext +person^Paul_Lindner|template^text/rtf +person^_3GPP|template^text/rtp-enc-aescm128 +rfc^rfc6849|template^text/rtploopback +rfc^rfc4588|template^text/rtx +rfc^rfc1874|template^text/SGML +person^Vladimir_Alexiev^W3C_SHACL_Community_Group|template^text/shaclc +person^Eric_Prudhommeaux^W3C|template^text/shex +person^Linux_Foundation^Rose_Judge|template^text/spdx +person^IEEE-ISTO-PWG-PPP|template^text/strings +rfc^rfc4103|template^text/t140 +person^Paul_Lindner|template^text/tab-separated-values +rfc^rfc4263|template^text/troff +person^Eric_Prudhommeaux^W3C|template^text/turtle +rfc^rfc5109|template^text/ulpfec +rfc^rfc2483|template^text/uri-list +rfc^rfc6350|template^text/vcard +person^Regis_Dehoux|template^text/vnd.a +person^Steve_Allen|template^text/vnd.abc +person^Kim_Scarborough|template^text/vnd.ascii-art +person^Robert_Byrnes|template^text/vnd.curl +- +- +- +person^Charles_Plessy|template^text/vnd.debian.copyright +person^Dan_Bradley|template^text/vnd.DMClientScript +person^Michael_Lagally^Peter_Siebert|template^text/vnd.dvb.subtitle +person^Stefan_Eilemann|template^text/vnd.esmertec.theme-descriptor +person^Martin_Cizek|template^text/vnd.exchangeable +person^Gordon_Clarke|template^text/vnd.familysearch.gedcom +person^Steve_Gilberd|template^text/vnd.ficlab.flt +- +person^John-Mark_Gurney|template^text/vnd.fly +person^Kari_E._Hurtta|template^text/vnd.fmi.flexstor +person^Mi_Tar|template^text/vnd.gml +person^John_Ellson|template^text/vnd.graphviz +person^Hill_Hanxv|template^text/vnd.hans +person^Heungsub_Lee|template^text/vnd.hgl +person^Michael_Powers|template^text/vnd.in3d.3dml +person^Michael_Powers|template^text/vnd.in3d.spot +- +person^IPTC|template^text/vnd.IPTC.NewsML +person^IPTC|template^text/vnd.IPTC.NITF +person^Mikusiak_Lubos|template^text/vnd.latex-z +person^Mark_Patton|template^text/vnd.motorola.reflex +person^Jan_Nelson|template^text/vnd.ms-mediapackage +person^Feiyu_Xie|template^text/vnd.net2phone.commcenter.command +rfc^rfc5707|template^text/vnd.radisys.msml-basic-layout +person^Pierre_Papin|template^text/vnd.senx.warpscript +notes^(OBSOLETED by request)|person^Nicholas_Parks_Young|template^text/vnd.si.uricatalogue +person^Petter_Reinholdtsen|template^text/vnd.sosi +person^Gary_Adams|template^text/vnd.sun.j2me.app-descriptor +person^David_Lee_Lambert|template^text/vnd.trolltech.linguist +person^Martin_Haug|template^text/vnd.typst +person^Anand_Jahagirdar|template^text/vnd.vcf +person^WAP-Forum|template^text/vnd.wap.si +person^WAP-Forum|template^text/vnd.wap.sl +person^Peter_Stark|template^text/vnd.wap.wml +person^Peter_Stark|template^text/vnd.wap.wmlscript +person^Jessie_Frazelle|template^text/vnd.zoo.kcl +person^Silvia_Pfeiffer^W3C|template^text/vtt +person^David_Neto^W3C|template^text/wgsl +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +rfc^rfc7303|template^text/xml +rfc^rfc7303|template^text/xml-external-parsed-entity +rfc^rfc6015|template^video/1d-interleaved-parityfec +rfc^rfc3839^rfc6381|template^video/3gpp +rfc^rfc4396|template^video/3gpp-tt +rfc^rfc4393^rfc6381|template^video/3gpp2 +person^Alliance_for_Open_Media|template^video/AV1 +rfc^rfc3555|template^video/BMPEG +rfc^rfc3555|template^video/BT656 +rfc^rfc3555|template^video/CelB +- +- +rfc^rfc6469|template^video/DV +rfc^rfc6849|template^video/encaprtp +rfc^rfc9584|template^video/evc +rfc^rfc4735|template^video/example +rfc^rfc9043|template^video/FFV1 +rfc^rfc8627|template^video/flexfec +- +rfc^rfc4587|template^video/H261 +rfc^rfc3555|template^video/H263 +rfc^rfc4629|template^video/H263-1998 +rfc^rfc4629|template^video/H263-2000 +rfc^rfc6184|template^video/H264 +rfc^rfc6185|template^video/H264-RCDO +rfc^rfc6190|template^video/H264-SVC +rfc^rfc7798|template^video/H265 +rfc^rfc9328|template^video/H266 +person^David_Singer^ISO-IEC_JTC_1|template^video/iso.segment +rfc^rfc3555|template^video/JPEG +rfc^rfc5371^rfc5372|template^video/jpeg2000 +rfc^rfc9828|template^video/jpeg2000-scl +- +rfc^rfc9134|template^video/jxsv +person^Lottie_Animation_Community|template^video/lottie+json +rfc^rfc9559|template^video/matroska +rfc^rfc9559|template^video/matroska-3d +rfc^rfc3745|template^video/mj2 +rfc^rfc3555|template^video/MP1S +rfc^rfc3555|template^video/MP2P +rfc^rfc3555|template^video/MP2T +rfc^rfc4337^rfc6381|template^video/mp4 +rfc^rfc6416|template^video/MP4V-ES +rfc^rfc2045^rfc2046|template^video/mpeg +rfc^rfc3640|template^video/mpeg4-generic +rfc^rfc3555|template^video/MPV +rfc^rfc4856|template^video/nv +rfc^rfc5334^rfc7845|template^video/ogg +rfc^rfc3009|template^video/parityfec +rfc^rfc2862|template^video/pointer +person^Paul_Lindner|rfc^rfc6381|template^video/quicktime +rfc^rfc6682|template^video/raptorfec +rfc^rfc4175|template^video/raw +person^_3GPP|template^video/rtp-enc-aescm128 +rfc^rfc6849|template^video/rtploopback +rfc^rfc4588|template^video/rtx +rfc^rfc9607|template^video/scip +rfc^rfc8331|template^video/smpte291 +rfc^rfc3497|template^video/SMPTE292M +- +rfc^rfc5109|template^video/ulpfec +rfc^rfc4425|template^video/vc1 +rfc^rfc8450|template^video/vc2 +person^Egbert_von_Frankenberg|template^video/vnd.blockfact.factv +person^Frank_Rottmann|template^video/vnd.CCTV +person^Michael_A_Dolan|template^video/vnd.dece.hd +person^Michael_A_Dolan|template^video/vnd.dece.mobile +person^Michael_A_Dolan|template^video/vnd.dece.mp4 +person^Michael_A_Dolan|template^video/vnd.dece.pd +person^Michael_A_Dolan|template^video/vnd.dece.sd +person^Michael_A_Dolan|template^video/vnd.dece.video +person^Nathan_Zerbe|template^video/vnd.directv.mpeg +person^Nathan_Zerbe|template^video/vnd.directv.mpeg-tts +person^Edwin_Heredia|template^video/vnd.dlna.mpeg-tts +person^Kevin_Murray^Peter_Siebert|template^video/vnd.dvb.file +person^Arild_Fuldseth|template^video/vnd.fvt +person^Swaminathan|template^video/vnd.hns.video +person^Shuji_Nakamura|template^video/vnd.iptvforum.1dparityfec-1010 +person^Shuji_Nakamura|template^video/vnd.iptvforum.1dparityfec-2005 +person^Shuji_Nakamura|template^video/vnd.iptvforum.2dparityfec-1010 +person^Shuji_Nakamura|template^video/vnd.iptvforum.2dparityfec-2005 +person^Shuji_Nakamura|template^video/vnd.iptvforum.ttsavc +person^Shuji_Nakamura|template^video/vnd.iptvforum.ttsmpeg2 +person^Tom_McGinty|template^video/vnd.motorola.video +person^Tom_McGinty|template^video/vnd.motorola.videop +person^Heiko_Recktenwald|template^video/vnd.mpegurl +person^Steve_DiAcetis|template^video/vnd.ms-playready.media.pyv +person^Petteri_Kangaslampi|template^video/vnd.nokia.interleaved-multimedia +person^Miska_M._Hannuksela|template^video/vnd.nokia.mp4vr +person^Nokia|template^video/vnd.nokia.videovoip +person^John_Clark|template^video/vnd.objectvideo +person^David_Atkins|template^video/vnd.planar +person^Henrik_Andersson|template^video/vnd.radgamettools.bink +person^Henrik_Andersson|template^video/vnd.radgamettools.smacker +person^David_Petersen|template^video/vnd.sealed.mpeg1 +person^David_Petersen|template^video/vnd.sealed.mpeg4 +person^David_Petersen|template^video/vnd.sealed.swf +person^David_Petersen|template^video/vnd.sealedmedia.softseal.mov +person^Michael_A_Dolan|template^video/vnd.uvvu.mp4 +person^John_Wolfe|template^video/vnd.vivo +person^Google|template^video/vnd.youtube.yt +rfc^rfc7741|template^video/VP8 +rfc^rfc9628|template^video/VP9 +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/gems/gems/mime-types-data-3.2025.0909/lib/mime-types-data.rb b/gems/gems/mime-types-data-3.2025.0909/lib/mime-types-data.rb new file mode 100644 index 0000000..c6c0db6 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/lib/mime-types-data.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "mime/types/data" diff --git a/gems/gems/mime-types-data-3.2025.0909/lib/mime/types/data.rb b/gems/gems/mime-types-data-3.2025.0909/lib/mime/types/data.rb new file mode 100644 index 0000000..c9987d5 --- /dev/null +++ b/gems/gems/mime-types-data-3.2025.0909/lib/mime/types/data.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module MIME + class Types + module Data + VERSION = "3.2025.0909" + + # The path that will be used for loading the MIME::Types data. The + # default location is __FILE__/../../../../data, which is where the data + # lives in the gem installation of the mime-types-data library. + # + # The MIME::Types::Loader will load all JSON or columnar files contained + # in this path. + # + # System maintainer note: this is the constant to change when packaging + # mime-types for your system. It is recommended that the path be + # something like /usr/share/ruby/mime-types/. + PATH = File.expand_path("../../../../data", __FILE__) + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/MIT-LICENSE b/gems/gems/mini_magick-5.3.1/MIT-LICENSE new file mode 100644 index 0000000..d44e0a8 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/MIT-LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2005-2013 Corey Johnson probablycorey@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining +a copy of 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. + diff --git a/gems/gems/mini_magick-5.3.1/README.md b/gems/gems/mini_magick-5.3.1/README.md new file mode 100644 index 0000000..bd62bce --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/README.md @@ -0,0 +1,558 @@ +# MiniMagick +[![Gem Version](https://img.shields.io/gem/v/mini_magick.svg)](http://rubygems.org/gems/mini_magick) +[![Gem Downloads](https://img.shields.io/gem/dt/mini_magick.svg)](http://rubygems.org/gems/mini_magick) +[![CI](https://github.com/minimagick/minimagick/actions/workflows/ci.yml/badge.svg)](https://github.com/minimagick/minimagick/actions/workflows/ci.yml) +[![Code Climate](https://codeclimate.com/github/minimagick/minimagick/badges/gpa.svg)](https://codeclimate.com/github/minimagick/minimagick) + +A ruby wrapper for [ImageMagick](http://imagemagick.org/) command line. + +## Why? + +I was using [RMagick](https://github.com/rmagick/rmagick) and loving it, but it +was eating up huge amounts of memory. Even a simple script would use over 100MB +of RAM. On my local machine this wasn't a problem, but on my hosting server the +ruby apps would crash because of their 100MB memory limit. + +## Solution! + +Using MiniMagick the ruby processes memory remains small (it spawns +ImageMagick's command line program mogrify which takes up some memory as well, +but is much smaller compared to RMagick). See [Thinking of switching from +RMagick?](#thinking-of-switching-from-rmagick) below. + +MiniMagick gives you access to all the command line options ImageMagick has +(found [here](http://www.imagemagick.org/script/command-line-options.php)). + +## Requirements + +ImageMagick command-line tool has to be installed. You can check if you have it +installed by running + +```sh +$ magick -version +Version: ImageMagick 7.1.1-33 Q16-HDRI aarch64 22263 https://imagemagick.org +Copyright: (C) 1999 ImageMagick Studio LLC +License: https://imagemagick.org/script/license.php +Features: Cipher DPC HDRI Modules OpenMP(5.0) +Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib zstd +Compiler: gcc (4.2) +``` + +## Installation + +Add the gem to your Gemfile: + +```sh +$ bundle add mini_magick +``` + +## Information + +* [API documentation](https://rubydoc.info/gems/mini_magick) + +## Usage + +Let's first see a basic example of resizing an image. + +```rb +require "mini_magick" + +image = MiniMagick::Image.open("input.jpg") +image.path #=> "/var/folders/k7/6zx6dx6x7ys3rv3srh0nyfj00000gn/T/magick20140921-75881-1yho3zc.jpg" +image.resize "100x100" +image.format "png" +image.write "output.png" +``` + +`MiniMagick::Image.open` makes a copy of the image, and further methods modify +that copy (the original stays untouched). We then +[resize](http://www.imagemagick.org/script/command-line-options.php#resize) +the image, and write it to a file. The writing part is necessary because +the copy is just temporary, it gets garbage collected when we lose reference +to the image. + +`MiniMagick::Image.open` also accepts URLs, and options passed in will be +forwarded to [open-uri](https://github.com/ruby/open-uri). + +```rb +image = MiniMagick::Image.open("http://example.com/image.jpg") +image.contrast +image.write("from_internets.jpg") +``` + +On the other hand, if we want the original image to actually *get* modified, +we can use `MiniMagick::Image.new`. + +```rb +image = MiniMagick::Image.new("input.jpg") +image.path #=> "input.jpg" +image.resize "100x100" +# Not calling #write, because it's not a copy +``` + +### Combine options + +While using methods like `#resize` directly is convenient, if we use more +methods in this way, it quickly becomes inefficient, because it calls the +command on each methods call. `MiniMagick::Image#combine_options` takes +multiple options and from them builds one single command. + +```rb +image.combine_options do |b| + b.resize "250x200>" + b.rotate "-90" + b.flip +end # the command gets executed +``` + +As a handy shortcut, `MiniMagick::Image.new` also accepts an optional block +which is used to `combine_options`. + +```rb +image = MiniMagick::Image.new("input.jpg") do |b| + b.resize "250x200>" + b.rotate "-90" + b.flip +end # the command gets executed +``` + +The yielded builder is an instance of `MiniMagick::Tool`. To learn more +about its interface, see [Tools](#tools) below. + +### Attributes + +A `MiniMagick::Image` has various handy attributes. + +```rb +image.type #=> "JPEG" +image.width #=> 250 +image.height #=> 300 +image.dimensions #=> [250, 300] +image.size #=> 3451 (in bytes) +image.colorspace #=> "DirectClass sRGB" +image.exif #=> {"DateTimeOriginal" => "2013:09:04 08:03:39", ...} +image.resolution #=> [75, 75] +image.signature #=> "60a7848c4ca6e36b8e2c5dea632ecdc29e9637791d2c59ebf7a54c0c6a74ef7e" +``` + +If you need more control, you can also access [raw image +attributes](http://www.imagemagick.org/script/escape.php): + +```rb +image["%[gamma]"] # "0.9" +``` + +To get the all information about the image, MiniMagick gives you a handy method +which returns the output from `magick input.jpg json:`: + +```rb +image.data #=> +# { +# "format": "JPEG", +# "mimeType": "image/jpeg", +# "class": "DirectClass", +# "geometry": { +# "width": 200, +# "height": 276, +# "x": 0, +# "y": 0 +# }, +# "resolution": { +# "x": "300", +# "y": "300" +# }, +# "colorspace": "sRGB", +# "channelDepth": { +# "red": 8, +# "green": 8, +# "blue": 8 +# }, +# "quality": 92, +# "properties": { +# "date:create": "2016-07-11T19:17:53+08:00", +# "date:modify": "2016-07-11T19:17:53+08:00", +# "exif:ColorSpace": "1", +# "exif:ExifImageLength": "276", +# "exif:ExifImageWidth": "200", +# "exif:ExifOffset": "90", +# "exif:Orientation": "1", +# "exif:ResolutionUnit": "2", +# "exif:XResolution": "300/1", +# "exif:YResolution": "300/1", +# "icc:copyright": "Copyright (c) 1998 Hewlett-Packard Company", +# "icc:description": "sRGB IEC61966-2.1", +# "icc:manufacturer": "IEC http://www.iec.ch", +# "icc:model": "IEC 61966-2.1 Default RGB colour space - sRGB", +# "jpeg:colorspace": "2", +# "jpeg:sampling-factor": "1x1,1x1,1x1", +# "signature": "1b2336f023e5be4a9f357848df9803527afacd4987ecc18c4295a272403e52c1" +# }, +# ... +# } +``` + +### Pixels + +With MiniMagick you can retrieve a matrix of image pixels, where each member of +the matrix is a 3-element array of numbers between 0-255, one for each range of +the RGB color channels. + +```rb +image = MiniMagick::Image.open("image.jpg") +pixels = image.get_pixels +pixels[3][2][1] # the green channel value from the 4th-row, 3rd-column pixel +``` + +It can also be called after applying transformations: + +```rb +image = MiniMagick::Image.open("image.jpg") +image.crop "20x30+10+5" +image.colorspace "Gray" +pixels = image.get_pixels +``` + +### Pixels To Image + +Sometimes when you have pixels and want to create image from pixels, you can do this to form an image: + +```rb +image = MiniMagick::Image.open('/Users/rabin/input.jpg') +pixels = image.get_pixels +depth = 8 +dimension = [image.width, image.height] +map = 'rgb' +image = MiniMagick::Image.get_image_from_pixels(pixels, dimension, map, depth ,'jpg') +image.write('/Users/rabin/output.jpg') +``` + +In this example, the returned pixels should now have equal R, G, and B values. + +### Configuration + +Here are the available configuration options with their default values: + +```rb +MiniMagick.configure do |config| + config.timeout = nil # number of seconds IM commands may take + config.errors = true # raise errors non nonzero exit status + config.warnings = true # forward warnings to standard error + config.tmpdir = Dir.tmpdir # alternative directory for tempfiles + config.logger = Logger.new($stdout) # where to log IM commands + config.cli_prefix = nil # add prefix to all IM commands + config.cli_env = {} # environment variables to set for IM commands + config.restricted_env = false # when true, block IM commands from accessing system environment variables other than those in cli_env +end +``` + +For a more information, see +[Configuration](https://rubydoc.info/gems/mini_magick/MiniMagick/Configuration) API documentation. + +### Composite + +MiniMagick also allows you to +[composite](http://www.imagemagick.org/script/composite.php) images: + +```rb +first_image = MiniMagick::Image.new("first.jpg") +second_image = MiniMagick::Image.new("second.jpg") +result = first_image.composite(second_image) do |c| + c.compose "Over" # OverCompositeOp + c.geometry "+20+20" # copy second_image onto first_image from (20, 20) +end +result.write "output.jpg" +``` + +### Layers/Frames/Pages + +For multilayered images you can access its layers. + +```rb +gif.frames #=> [...] +pdf.pages #=> [...] +psd.layers #=> [...] + +gif.frames.each_with_index do |frame, idx| + frame.write("frame#{idx}.jpg") +end +``` + +### Image validation + +You can test whether an image is valid by running it through `identify`: + +```rb +image.valid? +image.validate! # raises MiniMagick::Invalid if image is invalid +``` + +### Logging + +You can choose to log MiniMagick commands and their execution times: + +```rb +MiniMagick.logger.level = Logger::DEBUG +``` +``` +D, [2016-03-19T07:31:36.755338 #87191] DEBUG -- : [0.01s] identify /var/folders/k7/6zx6dx6x7ys3rv3srh0nyfj00000gn/T/mini_magick20160319-87191-1ve31n1.jpg +``` + +In Rails you'll probably want to set `MiniMagick.logger = Rails.logger`. + +## Tools + +If you prefer not to use the `MiniMagick::Image` abstraction, you can use ImageMagick's command-line tools directly: + +```rb +MiniMagick.convert do |convert| + convert << "input.jpg" + convert.resize("100x100") + convert.negate + convert << "output.jpg" +end #=> `magick input.jpg -resize 100x100 -negate output.jpg` + +# OR + +convert = MiniMagick.convert +convert << "input.jpg" +convert.resize("100x100") +convert.negate +convert << "output.jpg" +convert.call #=> `magick input.jpg -resize 100x100 -negate output.jpg` +``` + +This way of using MiniMagick is highly recommended if you want to maximize performance of your image processing. There are class methods for each CLI tool: `animate`, `compare`, `composite`, `conjure`, `convert`, `display`, `identify`, `import`, `mogrify` and `stream`. The `MiniMagick.convert` method will use `magick` on ImageMagick 7 and `convert` on ImageMagick 6. + +### Appending + +The most basic way of building a command is appending strings: + +```rb +MiniMagick.convert do |convert| + convert << "input.jpg" + convert.merge! ["-resize", "500x500", "-negate"] + convert << "output.jpg" +end +``` + +Note that it is important that every command you would pass to the command line +has to be separated with `<<`, e.g.: + +```rb +# GOOD +convert << "-resize" << "500x500" + +# BAD +convert << "-resize 500x500" +``` + +Shell escaping is also handled for you. If an option has a value that has +spaces inside it, just pass it as a regular string. + +```rb +convert << "-distort" +convert << "Perspective" +convert << "0,0,0,0 0,45,0,45 69,0,60,10 69,45,60,35" +``` +``` +magick -distort Perspective '0,0,0,0 0,45,0,45 69,0,60,10 69,45,60,35' +``` + +### Methods + +Instead of passing in options directly, you can use Ruby methods: + +```rb +convert.resize("500x500") +convert.rotate(90) +convert.distort("Perspective", "0,0,0,0 0,45,0,45 69,0,60,10 69,45,60,35") +``` + +### Chaining + +Every method call returns `self`, so you can chain them to create logical groups. + +```rb +MiniMagick.convert do |convert| + convert << "input.jpg" + convert.clone(0).background('gray').shadow('80x5+5+5') + convert.negate + convert << "output.jpg" +end +``` + +### "Plus" options + +```rb +MiniMagick.convert do |convert| + convert << "input.jpg" + convert.repage.+ + convert.distort.+("Perspective", "more args") +end +``` +``` +magick input.jpg +repage +distort Perspective 'more args' +``` + +### Stacks + +```rb +MiniMagick.convert do |convert| + convert << "wand.gif" + + convert.stack do |stack| + stack << "wand.gif" + stack.rotate(30) + stack.foo("bar", "baz") + end + # or + convert.stack("wand.gif", { rotate: 30, foo: ["bar", "baz"] }) + + convert << "images.gif" +end +``` +``` +magick wand.gif \( wand.gif -rotate 90 -foo bar baz \) images.gif +``` + +### STDIN and STDOUT + +If you want to pass something to standard input, you can pass the `:stdin` +option to `#call`: + +```rb +identify = MiniMagick.identify +identify.stdin # alias for "-" +identify.call(stdin: image_content) +``` + +MiniMagick also has `#stdout` alias for "-" for outputting file contents to +standard output: + +```rb +content = MiniMagick.convert do |convert| + convert << "input.jpg" + convert.auto_orient + convert.stdout # alias for "-" +end +``` + +### Capturing STDERR + +Some MiniMagick tools such as `compare` output the result of the command on +standard error, even if the command succeeded. The result of +`MiniMagick::Tool#call` is always the standard output, but if you pass it a +block, it will yield the stdout, stderr and exit status of the command: + +```rb +compare = MiniMagick.compare +# build the command +compare.call do |stdout, stderr, status| + # ... +end +``` + +## Configuring + +### GraphicsMagick + +As of MiniMagick 5+, [GraphicsMagick](http://www.graphicsmagick.org/) isn't +officially supported. This means its installation won't be auto-detected, and no +attempts will be made to handle differences in GraphicsMagick API or output. + +However, you can still configure MiniMagick to use it: + +```rb +MiniMagick.configure do |config| + config.graphicsmagick = true +end +``` + +Some MiniMagick features won't be supported, such as global timeout, +`MiniMagick::Image#data` and `MiniMagick::Image#exif`. + +### Limiting resources + +ImageMagick supports a number of [environment variables] for controlling its +resource limits. For example, you can enforce memory or execution time limits by +setting the following: + +```rb +MiniMagick.configure do |config| + config.cli_env = { + "MAGICK_MEMORY_LIMIT" => "128MiB", + "MAGICK_MAP_LIMIT" => "64MiB", + "MAGICK_TIME_LIMIT" => "30" + } +end +``` + +For time limit you can also use the `timeout` configuration: + +```rb +MiniMagick.configure do |config| + config.timeout = 30 # 30 seconds +end +``` + +### Changing temporary directory + +ImageMagick allows you to change the temporary directory to process the image file: + +```rb +MiniMagick.configure do |config| + config.tmpdir = File.join(Dir.tmpdir, "/my/new/tmp_dir") +end +``` + +The example directory `/my/new/tmp_dir` must exist and must be writable. + +If not configured, it will default to `Dir.tmpdir`. + +### Ignoring STDERR + +If you're receiving warnings from ImageMagick that you don't care about, you +can avoid them being forwarded to standard error: + +```rb +MiniMagick.configure do |config| + config.warnings = false +end +``` + +### Avoiding raising errors + +This gem raises an error when ImageMagick returns a nonzero exit code. +Sometimes, however, ImageMagick returns nonzero exit codes when the command +actually went ok. In these cases, to avoid raising errors, you can add the +following configuration: + +```rb +MiniMagick.configure do |config| + config.errors = false +end +``` + +You can also pass `errors: false` to individual commands: + +```rb +MiniMagick.identify(errors: false) do |b| + b.help +end +``` + +## Thinking of switching from RMagick? + +Unlike RMagick, MiniMagick is a much thinner wrapper around ImageMagick. + +* To piece together MiniMagick commands refer to the [Mogrify + Documentation](https://imagemagick.org/script/mogrify.php). For instance + you can use the `-flop` option as `image.flop`. +* Operations on a MiniMagick image tend to happen in-place as `image.trim`, + whereas RMagick has both copying and in-place methods like `image.trim` and + `image.trim!`. +* To open files with MiniMagick you use `MiniMagick::Image.open` as you would + `Magick::Image.read`. To open a file and directly edit it, use + `MiniMagick::Image.new`. + +[environment variables]: https://imagemagick.org/script/resources.php#environment diff --git a/gems/gems/mini_magick-5.3.1/Rakefile b/gems/gems/mini_magick-5.3.1/Rakefile new file mode 100644 index 0000000..859b45a --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/Rakefile @@ -0,0 +1,16 @@ +require 'bundler' +Bundler::GemHelper.install_tasks + +$:.unshift 'lib' + +desc 'Default: run unit tests.' +task default: %i[print_version spec] + +task :print_version do + puts `mogrify --version` +end + +require 'rspec/core/rake_task' + +desc 'Run specs' +RSpec::Core::RakeTask.new { |t| t.pattern = './spec/**/*_spec.rb' } diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick.rb new file mode 100644 index 0000000..12770aa --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick.rb @@ -0,0 +1,40 @@ +require 'mini_magick/version' +require 'mini_magick/configuration' +require 'mini_magick/utilities' +require 'mini_magick/tool' +require 'mini_magick/image' + +module MiniMagick + + Error = Class.new(RuntimeError) + Invalid = Class.new(StandardError) + TimeoutError = Class.new(Error) + + extend MiniMagick::Configuration + + ## + # Checks whether ImageMagick 7 is installed. + # + # @return [Boolean] + def self.imagemagick7? + return false if graphicsmagick + return @imagemagick7 if defined?(@imagemagick7) + @imagemagick7 = !!MiniMagick::Utilities.which("magick") + end + + %w[animate compare composite conjure convert display identify import mogrify montage stream].each do |tool| + define_singleton_method(tool) do |**options, &block| + name = imagemagick7? && tool == "convert" ? "magick" : tool + MiniMagick::Tool.new(name, **options, &block) + end + end + + ## + # Returns ImageMagick version. + # + # @return [String] + def self.cli_version + output = MiniMagick.identify(&:version) + output[/\d+\.\d+\.\d+(-\d+)?/] + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/configuration.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/configuration.rb new file mode 100644 index 0000000..f2b534e --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/configuration.rb @@ -0,0 +1,101 @@ +require 'mini_magick/utilities' +require 'logger' + +module MiniMagick + module Configuration + + ## + # Uses [GraphicsMagick](http://www.graphicsmagick.org/) instead of + # ImageMagick, by prefixing commands with `gm` instead of `magick`. + # + # @return [Boolean] + attr_accessor :graphicsmagick + + ## + # Adds a prefix to the CLI command. + # For example, you could use `firejail` to run all commands in a sandbox. + # Can be a string, or an array of strings. + # e.g. 'firejail', or ['firejail', '--force'] + # + # @return [String] + # @return [Array] + # + attr_accessor :cli_prefix + + ## + # Adds environment variables to every CLI command call. + # For example, you could use it to set `LD_PRELOAD="/path/to/libsomething.so"`. + # Must be a hash of strings keyed to valid environment variable name strings. + # e.g. {'MY_ENV' => 'my value'} + # + # @return [Hash] + # + attr_accessor :cli_env + + ## + # If set to true, Open3 will restrict system calls to access only + # environment variables defined in :cli_env, plus HOME, PATH, and LANG + # since those are required for such system calls. It will not pass on any + # other environment variables from the system. + # + # @return [Boolean] + # + attr_accessor :restricted_env + + ## + # If you don't want commands to take too long, you can set a timeout (in + # seconds). + # + # @return [Integer] + # + attr_accessor :timeout + ## + # Logger for commands, default is `Logger.new($stdout)`, but you can + # override it, for example if you want the logs to be written to a file. + # + # @return [Logger] + # + attr_accessor :logger + ## + # Temporary directory used by MiniMagick, default is `Dir.tmpdir`, but + # you can override it. + # + # @return [String] + # + attr_accessor :tmpdir + + ## + # If set to `false`, it will not raise errors when ImageMagick returns + # status code different than 0. Defaults to `true`. + # + # @return [Boolean] + # + attr_accessor :errors + + ## + # If set to `false`, it will not forward warnings from ImageMagick to + # standard error. + attr_accessor :warnings + + def self.extended(base) + base.tmpdir = Dir.tmpdir + base.errors = true + base.logger = Logger.new($stdout).tap { |l| l.level = Logger::INFO } + base.warnings = true + base.cli_env = {}.freeze + base.restricted_env = false + base.graphicsmagick = false + end + + ## + # @yield [self] + # @example + # MiniMagick.configure do |config| + # config.timeout = 5 + # end + # + def configure + yield self + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/image.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/image.rb new file mode 100644 index 0000000..0cb4f29 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/image.rb @@ -0,0 +1,609 @@ +require 'tempfile' +require 'stringio' +require 'pathname' +require 'uri' +require 'open-uri' + +require 'mini_magick/image/info' +require 'mini_magick/utilities' + +module MiniMagick + class Image + + ## + # This is the primary loading method used by all of the other class + # methods. + # + # Use this to pass in a stream object. Must respond to #read(size) or be a + # binary string object (BLOB) + # + # Probably easier to use the {.open} method if you want to open a file or a + # URL. + # + # @param stream [#read, String] Some kind of stream object that needs + # to be read or is a binary String blob + # @param ext [String] A manual extension to use for reading the file. Not + # required, but if you are having issues, give this a try. + # @return [MiniMagick::Image] + # + def self.read(stream, ext = nil) + if stream.is_a?(String) + stream = StringIO.new(stream) + end + + create(ext) { |file| IO.copy_stream(stream, file) } + end + + ## + # Creates an image object from a binary string blob which contains raw + # pixel data (i.e. no header data). + # + # @param blob [String] Binary string blob containing raw pixel data. + # @param columns [Integer] Number of columns. + # @param rows [Integer] Number of rows. + # @param depth [Integer] Bit depth of the encoded pixel data. + # @param map [String] A code for the mapping of the pixel data. Example: + # 'gray' or 'rgb'. + # @param format [String] The file extension of the image format to be + # used when creating the image object. + # Defaults to 'png'. + # @return [MiniMagick::Image] The loaded image. + # + def self.import_pixels(blob, columns, rows, depth, map, format = 'png') + # Create an image object with the raw pixel data string: + read(blob, ".dat").tap do |image| + output_path = image.path.sub(/\.\w+$/, ".#{format}") + # Use ImageMagick to convert the raw data file to an image file of the + # desired format: + MiniMagick.convert do |convert| + convert.size "#{columns}x#{rows}" + convert.depth depth + convert << "#{map}:#{image.path}" + convert << output_path + end + + image.path.replace output_path + end + end + + ## + # Opens a specific image file either on the local file system or at a URI. + # Use this if you don't want to overwrite the image file. + # + # Extension is either guessed from the path or you can specify it as a + # second parameter. + # + # @param path_or_url [String] Either a local file path or a URL that + # open-uri can read + # @param ext [String] Specify the extension you want to read it as + # @param options [Hash] Specify options for the open method + # @return [MiniMagick::Image] The loaded image + # + def self.open(path_or_url, ext = nil, **options) + if path_or_url.to_s =~ %r{\A(https?|ftp)://} + uri = URI(path_or_url) + ext ||= File.extname(uri.path).sub(/:.*/, '') # handle URL including a colon + uri.open(options) { |file| read(file, ext) } + else + pathname = Pathname(path_or_url) + ext ||= File.extname(pathname.to_s) + pathname.open(binmode: true, **options) { |file| read(file, ext) } + end + end + + ## + # Used to create a new Image object data-copy. Not used to "paint" or + # that kind of thing. + # + # Takes an extension in a block and can be used to build a new Image + # object. Used by both {.open} and {.read} to create a new object. Ensures + # we have a good tempfile. + # + # @param ext [String] Specify the extension you want to read it as + # @yield [Tempfile] You can #write bits to this object to create the new + # Image + # @return [MiniMagick::Image] The created image + # + def self.create(ext = nil, &block) + tempfile = MiniMagick::Utilities.tempfile(ext.to_s.downcase, &block) + + new(tempfile.path, tempfile) + end + + ## + # @private + # @!macro [attach] attribute + # @!attribute [r] $1 + # + def self.attribute(name, key = name.to_s) + define_method(name) do |*args| + if args.any? && name != :resolution + mogrify { |b| b.send(name, *args) } + else + @info[key, *args] + end + end + end + + ## + # @return [String] The location of the current working file + # + attr_reader :path + ## + # @return [Tempfile] The underlying temporary file + # + attr_reader :tempfile + + ## + # Create a new {MiniMagick::Image} object. + # + # _DANGER_: The file location passed in here is the *working copy*. That + # is, it gets *modified*. You can either copy it yourself or use {.open} + # which creates a temporary file for you and protects your original. + # + # @param input_path [String, Pathname] The location of an image file + # @yield [MiniMagick::Tool] If block is given, {#combine_options} + # is called. + # + def initialize(input_path, tempfile = nil, &block) + @path = input_path.to_s + @tempfile = tempfile + @info = MiniMagick::Image::Info.new(@path) + + combine_options(&block) if block + end + + def ==(other) + self.class == other.class && signature == other.signature + end + alias eql? == + + def hash + signature.hash + end + + ## + # Returns raw image data. + # + # @return [String] Binary string + # + def to_blob + File.binread(path) + end + + ## + # Checks to make sure that MiniMagick can read the file and understand it. + # + # This uses the 'identify' command line utility to check the file. If you + # are having issues with this, then please work directly with the + # 'identify' command and see if you can figure out what the issue is. + # + # @return [Boolean] + # + def valid? + validate! + true + rescue MiniMagick::Invalid + false + end + + ## + # Runs `identify` on the current image, and raises an error if it doesn't + # pass. + # + # @raise [MiniMagick::Invalid] + # + def validate! + identify + rescue MiniMagick::Error => error + raise MiniMagick::Invalid, error.message + end + + ## + # Returns the image format (e.g. "JPEG", "GIF"). + # + # @return [String] + # + attribute :type, "format" + ## + # @return [Integer] + # + attribute :width + ## + # @return [Integer] + # + attribute :height + ## + # @return [Array] + # + attribute :dimensions + ## + # Returns the file size of the image (in bytes). + # + # @return [Integer] + # + attribute :size + ## + # Returns the file size in a human readable format. + # + # @return [String] + # + attribute :human_size + ## + # @return [String] + # + attribute :colorspace + ## + # @return [Hash] + # + attribute :exif + ## + # Returns the resolution of the photo. You can optionally specify the + # units measurement. + # + # @example + # image.resolution("PixelsPerInch") #=> [250, 250] + # @see http://www.imagemagick.org/script/command-line-options.php#units + # @return [Array] + # + attribute :resolution + ## + # Returns the message digest of this image as a SHA-256, hexadecimal + # encoded string. This signature uniquely identifies the image and is + # convenient for determining if an image has been modified or whether two + # images are identical. + # + # @example + # image.signature #=> "60a7848c4ca6e36b8e2c5dea632ecdc29e9637791d2c59ebf7a54c0c6a74ef7e" + # @see http://www.imagemagick.org/api/signature.php + # @return [String] + # + attribute :signature + ## + # Returns the result of converting the image to JSON format. + # + # @return [Hash] + attribute :data + + ## + # Use this method if you want to access raw Identify's format API. + # + # @example + # image["%w %h"] #=> "250 450" + # image["%r"] #=> "DirectClass sRGB" + # + # @param value [String] + # @see http://www.imagemagick.org/script/escape.php + # @return [String] + # + def [](value) + @info[value.to_s] + end + alias info [] + + ## + # Returns layers of the image. For example, JPEGs are 1-layered, but + # formats like PSDs, GIFs and PDFs can have multiple layers/frames/pages. + # + # @example + # image = MiniMagick::Image.new("document.pdf") + # image.pages.each_with_index do |page, idx| + # page.write("page#{idx}.pdf") + # end + # @return [Array] + # + def layers + layers_count = identify.lines.count + layers_count.times.map do |idx| + MiniMagick::Image.new("#{path}[#{idx}]") + end + end + alias pages layers + alias frames layers + + ## + # Returns a matrix of pixels from the image. The matrix is constructed as + # an array (1) of arrays (2) of arrays (3) of unsigned integers: + # + # 1) one for each row of pixels + # 2) one for each column of pixels + # 3) three or four elements in the range 0-255, one for each of the RGB(A) color channels + # + # @example + # img = MiniMagick::Image.open 'image.jpg' + # pixels = img.get_pixels + # pixels[3][2][1] # the green channel value from the 4th-row, 3rd-column pixel + # + # @example + # img = MiniMagick::Image.open 'image.jpg' + # pixels = img.get_pixels("RGBA") + # pixels[3][2][3] # the alpha channel value from the 4th-row, 3rd-column pixel + # + # It can also be called after applying transformations: + # + # @example + # img = MiniMagick::Image.open 'image.jpg' + # img.crop '20x30+10+5' + # img.colorspace 'Gray' + # pixels = img.get_pixels + # + # In this example, all pixels in pix should now have equal R, G, and B values. + # + # @param map [String] A code for the mapping of the pixel data. Must be either + # 'RGB' or 'RGBA'. Default to 'RGB' + # @return [Array] Matrix of each color of each pixel + def get_pixels(map="RGB") + raise ArgumentError, "Invalid map value" unless ["RGB", "RGBA"].include?(map) + convert = MiniMagick.convert + convert << path + convert.depth(8) + convert << "#{map}:-" + + # Do not use `convert.call` here. We need the whole binary (unstripped) output here. + shell = MiniMagick::Shell.new + output, * = shell.run(convert.command) + + pixels_array = output.unpack("C*") + pixels = pixels_array.each_slice(map.length).each_slice(width).to_a + + # deallocate large intermediary objects + output.clear + pixels_array.clear + + pixels + end + + ## + # This is used to create image from pixels. This might be required if you + # create pixels for some image processing reasons and you want to form + # image from those pixels. + # + # *DANGER*: This operation can be very expensive. Please try to use with + # caution. + # + # @example + # # It is given in readme.md file + ## + def self.get_image_from_pixels(pixels, dimension, map, depth, format) + pixels = pixels.flatten + blob = pixels.pack('C*') + import_pixels(blob, *dimension, depth, map, format) + end + + ## + # This is used to change the format of the image. That is, from "tiff to + # jpg" or something like that. Once you run it, the instance is pointing to + # a new file with a new extension! + # + # *DANGER*: This renames the file that the instance is pointing to. So, if + # you manually opened the file with Image.new(file_path)... Then that file + # is DELETED! If you used Image.open(file) then you are OK. The original + # file will still be there. But, any changes to it might not be... + # + # Formatting an animation into a non-animated type will result in + # ImageMagick creating multiple pages (starting with 0). You can choose + # which page you want to manipulate. We default to the first page. + # + # If you would like to convert between animated formats, pass nil as your + # page and ImageMagick will copy all of the pages. + # + # @param format [String] The target format... Like 'jpg', 'gif', 'tiff' etc. + # @param page [Integer] If this is an animated gif, say which 'page' you + # want with an integer. Default 0 will convert only the first page; 'nil' + # will convert all pages. + # @param read_opts [Hash] Any read options to be passed to ImageMagick + # for example: image.format('jpg', page, {density: '300'}) + # @yield [MiniMagick::Tool] It optionally yields the command, + # if you want to add something. + # @return [self] + # + def format(format, page = 0, read_opts={}) + if @tempfile + new_tempfile = MiniMagick::Utilities.tempfile(".#{format}") + new_path = new_tempfile.path + else + new_path = Pathname(path).sub_ext(".#{format}").to_s + end + + input_path = path.dup + input_path << "[#{page}]" if page && !layer? + + MiniMagick.convert do |convert| + read_opts.each do |opt, val| + convert.send(opt.to_s, val) + end + convert << input_path + yield convert if block_given? + convert << new_path + end + + if @tempfile + destroy! + @tempfile = new_tempfile + else + File.delete(path) unless path == new_path || layer? + end + + path.replace new_path + @info.clear + + self + rescue MiniMagick::Invalid, MiniMagick::Error => e + new_tempfile.unlink if new_tempfile && @tempfile != new_tempfile + raise e + end + + ## + # You can use multiple commands together using this method. Very easy to + # use! + # + # @example + # image.combine_options do |c| + # c.draw "image Over 0,0 10,10 '#{MINUS_IMAGE_PATH}'" + # c.thumbnail "300x500>" + # c.background "blue" + # end + # + # @yield [MiniMagick::Command] + # @see http://www.imagemagick.org/script/mogrify.php + # @return [self] + # + def combine_options(&block) + mogrify(&block) + end + + ## + # If an unknown method is called then it is sent through the mogrify + # program. + # + # @see http://www.imagemagick.org/script/mogrify.php + # @return [self] + # + def method_missing(name, *args) + mogrify do |builder| + builder.send(name, *args) + end + end + + ## + # Prevents ruby from calling `#to_ary` on the image when checking if it's a + # splattable data structure in certain cases. + def respond_to_missing?(name, include_all) + false + end + + ## + # Writes the temporary file out to either a file location (by passing in a + # String) or by passing in a Stream that you can #write(chunk) to + # repeatedly + # + # @param output_to [String, Pathname, #read] Some kind of stream object + # that needs to be read or a file path as a String + # + def write(output_to) + case output_to + when String, Pathname + if layer? + MiniMagick.convert do |builder| + builder << path + builder << output_to + end + else + FileUtils.copy_file path, output_to unless path == output_to.to_s + end + else + IO.copy_stream File.open(path, "rb"), output_to + end + end + + ## + # @example + # first_image = MiniMagick::Image.open "first.jpg" + # second_image = MiniMagick::Image.open "second.jpg" + # result = first_image.composite(second_image) do |c| + # c.compose "Over" # OverCompositeOp + # c.geometry "+20+20" # copy second_image onto first_image from (20, 20) + # end + # result.write "output.jpg" + # + # @see http://www.imagemagick.org/script/composite.php + # + def composite(other_image, output_extension = type.downcase, mask = nil) + output_tempfile = MiniMagick::Utilities.tempfile(".#{output_extension}") + + MiniMagick.composite do |composite| + yield composite if block_given? + composite << other_image.path + composite << path + composite << mask.path if mask + composite << output_tempfile.path + end + + Image.new(output_tempfile.path, output_tempfile) + end + + ## + # Collapse images with sequences to the first frame (i.e. animated gifs) and + # preserve quality. + # + # @param frame [Integer] The frame to which to collapse to, defaults to `0`. + # @return [self] + # + def collapse!(frame = 0) + mogrify(frame) { |builder| builder.quality(100) } + end + + ## + # Destroys the tempfile (created by {.open}) if it exists. + # + def destroy! + if @tempfile + FileUtils.rm_f @tempfile.path.sub(/mpc$/, "cache") if @tempfile.path.end_with?(".mpc") + @tempfile.unlink + end + end + + ## + # Runs `identify` on itself. Accepts an optional block for adding more + # options to `identify`. + # + # @example + # image = MiniMagick::Image.open("image.jpg") + # image.identify do |b| + # b.verbose + # end # runs `identify -verbose image.jpg` + # @return [String] Output from `identify` + # @yield [MiniMagick::Tool] + # + def identify + MiniMagick.identify do |builder| + yield builder if block_given? + builder << path + end + end + + def mogrify(page = nil) + MiniMagick.mogrify do |builder| + yield builder if block_given? + if builder.args.include?("-format") + fail MiniMagick::Error, "you must call #format on a MiniMagick::Image directly" + end + builder << (page ? "#{path}[#{page}]" : path) + end + + @info.clear + + self + end + + def layer? + path =~ /\[\d+\]$/ + end + + ## + # Compares if image width + # is greater than height + # ============ + # | | + # | | + # ============ + # @return [Boolean] + def landscape? + width > height + end + + ## + # Compares if image height + # is greater than width + # ====== + # | | + # | | + # | | + # | | + # ====== + # @return [Boolean] + def portrait? + height > width + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/image/info.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/image/info.rb new file mode 100644 index 0000000..a098b58 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/image/info.rb @@ -0,0 +1,151 @@ +require "json" + +module MiniMagick + class Image + # @private + class Info + ASCII_ENCODED_EXIF_KEYS = %w[ExifVersion FlashPixVersion] + + def initialize(path) + @path = path + @info = {} + end + + def [](value, *args) + case value + when "format", "width", "height", "dimensions", "size", "human_size" + cheap_info(value) + when "colorspace" + colorspace + when "resolution" + resolution(*args) + when "signature" + signature + when /^EXIF\:/i + raw_exif(value) + when "exif" + exif + when "data" + data + else + raw(value) + end + end + + def clear + @info.clear + end + + def cheap_info(value) + @info.fetch(value) do + format, width, height, size = parse_warnings(self["%m %w %h %b"]).split(" ") + + path = @path + path = path.match(/\[\d+\]$/).pre_match if path =~ /\[\d+\]$/ + + @info.update( + "format" => format, + "width" => Integer(width), + "height" => Integer(height), + "dimensions" => [Integer(width), Integer(height)], + "size" => File.size(path), + "human_size" => size, + ) + + @info.fetch(value) + end + rescue ArgumentError, TypeError + raise MiniMagick::Invalid, "image data can't be read" + end + + def parse_warnings(raw_info) + return raw_info unless raw_info.split("\n").size > 1 + + raw_info.split("\n").each do |line| + # must match "%m %w %h %b" + return line if line.match?(/^[A-Z]+ \d+ \d+ \d+(|\.\d+)([KMGTPEZY]{0,1})B$/) + end + raise TypeError + end + + def colorspace + @info["colorspace"] ||= self["%r"] + end + + def resolution(unit = nil) + output = identify do |b| + b.units unit if unit + b.format "%x %y" + end + output.split(" ").map(&:to_i) + end + + def raw_exif(value) + self["%[#{value}]"] + end + + def exif + @info["exif"] ||= ( + hash = {} + output = self["%[EXIF:*]"] + + output.each_line do |line| + line = line.chomp("\n") + + if match = line.match(/^exif:/) + key, value = match.post_match.split("=", 2) + value = decode_comma_separated_ascii_characters(value) if ASCII_ENCODED_EXIF_KEYS.include?(key) + hash[key] = value + else + hash[hash.keys.last] << "\n#{line}" + end + end + + hash + ) + end + + def raw(value) + @info["raw:#{value}"] ||= identify { |b| b.format(value) } + end + + def signature + @info["signature"] ||= self["%#"] + end + + def data + @info["data"] ||= ( + json = MiniMagick.convert do |convert| + convert << path + convert << "json:" + end + + data = JSON.parse(json) + data = data.fetch(0) if data.is_a?(Array) + data.fetch("image") + ) + end + + def identify + MiniMagick.identify do |builder| + yield builder if block_given? + builder << path + end + end + + private + + def decode_comma_separated_ascii_characters(encoded_value) + return encoded_value unless encoded_value.include?(',') + encoded_value.scan(/\d+/).map(&:to_i).map(&:chr).join + end + + def path + value = @path + value += "[0]" unless value =~ /\[\d+\]$/ + value + end + + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/shell.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/shell.rb new file mode 100644 index 0000000..814b5a0 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/shell.rb @@ -0,0 +1,53 @@ +require "open3" + +module MiniMagick + ## + # Sends commands to the shell (more precisely, it sends commands directly to + # the operating system). + # + # @private + # + class Shell + + def run(command, errors: MiniMagick.errors, warnings: MiniMagick.warnings, **options) + stdout, stderr, status = execute(command, **options) + + if status != 0 + if stderr.include?("time limit exceeded") + fail MiniMagick::TimeoutError, "`#{command.join(" ")}` has timed out" + elsif errors + fail MiniMagick::Error, "`#{command.join(" ")}` failed with status: #{status.inspect} and error:\n#{stderr}" + end + end + + $stderr.print(stderr) if warnings + + [stdout, stderr, status] + end + + def execute(command, stdin: "", timeout: MiniMagick.timeout) + env = MiniMagick.restricted_env ? ENV.to_h.slice("HOME", "PATH", "LANG") : {} # Using #to_h for Ruby 2.5 compatibility. + env.merge!(MiniMagick.cli_env) + env["MAGICK_TIME_LIMIT"] = timeout.to_s if timeout + + stdout, stderr, status = log(command.join(" ")) do + Open3.capture3(env, *command, stdin_data: stdin, unsetenv_others: MiniMagick.restricted_env) + end + + [stdout, stderr, status&.exitstatus] + rescue Errno::ENOENT, IOError + ["", "executable not found: \"#{command.first}\"", 127] + end + + private + + def log(command, &block) + time_start = Process.clock_gettime(Process::CLOCK_MONOTONIC) + value = block.call + duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - time_start + MiniMagick.logger.debug "[%.2fs] %s" % [duration, command] + value + end + + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/tool.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/tool.rb new file mode 100644 index 0000000..a0e2868 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/tool.rb @@ -0,0 +1,274 @@ +require "mini_magick/shell" + +module MiniMagick + ## + # Class that wraps command-line tools directly, as opposed MiniMagick::Image + # which is more high-level. + # + # @example + # MiniMagick.mogrify do |mogrify| + # mogrify.resize "500x500" + # mogrify << "path/to/image.jpg" + # end + # + class Tool + + CREATION_OPERATORS = %w[xc canvas logo rose gradient radial-gradient plasma + pattern text pango] + + ## + # Aside from classic instantiation, it also accepts a block, and then + # executes the command in the end. + # + # @example + # puts MiniMagick.identify(&:version) + # + # @return [MiniMagick::Tool, String] If no block is given, returns an + # instance of the tool, if block is given, returns the output of the + # command. + # + def self.new(name, **options) + instance = super + + if block_given? + yield instance + instance.call + else + instance + end + end + + # @private + attr_reader :name, :args + + # @param name [String] + # @param options [Hash] + # @option options [Boolean] :errors Whether to raise errors on non-zero + # exit codes. + # @option options [Boolean] :warnings Whether to print warnings to stderrr. + # @option options [String] :stdin Content to send to standard input stream. + # @example + # MiniMagick.identify(errors: false) do |identify| + # identify.help # returns exit status 1, which would otherwise throw an error + # end + def initialize(name, **options) + @name = name + @args = [] + @options = options + end + + ## + # Executes the command that has been built up. + # + # @example + # mogrify = MiniMagick.mogrify + # mogrify.resize("500x500") + # mogrify << "path/to/image.jpg" + # mogrify.call # executes `mogrify -resize 500x500 path/to/image.jpg` + # + # @example + # mogrify = MiniMagick.mogrify + # # build the command + # mogrify.call do |stdout, stderr, status| + # # ... + # end + # + # @yield [Array] Optionally yields stdout, stderr, and exit status + # + # @return [String] Returns the output of the command + # + def call(**options) + options = @options.merge(options) + options[:warnings] = false if block_given? + + shell = MiniMagick::Shell.new + stdout, stderr, status = shell.run(command, **options) + yield stdout, stderr, status if block_given? + + stdout.chomp("\n") + end + + ## + # The currently built-up command. + # + # @return [Array] + # + # @example + # mogrify = MiniMagick.mogrify + # mogrify.resize "500x500" + # mogrify.contrast + # mogrify.command #=> ["mogrify", "-resize", "500x500", "-contrast"] + # + def command + [*executable, *args] + end + + ## + # The executable used for this tool. Respects + # {MiniMagick::Configuration#cli_prefix}. + # + # @return [Array] + # + # @example + # identify = MiniMagick.identify + # identify.executable #=> ["magick", "identify"] + # + # @example + # MiniMagick.configure do |config| + # config.cli_prefix = ['firejail', '--force'] + # end + # identify = MiniMagick.identify + # identify.executable #=> ["firejail", "--force", "magick", "identify"] + # + def executable + exe = Array(MiniMagick.cli_prefix).dup + exe << "magick" if MiniMagick.imagemagick7? && name != "magick" + exe << "gm" if MiniMagick.graphicsmagick + exe << name + end + + ## + # Appends raw options, useful for appending image paths. + # + # @return [self] + # + def <<(arg) + args << arg.to_s + self + end + + ## + # Merges a list of raw options. + # + # @return [self] + # + def merge!(new_args) + new_args.each { |arg| self << arg } + self + end + + ## + # Changes the last operator to its "plus" form. + # + # @example + # MiniMagick.mogrify do |mogrify| + # mogrify.antialias.+ + # mogrify.distort.+("Perspective", "0,0,4,5 89,0,45,46") + # end + # # executes `mogrify +antialias +distort Perspective '0,0,4,5 89,0,45,46'` + # + # @return [self] + # + def +(*values) + args[-1] = args[-1].sub(/^-/, '+') + self.merge!(values) + self + end + + ## + # Create an ImageMagick stack in the command (surround. + # + # @example + # MiniMagick.convert do |convert| + # convert << "wand.gif" + # convert.stack do |stack| + # stack << "wand.gif" + # stack.rotate(30) + # end + # convert.append.+ + # convert << "images.gif" + # end + # # executes `convert wand.gif \( wizard.gif -rotate 30 \) +append images.gif` + # + def stack(*args) + self << "(" + args.each do |value| + case value + when Hash then value.each { |key, value| send(key, *value) } + when String then self << value + end + end + yield self if block_given? + self << ")" + end + + ## + # Adds ImageMagick's pseudo-filename `-` for standard input. + # + # @example + # identify = MiniMagick.identify + # identify.stdin + # identify.call(stdin: image_content) + # # executes `identify -` with the given standard input + # + def stdin + self << "-" + end + + ## + # Adds ImageMagick's pseudo-filename `-` for standard output. + # + # @example + # content = MiniMagick.convert do |convert| + # convert << "input.jpg" + # convert.auto_orient + # convert.stdout + # end + # # executes `convert input.jpg -auto-orient -` which returns file contents + # + def stdout + self << "-" + end + + ## + # Define creator operator methods + # + # @example + # mogrify = MiniMagick::Tool.new("mogrify") + # mogrify.canvas("khaki") + # mogrify.command.join(" ") #=> "mogrify canvas:khaki" + # + CREATION_OPERATORS.each do |operator| + define_method(operator.tr('-', '_')) do |value = nil| + self << "#{operator}:#{value}" + self + end + end + + ## + # This option is a valid ImageMagick option, but it's also a Ruby method, + # so we need to override it so that it correctly acts as an option method. + # + def clone(*args) + self << '-clone' + self.merge!(args) + self + end + + ## + # Any undefined method will be transformed into a CLI option + # + # @example + # mogrify = MiniMagick::Tool.new("mogrify") + # mogrify.adaptive_blur("...") + # mogrify.foo_bar + # mogrify.command.join(" ") # => "mogrify -adaptive-blur ... -foo-bar" + # + def method_missing(name, *args) + option = "-#{name.to_s.tr('_', '-')}" + self << option + self.merge!(args) + self + end + + # deprecated tool subclasses + %w[animate compare composite conjure convert display identify import magick mogrify montage stream].each do |tool| + const_set(tool.capitalize, Class.new(self) { + define_method(:initialize) do |*args| + super(tool, *args) + end + }) + deprecate_constant(tool.capitalize) + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/utilities.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/utilities.rb new file mode 100644 index 0000000..22ca078 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/utilities.rb @@ -0,0 +1,33 @@ +require "tempfile" + +module MiniMagick + # @private + module Utilities + + module_function + + ## + # Cross-platform way of finding an executable in the $PATH. + # + # @example + # MiniMagick::Utilities.which('ruby') #=> "/usr/bin/ruby" + # + def which(cmd) + exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] + ENV.fetch('PATH').split(File::PATH_SEPARATOR).each do |path| + exts.each do |ext| + exe = File.join(path, "#{cmd}#{ext}") + return exe if File.executable? exe + end + end + nil + end + + def tempfile(extension) + tempfile = Tempfile.new(["mini_magick", extension], MiniMagick.tmpdir, binmode: true) + yield tempfile if block_given? + tempfile.close + tempfile + end + end +end diff --git a/gems/gems/mini_magick-5.3.1/lib/mini_magick/version.rb b/gems/gems/mini_magick-5.3.1/lib/mini_magick/version.rb new file mode 100644 index 0000000..0385ee6 --- /dev/null +++ b/gems/gems/mini_magick-5.3.1/lib/mini_magick/version.rb @@ -0,0 +1,17 @@ +module MiniMagick + ## + # @return [Gem::Version] + # + def self.version + Gem::Version.new VERSION::STRING + end + + module VERSION + MAJOR = 5 + MINOR = 3 + TINY = 1 + PRE = nil + + STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') + end +end diff --git a/gems/logger-1.7.0.gem b/gems/logger-1.7.0.gem new file mode 100644 index 0000000..061f1cc Binary files /dev/null and b/gems/logger-1.7.0.gem differ diff --git a/gems/mini_magick-5.3.1.gem b/gems/mini_magick-5.3.1.gem new file mode 100644 index 0000000..041f269 Binary files /dev/null and b/gems/mini_magick-5.3.1.gem differ diff --git a/gems/specifications/logger-1.7.0.gemspec b/gems/specifications/logger-1.7.0.gemspec new file mode 100644 index 0000000..1e6464c --- /dev/null +++ b/gems/specifications/logger-1.7.0.gemspec @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +# stub: logger 1.7.0 ruby lib + +Gem::Specification.new do |s| + s.name = "logger".freeze + s.version = "1.7.0".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "changelog_uri" => "https://github.com/ruby/logger/releases" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Naotoshi Seo".freeze, "SHIBATA Hiroshi".freeze] + s.date = "2025-03-27" + s.description = "Provides a simple logging utility for outputting messages.".freeze + s.email = ["sonots@gmail.com".freeze, "hsbt@ruby-lang.org".freeze] + s.homepage = "https://github.com/ruby/logger".freeze + s.licenses = ["Ruby".freeze, "BSD-2-Clause".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.5.0".freeze) + s.rubygems_version = "3.5.9".freeze + s.summary = "Provides a simple logging utility for outputting messages.".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version +end diff --git a/gems/specifications/mime-types-3.7.0.gemspec b/gems/specifications/mime-types-3.7.0.gemspec new file mode 100644 index 0000000..572c3dd --- /dev/null +++ b/gems/specifications/mime-types-3.7.0.gemspec @@ -0,0 +1,40 @@ +# -*- encoding: utf-8 -*- +# stub: mime-types 3.7.0 ruby lib + +Gem::Specification.new do |s| + s.name = "mime-types".freeze + s.version = "3.7.0".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "bug_tracker_uri" => "https://github.com/mime-types/ruby-mime-types/issues", "changelog_uri" => "https://github.com/mime-types/ruby-mime-types/blob/main/CHANGELOG.md", "homepage_uri" => "https://github.com/mime-types/ruby-mime-types/", "rubygems_mfa_required" => "true", "source_code_uri" => "https://github.com/mime-types/ruby-mime-types/" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Austin Ziegler".freeze] + s.date = "2025-05-07" + s.description = "The mime-types library provides a library and registry for information about\nMIME content type definitions. It can be used to determine defined filename\nextensions for MIME types, or to use filename extensions to look up the likely\nMIME type definitions.\n\nVersion 3.0 is a major release that requires Ruby 2.0 compatibility and removes\ndeprecated functions. The columnar registry format introduced in 2.6 has been\nmade the primary format; the registry data has been extracted from this library\nand put into [mime-types-data][data]. Additionally, mime-types is now licensed\nexclusively under the MIT licence and there is a code of conduct in effect.\nThere are a number of other smaller changes described in the History file.".freeze + s.email = ["halostatue@gmail.com".freeze] + s.extra_rdoc_files = ["CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "CONTRIBUTORS.md".freeze, "LICENCE.md".freeze, "Manifest.txt".freeze, "README.md".freeze, "SECURITY.md".freeze] + s.files = ["CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "CONTRIBUTORS.md".freeze, "LICENCE.md".freeze, "Manifest.txt".freeze, "README.md".freeze, "SECURITY.md".freeze] + s.homepage = "https://github.com/mime-types/ruby-mime-types/".freeze + s.licenses = ["MIT".freeze] + s.rdoc_options = ["--main".freeze, "README.md".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze) + s.rubygems_version = "3.5.9".freeze + s.summary = "The mime-types library provides a library and registry for information about MIME content type definitions".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version + + s.specification_version = 4 + + s.add_runtime_dependency(%q.freeze, ["~> 3.2025".freeze, ">= 3.2025.0507".freeze]) + s.add_runtime_dependency(%q.freeze, [">= 0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 4.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 2.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 5.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.4".freeze]) + s.add_development_dependency(%q.freeze, [">= 10.0".freeze, "< 14".freeze]) + s.add_development_dependency(%q.freeze, [">= 0.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) +end diff --git a/gems/specifications/mime-types-data-3.2025.0909.gemspec b/gems/specifications/mime-types-data-3.2025.0909.gemspec new file mode 100644 index 0000000..d934af3 --- /dev/null +++ b/gems/specifications/mime-types-data-3.2025.0909.gemspec @@ -0,0 +1,34 @@ +# -*- encoding: utf-8 -*- +# stub: mime-types-data 3.2025.0909 ruby lib + +Gem::Specification.new do |s| + s.name = "mime-types-data".freeze + s.version = "3.2025.0909".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "bug_tracker_uri" => "https://github.com/mime-types/mime-types-data/issues", "changelog_uri" => "https://github.com/mime-types/mime-types-data/blob/main/CHANGELOG.md", "homepage_uri" => "https://github.com/mime-types/mime-types-data/", "rubygems_mfa_required" => "true", "source_code_uri" => "https://github.com/mime-types/mime-types-data/" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Austin Ziegler".freeze] + s.date = "1980-01-02" + s.description = "mime-types-data provides a registry for information about MIME media type definitions. It can be used with the Ruby mime-types library or other software to determine defined filename extensions for MIME types, or to use filename extensions to look up the likely MIME type definitions.".freeze + s.email = ["halostatue@gmail.com".freeze] + s.extra_rdoc_files = ["CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "CONTRIBUTORS.md".freeze, "LICENCE.md".freeze, "Manifest.txt".freeze, "README.md".freeze, "SECURITY.md".freeze] + s.files = ["CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "CONTRIBUTORS.md".freeze, "LICENCE.md".freeze, "Manifest.txt".freeze, "README.md".freeze, "SECURITY.md".freeze] + s.homepage = "https://github.com/mime-types/mime-types-data/".freeze + s.licenses = ["MIT".freeze] + s.rdoc_options = ["--main".freeze, "README.md".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze) + s.rubygems_version = "3.5.9".freeze + s.summary = "mime-types-data provides a registry for information about MIME media type definitions".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version + + s.specification_version = 4 + + s.add_development_dependency(%q.freeze, ["~> 4.0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 2.0".freeze]) + s.add_development_dependency(%q.freeze, ["> 3.6.2".freeze, "< 5".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.6".freeze]) + s.add_development_dependency(%q.freeze, [">= 10.0".freeze, "< 14".freeze]) + s.add_development_dependency(%q.freeze, ["~> 1.0".freeze]) +end diff --git a/gems/specifications/mini_magick-5.3.1.gemspec b/gems/specifications/mini_magick-5.3.1.gemspec new file mode 100644 index 0000000..f740dde --- /dev/null +++ b/gems/specifications/mini_magick-5.3.1.gemspec @@ -0,0 +1,29 @@ +# -*- encoding: utf-8 -*- +# stub: mini_magick 5.3.1 ruby lib + +Gem::Specification.new do |s| + s.name = "mini_magick".freeze + s.version = "5.3.1".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "changelog_uri" => "https://github.com/minimagick/minimagick/releases" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Corey Johnson".freeze, "Hampton Catlin".freeze, "Peter Kieltyka".freeze, "James Miller".freeze, "Thiago Fernandes Massa".freeze, "Janko Marohni\u0107".freeze] + s.date = "1980-01-02" + s.description = "Manipulate images with minimal use of memory via ImageMagick".freeze + s.email = ["probablycorey@gmail.com".freeze, "hcatlin@gmail.com".freeze, "peter@nulayer.com".freeze, "bensie@gmail.com".freeze, "thiagown@gmail.com".freeze, "janko.marohnic@gmail.com".freeze] + s.homepage = "https://github.com/minimagick/minimagick".freeze + s.licenses = ["MIT".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.5".freeze) + s.requirements = ["You must have ImageMagick installed".freeze] + s.rubygems_version = "3.5.9".freeze + s.summary = "Manipulate images with minimal use of memory via ImageMagick".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version + + s.specification_version = 4 + + s.add_runtime_dependency(%q.freeze, [">= 0".freeze]) + s.add_development_dependency(%q.freeze, [">= 0".freeze]) + s.add_development_dependency(%q.freeze, ["~> 3.5".freeze]) +end diff --git a/gems/specifications/multipart-post-2.4.1.gemspec b/gems/specifications/multipart-post-2.4.1.gemspec new file mode 100644 index 0000000..d587606 --- /dev/null +++ b/gems/specifications/multipart-post-2.4.1.gemspec @@ -0,0 +1,21 @@ +# -*- encoding: utf-8 -*- +# stub: multipart-post 2.4.1 ruby lib + +Gem::Specification.new do |s| + s.name = "multipart-post".freeze + s.version = "2.4.1".freeze + + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.metadata = { "documentation_uri" => "https://socketry.github.io/multipart-post/", "source_code_uri" => "https://github.com/socketry/multipart-post.git" } if s.respond_to? :metadata= + s.require_paths = ["lib".freeze] + s.authors = ["Nick Sieger".freeze, "Samuel Williams".freeze, "Olle Jonsson".freeze, "McClain Looney".freeze, "Lewis Cowles".freeze, "Gustav Ernberg".freeze, "Patrick Davey".freeze, "Steven Davidovitz".freeze, "Alex Koppel".freeze, "Ethan Turkeltaub".freeze, "Jagtesh Chadha".freeze, "Jason York".freeze, "Tohru Hashimoto".freeze, "Vincent Pell\u00E9".freeze, "hexfet".freeze, "Christine Yen".freeze, "David Moles".freeze, "Eric Hutzelman".freeze, "Feuda Nan".freeze, "Gerrit Riessen".freeze, "Jan Piotrowski".freeze, "Jan-Joost Spanjers".freeze, "Jason Moore".freeze, "Jeff Hodges".freeze, "Johannes Wagener".freeze, "Jordi Massaguer Pla".freeze, "Lachlan Priest".freeze, "Leo Cassarani".freeze, "Lonre Wang".freeze, "Luke Redpath".freeze, "Masato Nakamura".freeze, "Matt Colyer".freeze, "Mislav Marohnic\u0301".freeze, "Peter Goldstein".freeze, "Socrates Vicente".freeze, "Steffen Grunwald".freeze, "Takuya Noguchi".freeze, "Tim Barkley".freeze] + s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIE2DCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMRgwFgYDVQQDDA9zYW11\nZWwud2lsbGlhbXMxHTAbBgoJkiaJk/IsZAEZFg1vcmlvbnRyYW5zZmVyMRIwEAYK\nCZImiZPyLGQBGRYCY28xEjAQBgoJkiaJk/IsZAEZFgJuejAeFw0yMjA4MDYwNDUz\nMjRaFw0zMjA4MDMwNDUzMjRaMGExGDAWBgNVBAMMD3NhbXVlbC53aWxsaWFtczEd\nMBsGCgmSJomT8ixkARkWDW9yaW9udHJhbnNmZXIxEjAQBgoJkiaJk/IsZAEZFgJj\nbzESMBAGCgmSJomT8ixkARkWAm56MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB\nigKCAYEAomvSopQXQ24+9DBB6I6jxRI2auu3VVb4nOjmmHq7XWM4u3HL+pni63X2\n9qZdoq9xt7H+RPbwL28LDpDNflYQXoOhoVhQ37Pjn9YDjl8/4/9xa9+NUpl9XDIW\nsGkaOY0eqsQm1pEWkHJr3zn/fxoKPZPfaJOglovdxf7dgsHz67Xgd/ka+Wo1YqoE\ne5AUKRwUuvaUaumAKgPH+4E4oiLXI4T1Ff5Q7xxv6yXvHuYtlMHhYfgNn8iiW8WN\nXibYXPNP7NtieSQqwR/xM6IRSoyXKuS+ZNGDPUUGk8RoiV/xvVN4LrVm9upSc0ss\nRZ6qwOQmXCo/lLcDUxJAgG95cPw//sI00tZan75VgsGzSWAOdjQpFM0l4dxvKwHn\ntUeT3ZsAgt0JnGqNm2Bkz81kG4A2hSyFZTFA8vZGhp+hz+8Q573tAR89y9YJBdYM\nzp0FM4zwMNEUwgfRzv1tEVVUEXmoFCyhzonUUw4nE4CFu/sE3ffhjKcXcY//qiSW\nxm4erY3XAgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O\nBBYEFO9t7XWuFf2SKLmuijgqR4sGDlRsMC4GA1UdEQQnMCWBI3NhbXVlbC53aWxs\naWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWBI3NhbXVlbC53aWxs\naWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEBCwUAA4IBgQB5sxkE\ncBsSYwK6fYpM+hA5B5yZY2+L0Z+27jF1pWGgbhPH8/FjjBLVn+VFok3CDpRqwXCl\nxCO40JEkKdznNy2avOMra6PFiQyOE74kCtv7P+Fdc+FhgqI5lMon6tt9rNeXmnW/\nc1NaMRdxy999hmRGzUSFjozcCwxpy/LwabxtdXwXgSay4mQ32EDjqR1TixS1+smp\n8C/NCWgpIfzpHGJsjvmH2wAfKtTTqB9CVKLCWEnCHyCaRVuKkrKjqhYCdmMBqCws\nJkxfQWC+jBVeG9ZtPhQgZpfhvh+6hMhraUYRQ6XGyvBqEUe+yo6DKIT3MtGE2+CP\neX9i9ZWBydWb8/rvmwmX2kkcBbX0hZS1rcR593hGc61JR6lvkGYQ2MYskBveyaxt\nQ2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8\nvoD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=\n-----END CERTIFICATE-----\n".freeze] + s.date = "2024-05-07" + s.homepage = "https://github.com/socketry/multipart-post".freeze + s.licenses = ["MIT".freeze] + s.required_ruby_version = Gem::Requirement.new(">= 2.5.0".freeze) + s.rubygems_version = "3.5.9".freeze + s.summary = "A multipart form post accessory for Net::HTTP.".freeze + + s.installed_by_version = "3.5.9".freeze if s.respond_to? :installed_by_version +end diff --git a/node_modules/.bin/prettier b/node_modules/.bin/prettier new file mode 120000 index 0000000..92267ed --- /dev/null +++ b/node_modules/.bin/prettier @@ -0,0 +1 @@ +../prettier/bin/prettier.cjs \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..d463421 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,32 @@ +{ + "name": "discourse-telegram-notifications", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@prettier/plugin-ruby": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@prettier/plugin-ruby/-/plugin-ruby-4.0.4.tgz", + "integrity": "sha512-lCpvfS/dQU5WrwN3AQ5vR8qrvj2h5gE41X08NNzAAXvHdM4zwwGRcP2sHSxfu6n6No+ljWCVx95NvJPFTTjCTg==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + } + } +} diff --git a/node_modules/@prettier/plugin-ruby/CHANGELOG.md b/node_modules/@prettier/plugin-ruby/CHANGELOG.md new file mode 100644 index 0000000..0e310a2 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/CHANGELOG.md @@ -0,0 +1,1393 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [4.0.4] - 2023-12-12 + +### Changed + +- [#1413](https://github.com/prettier/plugin-ruby/pull/1413) - hrabe - Fix the cwd detection for mono-repos. + +## [4.0.3] - 2023-11-27 + +### Changed + +- [#1406](https://github.com/prettier/plugin-ruby/pull/1406) - mikesea - Support running without the RBS or Haml plugins loaded. +- [#1407](https://github.com/prettier/plugin-ruby/pull/1407) - hrabe - Support shimmed Ruby versions. + +## [4.0.2] - 2023-07-14 + +### Changed + +- [#1367](https://github.com/prettier/plugin-ruby/pull/1367) - kddnewton - Specify `prettier` as a peer dependency and not a runtime dependency. + +## [4.0.1] - 2023-07-08 + +### Changed + +- [#1363](https://github.com/prettier/plugin-ruby/pull/1363) - mscrivo, kddnewton - Ensure all data is read from socket before attempting to parse to JSON. + +## [4.0.0] - 2023-07-06 + +### Added + +- [#1283](https://github.com/prettier/plugin-ruby/pull/1283) - oriolgual - Use `process.execPath` instead of `"node"`. +- [#1358](https://github.com/prettier/plugin-ruby/pull/1358) - davidalejandroaguilar - Add the `rubyExecutablePath` option. +- [#1359](https://github.com/prettier/plugin-ruby/pull/1359) - kddnewton - Inherit stderr from the parser process in order to provide better error messages when failing to spawn parser server. This will put out missing gem errors, for example. + +### Changed + +- [#1360](https://github.com/prettier/plugin-ruby/pull/1360) - kddnewton - Require prettier v3.0.0+. + +## [3.2.2] - 2022-09-20 + +### Changed + +- [#1276](https://github.com/prettier/plugin-ruby/pull/1276) - kddnewton - Fix the parsing for options being passed to the server process. + +## [3.2.1] - 2022-09-19 + +### Changed + +- [#1274](https://github.com/prettier/plugin-ruby/pull/1274) - kddnewton - Support the next version of `syntax_tree-haml`. + +## [3.2.0] - 2022-07-22 + +### Added + +- [#1250](https://github.com/prettier/plugin-ruby/issues/1250) - alexf101, kddnewton - Respect the `tabWidth` option. + +### Changed + +- [#1255](https://github.com/prettier/plugin-ruby/pull/1255) - soberstadt - The rake task now runs check if write is false. +- [#1237](https://github.com/prettier/plugin-ruby/issues/1237) - boris-petrov - Disable the style rules associated with quotes. +- [#1248](https://github.com/prettier/plugin-ruby/pull/1248) - mhssmnn - Fix process waiting on STDIN. + +## [3.1.2] - 2022-05-13 + +### Changed + +- [#1127](https://github.com/prettier/plugin-ruby/issues/1227) - mscrivo, kddnewton - Support passing the `printWidth` option. + +## [3.1.1] - 2022-05-12 + +### Changed + +- [#1125](https://github.com/prettier/plugin-ruby/pull/1225) - kddnewton - Update the bundled rubocop config to be in sync with Syntax Tree. + +## [3.1.0] - 2022-05-12 + +### Added + +- [#1224](https://github.com/prettier/plugin-ruby/pull/1224) - kddnewton - Support passing the `rubyPlugins` option to configure Syntax Tree. + +## [3.0.0] - 2022-05-04 + +### Added + +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Encoding for source files is now guessed in a much better way. + +### Changed + +- [#1198](https://github.com/prettier/plugin-ruby/issues/1198) - pas-f, kddnewton - Fix crashes on JRuby with do blocks. +- [#1131](https://github.com/prettier/plugin-ruby/issues/1131) - hyrious, kddnewton - Ensure zombie processes are not left around when the server exits. +- [#1206](https://github.com/prettier/plugin-ruby/pull/1206) - kddnewton - Switch back to plain JavaScript for development. +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Switch over to using Syntax Tree for the backend. This now requires that users install the necessary gems. + +### Removed + +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - The configuration options have been removed. Instead, configuration is to be done through modifying Syntax Tree. + +## [2.1.0] - 2022-04-04 + +### Added + +- [#1065](https://github.com/prettier/plugin-ruby/issues/1065) - langalex, kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up. +- [#1173](https://github.com/prettier/plugin-ruby/pull/1173) - dleavitt - Support for RBS 2.x on Ruby 3.1. + +### Changed + +- [#1028](https://github.com/prettier/plugin-ruby/issues/1028) - levymetal, kddnewton - Fix up some nested formatting with very complicated RSpec assertions. +- [#1035](https://github.com/prettier/plugin-ruby/issues/1035) - qcn, kddnewton - Ensure we don't try to print `return` incorrectly when multiple statements are contained within parentheses. +- [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Completely refactor the Ruby parser to use classes instead of hashes. Also remove a lot of the `body` keys are replace them with actual names. +- [#1042](https://github.com/prettier/plugin-ruby/issues/1042) - JoshuaKGoldberg, kddnewton - Ensure blocks are printed correctly when there are trailing comments on the `do` keyword. +- [#1134](https://github.com/prettier/plugin-ruby/pull/1134) - mhssmnn - Fix piping for STDIN to the gem process. +- [#1167](https://github.com/prettier/plugin-ruby/pull/1167) - dleavitt - More consistent assignment indentation. +- [#1074](https://github.com/prettier/plugin-ruby/issues/1074) - wagenet, kddnewton - Fix up `return` when nodes return arrays of docs. + +### Removed + +- [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Drop support for Ruby 2.5. + +## [2.0.0] - 2021-10-28 + +### Changed + +- [#1018](https://github.com/prettier/plugin-ruby/issues/1018) - rindek, kddnewton - Ensure brackets are used when matching an array pattern with a single element. +- [#906](https://github.com/prettier/plugin-ruby/issues/906) - Hansenq, kddnewton - Turn off the `Style/MultilineBlockChain` rubocop rule in our shipped configuration because multiple chained method calls with blocks can potentially conflict with rubocop's desired output. + +## [2.0.0-rc4] - 2021-10-18 + +### Added + +- [#993](https://github.com/prettier/plugin-ruby/pull/993) - kddnewton - Nicer error message if you don't have the necessary JavaScript files to run prettier. +- [#996](https://github.com/prettier/plugin-ruby/pull/996) - nbudin - Allow `@prettier/plugin-ruby` to run in yarn's plug'n'play mode. + +### Changed + +- [#1000](https://github.com/prettier/plugin-ruby/pull/1000) - nbudin, kddnewton - Fix for rescuing single top-level exceptions in `rescue` clauses. + +## [2.0.0-rc3] - 2021-10-01 + +### Changed + +- [#987](https://github.com/prettier/plugin-ruby/pull/9870) - valscion - Ignore stderr when checking for node <-> ruby connection clients, restoring the behavior of v1.x +- [#989](https://github.com/prettier/plugin-ruby/issues/989) - hubertjakubiak, kddnewton - Make sure comments after the keyword/lbrace are not moved inside the body of the statements of do and brace blocks. + +## [2.0.0-rc2] - 2021-09-30 + +### Added + +- [#979](https://github.com/prettier/plugin-ruby/issues/979) - ronocod, kddnewton - Alignment of `to_not` is explicitly allowed to not indent to better support rspec. +- [#894](https://github.com/prettier/plugin-ruby/issues/894) - mister-what, kddnewton - Add a warning that this plugin will not function with the plug'n'play filesystem provided by yarn berry. + +### Changed + +- [#943](https://github.com/prettier/plugin-ruby/issues/943) - valscion, kddnewton - Trailing call operators that are followed by comments should stay on the first line. + +## [2.0.0-rc1] - 2021-09-30 + +### Added + +- [#949](https://github.com/prettier/plugin-ruby/pull/949) - kddnewton - Converted over to using TypeScript for development. + +### Changed + +- [#958](https://github.com/prettier/plugin-ruby/issues/958) - mharris-figma, kddnewton - Handle optional `do` keyword in `for` loop expressions. +- [#926](https://github.com/prettier/plugin-ruby/issues/926) - jscheid, kddnewton - Better error handling in case certain expected keywords or operators are missing. +- [#819](https://github.com/prettier/plugin-ruby/issues/819) - coisnepe, kddnewton - Ensure that comments placed immediately after the left parenthesis of a method definition are not moved into the body of the methods. +- [#957](https://github.com/prettier/plugin-ruby/issues/957) - azz, kddnewton - Make it so that the format pragma does not have to be on the first line of the file. +- [#895](https://github.com/prettier/plugin-ruby/issues/895) - rsslldnphy, kddnewton - Ensure quotes are properly escaped in the content of a hash value for HAML attributes. +- [#900](https://github.com/prettier/plugin-ruby/issues/900) - rsslldnphy, kddnewton - Ensure that in a HAML line where you have interpolation inside of a tag content that you print it properly. +- [#929](https://github.com/prettier/plugin-ruby/issues/929) - ryanb, kddnewton - Deeply nested blocks should not break their call chains. +- [#935](https://github.com/prettier/plugin-ruby/pull/935) - nbudin, mlauter - Ensure embedded formatting heredocs are properly indented. +- [#975](https://github.com/prettier/plugin-ruby/pull/975) - kddnewton - Refactor the way we determine how to connect to the parser server. + +### Removed + +- [#976](https://github.com/prettier/plugin-ruby/pull/976) - kddnewton - Remove the `rubyNetcatCommand` option, as it should no longer be necessary. + +## [1.6.1] - 2021-06-30 + +### Changed + +- [#862](https://github.com/prettier/plugin-ruby/issues/862) - azz, kddnewton - Group together `.where.not` calls in method chains. +- [#863](https://github.com/prettier/plugin-ruby/issues/863) - azz, kddnewton - Fix up Sorbet `sig` block formatting when chaining method calls. +- [#908](https://github.com/prettier/plugin-ruby/issues/908) - Hansenq, kddnewton - Method chains with blocks should be properly indented. +- [#916](https://github.com/prettier/plugin-ruby/issues/916) - pbrisbin, kddnewton - Ensure all of the necessary files are present in the gem. +- [#917](https://github.com/prettier/plugin-ruby/issues/917) - jscheid, kddnewton - Ensure hash keys with dynamic symbols don't strip their quotes. + +## [1.6.0] - 2021-06-23 + +### Added + +- [#859](https://github.com/prettier/plugin-ruby/issues/859) - azz, kddnewton - Support the `--insert-pragma` option for the incremental adoption workflow. +- [#904](https://github.com/prettier/plugin-ruby/issues/904) - Hansenq, kddnewton - Support the `%s` symbol literal syntax. +- [#833](https://github.com/prettier/plugin-ruby/issues/883) - kddnewton - Support for prettier >= v2.3.0. + +### Changed + +- [#854](https://github.com/prettier/plugin-ruby/issues/854) - jflinter, kddnewton - Parentheses should not be stripped from optional RBS union types. +- [#888](https://github.com/prettier/plugin-ruby/issues/888) - MaxNotarangelo, kddnewton - Ensure parentheses wrap conditionals that get transformed into the modifier form when they're used within a binary node. +- [#874](https://github.com/prettier/plugin-ruby/issues/874) - yratanov, kddnewton - Ensure that method calls chained onto the ends of blocks still print their arguments. +- [#897](https://github.com/prettier/plugin-ruby/pull/897) - Hansenq - Reenable the `Layout/LineLength` rubocop rule in our shipped config so that line lengths for other cops are calculated correctly. + +## [1.5.5] - 2021-03-25 + +### Changed + +- [#841](https://github.com/prettier/plugin-ruby/issues/841) - LoganBarnett, kddnewton - Better error messaging for when unix sockets are not supported by netcat. +- [#844](https://github.com/prettier/plugin-ruby/issues/844) - andyw8, kddnewton - Ensure we ship all of the parsers with the prettier gem so that `rbprettier` can parse other languages as well. +- [#847](https://github.com/prettier/plugin-ruby/issues/847) - jflinter, kddnewton - Ensure parentheses are present on union return types in RBS. +- [#850](https://github.com/prettier/plugin-ruby/issues/850) - maethub, kddnewton - Ensure double quotes are used even when single quotes are requested for HAML attribute values. +- [#849](https://github.com/prettier/plugin-ruby/issues/849) - indirect, kddnewton - Support HAML version <= 5.1 multi-line attributes. +- [#810](https://github.com/prettier/plugin-ruby/issues/810) - valscion, kddnewton - Make it so that brace blocks containing heredocs have the correct end line so that they format subsequent statements correctly. + +## [1.5.4] - 2021-03-17 + +### Changed + +- [#835](https://github.com/prettier/plugin-ruby/issues/835) - valscion, kddnewton - Array splat operator should not get moved by leading comments. +- [#836](https://github.com/prettier/plugin-ruby/issues/836) - valscion, kddnewton - Array splat operator should not get moved by trailing comments. +- [#821](https://github.com/prettier/plugin-ruby/issues/821) - jscheid, kddnewton - Better error handling when using GNU netcat. + +## [1.5.3] - 2021-02-28 + +### Changed + +- [#812](https://github.com/prettier/plugin-ruby/issues/812) - valscion, kddnewton - Splats and blocks within args that have comments attached should place their respective operators in the right place. +- [#816](https://github.com/prettier/plugin-ruby/pull/816) - valscion - Document RuboCop's Style/Lambda should be disabled +- [#814](https://github.com/prettier/plugin-ruby/issues/814) - jscheid, kddnewton - Provide better errors when the source location of the error is known. + +## [1.5.2] - 2021-02-03 + +### Changed + +- kddnewton - Fix up `binary` node comparison operators so that it will handle either Symbol literals or the `@op` nodes which are incorrectly coming from JRuby (https://github.com/jruby/jruby/issues/6548). + +## [1.5.1] - 2021-01-27 + +### Changed + +- [#799](https://github.com/prettier/plugin-ruby/issues/799) - jscheid, kddnewton - Multi-byte characters shouldn't give invalid source string bounds. +- [#801](https://github.com/prettier/plugin-ruby/issues/801) - jscheid, kddnewton - When converting a conditional to the modifier form, make sure to add parentheses if there is a chained method call. +- [#803](https://github.com/prettier/plugin-ruby/issues/803) - jscheid, kddnewton - Fix `formatWithCursor` support to match new parser format. + +## [1.5.0] - 2021-01-21 + +### Added + +- kddnewton - Add `.rbi` as a file type that we support. + +### Changed + +- [#795](https://github.com/prettier/plugin-ruby/issues/795) djrodgerspryor, kddnewton - Trailing comments attached to empty arrays should not multiply. +- [#794](https://github.com/prettier/plugin-ruby/issues/794) djrodgerspryor, kddnewton - Fix embedded parser parsing by stripping common leading whitespace before passing on the content. +- [#793](https://github.com/prettier/plugin-ruby/issues/793) djrodgerspryor, kddnewton - Do not include trailing commas on arguments within `arg_paren` nodes if they could not be parsed with them (`command` and `command_call`). +- [#788](https://github.com/prettier/plugin-ruby/issues/788) clarkdave, kddnewton - Break child hashes within a multi-line hash regardless of whether or not they can fit on one line. +- kddnewton - Stop using `;` to separate empty class definitions, module definitions, and loops. + +## [1.4.0] - 2021-01-15 + +### Added + +- ianks, kddnewton - Use `netcat` to communicate to a parser server for better performance when formatting multiple files. + +### Changed + +- jeffcarbs, kddnewton - Long strings with interpolated expressions should only break if the contents in the original source is broken. +- johannesluedke, kddnewton - Fix for rescues with inline comments. +- johncsnyder, kddnewton - Comments should not attach to nodes beyond a double newline. +- blampe, kddnewton - Comments inside of a broken method chain get dropped. +- clarkdave, kddnewton - Don't ignore Sorbet `sig` transformations. + +## [1.3.0] - 2021-01-05 + +### Added + +- kddnewton - Handling of the RBS language. +- kddnewton - Incorporate the HAML plugin. + +## [1.2.5] - 2021-01-04 + +### Changed + +- nruth, kddnewton - Ensure unary operators on method calls that are sending operators get the correct scanner events. +- cvoege, kddnewton - Do not add parentheses when they're not needed to non-breaking command_calls with ternary arguments. +- valscion, kddnewton - Print method chains more nicely off array and hash literals. + +## [1.2.4] - 2021-01-03 + +### Added + +- andyw8 - Explain usage with Rubocop, as well as shipping a rubocop.yml config. + +### Changed + +- kddnewton - Reduce JSON size passing from Ruby process to node process by changing `char_start` -> `sc`, `char_end` -> `ec`, `start` -> `sl`, `end` -> `el`. +- kddnewton - Up the max buffer size between the Ruby and node processes to 15K. + +## [1.2.3] - 2021-01-02 + +### Changed + +- lukyth, kddnewton - Ensure if a ternary breaks into an `if..else..end` within a `command_call` node that parentheses are added. +- AlanFoster, kddnewton - Ensure you consume the optional `do` keyword on `while` and `until` loops so that it doesn't confuse the parser. +- AlanFoster, kddnewton - Ensure key-value pairs split on line when the key has a comment attached within a hash. +- AlanFoster, kddnewton - Fix for `for` loops that have multiple index variables. +- AlanFoster, kddnewton - Fix parsing very large files by reducing the size of the JSON output from the parser. +- AlanFoster, kddnewton - Ensure you don't skip parentheses if you're returning a value with the `not` unary operator. + +## [1.2.2] - 2021-01-01 + +### Changed + +- nathan-beam - Gem does not work with CMD/Powershell. +- blampe, kddnewton - Comments inside keyword parameters in method declarations are not printed. +- blampe, kddnewton - `command_call` nodes with unary operators incorrectly parse their operator. +- blampe, kddnewton - Returning multiple values where the first has parentheses was incorrectly removing the remaining values. +- johncsnyder, kddnewton - Call chains whose left-most receiver is a no-indent expression should not indent their entire chain. + +## [1.2.1] - 2020-12-27 + +### Changed + +- kddnewton - Handle single-line method definitions with parameters. +- kddnewton - Handle hash and array patterns nested within find patterns. +- kddnewton - Handle rightward assignment. +- kddnewton - Handle find patterns with named boundaries. +- kddnewton - Handle rightward assignment in conditionals. + +## [1.2.0] - 2020-12-26 + +### Added + +- kddnewton - Support for the `fndptn` node for Ruby 3.0 pattern matching. +- kddnewton - Support for Ruby 3.0+ single-line method definitions. + +## [1.1.0] - 2020-12-20 + +### Added + +- kddnewton - Now that the comments are all fixed up, we can support `# prettier-ignore` comments. + +### Changed + +- rindek, kddnewton - Do not remove parentheses when receiver looks like a constant. +- rindek, kddnewton - Do not remove parentheses when using the special `call` syntax with no arguments. +- ykpythemind - Do not change regexp bounds if the body has certain content. +- karanmandal, kddnewton - Correctly print for loops. +- rafbm, kddnewton - If there are method chains with arguments only at the end, we should group the method chain and the method args. + +## [1.0.1] - 2020-12-12 + +### Changed + +- steobrien, kddnewton - Ensure leading comments in empty array and hash literals do not duplicate. + +## [1.0.0] - 2020-12-11 + +### Changed + +- kddnewton - Do not unescape double quotes in a single quote string. +- kddnewton - Only force braces on regexp for spaces and equals if it's inside a command or command_call. +- kddnewton - Leave Sorbet type annotations in place. +- kddnewton - Don't group hash contents, just allow them to break with their parent node. +- kddnewton - Honor the UTF-8 lang passed in through ENV vars. + +## [1.0.0-rc2] - 2020-12-10 + +### Changed + +- kddnewton - Print hashes with consistent keys (e.g., if one key cannot be a hash label, use all hash rockets). +- kddnewton - Respect using `o` or not using `o` for octal numbers. +- kddnewton - Ensure `when` clauses with multiple predicates that can be split into multiple lines are split correctly. +- kddnewton - Ensure hash literal is split correctly when only its contents would fit on one line. +- kddnewton - Simplify `toProc` checks by not calling if the option is disabled. +- johncsnyder, kddnewton - Add `method_add_block` to the potential like of method calls that can be chained. +- kddnewton - Add the `rubyArrayLiteral` option for disabling automatically turning into array literals. + +## [1.0.0-rc1] - 2020-12-09 + +### Changed + +- kddnewton - Rename options to prep for v1.0 release. + - `addTrailingCommas` -> `trailingComma`, `"es5"` means `true` + - `inlineConditionals` and `inlineLoops` -> `rubyModifier` + - `preferHashLabels` -> `rubyHashLabel` + - `preferSingleQuotes` -> `rubySingleQuote` + - `toProcTransform` -> `rubyToProc` +- andyw8, kddnewton - Fix for Ruby `2.5.1` dyna_symbols. Turns out they were previously incorrectly reported as `xstring` nodes. +- andyw8, kddnewton - Fix for plain `rescue` nodes with only comments in the body. +- andyw8, kddnewton - Move declaration-type comments up to the line in the original source, as in: + +```ruby +def foo # :nodoc: + bar +end +``` + +The comment in the above example should stay in place. + +- janklimo - Respect special call syntax, e.g., `a.(1, 2, 3)` should remain the same. +- kddnewton - Fix up a bug with `ensure` being used in a `bodystmt` and not a `begin`. +- kddnewton - Fix up a bug with negative ranges, e.g., `-4..-3`. +- kddnewton - Fix up a bug with operator aliases, e.g., `alias << push`. +- kddnewton - Fix up a bug with calls and unary nodes, e.g., `!!foo&.bar`. +- kddnewton - Fix up a bug with multiple rescue clauses and comments, e.g., + +```ruby +begin +rescue Foo, Bar + # comment +end +``` + +- kddnewton - Handle string literals that start with `%Q`. +- kddnewton - Handle question method methods in the predicate of an if with a comment in the body. +- kddnewton - Fix bare `break` with comments immediately after. +- kddnewton - Fix for heredocs with comments immediately after the declaration. +- kddnewton - Fix for comments when you're defining a method whose name overlaps with a keyword. +- kddnewton - Don't automatically indent inside interpolated expressions from within a heredoc. +- kddnewton - Don't convert into string literal arrays if the elements have brackets. +- kddnewton - Ensure you break the parent when there is an assignment in the predicate of a loop. +- kddnewton - Fix up a bug with keyword aliases, e.g., `alias in within`. +- kddnewton - Force using braces for regex if a regex starts with a blank space. +- kddnewton - Force using braces for regex if a regex starts with an equals sign. +- kddnewton - Fix up a bug with constant aliases, e.g., `alias in IN`. +- andyw8, kddnewton - Ensure `rescue` comments stay on the same line as their declaration. + +## [0.22.0] - 2020-12-08 + +### Changed + +- flyerhzm - Print method chains by one indentation. +- mmcnl, kddnewton - Handle heredocs and blocks being passed to the same method. +- johncsnyder, kddnewton - Ensure correct formatting when breaking up conditionals with `inlineConditionals: false`. +- Rsullivan00 - Ensure that when ternaries as command arguments get broken into multiple lines we add the necessary parentheses. +- jbielick - Maintain parse order during if/unless modifier expressions +- flyerhzm - Slight prettifying of wrapped args if doc length is under a certain value. +- github0013, kddnewton - Ensure `not` keeps parentheses if they are being used. +- jbielick - Print heredocs consistently. +- kddnewton - Completely revamp the way we handle comments. +- kddnewton - Support `hshptn` and the remaining missing pattern matching syntax. + +## [0.21.0] - 2020-12-02 + +### Changed + +- kddnewton, ryan-hunter-pc - Explicitly handle `break` and `next` keyword parentheses. +- jbielick, kddnewton - Don't convert between `lambda {}` and `-> {}`. Technically it's breaking the semantics of the program. Also because lambda method call arguments can't handle everything that stabby lambda can. +- kddnewton - Turn off the `Symbol#to_proc` transform by default. +- janklimo, kddnewton - Properly handle trailing commas on hash arguments. +- coiti, kddnewton - Properly handle parentheses when necessary on if/unless statements and while/until loops. +- Rsullivan00 - Prevent `command` and `command_call` nodes from being turned into ternaries. +- kddnewton - Better handling of the `alias` node with and without comments. +- kddnewton - Better handling of the `BEGIN` and `END` nodes with and without comments. +- kddnewton - Much better handling of heredocs where now there is a consistent `heredoc` node instead of multiple. + +## [0.20.1] - 2020-09-04 + +### Changed + +- ftes, kddnewton - Properly escape HAML plain text statements that start with special HAML characters. + +### Removed + +- kddnewton - I'm stripping out the HAML plugin and putting it into its own package (`@prettier/plugin-haml`). It's become too difficult to maintain within this repo, and it's confusing for contributors because there are some things that work with Ruby and some things that don't. This is going to simplify maintenance. This should probably be a major version bump but since we're still pre `1.0` I'm going to leave it as a patch. + +## [0.20.0] - 2020-08-28 + +### Added + +- kddnewton - Allow embedded formatting on heredocs by the name placed at the start. For example, + + +```ruby +javascript = <<~JAVASCRIPT + const a=1; + const b=2; + return a+b; +JAVASCRIPT +``` + +### Changed + +- mmainz - Fix the encoding setting such that we're not overwriting the entire set of environment variables. + +## [0.19.1] - 2020-08-21 + +### Changed + +- Rsullivan00 - Do not tranform word-literal arrays when there is an escape sequence. +- steobrien, kddnewton - Do not indent heredocs with calls more than they should be. +- jpickwell - Include .simplecov in filenames +- github0013, kddnewton - Ensure we're parsing ruby files using UTF-8 regardless of the system encoding. + +## [0.19.0] - 2020-07-03 + +### Added + +- ryan-hunter-pc - Add the option to disable the `Symbol#to_proc` transform. +- ryan-hunter-pc], [@SViccari, kddnewton - Disable `Symbol#to_proc` transform when used as a key inside of a hash where the key is either `:if` or `:unless`. + +## [0.18.2] - 2020-05-01 + +### Changed + +- alse - Support `vscodeLanguageIds` for HAML. +- ShayDavidson, kddnewton - Don't allow replacing if/else with ternary if there's an assignment in the predicate. +- janklimo - Do not add an empty line after `rescue` when the block is empty. + +## [0.18.1] - 2020-04-05 + +### Changed + +- petevk, kddnewton - Use braces for block format iff it was originally a brace block, otherwise you could be changing precedence. For example: + + +```ruby +expect do + field 1 do + "foo" + end +end.to raise_error +``` + +should maintain its `do...end` and not switch to inline braces otherwise the brace might get associated with the `1`. + +- flyerhzm - Rewrite operators binary parser, as in: + + +```ruby +[ + '1111111111111111111111111111111111111111111111111111111111111111111111111', + 222 +] + + [1] +``` + +- ftes, kddnewton - When old-form dynamic attributes are added to a `div` tag in HAML, it was previously skipping printing the `%div`, which led to it being incorrectly displayed. +- ftes, kddnewton - Previously if you had a long tag declaration with attributes that made it hit the line limit, then the content of the tag would be pushed to the next line but indented one character too many. +- ftes, kddnewton - Don't explicitly require JSON if it has already been loaded, as this can lead to rubygems activation errors. +- mmainz, kddnewton - Handle heredocs as the receivers of call nodes, as in: + + +```ruby +foo = <<~TEXT.strip + bar +TEXT +``` + +- github0013, kddnewton - Leave parentheses in place if the value of a return node contains a binary with low operator precedence, as in: + + +```ruby +return (a or b) if c? +``` + +## [0.18.0] - 2020-03-17 + +### Added + +- kddnewton - Support for the `nokw_param` node for specifying when methods should no accept keywords, as in: + +```ruby +def foo(**nil) +end +``` + +- kddnewton - Support for the `args_forward` node for forwarding all types of arguments, as in: + +```ruby +def foo(...) + bar(...) +end +``` + +### Changed + +- ftes, kddnewton - Handled 3 or more classes on a node in HAML, as in: + +```haml +%table.table.is-striped.is-hoverable +``` + +- ftes, kddnewton - Better handling of indentation of `if/elsif/else`, `unless/elsif/else`, and `case/when` branches, as in: + +```haml +.column.is-12 + - if true + TRUE + - else + FALSE +``` + +- tobyndockerill - Format numbers with underscores after 4 digits, as opposed to 3. +- ianks - Improve performance by using `--disable-gems`. +- flyerhzm - Calls are grouped such that after an end parenthesis the following call will not be indented, as in: + + +```ruby +Config::Download.new( + 'prettier', + filename: 'prettier.yml', url: 'https://raw.githubusercontent.com/...' +) + .perform +``` + +will now be printed as: + +```ruby +Config::Download.new( + "prettier", + filename: "prettier.yml", + url: "https://raw.githubusercontent.com/..." +).perform +``` + +- pje, kddnewton - Method definition bodies (on `defs` nodes) should dedent if a helper method is called. As in: + + +```ruby +private def self.foo + 'bar' + end +``` + +should instead be indented as: + + +```ruby +private def self.foo + 'bar' +end +``` + +- masqita, kddnewton - Inline variable assignment within a predicate should force the conditional to break, as in: + +```ruby +array.each do |element| + if index = difference.index(element) + difference.delete_at(index) + end +end +``` + +- hafley66, kddnewton - Handle empty `while` and `until` blocks. +- Fruetel, kddnewton - Simplify string escape pattern by locking on any escape sequence. +- flyerhzm, kddnewton - Properly handle string quotes on symbols in hash keys. + +## [0.17.0] - 2019-12-12 + +### Added + +- matt-wratt - Better support for explicit `return` nodes with empty arrays or arrays with a single element. +- jrdioko, kddnewton - Alignment of `not_to` is explicitly allowed to not indent to better support rspec. + +### Changed + +- gin0606 - The max buffer being passed into the Ruby process is now up to 10MB. + +## [0.16.0] - 2019-11-14 + +### Added + +- mmainz, kddnewton - Support for extra commas in multiple assignment, as it changes the meaning. For example, + + +```ruby +a, = [1, 2, 3] +``` + +would previously get printed as `a = [1, 2, 3]`, which changes the value of `a` from `1` to the value of the entire array. + +- kddnewton - Experimental support for the HAMtemplate language. + +### Changed + +- github0013, kddnewton - Support proper string escaping when the original string in the source is wrapped in `%q|...|`. For example, `%q|\'|` should get printed as `"\'"`, where previously it was dropping the backslash. +- jamescostian, kddnewton - Force ternary breaking when using the lower-precendence operators `and` and `or`. For example, + + +```ruby +if x.nil? + puts 'nil' and return +else + x +end +``` + +the previous expression was being transformed into a ternary which was invalid ruby. Instead it now stays broken out into an if/else block. + +- localhostdotdev], [@joeyjoejoejr], [@eins78, kddnewton - Better support for embedded expressions inside heredocs. For example, + + +```ruby +<<-HERE + foo bar baz + #{qux} + foo bar baz +HERE +``` + +should remain formatted as it is. Whereas previously due to the way the lines were split, you would sometimes end up with it breaking after `#{`. + +- jamescostian, kddnewton - Fix up `return` node printing. When returning multiple values, you need to return an array literal as opposed to using parentheses. + +## [0.15.1] - 2019-11-05 + +### Changed + +- AlanFoster - Add `bin/lex` for viewing the tokenized result of Ripper on Ruby code. +- jakeprime, kddnewton - When predicates from within an `if`, `unless`, `while`, or `until` loop break the line, they should be aligned together. For example, + + +```ruby +if foooooo || barrrrrr + baz +end +``` + +If the line was set to very short, the binary node should be aligned to 3 spaces from the left of the file (which aligns with the `if`, it would be more for `unless`). So it would look like: + + +```ruby +if foooooo || + barrrrrr + baz +end +``` + +- jamescostian], [@AlanFoster - Empty `if`, and `unless` conditionals are now handled gracefully: + + +```ruby +if foo? +end +``` + +- mmainz, kddnewton - Hash keys are not converted to keyword syntax if they would make invalid symbols. For example, + + +```ruby +{ :[] => nil } +``` + +cannot be translated into `[]:` as that is an invalid symbol. Instead, it stays with the hash rocket syntax. + +- cldevs, kddnewton - Do not attempt to format the insides of xstring literals (string that get sent to the command line surrounded by backticks or `%x`). +- cldevs, kddnewton - When predicates for `if`, `unless`, `while`, or `until` nodes contain an assignment, we can't know for sure that it doesn't modify the body. In this case we need to always break and form a multi-line block. +- MarcManiez, kddnewton - When the return value of `if`, `unless`, `while`, or `until` nodes are assigned to anything other than a local variable, we need to wrap them in parentheses if we're changing to the modifier form. This is because the following expressions have different semantic meaning: + + +```ruby +hash[:key] = break :value while false +hash[:key] = while false do break :value end +``` + +The first one will not result in an empty hash, whereas the second one will result in `{ key: nil }`. In this case what we need to do for the first expression to align is wrap it in parens, as in: + + +```ruby +hash[:key] = (break :value while false) +``` + +That will guarantee that the expressions are equivalent. + +- AlanFoster - Fix crashes that were happening with `ignored_nl` nodes. + +## [0.15.0] - 2019-08-06 + +### Changed + +- dudeofawesome, kddnewton - If xstring literals (command line calls surrounded by backticks) break, then we indent and place the command on a new line. Previously, this was resulting in new lines getting added each time the code was formatted. Now this happens correctly. +- krachtstefan, kddnewton - When a `while` or `until` loop modifies a `begin...end` statement, it must remain in the modifier form or else it changes sematic meaning. For example, + + +```ruby +begin + foo +end while bar +``` + +cannot be transformed into: + + +```ruby +while bar + foo +end +``` + +because that would never execute `foo` if `bar` is falsy, whereas in the initial example it would have. + +- jviney], kddnewton - When transforming a block into the `Symbol#to_proc` syntax from within a list of arguments inside of an `aref` node (i.e., `foo[:bar.each`), we can't put the block syntax inside the brackets. +- jakeprime, kddnewton - Values for the `return` keyword that broke the line were previously just printed as they were, which breaks if you have a block expression like an `if` or `while`. For example, + + +```ruby +return foo ? bar : baz +``` + +if the line was set to very short would be printed as: + + +```ruby +return if foo + bar +else + baz +end +``` + +which wouldn't work. Instead, they now get printed with parentheses around the value, as in: + + +```ruby +return( + if foo + bar + else + baz + end +) +``` + +- jakeprime, kddnewton - When switching from a double-quoted string to a single-quoted string that contained escaped double quotes, the backslashes would stay in the string. As in: + + +```ruby +"Foo \"Bar\" Baz" +``` + +would get formatted as: + + +```ruby +'Foo \"Bar\" Baz' +``` + +but now gets formatted as: + + +```ruby +'Foo "Bar" Baz' +``` + +## [0.14.0] - 2019-07-17 + +### Added + +- kddnewton - Support for pattern matching for variables and array patterns. Currently waiting on Ripper support for hash patterns. For examples, check out the [test/js/patterns.test.js](test/js/patterns.test.js) file. + +### Changed + +- jviney, kddnewton - if/else blocks that had method calls on the end of them that were also transformed into ternaries need to have parens added to them. For example, + + +```ruby +if foo + 1 +else + 2 +end.to_s +``` + +now correctly gets transformed into: + + +```ruby +(foo ? 1 : 2).to_s +``` + +- acrewdson, kddnewton - Fixed a bug where multiple newlines at the end of the file would cause a crash. +- jviney, kddnewton - If a variable is assigned inside of the predicate of a conditional, then we can't change it into the single-line version as this breaks. For example, + + +```ruby +if foo = 1 + foo +end +``` + +must stay the same. + +## [0.13.0] - 2019-07-05 + +### Added + +- kddnewton - Added `locStart` and `locEnd` functions to support `--cursor-offset`. + +### Changed + +- xipgroc, kddnewton - Comments inside of `do...end` blocks that preceeded `call` nodes were associating the comment with the `var_ref` instead of the `call` itself. For example, + + +```ruby +foo.each do |bar| + # comment + bar.baz + bar.baz +end +``` + +would get printed as + + +```ruby +foo.each do |bar| + # comment + bar + .baz + bar.baz +end +``` + +but now gets printed correctly. + +- petevk, kddnewton - Double splats inside a hash were previously failing to print. For example, + + +```ruby +{ foo: "bar", **baz } +``` + +would fail to print, but now works. + +## [0.12.3] - 2019-05-16 + +### Changed + +- kddnewton - Move arg, assign, constant, flow, massign, operator, scope, and statement nodes into their own files. +- kddnewton - Move `@int`, `access_ctrl`, `assocsplat`, `block_var`, `else`, `number_arg`, `super`, `undef`, `var_ref`, and `var_ref` as well as various call and symbol nodes into appropriate files. +- kddnewton - Better support for excessed commas in block args. Previously `proc { |x,| }` would add an extra space, but now it does not. +- kddnewton - Add a lot more documentation to the parser. +- glejeune, kddnewton - Previously, the unary `not` operator inside a ternary (e.g., `a ? not(b) : c`) would break because it wouldn't add parentheses, but now it adds them. +- kddnewton - `if` and `unless` nodes used to not be able to handle if a comment was the only statement in the body. For example, + + +```ruby +if foo + # comment +end +``` + +would get printed as + + +```ruby +# comment if foo +``` + +Now the `if` and `unless` printers check for the presence of single comments. + +- JoshuaKGoldberg, kddnewton - Fixes an error where `command` nodes within `def` nodes would fail to format if it was only a single block argument. For example, + + +```ruby +def curry(&block) + new &block +end +``` + +would fail, but now works. + +- xipgroc, kddnewton - Comments on lines with array references were previously deleting the array references entirely. For example, + + +```ruby +array[index] # comment +``` + +would previously result in `array[]`, but now prints properly. + +## [0.12.2] - 2019-04-30 + +### Changed + +- kddnewton - When symbol literal hash keys end with `=`, they cannot be transformed into hash labels. +- xipgroc, kddnewton - Fixed when blocks on methods with no arguments are transformed into `to_proc` syntax. + +## [0.12.1] - 2019-04-22 + +### Changed + +- kddnewton - If a lambda literal is nested under a `command` or `command_call` node anywhere in the heirarchy, then it needs to use the higher-precedence `{ ... }` braces as opposed to the `do ... end` delimiters. +- jpickwell, kddnewton - Calling `super` with a block and no args was causing the parser to fail when attempting to inspect lambda nodes. +- kddnewton - Support better breaking within interpolation by grouping the interpolated content. + +## [0.12.0] - 2019-04-18 + +### Added + +- kddnewton - Automatically convert `lambda { ... }` method calls into `-> { ... }` literals. + +## [0.11.0] - 2019-04-18 + +### Added + +- kddnewton - Support for parsing things with a ruby shebang (e.g., `#!/usr/bin/env ruby` or `#!/usr/bin/ruby`). +- kddnewton - Big tests refactor. +- kddnewton - Make multiple `when` predicates break at 80 chars and then wrap to be inline with the other predicates. +- kddnewton - Automatically add underscores in large numbers that aren't already formatted. +- AlanFoster - Better support for inline access control modifiers. +- jpickwell, kddnewton - Better support for heredocs in hash literals. +- kddnewton - Better support for heredocs in array literals. +- kddnewton - Support automatically transforming `def/begin/rescue/end/end` into `def/rescue/end`. + +### Changed + +- deecewan - Fixed support for dynamic string hash keys. +- kddnewton - Moved `case/when` into its own file and added better documentation. +- kddnewton - Moved `begin/rescue` into its own file. +- AlanFoster - Automatically add newlines around access modifiers. +- kddnewton - Alignment of command calls with arguments is fixed. +- aaronjensen, kddnewton - Alignment of `to` is explicitly allowed to not indent to better support rspec. +- kddnewton - Fix up the `to_proc` transform so that it works with other argument handling appropriately. +- kddnewton - Fixed regression on regexp comments. +- CodingItWrong, kddnewton - Fix up block delimiters when nested inside a `command` or `command_call` node. +- kddnewton - Moved hashes into its own file. + +## [0.10.0] - 2019-03-25 + +### Added + +- kddnewton - Support for block-local variables. +- kddnewton - Support for dyna-symbols that are using single quotes. + +### Changed + +- kddnewton - Force method calls after arrays, blocks, hashes, and xstrings to hang onto the end of the previous nodes. +- kddnewton - Check before anything else for an invalid ruby version. + +## [0.9.1] - 2019-03-24 + +### Changed + +- kddnewton - Better support string quotes by favoring what the user chose if the string contains escape patterns. +- kddnewton - Better support heredocs within method calls. + +## [0.9.0] - 2019-03-18 + +### Added + +- kddnewton - Support the `hasPragma` function. +- kddnewton - Support the new `number_arg` node type in Ruby 2.7. + +### Changed + +- kddnewton - Limit the number of nodes that are allowed to turn into ternary expressions. + +## [0.8.0] - 2019-03-08 + +### Added + +- kddnewton - Add `eslint` and fix up existing violations. +- AlanFoster - Add the infra for the `prettier` ruby gem. +- kddnewton - Add a `rake` task for easier process integration for the ruby gem. +- kddnewton - Handle direct interpolation of strings with %w array literals (i.e., `["#{foo}"]` should not be transformed into a %w array). + +### Changed + +- kddnewton - Fix string escaping for hex digit bit patterns when there's only one character after the "x". +- AlanFoster - Don't allow line breaks between brace block params. +- johnschoeman - Switch over the array.rb test case to minitest. +- AlanFoster - Test improvements to allow running in parallel. +- johnschoeman - Switch over assign.rb test case to minitest. +- AlanFoster - Add a contributing guide. +- AlanFoster - Handle longer command nodes. +- kddnewton - Changed the ruby executable within the `prettier` gem to `rbprettier` for easier autocomplete. + +### Removed + +- kddnewton - All instances of the spread (`...`) operator so that we can support older versions of node. + +## [0.7.0] - 2019-02-24 + +### Changed + +- kddnewton - Support checking for escaping within strings to force double quotes (e.g., "\n"). +- RossKinsella, kddnewton - Handle cases with empty class and module declarations that need to break. +- AlanFoster - Align the `bin/print` and `bin/sexp` APto support `bin/print` taking a filepath. +- AndrewRayCode, kddnewton - Support lambdas that don't break and are inline. +- AlanFoster - Switch over the numbers.rb test to minitest. +- AlanFoster - Switch over the kwargs.rb test to minitest. +- AlanFoster - Bail out early if the Ruby input is invalid. +- kddnewton - Support `__END__` content. +- AlanFoster - Fix up issue with whitespace being added within regexp that are multiline. +- AlanFoster - Better support for destructuring within multi assignment. +- kddnewton - Switch `next` test over to minitest. +- kddnewton - Handle multiple arguments to `next` with a space between. +- AndrewRayCode, kddnewton - Handle multi-line conditional predicate (should align with keyword). +- aaronjensen, kddnewton - Properly support adding trailing commas with and without blocks. +- AlanFoster, kddnewton - Fix regression of handling comments within arrays on array literals. +- AlanFoster - Support multiple arguments to `undef`. + +## [0.6.3] - 2019-02-18 + +### Changed + +- kddnewton - Switch over `binary` fixture to minitest. +- kddnewton - Reconfigure parser into multiple layer modules so that it's easier to understand and manage. +- kddnewton - Handle comments from within `begin`, `rescue`, `ensure`, `while`, and `until` nodes. +- kddnewton - Properly indent heredocs without taking into account current indentation level. + +## [0.6.2] - 2019-02-17 + +### Changed + +- AlanFoster - Handle regexp suffixes. +- kddnewton - Add support for testing the test fixtures with minitest. +- kddnewton - Switch over `alias` and `regexp` tests to minitest. +- aaronjensen, kddnewton - Break up method args to split into multiple lines. +- christoomey, kddnewton - Handle blocks args when trailing commas are on. + +## [0.6.1] - 2019-02-15 + +### Changed + +- meleyal, kddnewton - Fix Ruby 2.5 inline comments on `args_add_block` nodes. +- meleyal, kddnewton - Support passing `super()` explicitly with no arguments. + +## [0.6.0] - 2019-02-14 + +### Added + +- kddnewton - Handle non UTF-8 comments. +- kddnewton - Handle non UTF-8 identifiers. +- kddnewton - Handle non UTF-8 strings. +- kddnewton - Handle empty parens. +- kddnewton - Handle rescue with splats preceeding the exception names. + +### Changed + +- kddnewton - Use `JSON::fast_generate` to get the s-expressions back from the parser. +- NoahTheDuke, kddnewton - Handle broken lambdas from within `command` and `command_call` nodes. + +## [0.5.2] - 2019-02-13 + +### Changed + +- kddnewton - Support embedded expressions within strings that contain only keywords, as in `"#{super}"`. + +## [0.5.1] - 2019-02-13 + +### Changed + +- yuki24, kddnewton - Force `do` blocks that we know have to be `do` blocks to break. +- kmcq, kddnewton - Handle `command` and `command_call` nodes `do` blocks by forcing them to break. +- ashfurrow, kddnewton - Attach comments to full hash association nodes, not just the value. + +## [0.5.0] - 2019-02-13 + +### Added + +- kddnewton - Automatically convert arrays of all string literals to %w arrays. +- kddnewton - Automatically convert arrays of all symbol literals to %i arrays. + +### Changed + +- kddnewton - Move the `args_add` and `args_new` handling into the parser. +- uri, kddnewton - Change `command_call` nodes to properly indent when broken and to not add a trailing comma. +- kddnewton - Rename the `trailingComma` option to `addTrailingCommas` to not conflict with the JS option. + +## [0.4.1] - 2019-02-12 + +### Changed + +- kddnewton - Provide the `makeList` utility for the nodes that are lists from within ripper. +- awinograd, kddnewton - Again, this time for real, properly escape strings. +- kddnewton - Fix up trailing commas on command calls. + +## [0.4.0] - 2019-02-12 + +### Added + +- Overload119, kddnewton - Support the `trailingComma` configuration option (defaults to `false`). + +### Changed + +- NoahTheDuke, kddnewton - Pass the code to be formatted over `stdin`. + +## [0.3.7] - 2019-02-11 + +### Changed + +- kddnewton - Split up statements even if they started on the same line with `;`s unless they are within an embedded expression. +- kddnewton - Properly handle escaped quotes within strings. + +## [0.3.6] - 2019-02-10 + +### Changed + +- AlanFoster, kddnewton - Support the `not` operator properly. +- AlanFoster, kddnewton - Handle comments properly inside `if`, `unless`, and `when` nodes. + +## [0.3.5] - 2019-02-09 + +### Changed + +- kddnewton - Handle lonely operators in Ruby `2.5`. + +## [0.3.4] - 2019-02-09 + +### Changed + +- kddnewton - Comments are now properly attached inside `defs` nodes. +- kddnewton - Support multiple inline comments on nodes. +- kddnewton - Support inline comments from within the `EXPR_END|EXPR_LABEL` lexer state. +- cbothner - Stop transforming multistatement blocks with `to_proc`. +- kddnewton - `do` blocks necessarily need to break their parent nodes. +- eins78, kddnewton - Handle `next` node edge case with `args_add` as the body. + +## [0.3.3] - 2019-02-09 + +### Changed + +- bugthing, kddnewton - Command nodes within conditionals now break parents to disallow them from being turned into ternary expressions. +- awinograd, kddnewton - Properly escape double quotes when using `preferSingleQuotes: false`. + +## [0.3.2] - 2019-02-09 + +### Changed + +- kddnewton - Don't define duplicated methods in the parser. +- kddnewton - Let prettier know about `.rb` and `.rake` files so you don't have to specify the parser when running. +- kddnewton - Renamed the package to @prettier/plugin-ruby. + +## [0.3.1] - 2019-02-07 + +### Changed + +- kddnewton - Automatically add parens to method declarations. +- kddnewton - Handle comments on bare hash assocs. +- kddnewton - Handle `method_add_block` nodes where the statements may be nested one more level. +- kddnewton - Handle heredocs nested no matter how many levels deep. + +## [0.3.0] - 2019-02-07 + +### Added + +- kddnewton - Support squiggly heredocs. +- kddnewton - Support straight heredocs. + +### Changed + +- kddnewton - Ignore current indentation when creating embdocs so that `=begin` is always at the beginning of the line. +- kddnewton - Move `regexp_add` and `regexp_new` handling into the parser. +- kddnewton - Move `xstring_add` and `xstring_new` handling into the parser. +- kddnewton - Move `string_add` and `string_content` handling into the parser. +- kddnewton - Move `mrhs_add` and `mrhs_new` handling into the parser. +- kddnewton - Move `mlhs_add` and `mlhs_new` handling into the parser. + +## [0.2.1] - 2019-02-06 + +### Changed + +- kddnewton - Handle brace blocks on commands properly. +- kddnewton - Break parent and return `do` blocks when called from a `command` node. +- kddnewton - Handle edge cases with `if` statements where there is no body of the if (so it can't be converted to a ternary). + +## [0.2.0] - 2019-02-06 + +### Added + +- kddnewton - Handle `methref` nodes from Ruby `2.7`. +- kddnewton - Allow `module` nodes to shorten using `;` when the block is empty. + +### Changed + +- kddnewton - Handle splat within an array, as in `[1, 2, *foo]`. +- kddnewton - Disallow comments from being attached to intermediary regex nodes. +- kddnewton - Fix `to_proc` transforms to reference the method called as opposed to the parameter name. +- kddnewton - Change statement lists to be generated within the parser instead of the printer, thereby allowing finer control over comments. +- kddnewton - Completely revamp comment parsing by switching off the internal lexer state from `ripper`. This should drastically increase accuracy of comment parsing in general, and set us up for success in the future. +- kddnewton - Allow comments to be attached to `CHAR` nodes. +- kddnewton - Disallow comments from being attached to `args_new` nodes. +- kddnewton - Track start and end lines so we can better insert block comments. +- kddnewton - Handle intermediary array nodes in the parse for better comment handling. + +## [0.1.2] - 2019-02-05 + +### Changed + +- kddnewton - Handle guard clauses that return with no parens. + +## [0.1.1] - 2019-02-05 + +### Changed + +- kddnewton - Handle class method calls with the `::` operator. +- kddnewton - Handle strings with apostrophes when using `preferSingleQuote`. +- kddnewton - Have travis run multiple ruby versions. +- kddnewton - Explicitly fail if ruby version is < `2.5`. +- kddnewton - Disallow comments from being attached to intermediary string nodes. + +## [0.1.0] - 2019-02-04 + +### Added + +- Initial release 🎉 + +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.4...HEAD +[4.0.4]: https://github.com/prettier/plugin-ruby/compare/v4.0.3...v4.0.4 +[4.0.3]: https://github.com/prettier/plugin-ruby/compare/v4.0.2...v4.0.3 +[4.0.2]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...v4.0.2 +[4.0.1]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...v4.0.1 +[4.0.0]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...v4.0.0 +[3.2.2]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...v3.2.2 +[3.2.1]: https://github.com/prettier/plugin-ruby/compare/v3.2.0...v3.2.1 +[3.2.0]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...v3.2.0 +[3.1.2]: https://github.com/prettier/plugin-ruby/compare/v3.1.1...v3.1.2 +[3.1.1]: https://github.com/prettier/plugin-ruby/compare/v3.1.0...v3.1.1 +[3.1.0]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...v3.1.0 +[3.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...v3.0.0 +[2.1.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...v2.1.0 +[2.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc4...v2.0.0 +[2.0.0-rc4]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc3...v2.0.0-rc4 +[2.0.0-rc3]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc2...v2.0.0-rc3 +[2.0.0-rc2]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc1...v2.0.0-rc2 +[2.0.0-rc1]: https://github.com/prettier/plugin-ruby/compare/v1.6.1...v2.0.0-rc1 +[1.6.1]: https://github.com/prettier/plugin-ruby/compare/v1.6.0...v1.6.1 +[1.6.0]: https://github.com/prettier/plugin-ruby/compare/v1.5.5...v1.6.0 +[1.5.5]: https://github.com/prettier/plugin-ruby/compare/v1.5.4...v1.5.5 +[1.5.4]: https://github.com/prettier/plugin-ruby/compare/v1.5.3...v1.5.4 +[1.5.3]: https://github.com/prettier/plugin-ruby/compare/v1.5.2...v1.5.3 +[1.5.2]: https://github.com/prettier/plugin-ruby/compare/v1.5.1...v1.5.2 +[1.5.1]: https://github.com/prettier/plugin-ruby/compare/v1.5.0...v1.5.1 +[1.5.0]: https://github.com/prettier/plugin-ruby/compare/v1.4.0...v1.5.0 +[1.4.0]: https://github.com/prettier/plugin-ruby/compare/v1.3.0...v1.4.0 +[1.3.0]: https://github.com/prettier/plugin-ruby/compare/v1.2.5...v1.3.0 +[1.2.5]: https://github.com/prettier/plugin-ruby/compare/v1.2.4...v1.2.5 +[1.2.4]: https://github.com/prettier/plugin-ruby/compare/v1.2.3...v1.2.4 +[1.2.3]: https://github.com/prettier/plugin-ruby/compare/v1.2.2...v1.2.3 +[1.2.2]: https://github.com/prettier/plugin-ruby/compare/v1.2.1...v1.2.2 +[1.2.1]: https://github.com/prettier/plugin-ruby/compare/v1.2.0...v1.2.1 +[1.2.0]: https://github.com/prettier/plugin-ruby/compare/v1.1.0...v1.2.0 +[1.1.0]: https://github.com/prettier/plugin-ruby/compare/v1.0.1...v1.1.0 +[1.0.1]: https://github.com/prettier/plugin-ruby/compare/v1.0.0...v1.0.1 +[1.0.0]: https://github.com/prettier/plugin-ruby/compare/v1.0.0-rc2...v1.0.0 +[1.0.0-rc2]: https://github.com/prettier/plugin-ruby/compare/v1.0.0-rc1...v1.0.0-rc2 +[1.0.0-rc1]: https://github.com/prettier/plugin-ruby/compare/v0.22.0...v1.0.0-rc1 +[0.22.0]: https://github.com/prettier/plugin-ruby/compare/v0.21.0...v0.22.0 +[0.21.0]: https://github.com/prettier/plugin-ruby/compare/v0.20.1...v0.21.0 +[0.20.1]: https://github.com/prettier/plugin-ruby/compare/v0.20.0...v0.20.1 +[0.20.0]: https://github.com/prettier/plugin-ruby/compare/v0.19.1...v0.20.0 +[0.19.1]: https://github.com/prettier/plugin-ruby/compare/v0.19.0...v0.19.1 +[0.19.0]: https://github.com/prettier/plugin-ruby/compare/v0.18.2...v0.19.0 +[0.18.2]: https://github.com/prettier/plugin-ruby/compare/v0.18.1...v0.18.2 +[0.18.1]: https://github.com/prettier/plugin-ruby/compare/v0.18.0...v0.18.1 +[0.18.0]: https://github.com/prettier/plugin-ruby/compare/v0.17.0...v0.18.0 +[0.17.0]: https://github.com/prettier/plugin-ruby/compare/v0.16.0...v0.17.0 +[0.16.0]: https://github.com/prettier/plugin-ruby/compare/v0.15.1...v0.16.0 +[0.15.1]: https://github.com/prettier/plugin-ruby/compare/v0.15.0...v0.15.1 +[0.15.0]: https://github.com/prettier/plugin-ruby/compare/v0.14.0...v0.15.0 +[0.14.0]: https://github.com/prettier/plugin-ruby/compare/v0.13.0...v0.14.0 +[0.13.0]: https://github.com/prettier/plugin-ruby/compare/v0.12.3...v0.13.0 +[0.12.3]: https://github.com/prettier/plugin-ruby/compare/v0.12.2...v0.12.3 +[0.12.2]: https://github.com/prettier/plugin-ruby/compare/v0.12.1...v0.12.2 +[0.12.1]: https://github.com/prettier/plugin-ruby/compare/v0.12.0...v0.12.1 +[0.12.0]: https://github.com/prettier/plugin-ruby/compare/v0.11.0...v0.12.0 +[0.11.0]: https://github.com/prettier/plugin-ruby/compare/v0.10.0...v0.11.0 +[0.10.0]: https://github.com/prettier/plugin-ruby/compare/v0.9.1...v0.10.0 +[0.9.1]: https://github.com/prettier/plugin-ruby/compare/v0.9.0...v0.9.1 +[0.9.0]: https://github.com/prettier/plugin-ruby/compare/v0.8.0...v0.9.0 +[0.8.0]: https://github.com/prettier/plugin-ruby/compare/v0.7.0...v0.8.0 +[0.7.0]: https://github.com/prettier/plugin-ruby/compare/v0.6.3...v0.7.0 +[0.6.3]: https://github.com/prettier/plugin-ruby/compare/v0.6.2...v0.6.3 +[0.6.2]: https://github.com/prettier/plugin-ruby/compare/v0.6.1...v0.6.2 +[0.6.1]: https://github.com/prettier/plugin-ruby/compare/v0.6.0...v0.6.1 +[0.6.0]: https://github.com/prettier/plugin-ruby/compare/v0.5.2...v0.6.0 +[0.5.2]: https://github.com/prettier/plugin-ruby/compare/v0.5.1...v0.5.2 +[0.5.1]: https://github.com/prettier/plugin-ruby/compare/v0.5.0...v0.5.1 +[0.5.0]: https://github.com/prettier/plugin-ruby/compare/v0.4.1...v0.5.0 +[0.4.1]: https://github.com/prettier/plugin-ruby/compare/v0.4.0...v0.4.1 +[0.4.0]: https://github.com/prettier/plugin-ruby/compare/v0.3.7...v0.4.0 +[0.3.7]: https://github.com/prettier/plugin-ruby/compare/v0.3.6...v0.3.7 +[0.3.6]: https://github.com/prettier/plugin-ruby/compare/v0.3.5...v0.3.6 +[0.3.5]: https://github.com/prettier/plugin-ruby/compare/v0.3.4...v0.3.5 +[0.3.4]: https://github.com/prettier/plugin-ruby/compare/v0.3.3...v0.3.4 +[0.3.3]: https://github.com/prettier/plugin-ruby/compare/v0.3.2...v0.3.3 +[0.3.2]: https://github.com/prettier/plugin-ruby/compare/v0.3.1...v0.3.2 +[0.3.1]: https://github.com/prettier/plugin-ruby/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/prettier/plugin-ruby/compare/v0.2.1...v0.3.0 +[0.2.1]: https://github.com/prettier/plugin-ruby/compare/v0.2.0...v0.2.1 +[0.2.0]: https://github.com/prettier/plugin-ruby/compare/v0.1.2...v0.2.0 +[0.1.2]: https://github.com/prettier/plugin-ruby/compare/v0.1.1...v0.1.2 +[0.1.1]: https://github.com/prettier/plugin-ruby/compare/v0.1.0...v0.1.1 +[0.1.0]: https://github.com/prettier/plugin-ruby/compare/61f675...v0.1.0 diff --git a/node_modules/@prettier/plugin-ruby/CODE_OF_CONDUCT.md b/node_modules/@prettier/plugin-ruby/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..06a9744 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at prettier-contact@googlegroups.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/node_modules/@prettier/plugin-ruby/LICENSE b/node_modules/@prettier/plugin-ruby/LICENSE new file mode 100644 index 0000000..1d22942 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019-present Kevin Newton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of 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. diff --git a/node_modules/@prettier/plugin-ruby/README.md b/node_modules/@prettier/plugin-ruby/README.md new file mode 100644 index 0000000..a0db67f --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/README.md @@ -0,0 +1,201 @@ +
+ Prettier Ruby +
+ +

Prettier for Ruby

+ +

+ + Gitter + + + GitHub Actions + + + NPM Version + + + code style: prettier + + + Follow+Prettier+on+Twitter + +

+ +`@prettier/plugin-ruby` is a [prettier](https://prettier.io/) plugin for the Ruby programming language and its ecosystem. `prettier` is an opinionated code formatter that supports multiple languages and integrates with most editors. The idea is to eliminate discussions of style in code review and allow developers to get back to thinking about code design instead. + +For example, the below [code segment](http://www.rubyinside.com/advent2006/4-ruby-obfuscation.html): + + +```ruby + d=[30644250780,9003106878, + 30636278846,66641217692,4501790980, + 671_24_603036,131_61973916,66_606629_920, + 30642677916,30643069058];a,s=[],$*[0] + s.each_byte{|b|a<<("%036b"%d[b. + chr.to_i]).scan(/\d{6}/)} + a.transpose.each{ |a| + a.join.each_byte{\ + |i|print i==49?\ + ($*[1]||"#")\ + :32.chr} + puts + } +``` + +when run through `@prettier/plugin-ruby` will generate: + +```ruby +d = [ + 30_644_250_780, + 9_003_106_878, + 30_636_278_846, + 66_641_217_692, + 4_501_790_980, + 671_24_603036, + 131_61973916, + 66_606629_920, + 30_642_677_916, + 30_643_069_058 +] +a, s = [], $*[0] +s.each_byte { |b| a << ("%036b" % d[b.chr.to_i]).scan(/\d{6}/) } +a.transpose.each do |a| + a.join.each_byte { |i| print i == 49 ? ($*[1] || "#") : 32.chr } + puts +end +``` + +## Getting started + +The `@prettier/plugin-ruby` plugin for `prettier` is a small wrapper around the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem that provides a Ruby formatter for `prettier`. It does this by keeping a Ruby server running in that background that `prettier` can communicate with when it needs to format a Ruby file. This means that in order to function, you will need to have both the requisite `node` and `ruby` dependencies installed. Because of this configuration, there are a couple of ways that you can get setup to use this plugin. + +- If you're already using `prettier` in your project to format other files in your project and want to install this as a plugin, you can install it using `npm`. +- If you're not using `prettier` yet in your project, then we recommend using the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem directly instead of using this plugin. +- Note that this plugin also ships a gem named `prettier` which is a wrapper around the `prettier` CLI and includes this plugin by default, but _we no longer recommend its use_. If you're using that gem, you should migrate to using [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) instead. + +To run `prettier` with the Ruby plugin as an `npm` package, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.7` or newer) and [`node`](https://nodejs.org/en/download/) (version `16` or newer). + +If you're using the `npm` CLI, then add the plugin by: + +```bash +npm install --save-dev prettier @prettier/plugin-ruby +``` + +Or if you're using `yarn`, then add the plugin by: + +```bash +yarn add --dev prettier @prettier/plugin-ruby +``` + +You'll also need to add the necessary Ruby dependencies. You can do this by running: + +```bash +gem install bundler prettier_print syntax_tree syntax_tree-haml syntax_tree-rbs +``` + +The `prettier` executable is now installed and ready for use: + +```bash +./node_modules/.bin/prettier --plugin=@prettier/plugin-ruby --write '**/*' +``` + +### Using Prettier >= 3.0 + +You need to tell Prettier to use the plugin, add the following to your existing [prettier configuration +file](https://prettier.io/docs/en/configuration.html). + +```json +{ + "plugins": ["@prettier/plugin-ruby"] +} +``` + +## Configuration + +Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: + +| API Option | CLI Option | Default | Description | +| -------------------- | --------------------- | :------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `rubyExecutablePath` | `"ruby"` | Allows you to configure your Ruby executable path. | +| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `rubySingleQuote` | `--ruby-single-quote` | `false` | Whether or not to default to single quotes for Ruby code. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | + +Any of these can be added to your existing [prettier configuration +file](https://prettier.io/docs/en/configuration.html). For example: + +```json +{ + "tabWidth": 4 +} +``` + +Or, they can be passed to `prettier` as arguments: + +```bash +bundle exec rbprettier --tab-width 4 --write '**/*' +``` + +### Ignoring code + +Sometimes you want to leave your formatting in place and have `prettier` not format it, but continue to format the rest of the file. `prettier` has the ability to do this with `prettier-ignore` comments, but because the underlying formatter for this plugin is [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree), you instead would use a `stree-ignore` comment. + +### Usage with RuboCop + +RuboCop and Prettier for Ruby serve different purposes, but there is overlap with some of RuboCop's functionality. Prettier provides a RuboCop configuration file to disable the rules which would clash. To enable this file, add the following configuration at the top of your project's `.rubocop.yml`: + +```yaml +inherit_from: + - node_modules/@prettier/plugin-ruby/rubocop.yml +``` + +### Usage with an editor + +For [supported editor integrations](https://github.com/prettier/prettier/blob/main/website/data/editors.yml), you should follow the instructions for installing the integration, then install the npm version of this plugin as a development dependency of your project. For most integrations, that should be sufficient. For convenience, the instructions for integrating with VSCode are used as an example below: + +- Install the [Prettier - Code Formatter](https://github.com/prettier/prettier-vscode) extension. +- Add the npm `@prettier/plugin-ruby` package to your project as described above. +- Configure in your `settings.json` (`formatOnSave` is optional): + +```json +{ + "[ruby]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + } +} +``` + +Refer to [this issue](https://github.com/prettier/plugin-ruby/issues/113#issuecomment-783426539) if you're having difficulties. + +## Contributing + +Thanks so much for your interest in contributing! You can contribute in many ways, including: + +- Contributing code to fix any bugs on [GitHub](https://github.com/prettier/plugin-ruby). +- Reporting issues on [GitHub](https://github.com/prettier/plugin-ruby/issues/new). +- Supporting `prettier/plugin-ruby` on [OpenCollective](https://opencollective.com/prettier-ruby/contribute). Your organization's logo will show up here with a link to your website. + + + + + + + + + + + + + + + + + +## License + +The package is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). diff --git a/node_modules/@prettier/plugin-ruby/docs/logo.png b/node_modules/@prettier/plugin-ruby/docs/logo.png new file mode 100644 index 0000000..76905c4 Binary files /dev/null and b/node_modules/@prettier/plugin-ruby/docs/logo.png differ diff --git a/node_modules/@prettier/plugin-ruby/package.json b/node_modules/@prettier/plugin-ruby/package.json new file mode 100644 index 0000000..2365fb6 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/package.json @@ -0,0 +1,70 @@ +{ + "name": "@prettier/plugin-ruby", + "version": "4.0.4", + "description": "prettier plugin for the Ruby programming language", + "type": "module", + "main": "src/plugin.js", + "scripts": { + "checkFormat": "prettier --check '**/*'", + "lint": "eslint --cache .", + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/prettier/plugin-ruby.git" + }, + "author": "Kevin Newton", + "license": "MIT", + "bugs": { + "url": "https://github.com/prettier/plugin-ruby/issues" + }, + "homepage": "https://github.com/prettier/plugin-ruby#readme", + "peerDependencies": { + "prettier": "^3.0.0" + }, + "devDependencies": { + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "husky": "^8.0.1", + "jest": "^29.5.0", + "prettier": "^3.1.0", + "pretty-quick": "^3.1.2" + }, + "eslintConfig": { + "extends": [ + "eslint:recommended", + "prettier" + ], + "env": { + "jest": true, + "node": true + }, + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module" + }, + "rules": { + "no-undef": "off" + } + }, + "jest": { + "globalSetup": "./test/js/globalSetup.js", + "globalTeardown": "./test/js/globalTeardown.js", + "setupFilesAfterEnv": [ + "./test/js/setupTests.js" + ], + "testRegex": ".test.js$", + "transform": {} + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } + }, + "prettier": { + "trailingComma": "none", + "plugins": [ + "./src/plugin.js" + ] + } +} diff --git a/node_modules/@prettier/plugin-ruby/prettier.gemspec b/node_modules/@prettier/plugin-ruby/prettier.gemspec new file mode 100644 index 0000000..5cc3cf5 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/prettier.gemspec @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require "json" unless defined?(JSON) +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Gem::Specification.new do |spec| + spec.name = "prettier" + spec.version = package.fetch("version") + spec.authors = [package.fetch("author")] + + spec.summary = package.fetch("description") + spec.homepage = package.fetch("homepage") + spec.license = package.fetch("license") + + spec.files = + Dir.chdir(__dir__) do + %w[LICENSE package.json rubocop.yml] + Dir["{{exe,lib,src}/**/*,*.md}"] + + Dir["node_modules/prettier/**/*"] + end + + spec.required_ruby_version = ">= 2.7.0" + + spec.bindir = "exe" + spec.executables = "rbprettier" + spec.require_paths = %w[lib] + + spec.add_dependency "syntax_tree", ">= 4.0.1" + spec.add_dependency "syntax_tree-haml", ">= 2.0.0" + spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" + + spec.add_development_dependency "bundler" + spec.add_development_dependency "minitest" + spec.add_development_dependency "rake" +end diff --git a/node_modules/@prettier/plugin-ruby/rubocop.yml b/node_modules/@prettier/plugin-ruby/rubocop.yml new file mode 100644 index 0000000..64316d0 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/rubocop.yml @@ -0,0 +1,64 @@ +# Disabling all Layout/* rules, as they're unnecessary when the user is using +# Syntax Tree to handle all of the formatting. +Layout: + Enabled: false + +# Re-enable Layout/LineLength because certain cops that most projects use +# (e.g. Style/IfUnlessModifier) require Layout/LineLength to be enabled. +# By leaving it disabled, those rules will mis-fire. +# +# Users can always override these defaults in their own rubocop.yml files. +# https://github.com/prettier/plugin-ruby/issues/825 +Layout/LineLength: + Enabled: true + +Style/MultilineIfModifier: + Enabled: false + +# Syntax Tree will expand empty methods to put the end keyword on the subsequent +# line to reduce git diff noise. +Style/EmptyMethod: + EnforcedStyle: expanded + +# lambdas that are constructed with the lambda method call cannot be safely +# turned into lambda literals without removing a method call. +Style/Lambda: + Enabled: false + +# When method chains with multiple blocks are chained together, rubocop will let +# them pass if they're using braces but not if they're using do and end +# keywords. Because we will break individual blocks down to using keywords if +# they are multiline, this conflicts with rubocop. +Style/MultilineBlockChain: + Enabled: false + +# Disable the single- vs double-quotes rules as these depend on whether the user +# has added or not `plugin/single_quotes` for `syntax_tree` +Style/StringLiterals: + Enabled: false + +Style/StringLiteralsInInterpolation: + Enabled: false + +Style/QuotedSymbols: + Enabled: false + +# We let users have a little more freedom with symbol and words arrays. If the +# user only has an individual item like ["value"] then we don't bother +# converting it because it ends up being just noise. +Style/SymbolArray: + Enabled: false + +Style/WordArray: + Enabled: false + +# Disable the trailing-comma rules as these depend on whether the user has added +# or not `plugin/trailing_comma` for `syntax_tree` +Style/TrailingCommaInArguments: + Enabled: false + +Style/TrailingCommaInArrayLiteral: + Enabled: false + +Style/TrailingCommaInHashLiteral: + Enabled: false diff --git a/node_modules/@prettier/plugin-ruby/src/plugin.js b/node_modules/@prettier/plugin-ruby/src/plugin.js new file mode 100644 index 0000000..71d2030 --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/src/plugin.js @@ -0,0 +1,381 @@ +import { spawn } from "child_process"; +import fs from "fs"; +import net from "net"; +import os from "os"; +import path from "path"; +import process from "process"; +import url from "url"; +import { resolveConfigFile } from "prettier"; + +// In order to properly parse ruby code, we need to tell the ruby process to +// parse using UTF-8. Unfortunately, the way that you accomplish this looks +// differently depending on your platform. +function getLang() { + const { env, platform } = process; + const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; + + // If an env var is set for the locale that already includes UTF-8 in the + // name, then assume we can go with that. + if (envValue && envValue.includes("UTF-8")) { + return envValue; + } + + // Otherwise, we're going to guess which encoding to use based on the system. + // This is probably not the best approach in the world, as you could be on + // linux and not have C.UTF-8, but in that case you're probably passing an env + // var for it. This object below represents all of the possible values of + // process.platform per: + // https://nodejs.org/api/process.html#process_process_platform + return { + aix: "C.UTF-8", + android: "C.UTF-8", + cygwin: "C.UTF-8", + darwin: "en_US.UTF-8", + freebsd: "C.UTF-8", + haiku: "C.UTF-8", + linux: "C.UTF-8", + netbsd: "C.UTF-8", + openbsd: "C.UTF-8", + sunos: "C.UTF-8", + win32: ".UTF-8" + }[platform]; +} + +// Return the list of plugins that should be passed to the server process. +function getPlugins(opts) { + const plugins = new Set(); + + const rubyPlugins = opts.rubyPlugins.trim(); + if (rubyPlugins.length > 0) { + rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); + } + + if (opts.rubySingleQuote) { + plugins.add("plugin/single_quotes"); + } + + if (opts.trailingComma !== "none") { + plugins.add("plugin/trailing_comma"); + } + + return Array.from(plugins); +} + +// Create a file that will act as a communication mechanism, spawn a parser +// server with that filepath as an argument, then wait for the file to be +// created that will contain the connection information. +export async function spawnServer(opts, killOnExit = true) { + const tmpdir = os.tmpdir(); + const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); + + const options = { + env: Object.assign({}, process.env, { LANG: getLang() }), + stdio: ["ignore", "ignore", "inherit"], + detached: true + }; + + if (opts.filepath) { + const prettierConfig = await resolveConfigFile(opts.filepath); + options.cwd = path.dirname(prettierConfig); + } + + const server = spawn( + opts.rubyExecutablePath || "ruby", + [ + url.fileURLToPath(new URL("./server.rb", import.meta.url)), + `--plugins=${getPlugins(opts).join(",")}`, + filepath + ], + options + ); + + server.unref(); + + if (killOnExit) { + process.on("exit", () => { + if (fs.existsSync(filepath)) { + fs.unlinkSync(filepath); + } + + try { + if (server.pid) { + // Kill the server process if it's still running. If we're on windows + // we're going to use the process ID number. If we're not, we're going + // to use the negative process ID to indicate the group. + const pid = process.platform === "win32" ? server.pid : -server.pid; + process.kill(pid); + } + } catch (error) { + // If there's an error killing the process, we're going to ignore it. + } + }); + } + + return new Promise((resolve, reject) => { + const interval = setInterval(() => { + if (fs.existsSync(filepath)) { + const connectionJSON = fs.readFileSync(filepath).toString("utf-8"); + resolve({ + serverPID: server.pid, + connectionFilepath: filepath, + connectionOptions: JSON.parse(connectionJSON) + }); + + clearTimeout(timeout); + clearInterval(interval); + } else if (server.exitCode) { + reject(new Error("Failed to start parse server.")); + clearTimeout(timeout); + clearInterval(interval); + } + }, 100); + + const timeout = setTimeout( + () => { + const message = + "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000."; + + clearInterval(interval); + reject(new Error(message)); + }, + parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) + ); + }); +} + +let connectionOptions; +if (process.env.PRETTIER_RUBY_HOST) { + connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST); +} + +// Formats and sends an asynchronous request to the parser server. +async function parse(parser, source, opts) { + if (!connectionOptions) { + const spawnedServer = await spawnServer(opts); + connectionOptions = spawnedServer.connectionOptions; + } + + return new Promise((resolve, reject) => { + const socket = new net.Socket(); + let chunks = ""; + + socket.on("error", (error) => { + reject(error); + }); + + socket.on("data", (data) => { + chunks += data.toString("utf-8"); + }); + + socket.on("end", () => { + const response = JSON.parse(chunks); + + if (response.error) { + const error = new Error(response.error); + if (response.loc) { + error.loc = response.loc; + } + + reject(error); + } + + resolve(response); + }); + + socket.connect(connectionOptions, () => { + socket.end( + JSON.stringify({ + parser, + source, + maxwidth: opts.printWidth, + tabwidth: opts.tabWidth + }) + ); + }); + }); +} + +// Metadata mostly pulled from linguist and rubocop: +// https://github.com/github/linguist/blob/master/lib/linguist/languages.yml +// https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb +const plugin = { + languages: [ + { + name: "Ruby", + parsers: ["ruby"], + extensions: [ + ".arb", + ".axlsx", + ".builder", + ".eye", + ".fcgi", + ".gemfile", + ".gemspec", + ".god", + ".jb", + ".jbuilder", + ".mspec", + ".opal", + ".pluginspec", + ".podspec", + ".rabl", + ".rake", + ".rb", + ".rbi", + ".rbuild", + ".rbw", + ".rbx", + ".ru", + ".ruby", + ".thor", + ".watchr" + ], + filenames: [ + ".irbrc", + ".pryrc", + ".simplecov", + "Appraisals", + "Berksfile", + "Brewfile", + "Buildfile", + "Capfile", + "Cheffile", + "Dangerfile", + "Deliverfile", + "Fastfile", + "Gemfile", + "Guardfile", + "Jarfile", + "Mavenfile", + "Podfile", + "Puppetfile", + "Rakefile", + "Snapfile", + "Thorfile", + "Vagabondfile", + "Vagrantfile", + "buildfile" + ], + interpreters: ["jruby", "macruby", "rake", "rbx", "ruby"], + linguistLanguageId: 326, + vscodeLanguageIds: ["ruby"] + }, + { + name: "RBS", + parsers: ["rbs"], + extensions: [".rbs"] + }, + { + name: "HAML", + parsers: ["haml"], + extensions: [".haml"], + vscodeLanguageIds: ["haml"] + } + ], + parsers: { + ruby: { + parse(text, opts) { + return parse("ruby", text, opts); + }, + astFormat: "ruby", + hasPragma(text) { + return /^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/m.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + }, + rbs: { + parse(text, opts) { + return parse("rbs", text, opts); + }, + astFormat: "rbs", + hasPragma(text) { + return /^\s*#[^\S\n]*@(prettier|format)\s*(\n|$)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + }, + haml: { + parse(text, opts) { + return parse("haml", text, opts); + }, + astFormat: "haml", + hasPragma(text) { + return /^\s*-#\s*@(prettier|format)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + } + }, + printers: { + ruby: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `# @format${text.startsWith("#") ? "\n" : "\n\n"}${text}`; + } + }, + rbs: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `# @format${text.startsWith("#") ? "\n" : "\n\n"}${text}`; + } + }, + haml: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `-# @format${text.startsWith("-#") ? "\n" : "\n\n"}${text}`; + } + } + }, + options: { + rubyPlugins: { + type: "string", + category: "Ruby", + default: "", + description: "The comma-separated list of plugins to require.", + since: "3.1.0" + }, + rubySingleQuote: { + type: "boolean", + category: "Ruby", + default: false, + description: + "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.", + since: "1.0.0" + }, + rubyExecutablePath: { + type: "string", + category: "Ruby", + default: "ruby", + description: + "The path to the Ruby executable to use to run the formatter.", + since: "3.3.0" + } + }, + defaultOptions: { + printWidth: 80, + tabWidth: 2, + trailingComma: "none", + singleQuote: false + } +}; + +export default plugin; diff --git a/node_modules/@prettier/plugin-ruby/src/server.rb b/node_modules/@prettier/plugin-ruby/src/server.rb new file mode 100644 index 0000000..d5876cf --- /dev/null +++ b/node_modules/@prettier/plugin-ruby/src/server.rb @@ -0,0 +1,167 @@ +# frozen_string_literal: true + +require "bundler/setup" +require "json" +require "socket" + +require "syntax_tree" + +# Optional dependencies +%W[syntax_tree/rbs syntax_tree/haml prettier_print].each do |dep| + begin + require dep + rescue LoadError + end +end + +# First, require all of the plugins that the user specified. +ARGV.shift[/^--plugins=(.*)$/, 1] + .split(",") + .each { |plugin| require "syntax_tree/#{plugin}" } + +# Next, get the file where we should write our connection information. +connection_filepath = ARGV.shift + +# Make sure we trap these signals to be sure we get the quit command coming from +# the parent node process +quit = false +trap(:INT) { quit = true } +trap(:TERM) { quit = true } + +if Signal.list.key?("QUIT") && RUBY_ENGINE != "jruby" + trap(:QUIT) { quit = true } +end + +connection_information = + if Gem.win_platform? + # If we're on windows, we're going to start up a TCP server. The 0 here + # means to bind to some available port. + server = TCPServer.new(0) + address = server.local_address + + # Ensure that we close the server when this process exits. + at_exit { server.close } + + # Return the connection information. + { address: address.ip_address, port: address.ip_port } + else + # If we're not on windows, then we're going to assume we can use unix socket + # files (since they're faster than a TCP server). + filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock" + server = UNIXServer.new(filepath) + + # Ensure that we close the server and delete the socket file when this + # process exits. + at_exit do + server.close + File.unlink(filepath) + end + + # Return the connection information. + { path: server.local_address.unix_path } + end + +# This is the actual listening thread that will be acting as our server. We have +# to start it in another thread in order to properly trap the signals in this +# parent thread. +listener = + Thread.new do + loop do + break if quit + + # Start up a new thread that will handle each successive connection. + Thread.new(server.accept_nonblock) do |socket| + request = JSON.parse(socket.read.force_encoding("UTF-8")) + source = request["source"] + + source.each_line do |line| + case line + when /^\s*#.+?coding/ + # If we've found an encoding comment, then we're going to take that + # into account and reclassify the encoding for the source. + encoding = Ripper.new(line).tap(&:parse).encoding + source = source.force_encoding(encoding) + break + when /^\s*#/ + # continue + else + break + end + end + + # At the moment, we're not going to support odd tabwidths. It's going to + # have to be a multiple of 2, because of the way that the prettyprint + # gem functions. So we're going to just use integer division here. + scalar = request["tabwidth"].to_i / 2 + genspace = ->(n) { " " * n * scalar } + + maxwidth = request["maxwidth"].to_i + response = + case request["parser"] + when "ruby" + formatter = + SyntaxTree::Formatter.new(source, [], maxwidth, "\n", &genspace) + SyntaxTree.parse(source).format(formatter) + formatter.flush + formatter.output.join + when "rbs" + formatter = + SyntaxTree::RBS::Formatter.new( + source, + [], + maxwidth, + "\n", + &genspace + ) + SyntaxTree::RBS.parse(source).format(formatter) + formatter.flush + formatter.output.join + when "haml" + formatter = + if defined?(SyntaxTree::Haml::Format::Formatter) + SyntaxTree::Haml::Format::Formatter.new( + source, + +"", + maxwidth, + "\n", + &genspace + ) + else + PrettierPrint.new(+"", maxwidth, "\n", &genspace) + end + + SyntaxTree::Haml.parse(source).format(formatter) + formatter.flush + formatter.output + end + + if response + socket.write(JSON.fast_generate(response.force_encoding("UTF-8"))) + else + socket.write("{ \"error\": true }") + end + rescue SyntaxTree::Parser::ParseError => error + loc = { start: { line: error.lineno, column: error.column } } + socket.write(JSON.fast_generate(error: error.message, loc: loc)) + rescue StandardError => error + begin + socket.write(JSON.fast_generate(error: error.message)) + rescue Errno::EPIPE + # Do nothing, the pipe has been closed by the parent process so we + # don't actually care about writing to it anymore. + end + ensure + socket.close + end + rescue IO::WaitReadable, Errno::EINTR + # Wait for select(2) to give us a connection that has content for 1 + # second. Otherwise timeout and continue on (so that we hit our + # "break if quit" pretty often). + IO.select([server], nil, nil, 1) + + retry unless quit + end + end + +File.write(connection_filepath, JSON.fast_generate(connection_information)) +listener.join diff --git a/node_modules/prettier/LICENSE b/node_modules/prettier/LICENSE new file mode 100644 index 0000000..5767e34 --- /dev/null +++ b/node_modules/prettier/LICENSE @@ -0,0 +1,7 @@ +Copyright © James Long and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of 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. diff --git a/node_modules/prettier/README.md b/node_modules/prettier/README.md new file mode 100644 index 0000000..2297b58 --- /dev/null +++ b/node_modules/prettier/README.md @@ -0,0 +1,104 @@ +[![Prettier Banner](https://unpkg.com/prettier-logo@1.0.3/images/prettier-banner-light.svg)](https://prettier.io) + +

Opinionated Code Formatter

+ +

+ + JavaScript + · TypeScript + · Flow + · JSX + · JSON + +
+ + CSS + · SCSS + · Less + +
+ + HTML + · Vue + · Angular + +
+ + GraphQL + · Markdown + · YAML + +
+ + + Your favorite language? + + +

+ +

+ + CI Status + + Coverage Status + + Blazing Fast +
+ + npm version + + weekly downloads from npm + + code style: prettier + + Follow Prettier on X +

+ +## Intro + +Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary. + +### Input + + +```js +foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne()); +``` + +### Output + +```js +foo( + reallyLongArg(), + omgSoManyParameters(), + IShouldRefactorThis(), + isThereSeriouslyAnotherOne(), +); +``` + +Prettier can be run [in your editor](https://prettier.io/docs/editors) on-save, in a [pre-commit hook](https://prettier.io/docs/precommit), or in [CI environments](https://prettier.io/docs/cli#list-different) to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again! + +--- + +**[Documentation](https://prettier.io/docs/)** + +[Install](https://prettier.io/docs/install) · +[Options](https://prettier.io/docs/options) · +[CLI](https://prettier.io/docs/cli) · +[API](https://prettier.io/docs/api) + +**[Playground](https://prettier.io/playground/)** + +--- + +## Badge + +Show the world you're using _Prettier_ → [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) + +```md +[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/node_modules/prettier/THIRD-PARTY-NOTICES.md b/node_modules/prettier/THIRD-PARTY-NOTICES.md new file mode 100644 index 0000000..f2af3ea --- /dev/null +++ b/node_modules/prettier/THIRD-PARTY-NOTICES.md @@ -0,0 +1,5844 @@ +# Licenses of bundled dependencies + +The published Prettier artifact additionally contains code with the following licenses: +MIT, ISC, BSD-3-Clause, BSD-2-Clause, and Apache-2.0. + +## @angular/compiler@v20.0.5 + +> Angular - the compiler library + +License: MIT +Repository: +Author: angular + +> The MIT License +> +> Copyright (c) 2010-2025 Google LLC. https://angular.dev/license +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @babel/code-frame@v7.27.1 + +> Generate errors that contain a code frame that point to source locations. + +License: MIT +Homepage: +Repository: +Author: The Babel Team (https://babel.dev/team) + +> MIT License +> +> Copyright (c) 2014-present Sebastian McKenzie and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## @babel/helper-validator-identifier@v7.27.1 + +> Validate identifier/keywords name + +License: MIT +Repository: +Author: The Babel Team (https://babel.dev/team) + +> MIT License +> +> Copyright (c) 2014-present Sebastian McKenzie and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## @babel/parser@v7.27.7 + +> A JavaScript parser + +License: MIT +Homepage: +Repository: +Author: The Babel Team (https://babel.dev/team) + +> Copyright (C) 2012-2014 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @glimmer/syntax@v0.94.9 + +License: MIT +Repository: + +> Copyright (c) 2015 Tilde, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## @glimmer/util@v0.94.8 + +> Common utilities used in Glimmer + +License: MIT +Repository: + +> Copyright (c) 2015 Tilde, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## @glimmer/wire-format@v0.94.8 + +License: MIT +Repository: + +> Copyright (c) 2015 Tilde, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## @handlebars/parser@v2.0.0 + +> The parser for the Handlebars language + +License: ISC +Homepage: +Repository: + +---------------------------------------- + +## @keyv/serialize@v1.0.3 + +> Serialization for Keyv + +License: MIT +Homepage: +Repository: +Author: Jared Wray (https://jaredwray.com) + +> MIT License +> +> Copyright (c) 2017-2021 Luke Childs +> Copyright (c) 2021-2022 Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @nodelib/fs.scandir@v2.1.5 + +> List files and directories inside the specified directory + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @nodelib/fs.stat@v2.0.5 + +> Get the status of a file with some features + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @nodelib/fs.walk@v1.2.8 + +> A library for efficiently walking a directory recursively + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @prettier/cli@v0.9.0 + +> A faster CLI for Prettier. + +License: MIT + +> Copyright © James Long and contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## @prettier/parse-srcset@v3.1.0 + +> A spec-conformant JavaScript parser for the HTML5 srcset attribute + +License: MIT +Homepage: +Author: Alex Bell + +> The MIT License (MIT) +> +> Copyright (c) 2014 Alex Bell +> Copyright (c) fisker Cheung +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @typescript-eslint/types@v8.34.1 + +> Types for the TypeScript-ESTree AST spec + +License: MIT +Homepage: +Repository: + +> MIT License +> +> Copyright (c) 2019 typescript-eslint and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## @typescript-eslint/typescript-estree@v8.34.1 + +> A parser that converts TypeScript source code into an ESTree compatible form + +License: MIT +Homepage: +Repository: + +> MIT License +> +> Copyright (c) 2019 typescript-eslint and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## acorn@v8.15.0 + +> ECMAScript parser + +License: MIT +Homepage: +Repository: + +> MIT License +> +> Copyright (C) 2012-2022 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## acorn-jsx@v5.3.2 + +> Modern, fast React.js JSX parser + +License: MIT +Homepage: +Repository: + +> Copyright (C) 2012-2017 by Ingvar Stepanyan +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## angular-estree-parser@v12.1.0 + +> A parser that converts Angular source code into an ESTree-compatible form + +License: MIT +Homepage: +Author: Ika (https://github.com/ikatyang) + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## angular-html-parser@v8.1.0 + +> A HTML parser extracted from Angular with some modifications + +License: MIT +Homepage: +Author: Ika (https://github.com/ikatyang) + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## ansi-purge@v1.0.1 + +> A tiny function for deleting ANSI escape sequences from a string. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## ansi-regex@v6.1.0 + +> Regular expression for matching ANSI escape codes + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## ansi-truncate@v1.2.0 + +> A tiny function for truncating a string that may contain ANSI escape sequences. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## atomically@v2.0.3 + +> Read and write files atomically and reliably. + + +> The MIT License (MIT) +> +> Copyright (c) 2020-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## bail@v1.0.5 + +> Throw a given error + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## binary-extensions@v2.3.0 + +> List of binary file extensions + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> Copyright (c) Paul Miller (https://paulmillr.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## braces@v3.0.3 + +> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Brian Woodward (https://twitter.com/doowb) + - Elan Shanker (https://github.com/es128) + - Eugene Sharygin (https://github.com/eush77) + - hemanth.hm (http://h3manth.com) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## cacheable@v1.10.0 + +> High Performance Layer 1 / Layer 2 Caching with Keyv Storage + +License: MIT +Repository: +Author: Jared Wray + +> MIT License & © Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## camelcase@v8.0.0 + +> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar` + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## ccount@v1.1.0 + +> Count characters + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## character-entities@v1.2.4 + +> HTML character entity information + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## character-entities-legacy@v1.1.4 + +> HTML legacy character entity information + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## character-reference-invalid@v1.1.4 + +> HTML invalid numeric character reference information + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## ci-info@v4.2.0 + +> Get details about the current Continuous Integration environment + +License: MIT +Homepage: +Author: Thomas Watson Steen (https://twitter.com/wa7son) +Contributors: + - Sibiraj (https://github.com/sibiraj-s) + +> The MIT License (MIT) +> +> Copyright (c) 2016 Thomas Watson Steen +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## collapse-white-space@v1.0.6 + +> Replace multiple white-space characters with a single space + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## common-path-prefix@v3.0.0 + +> Computes the longest prefix string that is common to each path, excluding the base component + +License: ISC +Homepage: +Repository: +Author: Mark Wubben (https://novemberborn.net/) + +> ISC License (ISC) +> Copyright (c) 2016, Mark Wubben +> +> Permission to use, copy, modify, and/or distribute this software for any purpose +> with or without fee is hereby granted, provided that the above copyright notice +> and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +> THIS SOFTWARE. + +---------------------------------------- + +## dashify@v2.0.0 + +> Convert a camelcase or space-separated string to a dash-separated string. ~12 sloc, fast, supports diacritics. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Jeffrey Priebe (https://github.com/jeffreypriebe) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Ondrej Brinkel (https://www.anzui.de) + +> The MIT License (MIT) +> +> Copyright (c) 2015-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## deno-path-from-file-url@v0.0.3 + +> Convert file URLs to paths. + +License: MIT +Homepage: +Author: fisker Cheung (https://www.fiskercheung.com/) + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## dettle@v1.0.5 + +> A tiny fully-featured debounce and throttle implementation. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## diff@v8.0.2 + +> A JavaScript text diff implementation. + +License: BSD-3-Clause +Repository: + +> BSD 3-Clause License +> +> Copyright (c) 2009-2015, Kevin Decker +> All rights reserved. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> 1. Redistributions of source code must retain the above copyright notice, this +> list of conditions and the following disclaimer. +> +> 2. Redistributions in binary form must reproduce the above copyright notice, +> this list of conditions and the following disclaimer in the documentation +> and/or other materials provided with the distribution. +> +> 3. Neither the name of the copyright holder nor the names of its +> contributors may be used to endorse or promote products derived from +> this software without specific prior written permission. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +## editorconfig@v0.15.3 + +> EditorConfig File Locator and Interpreter for Node.js + +License: MIT +Repository: +Author: EditorConfig Team +Contributors: + - Hong Xu (topbug.net) + - Jed Mao (https://github.com/jedmao/) + - Trey Hunner (http://treyhunner.com) + +> Copyright © 2012 EditorConfig Team +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## emoji-regex@v10.4.0 + +> A regular expression to match all Emoji-only symbols as per the Unicode Standard. + +License: MIT +Homepage: +Repository: +Author: Mathias Bynens (https://mathiasbynens.be/) + +> Copyright Mathias Bynens +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## escape-string-regexp@v5.0.0 + +> Escape RegExp special characters + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## espree@v10.4.0 + +> An Esprima-compatible JavaScript parser built on Acorn + +License: BSD-2-Clause +Homepage: +Repository: +Author: Nicholas C. Zakas + +> BSD 2-Clause License +> +> Copyright (c) Open JS Foundation +> All rights reserved. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> 1. Redistributions of source code must retain the above copyright notice, this +> list of conditions and the following disclaimer. +> +> 2. Redistributions in binary form must reproduce the above copyright notice, +> this list of conditions and the following disclaimer in the documentation +> and/or other materials provided with the distribution. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +## extend@v3.0.2 + +> Port of jQuery.extend for node.js and the browser + +License: MIT +Repository: +Author: Stefan Thomas (http://www.justmoon.net) +Contributors: + - Jordan Harband (https://github.com/ljharb) + +> The MIT License (MIT) +> +> Copyright (c) 2014 Stefan Thomas +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## fast-glob@v3.3.3 + +> It's a very fast and efficient glob library for Node.js + +License: MIT +Author: Denis Malinochkin (https://mrmlnc.com) + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## fast-ignore@v1.1.3 + +> A fast parser and processor for .gitignore files. + + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## fast-json-stable-stringify@v2.1.0 + +> deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify + +License: MIT +Homepage: +Repository: +Author: James Halliday (http://substack.net) + +> This software is released under the MIT license: +> +> Copyright (c) 2017 Evgeny Poberezkin +> Copyright (c) 2013 James Halliday +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## fast-string-truncated-width@v1.2.1 + +> A fast function for calculating where a string should be truncated, given an optional width limit and an ellipsis string. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## fast-string-width@v1.1.0 + +> A fast function for calculating the visual width of a string once printed to the terminal. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## fastq@v1.19.1 + +> Fast, in memory work queue + +License: ISC +Homepage: +Repository: +Author: Matteo Collina + +> Copyright (c) 2015-2020, Matteo Collina +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## file-entry-cache@v10.1.1 + +> A lightweight cache for file metadata, ideal for processes that work on a specific set of files and only need to reprocess files that have changed since the last run + +License: MIT +Repository: +Author: Jared Wray + +> MIT License & © Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## fill-range@v7.1.1 + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Edo Rivai (edo.rivai.nl) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Paul Miller (paulmillr.com) + - Rouven Weßling (www.rouvenwessling.de) + - null (https://github.com/wtgtybhertgeghgtwtg) + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## find-cache-directory@v6.0.0 + +> Finds the common standard cache directory + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> Copyright (c) James Talmage (https://github.com/jamestalmage) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## find-in-directory@v3.0.0 + +> Find file or directory by names in a directory. + +License: MIT +Homepage: +Author: fisker Cheung (https://www.fiskercheung.com/) + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## find-up-json@v2.0.5 + +> Find, read and parse the first matching file found walking the filesystem upwards. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## find-up-path@v1.0.1 + +> Find the path of the first file matching a given name, walking the filesystem upwards. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## find-up-simple@v1.0.1 + +> Find a file or directory by walking up parent directories — Zero dependencies + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## flat-cache@v6.1.10 + +> A simple key/value storage using files to persist the data + +License: MIT +Repository: +Author: Jared Wray + +> MIT License & © Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## flatted@v3.3.3 + +> A super light and fast circular JSON parser. + +License: ISC +Homepage: +Repository: +Author: Andrea Giammarchi + +> ISC License +> +> Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +> AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## flatten@v1.0.3 + +> Flatten arbitrarily nested arrays into a non-nested list of non-array items. Maintained for legacy compatibility. + +License: MIT +Homepage: +Repository: +Author: Joshua Holbrook (http://jesusabdullah.net) +Contributors: + - M.K. (https://github.com/mk-pmb) + +> The MIT License (MIT) +> +> Copyright (c) 2016 Joshua Holbrook +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## flow-parser@v0.274.1 + +> JavaScript parser written in OCaml. Produces ESTree AST + +License: MIT +Homepage: +Repository: +Author: Flow Team + +---------------------------------------- + +## function-once@v3.0.1 + +> Wraps a function so that it's only ever executed once. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## get-current-package@v1.0.1 + +> Get the package.json of the currently executing bin. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## get-east-asian-width@v1.3.0 + +> Determine the East Asian Width of a Unicode character + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## get-stdin@v9.0.0 + +> Get stdin as a string or buffer + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## glob-parent@v5.1.2 + +> Extract the non-magic parent path from a glob string. + +License: ISC +Author: Gulp Team (https://gulpjs.com/) +Contributors: + - Elan Shanker (https://github.com/es128) + - Blaine Bublitz + +> The ISC License +> +> Copyright (c) 2015, 2019 Elan Shanker +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## grammex@v3.1.10 + +> A tiny, PEG-like system for building language grammars with regexes. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## graphql@v16.11.0 + +> A Query Language and Runtime which can target any service. + +License: MIT +Homepage: +Repository: + +> MIT License +> +> Copyright (c) GraphQL Contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## hookified@v1.9.1 + +> Event Emitting and Middleware Hooks + +License: MIT +Homepage: +Repository: +Author: Jared Wray + +> MIT License & © Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## ignore@v7.0.5 + +> Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others. + +License: MIT +Repository: +Author: kael + +> Copyright (c) 2013 Kael Zhang , contributors +> http://kael.me/ +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## import-meta-resolve@v4.1.0 + +> Resolve things like Node.js — ponyfill for `import.meta.resolve` + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2021 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. +> +> --- +> +> This is a derivative work based on: +> . +> Which is licensed: +> +> """ +> Copyright Node.js contributors. All rights reserved. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. +> """ +> +> This license applies to parts of Node.js originating from the +> https://github.com/joyent/node repository: +> +> """ +> Copyright Joyent, Inc. and other Node contributors. All rights reserved. +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. +> """ + +---------------------------------------- + +## index-to-position@v1.1.0 + +> Convert a string index to its line and column position + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## indexes-of@v1.0.1 + +> line String/Array#indexOf but return all the indexes in an array + +License: MIT +Homepage: +Repository: +Author: Dominic Tarr (dominictarr.com) + +> Copyright (c) 2013 Dominic Tarr +> +> Permission is hereby granted, free of charge, +> to any person obtaining a copy of 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. + +---------------------------------------- + +## inherits@v2.0.4 + +> Browser-friendly inheritance fully compatible with standard node.js inherits() + +License: ISC + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## ini-simple-parser@v1.0.1 + +> A simple, fast and configurable INI parser. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## ionstore@v1.0.1 + +> A very simple isomorphic key-value store with a Map-like API for persisting session data. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## is-alphabetical@v1.0.4 + +> Check if a character is alphabetical + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## is-alphanumerical@v1.0.4 + +> Check if a character is alphanumerical + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## is-binary-path@v2.1.0 + +> Check if a file path is a binary file + +License: MIT +Author: Sindre Sorhus (sindresorhus.com) + +> MIT License +> +> Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## is-buffer@v2.0.5 + +> Determine if an object is a Buffer + +License: MIT +Repository: +Author: Feross Aboukhadijeh (https://feross.org) + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## is-decimal@v1.0.4 + +> Check if a character is decimal + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## is-es5-identifier-name@v1.0.0 + +> Check if provided string is an `IdentifierName` as specified in ECMA262 edition 5.1 section 7.6. + +License: MIT +Author: fisker Cheung + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## is-extglob@v2.1.1 + +> Returns true if a string has an extglob. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) + +> The MIT License (MIT) +> +> Copyright (c) 2014-2016, Jon Schlinkert +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## is-glob@v4.0.3 + +> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Brian Woodward (https://twitter.com/doowb) + - Daniel Perez (https://tuvistavie.com) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + +> The MIT License (MIT) +> +> Copyright (c) 2014-2017, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## is-hexadecimal@v1.0.4 + +> Check if a character is hexadecimal + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## is-number@v7.0.0 + +> Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Olsten Larck (https://i.am.charlike.online) + - Rouven Weßling (www.rouvenwessling.de) + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## is-plain-obj@v2.1.0 + +> Check if a value is a plain object + +License: MIT +Author: Sindre Sorhus (sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## is-whitespace-character@v1.0.4 + +> Check if a character is a whitespace character + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## is-word-character@v1.0.4 + +> Check if a character is a word character + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## isoconcurrency@v1.0.0 + +> An isomorphic way to get the number of logical cores available. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2025-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## isotimer@v1.0.0 + +> An isomorphic setImmediate/setInterval/setTimeout implementation. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2025-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## iterate-directory-up@v1.4.0 + +> Iterate directory up. + +License: MIT +Homepage: +Author: fisker Cheung (https://www.fiskercheung.com/) + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## jest-docblock@v30.0.1 + +License: MIT +Repository: + +> MIT License +> +> Copyright (c) Meta Platforms, Inc. and affiliates. +> Copyright Contributors to the Jest project. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## js-tokens@v4.0.0 + +> A regex that tokenizes JavaScript. + +License: MIT +Author: Simon Lydell + +> The MIT License (MIT) +> +> Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## js-yaml@v4.1.0 + +> YAML 1.2 parser and serializer + +License: MIT +Author: Vladimir Zapparov +Contributors: + - Aleksey V Zapparov (http://www.ixti.net/) + - Vitaly Puzrin (https://github.com/puzrin) + - Martin Grenfell (http://got-ravings.blogspot.com) + +> (The MIT License) +> +> Copyright (C) 2011-2015 by Vitaly Puzrin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## json-sorted-stringify@v1.0.1 + +> Alternative JSON.stringify function with sorted keys, so the output is stable. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## json5@v2.2.3 + +> JSON for Humans + +License: MIT +Homepage: +Repository: +Author: Aseem Kishore +Contributors: + - Max Nanasy + - Andrew Eisenberg + - Jordan Tucker + +> MIT License +> +> Copyright (c) 2012-2018 Aseem Kishore, and [others]. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. +> +> [others]: https://github.com/json5/json5/contributors + +---------------------------------------- + +## kasi@v1.1.1 + +> A collection of functions for working with different casings. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## keyv@v5.3.3 + +> Simple key-value storage with support for multiple backends + +License: MIT +Homepage: +Repository: +Author: Jared Wray (http://jaredwray.com) + +> MIT License +> +> Copyright (c) 2017-2021 Luke Childs +> Copyright (c) 2021-2022 Jared Wray +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## leven@v4.0.0 + +> Measure the difference between two strings using the Levenshtein distance algorithm + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## lomemo@v1.0.1 + +> Lodash's memoize function, but in a much smaller package than lodash.memoize's. + +License: MIT + +> The MIT License +> +> Copyright JS Foundation and other contributors +> +> Based on Underscore.js, copyright Jeremy Ashkenas, +> DocumentCloud and Investigative Reporters & Editors +> +> This software consists of voluntary contributions made by many +> individuals. For exact contribution history, see the revision history +> available at https://github.com/lodash/lodash +> +> The following license applies to all parts of this software except as +> documented below: +> +> ==== +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. +> +> ==== +> +> Copyright and related rights for sample code are waived via CC0. Sample +> code is defined as all source code displayed within the prose of the +> documentation. +> +> CC0: http://creativecommons.org/publicdomain/zero/1.0/ +> +> ==== +> +> Files located in the node_modules and vendor directories are externally +> maintained libraries used by this software which have their own +> licenses; we recommend you read them, as their terms may differ from the +> terms above. + +---------------------------------------- + +## lru-cache@v4.1.5 + +> A cache object that deletes the least-recently-used items. + +License: ISC +Author: Isaac Z. Schlueter + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## markdown-escapes@v1.0.4 + +> List of escapable characters in markdown + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## merge2@v1.4.1 + +> Merge multiple streams into one stream in sequence or parallel. + +License: MIT +Homepage: +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2014-2020 Teambition +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## meriyah@v6.1.3 + +> A 100% compliant, self-hosted javascript parser with high focus on both performance and stability + +License: ISC +Homepage: +Repository: +Author: Kenny F. (https://github.com/KFlash) +Contributors: + - Chunpeng Huo (https://github.com/3cp) + +> ISC License +> +> Copyright (c) 2019 and later, KFlash and others. +> +> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## micromatch@v4.0.8 + +> Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - null (https://github.com/DianeLooney) + - Amila Welihinda (amilajack.com) + - Bogdan Chadkin (https://github.com/TrySound) + - Brian Woodward (https://twitter.com/doowb) + - Devon Govett (http://badassjs.com) + - Elan Shanker (https://github.com/es128) + - Fabrício Matté (https://ultcombo.js.org) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Martin Kolárik (https://kolarik.sk) + - Olsten Larck (https://i.am.charlike.online) + - Paul Miller (paulmillr.com) + - Tom Byrer (https://github.com/tomByrer) + - Tyler Akins (http://rumkin.com) + - Peter Bright (https://github.com/drpizza) + - Kuba Juszczyk (https://github.com/ku8ar) + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## minimist@v1.2.8 + +> parse argument options + +License: MIT +Homepage: +Repository: +Author: James Halliday (http://substack.net) + +> This software is released under the MIT license: +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## n-readlines@v1.0.1 + +> Read file line by line without buffering the whole file in memory. + +License: MIT +Repository: +Author: Yoan Arnaudov + +> The MIT License (MIT) +> +> Copyright (c) 2013 Liucw +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## nanoid@v3.3.11 + +> A tiny (116 bytes), secure URL-friendly unique string ID generator + +License: MIT +Author: Andrey Sitnik + +> The MIT License (MIT) +> +> Copyright 2017 Andrey Sitnik +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## parse-entities@v2.0.0 + +> Parse HTML character references: fast, spec-compliant, positional information + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## parse-json@v8.3.0 + +> Parse JSON with more helpful errors + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## picocolors@v1.1.1 + +> The tiniest and the fastest library for terminal output formatting with ANSI colors + +License: ISC +Author: Alexey Raspopov + +> ISC License +> +> Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## picomatch@v2.3.1 + +> Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) + +> The MIT License (MIT) +> +> Copyright (c) 2017-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## pioppo@v1.2.1 + +> A tiny isomorphic batched logger. ~3x faster than regular logging in Node. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## pkg-dir@v8.0.0 + +> Find the root directory of a Node.js project or npm package + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## please-upgrade-node@v3.2.0 + +> Displays a beginner-friendly message telling your user to upgrade their version of Node + +License: MIT +Homepage: +Repository: +Author: typicode + +> MIT License +> +> Copyright (c) 2017 +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## postcss@v8.5.6 + +> Tool for transforming styles with JS plugins + +License: MIT +Homepage: +Author: Andrey Sitnik + +> The MIT License (MIT) +> +> Copyright 2013 Andrey Sitnik +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## postcss-less@v6.0.0 + +> LESS parser for PostCSS + +License: MIT +Homepage: +Author: Denys Kniazevych + +> The MIT License (MIT) +> +> Copyright (c) 2013 Andrey Sitnik +> Copyright (c) 2016 Denys Kniazevych +> Copyright (c) 2016 Pat Sissons +> Copyright (c) 2017 Andrew Powell +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## postcss-media-query-parser@v0.2.3 + +> A tool for parsing media query lists. + +License: MIT +Homepage: +Repository: +Author: dryoma + +---------------------------------------- + +## postcss-scss@v4.0.9 + +> SCSS parser for PostCSS + +License: MIT +Author: Andrey Sitnik + +> The MIT License (MIT) +> +> Copyright 2013 Andrey Sitnik +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## postcss-selector-parser@v2.2.3 + +License: MIT +Homepage: +Author: Ben Briggs (http://beneb.info) + +> Copyright (c) Ben Briggs (http://beneb.info) +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of 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. + +---------------------------------------- + +## postcss-values-parser@v2.0.1 + +> A CSS property value parser for use with PostCSS + +License: MIT +Author: Andrew Powell (shellscape) (http://shellscape.org) + +> Copyright (c) Andrew Powell +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of 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. + +---------------------------------------- + +## promise-make-counter@v1.0.2 + +> A simple function that makes a counter-based promise, which can be incremented and decremented, and it resolves once its counter reaches zero. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## promise-make-naked@v3.0.2 + +> A simple function that makes a promise that can be resolved, rejected or introspected from the outside. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## promise-resolve-timeout@v2.0.1 + +> Create a Promise which will resolve with the provided value after a timeout. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2019-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## pseudomap@v1.0.2 + +> A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available. + +License: ISC +Homepage: +Repository: +Author: Isaac Z. Schlueter (http://blog.izs.me/) + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## queue-microtask@v1.2.3 + +> fast, tiny `queueMicrotask` shim for modern engines + +License: MIT +Homepage: +Repository: +Author: Feross Aboukhadijeh (https://feross.org) + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## remark-footnotes@v2.0.0 + +> remark plugin to add support for pandoc footnotes + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2020 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## remark-math@v3.0.1 + +> remark plugin to parse and stringify math + +License: MIT +Author: Junyoung Choi (https://rokt33r.github.io) +Contributors: + - Junyoung Choi (https://rokt33r.github.io) + - Titus Wormer (https://wooorm.com) + +---------------------------------------- + +## remark-parse@v8.0.3 + +> remark plugin to parse Markdown + +License: MIT +Homepage: +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Eugene Sharygin + - Junyoung Choi + - Elijah Hamovitz + - Ika + +---------------------------------------- + +## repeat-string@v1.6.1 + +> Repeat the given string n times. Fastest implementation for repeating a string. + +License: MIT +Homepage: +Author: Jon Schlinkert (http://github.com/jonschlinkert) +Contributors: + - Brian Woodward (https://github.com/doowb) + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Linus Unnebäck (http://linus.unnebäck.se) + - Thijs Busser (http://tbusser.net) + - Titus (wooorm.com) + +> The MIT License (MIT) +> +> Copyright (c) 2014-2016, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## reusify@v1.1.0 + +> Reuse objects and functions with style + +License: MIT +Homepage: +Repository: +Author: Matteo Collina + +> The MIT License (MIT) +> +> Copyright (c) 2015-2024 Matteo Collina +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## run-parallel@v1.2.0 + +> Run an array of functions in parallel + +License: MIT +Homepage: +Repository: +Author: Feross Aboukhadijeh (https://feross.org) + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## sdbm@v2.0.0 + +> SDBM non-cryptographic hash function + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## search-closest@v1.1.0 + +> Find closest file or directory by names. + +License: MIT +Homepage: +Author: fisker Cheung (https://www.fiskercheung.com/) + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## semver@v7.7.2 + +> The semantic version parser used by npm. + +License: ISC +Repository: +Author: GitHub Inc. + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## semver-compare@v1.0.0 + +> compare two semver version strings, returning -1, 0, or 1 + +License: MIT +Homepage: +Repository: +Author: James Halliday (http://substack.net) + +> This software is released under the MIT license: +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## sigmund@v1.0.1 + +> Quick and dirty signatures for Objects. + +License: ISC +Repository: +Author: Isaac Z. Schlueter (http://blog.izs.me/) + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## simple-html-tokenizer@v0.5.11 + +> Simple HTML Tokenizer is a lightweight JavaScript library that can be used to tokenize the kind of HTML normally found in templates. + +License: MIT +Repository: + +> Copyright (c) 2014 Yehuda Katz and contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. + +---------------------------------------- + +## smol-toml@v1.3.4 + +> A small, fast, and correct TOML parser/serializer + +License: BSD-3-Clause +Author: Cynthia + +> Copyright (c) Squirrel Chat et al., All rights reserved. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> 1. Redistributions of source code must retain the above copyright notice, this +> list of conditions and the following disclaimer. +> 2. Redistributions in binary form must reproduce the above copyright notice, +> this list of conditions and the following disclaimer in the +> documentation and/or other materials provided with the distribution. +> 3. Neither the name of the copyright holder nor the names of its contributors +> may be used to endorse or promote products derived from this software without +> specific prior written permission. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +## specialist@v1.4.5 + +> A library that helps you write tiny, fast and beautiful CLI apps that can automatically check for updates. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## state-toggle@v1.0.3 + +> Enter/exit a state + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## stdin-blocker@v2.0.1 + +> A tiny library for blocking stdin keypresses, except for Ctrl+C. Useful while displaying animations. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## string-escape-regex@v1.0.1 + +> A tiny function for escaping a string to be used as the source in a regex. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## strip-ansi@v7.1.0 + +> Strip ANSI escape codes from a string + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## stubborn-fs@v1.2.5 + +> Stubborn versions of Node's fs functions that try really hard to do their job. + + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-bin@v1.11.1 + +> A library for building tiny and beautiful command line apps. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-colors@v2.2.2 + +> A tiny library providing the basic ANSI colors for the terminal. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-cursor@v2.0.1 + +> A tiny library for hiding and showing the cursor in the terminal. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-editorconfig@v1.0.0 + +> A tiny isomorphic parser and resolver for EditorConfig. + + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-levenshtein@v1.0.1 + +> A tiny implementation of the Levenshtein edit distance algorithm. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-parse-argv@v2.8.2 + +> A tiny function for parsing process.argv, a modern rewrite of minimist. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-readdir@v2.7.4 + +> A simple promisified recursive readdir function. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2020-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-readdir-glob@v1.23.2 + +> A simple promisified recursive readdir function, with support for globs. + + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-spinner@v2.0.5 + +> A simple, yet beautiful, CLI spinner. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-truncate@v1.0.3 + +> A tiny function for truncating a string which may containg ANSI escapes, with automatic terminal width detection. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## tiny-updater@v3.5.3 + +> A small update notifier for NPM packages, useful for CLI apps. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## to-fast-properties@v4.0.0 + +> Force V8 to use fast properties for an object + +License: MIT +Author: Sindre Sorhus (https:/sindresorhus.com) + +> MIT License +> +> Copyright (c) Petka Antonov +> Benjamin Gruenbaum +> John-David Dalton +> Sindre Sorhus +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## to-regex-range@v5.0.1 + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +License: MIT +Homepage: +Author: Jon Schlinkert (https://github.com/jonschlinkert) +Contributors: + - Jon Schlinkert (http://twitter.com/jonschlinkert) + - Rouven Weßling (www.rouvenwessling.de) + +> The MIT License (MIT) +> +> Copyright (c) 2015-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## trim@v1.0.1 + +> Trim string whitespace + +License: MIT +Repository: +Author: TJ Holowaychuk + +---------------------------------------- + +## trim-newlines@v5.0.0 + +> Trim newlines from the start and/or end of a string + +License: MIT +Author: Sindre Sorhus (https://sindresorhus.com) + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of 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. + +---------------------------------------- + +## trim-trailing-lines@v1.1.4 + +> Remove final line feeds from a string + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## trough@v1.0.5 + +> Middleware: a channel used to convey a liquid + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## ts-api-utils@v2.1.0 + +> Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. 🛠️️ + +License: MIT +Repository: +Author: JoshuaKGoldberg + +> # MIT License +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## typescript@v5.8.3 + +> TypeScript is a language for application scale JavaScript development + +License: Apache-2.0 +Homepage: +Repository: +Author: Microsoft Corp. + +> Apache License +> +> Version 2.0, January 2004 +> +> http://www.apache.org/licenses/ +> +> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +> +> 1. Definitions. +> +> "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. +> +> "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. +> +> "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. +> +> "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. +> +> "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. +> +> "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. +> +> "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). +> +> "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. +> +> "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." +> +> "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. +> +> 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. +> +> 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. +> +> 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +> +> You must give any other recipients of the Work or Derivative Works a copy of this License; and +> +> You must cause any modified files to carry prominent notices stating that You changed the files; and +> +> You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +> +> If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +> +> 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. +> +> 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. +> +> 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. +> +> 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. +> +> 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. +> +> END OF TERMS AND CONDITIONS + +---------------------------------------- + +## unherit@v1.1.3 + +> Clone a constructor without affecting the super-class + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## unified@v9.2.2 + +> Interface for parsing, inspecting, transforming, and serializing content through syntax trees + +License: MIT +Homepage: +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Junyoung Choi + - Hernan Rajchert + - Christian Murphy + - Vse Mozhet Byt + - Richard Littauer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## uniq@v1.0.1 + +> Removes duplicates from a sorted array in place + +License: MIT +Repository: +Author: Mikola Lysenko + +> The MIT License (MIT) +> +> Copyright (c) 2013 Mikola Lysenko +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## unist-util-is@v4.1.0 + +> unist utility to check if a node passes a test + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Christian Murphy + - Lucas Brandstaetter (https://github.com/Roang-zero1) + +> (The MIT license) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## unist-util-remove-position@v2.0.1 + +> unist utility to remove positions from a tree + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## unist-util-stringify-position@v2.0.3 + +> unist utility to serialize a node, position, or point as a human readable location + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## unist-util-visit@v2.0.3 + +> unist utility to visit nodes + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Eugene Sharygin + - Richard Gibson + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## unist-util-visit-parents@v3.1.1 + +> unist utility to recursively walk over nodes, with ancestral information + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## url-or-path@v2.6.1 + +> Convert between file URL and path. + +License: MIT +Homepage: +Author: fisker Cheung (https://www.fiskercheung.com/) + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## vfile@v4.2.1 + +> Virtual file format for text processing + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Brendan Abbott + - Denys Dovhan + - Kyle Mathews + - Shinnosuke Watanabe + - Sindre Sorhus + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## vfile-location@v3.2.0 + +> vfile utility to convert between positional (line and column-based) and offset (range-based) locations + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + - Christian Murphy + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## vfile-message@v2.0.4 + +> vfile utility to create a virtual message + +License: MIT +Author: Titus Wormer (https://wooorm.com) +Contributors: + - Titus Wormer (https://wooorm.com) + +> (The MIT License) +> +> Copyright (c) 2017 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of 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. + +---------------------------------------- + +## vnopts@v2.0.2 + +> validate and normalize options + +License: MIT +Homepage: +Author: Ika (https://github.com/ikatyang) + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## wcwidth.js@v2.0.0 + +> a javascript porting of C's wcwidth() + +License: MIT +Homepage: +Repository: +Author: Woong Jun (http://code.woong.org/) +Contributors: + - Tim Oxley (http://campjs.com/) + +> wcwidth.js: a javascript portng of C's wcwidth() +> ================================================ +> +> Copyright (C) 2012-2014 by Woong Jun and Tim Oxley. +> +> This package is a javascript porting of `wcwidth()` implementation +> [by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c). +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> 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. +> +> +> THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +> INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR +> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +> OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +> INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +> CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +> IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +> OF SUCH DAMAGE. + +---------------------------------------- + +## webworker-shim@v1.1.4 + +> A tiny shim for WebWorker (data URI only) that works in Node. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## when-exit@v2.1.4 + +> Execute a function right before the process, or the browser's tab, is about to exit. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2022-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## worktank@v3.0.2 + +> A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2021-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## xtend@v4.0.2 + +> extend like a boss + +License: MIT +Homepage: +Author: Raynos +Contributors: + - Jake Verbaten + - Matt Esch + +> The MIT License (MIT) +> Copyright (c) 2012-2014 Raynos. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## yallist@v2.1.2 + +> Yet Another Linked List + +License: ISC +Repository: +Author: Isaac Z. Schlueter (http://blog.izs.me/) + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +## yaml@v1.10.2 + +> JavaScript parser and stringifier for YAML + +License: ISC +Homepage: +Author: Eemeli Aro + +> Copyright 2018 Eemeli Aro +> +> Permission to use, copy, modify, and/or distribute this software for any purpose +> with or without fee is hereby granted, provided that the above copyright notice +> and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +> THIS SOFTWARE. + +---------------------------------------- + +## yaml-unist-parser@v2.0.5 + +> A YAML parser that produces output compatible with unist + +License: MIT +Homepage: +Author: Ika (https://github.com/ikatyang) + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of 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. + +---------------------------------------- + +## zeptomatch@v2.0.2 + +> An absurdly small glob matcher that packs a punch. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2023-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## zeptomatch-escape@v1.0.1 + +> A little utility for escaping globs before passing them to zeptomatch. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## zeptomatch-explode@v1.0.1 + +> A little utility for exploding a zeptomatch-flavored glob into its dynamic and static parts. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## zeptomatch-is-static@v1.0.1 + +> A little utility for checking if a glob is fully static. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. + +---------------------------------------- + +## zeptomatch-unescape@v1.0.1 + +> A little utility for removing escape sequences from a glob. + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2024-present Fabio Spampinato +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of 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. diff --git a/node_modules/prettier/bin/prettier.cjs b/node_modules/prettier/bin/prettier.cjs new file mode 100755 index 0000000..642c99d --- /dev/null +++ b/node_modules/prettier/bin/prettier.cjs @@ -0,0 +1,80 @@ +#!/usr/bin/env node +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = function(cb, mod) { + return function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; +}; + +// node_modules/semver-compare/index.js +var require_semver_compare = __commonJS({ + "node_modules/semver-compare/index.js": function(exports2, module2) { + module2.exports = function cmp(a, b) { + var pa = a.split("."); + var pb = b.split("."); + for (var i = 0; i < 3; i++) { + var na = Number(pa[i]); + var nb = Number(pb[i]); + if (na > nb) return 1; + if (nb > na) return -1; + if (!isNaN(na) && isNaN(nb)) return 1; + if (isNaN(na) && !isNaN(nb)) return -1; + } + return 0; + }; + } +}); + +// node_modules/please-upgrade-node/index.js +var require_please_upgrade_node = __commonJS({ + "node_modules/please-upgrade-node/index.js": function(exports2, module2) { + var semverCompare = require_semver_compare(); + module2.exports = function pleaseUpgradeNode2(pkg, opts) { + var opts = opts || {}; + var requiredVersion = pkg.engines.node.replace(">=", ""); + var currentVersion = process.version.replace("v", ""); + if (semverCompare(currentVersion, requiredVersion) === -1) { + if (opts.message) { + console.error(opts.message(requiredVersion)); + } else { + console.error( + pkg.name + " requires at least version " + requiredVersion + " of Node, please upgrade" + ); + } + if (opts.hasOwnProperty("exitCode")) { + process.exit(opts.exitCode); + } else { + process.exit(1); + } + } + }; + } +}); + +// bin/prettier.cjs +var nodeModule = require("module"); +if (typeof nodeModule.enableCompileCache === "function") { + nodeModule.enableCompileCache(); +} +var pleaseUpgradeNode = require_please_upgrade_node(); +var packageJson = require("../package.json"); +pleaseUpgradeNode(packageJson); +var dynamicImport = new Function("module", "return import(module)"); +var promise; +var index = process.argv.indexOf("--experimental-cli"); +if (process.env.PRETTIER_EXPERIMENTAL_CLI || index !== -1) { + if (index !== -1) { + process.argv.splice(index, 1); + } + promise = dynamicImport("../internal/experimental-cli.mjs").then( + function(cli) { + return cli.__promise; + } + ); +} else { + promise = dynamicImport("../internal/legacy-cli.mjs").then(function runCli(cli) { + return cli.run(); + }); +} +module.exports.__promise = promise; diff --git a/node_modules/prettier/doc.d.ts b/node_modules/prettier/doc.d.ts new file mode 100644 index 0000000..5011775 --- /dev/null +++ b/node_modules/prettier/doc.d.ts @@ -0,0 +1,254 @@ +// https://github.com/prettier/prettier/blob/next/src/document/public.js +export namespace builders { + type DocCommand = + | Align + | BreakParent + | Cursor + | Fill + | Group + | IfBreak + | Indent + | IndentIfBreak + | Label + | Line + | LineSuffix + | LineSuffixBoundary + | Trim; + type Doc = string | Doc[] | DocCommand; + + interface Align { + type: "align"; + contents: Doc; + n: number | string | { type: "root" }; + } + + interface BreakParent { + type: "break-parent"; + } + + interface Cursor { + type: "cursor"; + placeholder: symbol; + } + + interface Fill { + type: "fill"; + parts: Doc[]; + } + + interface Group { + type: "group"; + id?: symbol; + contents: Doc; + break: boolean; + expandedStates: Doc[]; + } + + interface HardlineWithoutBreakParent extends Line { + hard: true; + } + + interface IfBreak { + type: "if-break"; + breakContents: Doc; + flatContents: Doc; + } + + interface Indent { + type: "indent"; + contents: Doc; + } + + interface IndentIfBreak { + type: "indent-if-break"; + } + + interface Label { + type: "label"; + label: any; + contents: Doc; + } + + interface Line { + type: "line"; + soft?: boolean | undefined; + hard?: boolean | undefined; + literal?: boolean | undefined; + } + + interface LineSuffix { + type: "line-suffix"; + contents: Doc; + } + + interface LineSuffixBoundary { + type: "line-suffix-boundary"; + } + + interface LiterallineWithoutBreakParent extends Line { + hard: true; + literal: true; + } + + type LiteralLine = [LiterallineWithoutBreakParent, BreakParent]; + + interface Softline extends Line { + soft: true; + } + + type Hardline = [HardlineWithoutBreakParent, BreakParent]; + + interface Trim { + type: "trim"; + } + + interface GroupOptions { + shouldBreak?: boolean | undefined; + id?: symbol | undefined; + } + + function addAlignmentToDoc(doc: Doc, size: number, tabWidth: number): Doc; + + /** @see [align](https://github.com/prettier/prettier/blob/main/commands.md#align) */ + function align(widthOrString: Align["n"], doc: Doc): Align; + + /** @see [breakParent](https://github.com/prettier/prettier/blob/main/commands.md#breakparent) */ + const breakParent: BreakParent; + + /** @see [conditionalGroup](https://github.com/prettier/prettier/blob/main/commands.md#conditionalgroup) */ + function conditionalGroup(alternatives: Doc[], options?: GroupOptions): Group; + + /** @see [dedent](https://github.com/prettier/prettier/blob/main/commands.md#dedent) */ + function dedent(doc: Doc): Align; + + /** @see [dedentToRoot](https://github.com/prettier/prettier/blob/main/commands.md#dedenttoroot) */ + function dedentToRoot(doc: Doc): Align; + + /** @see [fill](https://github.com/prettier/prettier/blob/main/commands.md#fill) */ + function fill(docs: Doc[]): Fill; + + /** @see [group](https://github.com/prettier/prettier/blob/main/commands.md#group) */ + function group(doc: Doc, opts?: GroupOptions): Group; + + /** @see [hardline](https://github.com/prettier/prettier/blob/main/commands.md#hardline) */ + const hardline: Hardline; + + /** @see [hardlineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */ + const hardlineWithoutBreakParent: HardlineWithoutBreakParent; + + /** @see [ifBreak](https://github.com/prettier/prettier/blob/main/commands.md#ifbreak) */ + function ifBreak( + ifBreak: Doc, + noBreak?: Doc, + options?: { groupId?: symbol | undefined }, + ): IfBreak; + + /** @see [indent](https://github.com/prettier/prettier/blob/main/commands.md#indent) */ + function indent(doc: Doc): Indent; + + /** @see [indentIfBreak](https://github.com/prettier/prettier/blob/main/commands.md#indentifbreak) */ + function indentIfBreak( + doc: Doc, + opts: { groupId: symbol; negate?: boolean | undefined }, + ): IndentIfBreak; + + /** @see [join](https://github.com/prettier/prettier/blob/main/commands.md#join) */ + function join(sep: Doc, docs: Doc[]): Doc[]; + + /** @see [label](https://github.com/prettier/prettier/blob/main/commands.md#label) */ + function label(label: any | undefined, contents: Doc): Doc; + + /** @see [line](https://github.com/prettier/prettier/blob/main/commands.md#line) */ + const line: Line; + + /** @see [lineSuffix](https://github.com/prettier/prettier/blob/main/commands.md#linesuffix) */ + function lineSuffix(suffix: Doc): LineSuffix; + + /** @see [lineSuffixBoundary](https://github.com/prettier/prettier/blob/main/commands.md#linesuffixboundary) */ + const lineSuffixBoundary: LineSuffixBoundary; + + /** @see [literalline](https://github.com/prettier/prettier/blob/main/commands.md#literalline) */ + const literalline: LiteralLine; + + /** @see [literallineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */ + const literallineWithoutBreakParent: LiterallineWithoutBreakParent; + + /** @see [markAsRoot](https://github.com/prettier/prettier/blob/main/commands.md#markasroot) */ + function markAsRoot(doc: Doc): Align; + + /** @see [softline](https://github.com/prettier/prettier/blob/main/commands.md#softline) */ + const softline: Softline; + + /** @see [trim](https://github.com/prettier/prettier/blob/main/commands.md#trim) */ + const trim: Trim; + + /** @see [cursor](https://github.com/prettier/prettier/blob/main/commands.md#cursor) */ + const cursor: Cursor; +} + +export namespace printer { + function printDocToString( + doc: builders.Doc, + options: Options, + ): { + formatted: string; + /** + * This property is a misnomer, and has been since the changes in + * https://github.com/prettier/prettier/pull/15709. + * The region of the document indicated by `cursorNodeStart` and `cursorNodeText` will + * sometimes actually be what lies BETWEEN a pair of leaf nodes in the AST, rather than a node. + */ + cursorNodeStart?: number | undefined; + + /** + * Note that, like cursorNodeStart, this is a misnomer and may actually be the text between two + * leaf nodes in the AST instead of the text of a node. + */ + cursorNodeText?: string | undefined; + }; + interface Options { + /** + * Specify the line length that the printer will wrap on. + * @default 80 + */ + printWidth: number; + /** + * Specify the number of spaces per indentation-level. + * @default 2 + */ + tabWidth: number; + /** + * Indent lines with tabs instead of spaces + * @default false + */ + useTabs?: boolean; + parentParser?: string | undefined; + __embeddedInHtml?: boolean | undefined; + } +} + +export namespace utils { + function willBreak(doc: builders.Doc): boolean; + function traverseDoc( + doc: builders.Doc, + onEnter?: (doc: builders.Doc) => void | boolean, + onExit?: (doc: builders.Doc) => void, + shouldTraverseConditionalGroups?: boolean, + ): void; + function findInDoc( + doc: builders.Doc, + callback: (doc: builders.Doc) => T, + defaultValue: T, + ): T; + function mapDoc( + doc: builders.Doc, + callback: (doc: builders.Doc) => T, + ): T; + function removeLines(doc: builders.Doc): builders.Doc; + function stripTrailingHardline(doc: builders.Doc): builders.Doc; + function replaceEndOfLine( + doc: builders.Doc, + replacement?: builders.Doc, + ): builders.Doc; + function canBreak(doc: builders.Doc): boolean; +} diff --git a/node_modules/prettier/doc.js b/node_modules/prettier/doc.js new file mode 100644 index 0000000..e4c3772 --- /dev/null +++ b/node_modules/prettier/doc.js @@ -0,0 +1,1270 @@ +(function (factory) { + function interopModuleDefault() { + var module = factory(); + return module.default || module; + } + + if (typeof exports === "object" && typeof module === "object") { + module.exports = interopModuleDefault(); + } else if (typeof define === "function" && define.amd) { + define(interopModuleDefault); + } else { + var root = + typeof globalThis !== "undefined" + ? globalThis + : typeof global !== "undefined" + ? global + : typeof self !== "undefined" + ? self + : this || {}; + root.doc = interopModuleDefault(); + } +})(function () { + "use strict"; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + + // src/document/public.js + var public_exports = {}; + __export(public_exports, { + builders: () => builders, + printer: () => printer, + utils: () => utils + }); + + // src/document/constants.js + var DOC_TYPE_STRING = "string"; + var DOC_TYPE_ARRAY = "array"; + var DOC_TYPE_CURSOR = "cursor"; + var DOC_TYPE_INDENT = "indent"; + var DOC_TYPE_ALIGN = "align"; + var DOC_TYPE_TRIM = "trim"; + var DOC_TYPE_GROUP = "group"; + var DOC_TYPE_FILL = "fill"; + var DOC_TYPE_IF_BREAK = "if-break"; + var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break"; + var DOC_TYPE_LINE_SUFFIX = "line-suffix"; + var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary"; + var DOC_TYPE_LINE = "line"; + var DOC_TYPE_LABEL = "label"; + var DOC_TYPE_BREAK_PARENT = "break-parent"; + var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([ + DOC_TYPE_CURSOR, + DOC_TYPE_INDENT, + DOC_TYPE_ALIGN, + DOC_TYPE_TRIM, + DOC_TYPE_GROUP, + DOC_TYPE_FILL, + DOC_TYPE_IF_BREAK, + DOC_TYPE_INDENT_IF_BREAK, + DOC_TYPE_LINE_SUFFIX, + DOC_TYPE_LINE_SUFFIX_BOUNDARY, + DOC_TYPE_LINE, + DOC_TYPE_LABEL, + DOC_TYPE_BREAK_PARENT + ]); + + // scripts/build/shims/at.js + var at = (isOptionalObject, object, index) => { + if (isOptionalObject && (object === void 0 || object === null)) { + return; + } + if (Array.isArray(object) || typeof object === "string") { + return object[index < 0 ? object.length + index : index]; + } + return object.at(index); + }; + var at_default = at; + + // node_modules/trim-newlines/index.js + function trimNewlinesEnd(string) { + let end = string.length; + while (end > 0 && (string[end - 1] === "\r" || string[end - 1] === "\n")) { + end--; + } + return end < string.length ? string.slice(0, end) : string; + } + + // src/document/utils/get-doc-type.js + function getDocType(doc) { + if (typeof doc === "string") { + return DOC_TYPE_STRING; + } + if (Array.isArray(doc)) { + return DOC_TYPE_ARRAY; + } + if (!doc) { + return; + } + const { type } = doc; + if (VALID_OBJECT_DOC_TYPES.has(type)) { + return type; + } + } + var get_doc_type_default = getDocType; + + // src/document/invalid-doc-error.js + var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); + function getDocErrorMessage(doc) { + const type = doc === null ? "null" : typeof doc; + if (type !== "string" && type !== "object") { + return `Unexpected doc '${type}', +Expected it to be 'string' or 'object'.`; + } + if (get_doc_type_default(doc)) { + throw new Error("doc is valid."); + } + const objectType = Object.prototype.toString.call(doc); + if (objectType !== "[object Object]") { + return `Unexpected doc '${objectType}'.`; + } + const EXPECTED_TYPE_VALUES = disjunctionListFormat( + [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`) + ); + return `Unexpected doc.type '${doc.type}'. +Expected it to be ${EXPECTED_TYPE_VALUES}.`; + } + var InvalidDocError = class extends Error { + name = "InvalidDocError"; + constructor(doc) { + super(getDocErrorMessage(doc)); + this.doc = doc; + } + }; + var invalid_doc_error_default = InvalidDocError; + + // src/document/utils/traverse-doc.js + var traverseDocOnExitStackMarker = {}; + function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { + const docsStack = [doc]; + while (docsStack.length > 0) { + const doc2 = docsStack.pop(); + if (doc2 === traverseDocOnExitStackMarker) { + onExit(docsStack.pop()); + continue; + } + if (onExit) { + docsStack.push(doc2, traverseDocOnExitStackMarker); + } + const docType = get_doc_type_default(doc2); + if (!docType) { + throw new invalid_doc_error_default(doc2); + } + if ((onEnter == null ? void 0 : onEnter(doc2)) === false) { + continue; + } + switch (docType) { + case DOC_TYPE_ARRAY: + case DOC_TYPE_FILL: { + const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts; + for (let ic = parts.length, i = ic - 1; i >= 0; --i) { + docsStack.push(parts[i]); + } + break; + } + case DOC_TYPE_IF_BREAK: + docsStack.push(doc2.flatContents, doc2.breakContents); + break; + case DOC_TYPE_GROUP: + if (shouldTraverseConditionalGroups && doc2.expandedStates) { + for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) { + docsStack.push(doc2.expandedStates[i]); + } + } else { + docsStack.push(doc2.contents); + } + break; + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + case DOC_TYPE_LINE_SUFFIX: + docsStack.push(doc2.contents); + break; + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc2); + } + } + } + var traverse_doc_default = traverseDoc; + + // src/document/utils.js + function mapDoc(doc, cb) { + if (typeof doc === "string") { + return cb(doc); + } + const mapped = /* @__PURE__ */ new Map(); + return rec(doc); + function rec(doc2) { + if (mapped.has(doc2)) { + return mapped.get(doc2); + } + const result = process2(doc2); + mapped.set(doc2, result); + return result; + } + function process2(doc2) { + switch (get_doc_type_default(doc2)) { + case DOC_TYPE_ARRAY: + return cb(doc2.map(rec)); + case DOC_TYPE_FILL: + return cb({ ...doc2, parts: doc2.parts.map(rec) }); + case DOC_TYPE_IF_BREAK: + return cb({ + ...doc2, + breakContents: rec(doc2.breakContents), + flatContents: rec(doc2.flatContents) + }); + case DOC_TYPE_GROUP: { + let { expandedStates, contents } = doc2; + if (expandedStates) { + expandedStates = expandedStates.map(rec); + contents = expandedStates[0]; + } else { + contents = rec(contents); + } + return cb({ ...doc2, contents, expandedStates }); + } + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + case DOC_TYPE_LINE_SUFFIX: + return cb({ ...doc2, contents: rec(doc2.contents) }); + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + return cb(doc2); + default: + throw new invalid_doc_error_default(doc2); + } + } + } + function findInDoc(doc, fn, defaultValue) { + let result = defaultValue; + let shouldSkipFurtherProcessing = false; + function findInDocOnEnterFn(doc2) { + if (shouldSkipFurtherProcessing) { + return false; + } + const maybeResult = fn(doc2); + if (maybeResult !== void 0) { + shouldSkipFurtherProcessing = true; + result = maybeResult; + } + } + traverse_doc_default(doc, findInDocOnEnterFn); + return result; + } + function willBreakFn(doc) { + if (doc.type === DOC_TYPE_GROUP && doc.break) { + return true; + } + if (doc.type === DOC_TYPE_LINE && doc.hard) { + return true; + } + if (doc.type === DOC_TYPE_BREAK_PARENT) { + return true; + } + } + function willBreak(doc) { + return findInDoc(doc, willBreakFn, false); + } + function breakParentGroup(groupStack) { + if (groupStack.length > 0) { + const parentGroup = at_default( + /* isOptionalObject */ + false, + groupStack, + -1 + ); + if (!parentGroup.expandedStates && !parentGroup.break) { + parentGroup.break = "propagated"; + } + } + return null; + } + function propagateBreaks(doc) { + const alreadyVisitedSet = /* @__PURE__ */ new Set(); + const groupStack = []; + function propagateBreaksOnEnterFn(doc2) { + if (doc2.type === DOC_TYPE_BREAK_PARENT) { + breakParentGroup(groupStack); + } + if (doc2.type === DOC_TYPE_GROUP) { + groupStack.push(doc2); + if (alreadyVisitedSet.has(doc2)) { + return false; + } + alreadyVisitedSet.add(doc2); + } + } + function propagateBreaksOnExitFn(doc2) { + if (doc2.type === DOC_TYPE_GROUP) { + const group2 = groupStack.pop(); + if (group2.break) { + breakParentGroup(groupStack); + } + } + } + traverse_doc_default( + doc, + propagateBreaksOnEnterFn, + propagateBreaksOnExitFn, + /* shouldTraverseConditionalGroups */ + true + ); + } + function removeLinesFn(doc) { + if (doc.type === DOC_TYPE_LINE && !doc.hard) { + return doc.soft ? "" : " "; + } + if (doc.type === DOC_TYPE_IF_BREAK) { + return doc.flatContents; + } + return doc; + } + function removeLines(doc) { + return mapDoc(doc, removeLinesFn); + } + function stripTrailingHardlineFromParts(parts) { + parts = [...parts]; + while (parts.length >= 2 && at_default( + /* isOptionalObject */ + false, + parts, + -2 + ).type === DOC_TYPE_LINE && at_default( + /* isOptionalObject */ + false, + parts, + -1 + ).type === DOC_TYPE_BREAK_PARENT) { + parts.length -= 2; + } + if (parts.length > 0) { + const lastPart = stripTrailingHardlineFromDoc(at_default( + /* isOptionalObject */ + false, + parts, + -1 + )); + parts[parts.length - 1] = lastPart; + } + return parts; + } + function stripTrailingHardlineFromDoc(doc) { + switch (get_doc_type_default(doc)) { + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_GROUP: + case DOC_TYPE_LINE_SUFFIX: + case DOC_TYPE_LABEL: { + const contents = stripTrailingHardlineFromDoc(doc.contents); + return { ...doc, contents }; + } + case DOC_TYPE_IF_BREAK: + return { + ...doc, + breakContents: stripTrailingHardlineFromDoc(doc.breakContents), + flatContents: stripTrailingHardlineFromDoc(doc.flatContents) + }; + case DOC_TYPE_FILL: + return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) }; + case DOC_TYPE_ARRAY: + return stripTrailingHardlineFromParts(doc); + case DOC_TYPE_STRING: + return trimNewlinesEnd(doc); + case DOC_TYPE_ALIGN: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc); + } + return doc; + } + function stripTrailingHardline(doc) { + return stripTrailingHardlineFromDoc(cleanDoc(doc)); + } + function cleanDocFn(doc) { + switch (get_doc_type_default(doc)) { + case DOC_TYPE_FILL: + if (doc.parts.every((part) => part === "")) { + return ""; + } + break; + case DOC_TYPE_GROUP: + if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { + return ""; + } + if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { + return doc.contents; + } + break; + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LINE_SUFFIX: + if (!doc.contents) { + return ""; + } + break; + case DOC_TYPE_IF_BREAK: + if (!doc.flatContents && !doc.breakContents) { + return ""; + } + break; + case DOC_TYPE_ARRAY: { + const parts = []; + for (const part of doc) { + if (!part) { + continue; + } + const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; + if (typeof currentPart === "string" && typeof at_default( + /* isOptionalObject */ + false, + parts, + -1 + ) === "string") { + parts[parts.length - 1] += currentPart; + } else { + parts.push(currentPart); + } + parts.push(...restParts); + } + if (parts.length === 0) { + return ""; + } + if (parts.length === 1) { + return parts[0]; + } + return parts; + } + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_LABEL: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc); + } + return doc; + } + function cleanDoc(doc) { + return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); + } + function replaceEndOfLine(doc, replacement = literalline) { + return mapDoc( + doc, + (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc + ); + } + function canBreakFn(doc) { + if (doc.type === DOC_TYPE_LINE) { + return true; + } + } + function canBreak(doc) { + return findInDoc(doc, canBreakFn, false); + } + + // src/document/utils/assert-doc.js + var noop = () => { + }; + var assertDoc = true ? noop : function(doc) { + traverse_doc_default(doc, (doc2) => { + if (checked.has(doc2)) { + return false; + } + if (typeof doc2 !== "string") { + checked.add(doc2); + } + }); + }; + var assertDocArray = true ? noop : function(docs, optional = false) { + if (optional && !docs) { + return; + } + if (!Array.isArray(docs)) { + throw new TypeError("Unexpected doc array."); + } + for (const doc of docs) { + assertDoc(doc); + } + }; + var assertDocFillParts = true ? noop : ( + /** + * @param {Doc[]} parts + */ + function(parts) { + assertDocArray(parts); + if (parts.length > 1 && isEmptyDoc(at_default( + /* isOptionalObject */ + false, + parts, + -1 + ))) { + parts = parts.slice(0, -1); + } + for (const [i, doc] of parts.entries()) { + if (i % 2 === 1 && !isValidSeparator(doc)) { + const type = get_doc_type_default(doc); + throw new Error( + `Unexpected non-line-break doc at ${i}. Doc type is ${type}.` + ); + } + } + } + ); + + // src/document/builders.js + function indent(contents) { + assertDoc(contents); + return { type: DOC_TYPE_INDENT, contents }; + } + function align(widthOrString, contents) { + assertDoc(contents); + return { type: DOC_TYPE_ALIGN, contents, n: widthOrString }; + } + function group(contents, opts = {}) { + assertDoc(contents); + assertDocArray( + opts.expandedStates, + /* optional */ + true + ); + return { + type: DOC_TYPE_GROUP, + id: opts.id, + contents, + break: Boolean(opts.shouldBreak), + expandedStates: opts.expandedStates + }; + } + function dedentToRoot(contents) { + return align(Number.NEGATIVE_INFINITY, contents); + } + function markAsRoot(contents) { + return align({ type: "root" }, contents); + } + function dedent(contents) { + return align(-1, contents); + } + function conditionalGroup(states, opts) { + return group(states[0], { ...opts, expandedStates: states }); + } + function fill(parts) { + assertDocFillParts(parts); + return { type: DOC_TYPE_FILL, parts }; + } + function ifBreak(breakContents, flatContents = "", opts = {}) { + assertDoc(breakContents); + if (flatContents !== "") { + assertDoc(flatContents); + } + return { + type: DOC_TYPE_IF_BREAK, + breakContents, + flatContents, + groupId: opts.groupId + }; + } + function indentIfBreak(contents, opts) { + assertDoc(contents); + return { + type: DOC_TYPE_INDENT_IF_BREAK, + contents, + groupId: opts.groupId, + negate: opts.negate + }; + } + function lineSuffix(contents) { + assertDoc(contents); + return { type: DOC_TYPE_LINE_SUFFIX, contents }; + } + var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY }; + var breakParent = { type: DOC_TYPE_BREAK_PARENT }; + var trim = { type: DOC_TYPE_TRIM }; + var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true }; + var literallineWithoutBreakParent = { + type: DOC_TYPE_LINE, + hard: true, + literal: true + }; + var line = { type: DOC_TYPE_LINE }; + var softline = { type: DOC_TYPE_LINE, soft: true }; + var hardline = [hardlineWithoutBreakParent, breakParent]; + var literalline = [literallineWithoutBreakParent, breakParent]; + var cursor = { type: DOC_TYPE_CURSOR }; + function join(separator, docs) { + assertDoc(separator); + assertDocArray(docs); + const parts = []; + for (let i = 0; i < docs.length; i++) { + if (i !== 0) { + parts.push(separator); + } + parts.push(docs[i]); + } + return parts; + } + function addAlignmentToDoc(doc, size, tabWidth) { + assertDoc(doc); + let aligned = doc; + if (size > 0) { + for (let i = 0; i < Math.floor(size / tabWidth); ++i) { + aligned = indent(aligned); + } + aligned = align(size % tabWidth, aligned); + aligned = align(Number.NEGATIVE_INFINITY, aligned); + } + return aligned; + } + function label(label2, contents) { + assertDoc(contents); + return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents; + } + + // scripts/build/shims/string-replace-all.js + var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => { + if (isOptionalObject && (original === void 0 || original === null)) { + return; + } + if (original.replaceAll) { + return original.replaceAll(pattern, replacement); + } + if (pattern.global) { + return original.replace(pattern, replacement); + } + return original.split(pattern).join(replacement); + }; + var string_replace_all_default = stringReplaceAll; + + // src/common/end-of-line.js + function convertEndOfLineToChars(value) { + switch (value) { + case "cr": + return "\r"; + case "crlf": + return "\r\n"; + default: + return "\n"; + } + } + + // node_modules/emoji-regex/index.mjs + var emoji_regex_default = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; + }; + + // node_modules/get-east-asian-width/lookup.js + function isFullWidth(x) { + return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510; + } + function isWide(x) { + return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141; + } + + // node_modules/get-east-asian-width/index.js + var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint)); + + // src/utils/get-string-width.js + var notAsciiRegex = /[^\x20-\x7F]/u; + function getStringWidth(text) { + if (!text) { + return 0; + } + if (!notAsciiRegex.test(text)) { + return text.length; + } + text = text.replace(emoji_regex_default(), " "); + let width = 0; + for (const character of text) { + const codePoint = character.codePointAt(0); + if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { + continue; + } + if (codePoint >= 768 && codePoint <= 879) { + continue; + } + width += _isNarrowWidth(codePoint) ? 1 : 2; + } + return width; + } + var get_string_width_default = getStringWidth; + + // src/document/printer.js + var MODE_BREAK = Symbol("MODE_BREAK"); + var MODE_FLAT = Symbol("MODE_FLAT"); + var CURSOR_PLACEHOLDER = Symbol("cursor"); + var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH"); + function rootIndent() { + return { value: "", length: 0, queue: [] }; + } + function makeIndent(ind, options) { + return generateInd(ind, { type: "indent" }, options); + } + function makeAlign(indent2, widthOrDoc, options) { + if (widthOrDoc === Number.NEGATIVE_INFINITY) { + return indent2.root || rootIndent(); + } + if (widthOrDoc < 0) { + return generateInd(indent2, { type: "dedent" }, options); + } + if (!widthOrDoc) { + return indent2; + } + if (widthOrDoc.type === "root") { + return { ...indent2, root: indent2 }; + } + const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; + return generateInd(indent2, { type: alignType, n: widthOrDoc }, options); + } + function generateInd(ind, newPart, options) { + const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; + let value = ""; + let length = 0; + let lastTabs = 0; + let lastSpaces = 0; + for (const part of queue) { + switch (part.type) { + case "indent": + flush(); + if (options.useTabs) { + addTabs(1); + } else { + addSpaces(options.tabWidth); + } + break; + case "stringAlign": + flush(); + value += part.n; + length += part.n.length; + break; + case "numberAlign": + lastTabs += 1; + lastSpaces += part.n; + break; + default: + throw new Error(`Unexpected type '${part.type}'`); + } + } + flushSpaces(); + return { ...ind, value, length, queue }; + function addTabs(count) { + value += " ".repeat(count); + length += options.tabWidth * count; + } + function addSpaces(count) { + value += " ".repeat(count); + length += count; + } + function flush() { + if (options.useTabs) { + flushTabs(); + } else { + flushSpaces(); + } + } + function flushTabs() { + if (lastTabs > 0) { + addTabs(lastTabs); + } + resetLast(); + } + function flushSpaces() { + if (lastSpaces > 0) { + addSpaces(lastSpaces); + } + resetLast(); + } + function resetLast() { + lastTabs = 0; + lastSpaces = 0; + } + } + function trim2(out) { + let trimCount = 0; + let cursorCount = 0; + let outIndex = out.length; + outer: while (outIndex--) { + const last = out[outIndex]; + if (last === CURSOR_PLACEHOLDER) { + cursorCount++; + continue; + } + if (false) { + throw new Error(`Unexpected value in trim: '${typeof last}'`); + } + for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) { + const char = last[charIndex]; + if (char === " " || char === " ") { + trimCount++; + } else { + out[outIndex] = last.slice(0, charIndex + 1); + break outer; + } + } + } + if (trimCount > 0 || cursorCount > 0) { + out.length = outIndex + 1; + while (cursorCount-- > 0) { + out.push(CURSOR_PLACEHOLDER); + } + } + return trimCount; + } + function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) { + if (width === Number.POSITIVE_INFINITY) { + return true; + } + let restIdx = restCommands.length; + const cmds = [next]; + const out = []; + while (width >= 0) { + if (cmds.length === 0) { + if (restIdx === 0) { + return true; + } + cmds.push(restCommands[--restIdx]); + continue; + } + const { mode, doc } = cmds.pop(); + const docType = get_doc_type_default(doc); + switch (docType) { + case DOC_TYPE_STRING: + out.push(doc); + width -= get_string_width_default(doc); + break; + case DOC_TYPE_ARRAY: + case DOC_TYPE_FILL: { + const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts; + const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0; + for (let i = parts.length - 1; i >= end; i--) { + cmds.push({ mode, doc: parts[i] }); + } + break; + } + case DOC_TYPE_INDENT: + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + cmds.push({ mode, doc: doc.contents }); + break; + case DOC_TYPE_TRIM: + width += trim2(out); + break; + case DOC_TYPE_GROUP: { + if (mustBeFlat && doc.break) { + return false; + } + const groupMode = doc.break ? MODE_BREAK : mode; + const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default( + /* isOptionalObject */ + false, + doc.expandedStates, + -1 + ) : doc.contents; + cmds.push({ mode: groupMode, doc: contents }); + break; + } + case DOC_TYPE_IF_BREAK: { + const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode; + const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents; + if (contents) { + cmds.push({ mode, doc: contents }); + } + break; + } + case DOC_TYPE_LINE: + if (mode === MODE_BREAK || doc.hard) { + return true; + } + if (!doc.soft) { + out.push(" "); + width--; + } + break; + case DOC_TYPE_LINE_SUFFIX: + hasLineSuffix = true; + break; + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + if (hasLineSuffix) { + return false; + } + break; + } + } + return false; + } + function printDocToString(doc, options) { + const groupModeMap = {}; + const width = options.printWidth; + const newLine = convertEndOfLineToChars(options.endOfLine); + let pos = 0; + const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }]; + const out = []; + let shouldRemeasure = false; + const lineSuffix2 = []; + let printedCursorCount = 0; + propagateBreaks(doc); + while (cmds.length > 0) { + const { ind, mode, doc: doc2 } = cmds.pop(); + switch (get_doc_type_default(doc2)) { + case DOC_TYPE_STRING: { + const formatted = newLine !== "\n" ? string_replace_all_default( + /* isOptionalObject */ + false, + doc2, + "\n", + newLine + ) : doc2; + out.push(formatted); + if (cmds.length > 0) { + pos += get_string_width_default(formatted); + } + break; + } + case DOC_TYPE_ARRAY: + for (let i = doc2.length - 1; i >= 0; i--) { + cmds.push({ ind, mode, doc: doc2[i] }); + } + break; + case DOC_TYPE_CURSOR: + if (printedCursorCount >= 2) { + throw new Error("There are too many 'cursor' in doc."); + } + out.push(CURSOR_PLACEHOLDER); + printedCursorCount++; + break; + case DOC_TYPE_INDENT: + cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents }); + break; + case DOC_TYPE_ALIGN: + cmds.push({ + ind: makeAlign(ind, doc2.n, options), + mode, + doc: doc2.contents + }); + break; + case DOC_TYPE_TRIM: + pos -= trim2(out); + break; + case DOC_TYPE_GROUP: + switch (mode) { + case MODE_FLAT: + if (!shouldRemeasure) { + cmds.push({ + ind, + mode: doc2.break ? MODE_BREAK : MODE_FLAT, + doc: doc2.contents + }); + break; + } + // fallthrough + case MODE_BREAK: { + shouldRemeasure = false; + const next = { ind, mode: MODE_FLAT, doc: doc2.contents }; + const rem = width - pos; + const hasLineSuffix = lineSuffix2.length > 0; + if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) { + cmds.push(next); + } else { + if (doc2.expandedStates) { + const mostExpanded = at_default( + /* isOptionalObject */ + false, + doc2.expandedStates, + -1 + ); + if (doc2.break) { + cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded }); + break; + } else { + for (let i = 1; i < doc2.expandedStates.length + 1; i++) { + if (i >= doc2.expandedStates.length) { + cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded }); + break; + } else { + const state = doc2.expandedStates[i]; + const cmd = { ind, mode: MODE_FLAT, doc: state }; + if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) { + cmds.push(cmd); + break; + } + } + } + } + } else { + cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents }); + } + } + break; + } + } + if (doc2.id) { + groupModeMap[doc2.id] = at_default( + /* isOptionalObject */ + false, + cmds, + -1 + ).mode; + } + break; + // Fills each line with as much code as possible before moving to a new + // line with the same indentation. + // + // Expects doc.parts to be an array of alternating content and + // whitespace. The whitespace contains the linebreaks. + // + // For example: + // ["I", line, "love", line, "monkeys"] + // or + // [{ type: group, ... }, softline, { type: group, ... }] + // + // It uses this parts structure to handle three main layout cases: + // * The first two content items fit on the same line without + // breaking + // -> output the first content item and the whitespace "flat". + // * Only the first content item fits on the line without breaking + // -> output the first content item "flat" and the whitespace with + // "break". + // * Neither content item fits on the line without breaking + // -> output the first content item and the whitespace with "break". + case DOC_TYPE_FILL: { + const rem = width - pos; + const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0; + const { parts } = doc2; + const length = parts.length - offset; + if (length === 0) { + break; + } + const content = parts[offset + 0]; + const whitespace = parts[offset + 1]; + const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content }; + const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content }; + const contentFits = fits( + contentFlatCmd, + [], + rem, + lineSuffix2.length > 0, + groupModeMap, + true + ); + if (length === 1) { + if (contentFits) { + cmds.push(contentFlatCmd); + } else { + cmds.push(contentBreakCmd); + } + break; + } + const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace }; + const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace }; + if (length === 2) { + if (contentFits) { + cmds.push(whitespaceFlatCmd, contentFlatCmd); + } else { + cmds.push(whitespaceBreakCmd, contentBreakCmd); + } + break; + } + const secondContent = parts[offset + 2]; + const remainingCmd = { + ind, + mode, + doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 } + }; + const firstAndSecondContentFlatCmd = { + ind, + mode: MODE_FLAT, + doc: [content, whitespace, secondContent] + }; + const firstAndSecondContentFits = fits( + firstAndSecondContentFlatCmd, + [], + rem, + lineSuffix2.length > 0, + groupModeMap, + true + ); + if (firstAndSecondContentFits) { + cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); + } else if (contentFits) { + cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); + } else { + cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); + } + break; + } + case DOC_TYPE_IF_BREAK: + case DOC_TYPE_INDENT_IF_BREAK: { + const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; + if (groupMode === MODE_BREAK) { + const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); + if (breakContents) { + cmds.push({ ind, mode, doc: breakContents }); + } + } + if (groupMode === MODE_FLAT) { + const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; + if (flatContents) { + cmds.push({ ind, mode, doc: flatContents }); + } + } + break; + } + case DOC_TYPE_LINE_SUFFIX: + lineSuffix2.push({ ind, mode, doc: doc2.contents }); + break; + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + if (lineSuffix2.length > 0) { + cmds.push({ ind, mode, doc: hardlineWithoutBreakParent }); + } + break; + case DOC_TYPE_LINE: + switch (mode) { + case MODE_FLAT: + if (!doc2.hard) { + if (!doc2.soft) { + out.push(" "); + pos += 1; + } + break; + } else { + shouldRemeasure = true; + } + // fallthrough + case MODE_BREAK: + if (lineSuffix2.length > 0) { + cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse()); + lineSuffix2.length = 0; + break; + } + if (doc2.literal) { + if (ind.root) { + out.push(newLine, ind.root.value); + pos = ind.root.length; + } else { + out.push(newLine); + pos = 0; + } + } else { + pos -= trim2(out); + out.push(newLine + ind.value); + pos = ind.length; + } + break; + } + break; + case DOC_TYPE_LABEL: + cmds.push({ ind, mode, doc: doc2.contents }); + break; + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc2); + } + if (cmds.length === 0 && lineSuffix2.length > 0) { + cmds.push(...lineSuffix2.reverse()); + lineSuffix2.length = 0; + } + } + const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER); + if (cursorPlaceholderIndex !== -1) { + const otherCursorPlaceholderIndex = out.indexOf( + CURSOR_PLACEHOLDER, + cursorPlaceholderIndex + 1 + ); + if (otherCursorPlaceholderIndex === -1) { + return { + formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("") + }; + } + const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); + const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); + const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); + return { + formatted: beforeCursor + aroundCursor + afterCursor, + cursorNodeStart: beforeCursor.length, + cursorNodeText: aroundCursor + }; + } + return { formatted: out.join("") }; + } + + // src/document/public.js + var builders = { + join, + line, + softline, + hardline, + literalline, + group, + conditionalGroup, + fill, + lineSuffix, + lineSuffixBoundary, + cursor, + breakParent, + ifBreak, + trim, + indent, + indentIfBreak, + align, + addAlignmentToDoc, + markAsRoot, + dedentToRoot, + dedent, + hardlineWithoutBreakParent, + literallineWithoutBreakParent, + label, + // TODO: Remove this in v4 + concat: (parts) => parts + }; + var printer = { printDocToString }; + var utils = { + willBreak, + traverseDoc: traverse_doc_default, + findInDoc, + mapDoc, + removeLines, + stripTrailingHardline, + replaceEndOfLine, + canBreak + }; + return __toCommonJS(public_exports); +}); \ No newline at end of file diff --git a/node_modules/prettier/doc.mjs b/node_modules/prettier/doc.mjs new file mode 100644 index 0000000..8a5cf81 --- /dev/null +++ b/node_modules/prettier/doc.mjs @@ -0,0 +1,1242 @@ +var __defProp = Object.defineProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; + +// src/document/public.js +var public_exports = {}; +__export(public_exports, { + builders: () => builders, + printer: () => printer, + utils: () => utils +}); + +// src/document/constants.js +var DOC_TYPE_STRING = "string"; +var DOC_TYPE_ARRAY = "array"; +var DOC_TYPE_CURSOR = "cursor"; +var DOC_TYPE_INDENT = "indent"; +var DOC_TYPE_ALIGN = "align"; +var DOC_TYPE_TRIM = "trim"; +var DOC_TYPE_GROUP = "group"; +var DOC_TYPE_FILL = "fill"; +var DOC_TYPE_IF_BREAK = "if-break"; +var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break"; +var DOC_TYPE_LINE_SUFFIX = "line-suffix"; +var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary"; +var DOC_TYPE_LINE = "line"; +var DOC_TYPE_LABEL = "label"; +var DOC_TYPE_BREAK_PARENT = "break-parent"; +var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([ + DOC_TYPE_CURSOR, + DOC_TYPE_INDENT, + DOC_TYPE_ALIGN, + DOC_TYPE_TRIM, + DOC_TYPE_GROUP, + DOC_TYPE_FILL, + DOC_TYPE_IF_BREAK, + DOC_TYPE_INDENT_IF_BREAK, + DOC_TYPE_LINE_SUFFIX, + DOC_TYPE_LINE_SUFFIX_BOUNDARY, + DOC_TYPE_LINE, + DOC_TYPE_LABEL, + DOC_TYPE_BREAK_PARENT +]); + +// scripts/build/shims/at.js +var at = (isOptionalObject, object, index) => { + if (isOptionalObject && (object === void 0 || object === null)) { + return; + } + if (Array.isArray(object) || typeof object === "string") { + return object[index < 0 ? object.length + index : index]; + } + return object.at(index); +}; +var at_default = at; + +// node_modules/trim-newlines/index.js +function trimNewlinesEnd(string) { + let end = string.length; + while (end > 0 && (string[end - 1] === "\r" || string[end - 1] === "\n")) { + end--; + } + return end < string.length ? string.slice(0, end) : string; +} + +// src/document/utils/get-doc-type.js +function getDocType(doc) { + if (typeof doc === "string") { + return DOC_TYPE_STRING; + } + if (Array.isArray(doc)) { + return DOC_TYPE_ARRAY; + } + if (!doc) { + return; + } + const { type } = doc; + if (VALID_OBJECT_DOC_TYPES.has(type)) { + return type; + } +} +var get_doc_type_default = getDocType; + +// src/document/invalid-doc-error.js +var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); +function getDocErrorMessage(doc) { + const type = doc === null ? "null" : typeof doc; + if (type !== "string" && type !== "object") { + return `Unexpected doc '${type}', +Expected it to be 'string' or 'object'.`; + } + if (get_doc_type_default(doc)) { + throw new Error("doc is valid."); + } + const objectType = Object.prototype.toString.call(doc); + if (objectType !== "[object Object]") { + return `Unexpected doc '${objectType}'.`; + } + const EXPECTED_TYPE_VALUES = disjunctionListFormat( + [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`) + ); + return `Unexpected doc.type '${doc.type}'. +Expected it to be ${EXPECTED_TYPE_VALUES}.`; +} +var InvalidDocError = class extends Error { + name = "InvalidDocError"; + constructor(doc) { + super(getDocErrorMessage(doc)); + this.doc = doc; + } +}; +var invalid_doc_error_default = InvalidDocError; + +// src/document/utils/traverse-doc.js +var traverseDocOnExitStackMarker = {}; +function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { + const docsStack = [doc]; + while (docsStack.length > 0) { + const doc2 = docsStack.pop(); + if (doc2 === traverseDocOnExitStackMarker) { + onExit(docsStack.pop()); + continue; + } + if (onExit) { + docsStack.push(doc2, traverseDocOnExitStackMarker); + } + const docType = get_doc_type_default(doc2); + if (!docType) { + throw new invalid_doc_error_default(doc2); + } + if ((onEnter == null ? void 0 : onEnter(doc2)) === false) { + continue; + } + switch (docType) { + case DOC_TYPE_ARRAY: + case DOC_TYPE_FILL: { + const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts; + for (let ic = parts.length, i = ic - 1; i >= 0; --i) { + docsStack.push(parts[i]); + } + break; + } + case DOC_TYPE_IF_BREAK: + docsStack.push(doc2.flatContents, doc2.breakContents); + break; + case DOC_TYPE_GROUP: + if (shouldTraverseConditionalGroups && doc2.expandedStates) { + for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) { + docsStack.push(doc2.expandedStates[i]); + } + } else { + docsStack.push(doc2.contents); + } + break; + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + case DOC_TYPE_LINE_SUFFIX: + docsStack.push(doc2.contents); + break; + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc2); + } + } +} +var traverse_doc_default = traverseDoc; + +// src/document/utils.js +function mapDoc(doc, cb) { + if (typeof doc === "string") { + return cb(doc); + } + const mapped = /* @__PURE__ */ new Map(); + return rec(doc); + function rec(doc2) { + if (mapped.has(doc2)) { + return mapped.get(doc2); + } + const result = process2(doc2); + mapped.set(doc2, result); + return result; + } + function process2(doc2) { + switch (get_doc_type_default(doc2)) { + case DOC_TYPE_ARRAY: + return cb(doc2.map(rec)); + case DOC_TYPE_FILL: + return cb({ ...doc2, parts: doc2.parts.map(rec) }); + case DOC_TYPE_IF_BREAK: + return cb({ + ...doc2, + breakContents: rec(doc2.breakContents), + flatContents: rec(doc2.flatContents) + }); + case DOC_TYPE_GROUP: { + let { expandedStates, contents } = doc2; + if (expandedStates) { + expandedStates = expandedStates.map(rec); + contents = expandedStates[0]; + } else { + contents = rec(contents); + } + return cb({ ...doc2, contents, expandedStates }); + } + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + case DOC_TYPE_LINE_SUFFIX: + return cb({ ...doc2, contents: rec(doc2.contents) }); + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + return cb(doc2); + default: + throw new invalid_doc_error_default(doc2); + } + } +} +function findInDoc(doc, fn, defaultValue) { + let result = defaultValue; + let shouldSkipFurtherProcessing = false; + function findInDocOnEnterFn(doc2) { + if (shouldSkipFurtherProcessing) { + return false; + } + const maybeResult = fn(doc2); + if (maybeResult !== void 0) { + shouldSkipFurtherProcessing = true; + result = maybeResult; + } + } + traverse_doc_default(doc, findInDocOnEnterFn); + return result; +} +function willBreakFn(doc) { + if (doc.type === DOC_TYPE_GROUP && doc.break) { + return true; + } + if (doc.type === DOC_TYPE_LINE && doc.hard) { + return true; + } + if (doc.type === DOC_TYPE_BREAK_PARENT) { + return true; + } +} +function willBreak(doc) { + return findInDoc(doc, willBreakFn, false); +} +function breakParentGroup(groupStack) { + if (groupStack.length > 0) { + const parentGroup = at_default( + /* isOptionalObject */ + false, + groupStack, + -1 + ); + if (!parentGroup.expandedStates && !parentGroup.break) { + parentGroup.break = "propagated"; + } + } + return null; +} +function propagateBreaks(doc) { + const alreadyVisitedSet = /* @__PURE__ */ new Set(); + const groupStack = []; + function propagateBreaksOnEnterFn(doc2) { + if (doc2.type === DOC_TYPE_BREAK_PARENT) { + breakParentGroup(groupStack); + } + if (doc2.type === DOC_TYPE_GROUP) { + groupStack.push(doc2); + if (alreadyVisitedSet.has(doc2)) { + return false; + } + alreadyVisitedSet.add(doc2); + } + } + function propagateBreaksOnExitFn(doc2) { + if (doc2.type === DOC_TYPE_GROUP) { + const group2 = groupStack.pop(); + if (group2.break) { + breakParentGroup(groupStack); + } + } + } + traverse_doc_default( + doc, + propagateBreaksOnEnterFn, + propagateBreaksOnExitFn, + /* shouldTraverseConditionalGroups */ + true + ); +} +function removeLinesFn(doc) { + if (doc.type === DOC_TYPE_LINE && !doc.hard) { + return doc.soft ? "" : " "; + } + if (doc.type === DOC_TYPE_IF_BREAK) { + return doc.flatContents; + } + return doc; +} +function removeLines(doc) { + return mapDoc(doc, removeLinesFn); +} +function stripTrailingHardlineFromParts(parts) { + parts = [...parts]; + while (parts.length >= 2 && at_default( + /* isOptionalObject */ + false, + parts, + -2 + ).type === DOC_TYPE_LINE && at_default( + /* isOptionalObject */ + false, + parts, + -1 + ).type === DOC_TYPE_BREAK_PARENT) { + parts.length -= 2; + } + if (parts.length > 0) { + const lastPart = stripTrailingHardlineFromDoc(at_default( + /* isOptionalObject */ + false, + parts, + -1 + )); + parts[parts.length - 1] = lastPart; + } + return parts; +} +function stripTrailingHardlineFromDoc(doc) { + switch (get_doc_type_default(doc)) { + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_GROUP: + case DOC_TYPE_LINE_SUFFIX: + case DOC_TYPE_LABEL: { + const contents = stripTrailingHardlineFromDoc(doc.contents); + return { ...doc, contents }; + } + case DOC_TYPE_IF_BREAK: + return { + ...doc, + breakContents: stripTrailingHardlineFromDoc(doc.breakContents), + flatContents: stripTrailingHardlineFromDoc(doc.flatContents) + }; + case DOC_TYPE_FILL: + return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) }; + case DOC_TYPE_ARRAY: + return stripTrailingHardlineFromParts(doc); + case DOC_TYPE_STRING: + return trimNewlinesEnd(doc); + case DOC_TYPE_ALIGN: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc); + } + return doc; +} +function stripTrailingHardline(doc) { + return stripTrailingHardlineFromDoc(cleanDoc(doc)); +} +function cleanDocFn(doc) { + switch (get_doc_type_default(doc)) { + case DOC_TYPE_FILL: + if (doc.parts.every((part) => part === "")) { + return ""; + } + break; + case DOC_TYPE_GROUP: + if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { + return ""; + } + if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { + return doc.contents; + } + break; + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LINE_SUFFIX: + if (!doc.contents) { + return ""; + } + break; + case DOC_TYPE_IF_BREAK: + if (!doc.flatContents && !doc.breakContents) { + return ""; + } + break; + case DOC_TYPE_ARRAY: { + const parts = []; + for (const part of doc) { + if (!part) { + continue; + } + const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; + if (typeof currentPart === "string" && typeof at_default( + /* isOptionalObject */ + false, + parts, + -1 + ) === "string") { + parts[parts.length - 1] += currentPart; + } else { + parts.push(currentPart); + } + parts.push(...restParts); + } + if (parts.length === 0) { + return ""; + } + if (parts.length === 1) { + return parts[0]; + } + return parts; + } + case DOC_TYPE_STRING: + case DOC_TYPE_CURSOR: + case DOC_TYPE_TRIM: + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + case DOC_TYPE_LINE: + case DOC_TYPE_LABEL: + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc); + } + return doc; +} +function cleanDoc(doc) { + return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); +} +function replaceEndOfLine(doc, replacement = literalline) { + return mapDoc( + doc, + (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc + ); +} +function canBreakFn(doc) { + if (doc.type === DOC_TYPE_LINE) { + return true; + } +} +function canBreak(doc) { + return findInDoc(doc, canBreakFn, false); +} + +// src/document/utils/assert-doc.js +var noop = () => { +}; +var assertDoc = true ? noop : function(doc) { + traverse_doc_default(doc, (doc2) => { + if (checked.has(doc2)) { + return false; + } + if (typeof doc2 !== "string") { + checked.add(doc2); + } + }); +}; +var assertDocArray = true ? noop : function(docs, optional = false) { + if (optional && !docs) { + return; + } + if (!Array.isArray(docs)) { + throw new TypeError("Unexpected doc array."); + } + for (const doc of docs) { + assertDoc(doc); + } +}; +var assertDocFillParts = true ? noop : ( + /** + * @param {Doc[]} parts + */ + function(parts) { + assertDocArray(parts); + if (parts.length > 1 && isEmptyDoc(at_default( + /* isOptionalObject */ + false, + parts, + -1 + ))) { + parts = parts.slice(0, -1); + } + for (const [i, doc] of parts.entries()) { + if (i % 2 === 1 && !isValidSeparator(doc)) { + const type = get_doc_type_default(doc); + throw new Error( + `Unexpected non-line-break doc at ${i}. Doc type is ${type}.` + ); + } + } + } +); + +// src/document/builders.js +function indent(contents) { + assertDoc(contents); + return { type: DOC_TYPE_INDENT, contents }; +} +function align(widthOrString, contents) { + assertDoc(contents); + return { type: DOC_TYPE_ALIGN, contents, n: widthOrString }; +} +function group(contents, opts = {}) { + assertDoc(contents); + assertDocArray( + opts.expandedStates, + /* optional */ + true + ); + return { + type: DOC_TYPE_GROUP, + id: opts.id, + contents, + break: Boolean(opts.shouldBreak), + expandedStates: opts.expandedStates + }; +} +function dedentToRoot(contents) { + return align(Number.NEGATIVE_INFINITY, contents); +} +function markAsRoot(contents) { + return align({ type: "root" }, contents); +} +function dedent(contents) { + return align(-1, contents); +} +function conditionalGroup(states, opts) { + return group(states[0], { ...opts, expandedStates: states }); +} +function fill(parts) { + assertDocFillParts(parts); + return { type: DOC_TYPE_FILL, parts }; +} +function ifBreak(breakContents, flatContents = "", opts = {}) { + assertDoc(breakContents); + if (flatContents !== "") { + assertDoc(flatContents); + } + return { + type: DOC_TYPE_IF_BREAK, + breakContents, + flatContents, + groupId: opts.groupId + }; +} +function indentIfBreak(contents, opts) { + assertDoc(contents); + return { + type: DOC_TYPE_INDENT_IF_BREAK, + contents, + groupId: opts.groupId, + negate: opts.negate + }; +} +function lineSuffix(contents) { + assertDoc(contents); + return { type: DOC_TYPE_LINE_SUFFIX, contents }; +} +var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY }; +var breakParent = { type: DOC_TYPE_BREAK_PARENT }; +var trim = { type: DOC_TYPE_TRIM }; +var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true }; +var literallineWithoutBreakParent = { + type: DOC_TYPE_LINE, + hard: true, + literal: true +}; +var line = { type: DOC_TYPE_LINE }; +var softline = { type: DOC_TYPE_LINE, soft: true }; +var hardline = [hardlineWithoutBreakParent, breakParent]; +var literalline = [literallineWithoutBreakParent, breakParent]; +var cursor = { type: DOC_TYPE_CURSOR }; +function join(separator, docs) { + assertDoc(separator); + assertDocArray(docs); + const parts = []; + for (let i = 0; i < docs.length; i++) { + if (i !== 0) { + parts.push(separator); + } + parts.push(docs[i]); + } + return parts; +} +function addAlignmentToDoc(doc, size, tabWidth) { + assertDoc(doc); + let aligned = doc; + if (size > 0) { + for (let i = 0; i < Math.floor(size / tabWidth); ++i) { + aligned = indent(aligned); + } + aligned = align(size % tabWidth, aligned); + aligned = align(Number.NEGATIVE_INFINITY, aligned); + } + return aligned; +} +function label(label2, contents) { + assertDoc(contents); + return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents; +} + +// scripts/build/shims/string-replace-all.js +var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => { + if (isOptionalObject && (original === void 0 || original === null)) { + return; + } + if (original.replaceAll) { + return original.replaceAll(pattern, replacement); + } + if (pattern.global) { + return original.replace(pattern, replacement); + } + return original.split(pattern).join(replacement); +}; +var string_replace_all_default = stringReplaceAll; + +// src/common/end-of-line.js +function convertEndOfLineToChars(value) { + switch (value) { + case "cr": + return "\r"; + case "crlf": + return "\r\n"; + default: + return "\n"; + } +} + +// node_modules/emoji-regex/index.mjs +var emoji_regex_default = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; +}; + +// node_modules/get-east-asian-width/lookup.js +function isFullWidth(x) { + return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510; +} +function isWide(x) { + return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141; +} + +// node_modules/get-east-asian-width/index.js +var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint)); + +// src/utils/get-string-width.js +var notAsciiRegex = /[^\x20-\x7F]/u; +function getStringWidth(text) { + if (!text) { + return 0; + } + if (!notAsciiRegex.test(text)) { + return text.length; + } + text = text.replace(emoji_regex_default(), " "); + let width = 0; + for (const character of text) { + const codePoint = character.codePointAt(0); + if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { + continue; + } + if (codePoint >= 768 && codePoint <= 879) { + continue; + } + width += _isNarrowWidth(codePoint) ? 1 : 2; + } + return width; +} +var get_string_width_default = getStringWidth; + +// src/document/printer.js +var MODE_BREAK = Symbol("MODE_BREAK"); +var MODE_FLAT = Symbol("MODE_FLAT"); +var CURSOR_PLACEHOLDER = Symbol("cursor"); +var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH"); +function rootIndent() { + return { value: "", length: 0, queue: [] }; +} +function makeIndent(ind, options) { + return generateInd(ind, { type: "indent" }, options); +} +function makeAlign(indent2, widthOrDoc, options) { + if (widthOrDoc === Number.NEGATIVE_INFINITY) { + return indent2.root || rootIndent(); + } + if (widthOrDoc < 0) { + return generateInd(indent2, { type: "dedent" }, options); + } + if (!widthOrDoc) { + return indent2; + } + if (widthOrDoc.type === "root") { + return { ...indent2, root: indent2 }; + } + const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; + return generateInd(indent2, { type: alignType, n: widthOrDoc }, options); +} +function generateInd(ind, newPart, options) { + const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; + let value = ""; + let length = 0; + let lastTabs = 0; + let lastSpaces = 0; + for (const part of queue) { + switch (part.type) { + case "indent": + flush(); + if (options.useTabs) { + addTabs(1); + } else { + addSpaces(options.tabWidth); + } + break; + case "stringAlign": + flush(); + value += part.n; + length += part.n.length; + break; + case "numberAlign": + lastTabs += 1; + lastSpaces += part.n; + break; + default: + throw new Error(`Unexpected type '${part.type}'`); + } + } + flushSpaces(); + return { ...ind, value, length, queue }; + function addTabs(count) { + value += " ".repeat(count); + length += options.tabWidth * count; + } + function addSpaces(count) { + value += " ".repeat(count); + length += count; + } + function flush() { + if (options.useTabs) { + flushTabs(); + } else { + flushSpaces(); + } + } + function flushTabs() { + if (lastTabs > 0) { + addTabs(lastTabs); + } + resetLast(); + } + function flushSpaces() { + if (lastSpaces > 0) { + addSpaces(lastSpaces); + } + resetLast(); + } + function resetLast() { + lastTabs = 0; + lastSpaces = 0; + } +} +function trim2(out) { + let trimCount = 0; + let cursorCount = 0; + let outIndex = out.length; + outer: while (outIndex--) { + const last = out[outIndex]; + if (last === CURSOR_PLACEHOLDER) { + cursorCount++; + continue; + } + if (false) { + throw new Error(`Unexpected value in trim: '${typeof last}'`); + } + for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) { + const char = last[charIndex]; + if (char === " " || char === " ") { + trimCount++; + } else { + out[outIndex] = last.slice(0, charIndex + 1); + break outer; + } + } + } + if (trimCount > 0 || cursorCount > 0) { + out.length = outIndex + 1; + while (cursorCount-- > 0) { + out.push(CURSOR_PLACEHOLDER); + } + } + return trimCount; +} +function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) { + if (width === Number.POSITIVE_INFINITY) { + return true; + } + let restIdx = restCommands.length; + const cmds = [next]; + const out = []; + while (width >= 0) { + if (cmds.length === 0) { + if (restIdx === 0) { + return true; + } + cmds.push(restCommands[--restIdx]); + continue; + } + const { mode, doc } = cmds.pop(); + const docType = get_doc_type_default(doc); + switch (docType) { + case DOC_TYPE_STRING: + out.push(doc); + width -= get_string_width_default(doc); + break; + case DOC_TYPE_ARRAY: + case DOC_TYPE_FILL: { + const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts; + const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0; + for (let i = parts.length - 1; i >= end; i--) { + cmds.push({ mode, doc: parts[i] }); + } + break; + } + case DOC_TYPE_INDENT: + case DOC_TYPE_ALIGN: + case DOC_TYPE_INDENT_IF_BREAK: + case DOC_TYPE_LABEL: + cmds.push({ mode, doc: doc.contents }); + break; + case DOC_TYPE_TRIM: + width += trim2(out); + break; + case DOC_TYPE_GROUP: { + if (mustBeFlat && doc.break) { + return false; + } + const groupMode = doc.break ? MODE_BREAK : mode; + const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default( + /* isOptionalObject */ + false, + doc.expandedStates, + -1 + ) : doc.contents; + cmds.push({ mode: groupMode, doc: contents }); + break; + } + case DOC_TYPE_IF_BREAK: { + const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode; + const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents; + if (contents) { + cmds.push({ mode, doc: contents }); + } + break; + } + case DOC_TYPE_LINE: + if (mode === MODE_BREAK || doc.hard) { + return true; + } + if (!doc.soft) { + out.push(" "); + width--; + } + break; + case DOC_TYPE_LINE_SUFFIX: + hasLineSuffix = true; + break; + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + if (hasLineSuffix) { + return false; + } + break; + } + } + return false; +} +function printDocToString(doc, options) { + const groupModeMap = {}; + const width = options.printWidth; + const newLine = convertEndOfLineToChars(options.endOfLine); + let pos = 0; + const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }]; + const out = []; + let shouldRemeasure = false; + const lineSuffix2 = []; + let printedCursorCount = 0; + propagateBreaks(doc); + while (cmds.length > 0) { + const { ind, mode, doc: doc2 } = cmds.pop(); + switch (get_doc_type_default(doc2)) { + case DOC_TYPE_STRING: { + const formatted = newLine !== "\n" ? string_replace_all_default( + /* isOptionalObject */ + false, + doc2, + "\n", + newLine + ) : doc2; + out.push(formatted); + if (cmds.length > 0) { + pos += get_string_width_default(formatted); + } + break; + } + case DOC_TYPE_ARRAY: + for (let i = doc2.length - 1; i >= 0; i--) { + cmds.push({ ind, mode, doc: doc2[i] }); + } + break; + case DOC_TYPE_CURSOR: + if (printedCursorCount >= 2) { + throw new Error("There are too many 'cursor' in doc."); + } + out.push(CURSOR_PLACEHOLDER); + printedCursorCount++; + break; + case DOC_TYPE_INDENT: + cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents }); + break; + case DOC_TYPE_ALIGN: + cmds.push({ + ind: makeAlign(ind, doc2.n, options), + mode, + doc: doc2.contents + }); + break; + case DOC_TYPE_TRIM: + pos -= trim2(out); + break; + case DOC_TYPE_GROUP: + switch (mode) { + case MODE_FLAT: + if (!shouldRemeasure) { + cmds.push({ + ind, + mode: doc2.break ? MODE_BREAK : MODE_FLAT, + doc: doc2.contents + }); + break; + } + // fallthrough + case MODE_BREAK: { + shouldRemeasure = false; + const next = { ind, mode: MODE_FLAT, doc: doc2.contents }; + const rem = width - pos; + const hasLineSuffix = lineSuffix2.length > 0; + if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) { + cmds.push(next); + } else { + if (doc2.expandedStates) { + const mostExpanded = at_default( + /* isOptionalObject */ + false, + doc2.expandedStates, + -1 + ); + if (doc2.break) { + cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded }); + break; + } else { + for (let i = 1; i < doc2.expandedStates.length + 1; i++) { + if (i >= doc2.expandedStates.length) { + cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded }); + break; + } else { + const state = doc2.expandedStates[i]; + const cmd = { ind, mode: MODE_FLAT, doc: state }; + if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) { + cmds.push(cmd); + break; + } + } + } + } + } else { + cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents }); + } + } + break; + } + } + if (doc2.id) { + groupModeMap[doc2.id] = at_default( + /* isOptionalObject */ + false, + cmds, + -1 + ).mode; + } + break; + // Fills each line with as much code as possible before moving to a new + // line with the same indentation. + // + // Expects doc.parts to be an array of alternating content and + // whitespace. The whitespace contains the linebreaks. + // + // For example: + // ["I", line, "love", line, "monkeys"] + // or + // [{ type: group, ... }, softline, { type: group, ... }] + // + // It uses this parts structure to handle three main layout cases: + // * The first two content items fit on the same line without + // breaking + // -> output the first content item and the whitespace "flat". + // * Only the first content item fits on the line without breaking + // -> output the first content item "flat" and the whitespace with + // "break". + // * Neither content item fits on the line without breaking + // -> output the first content item and the whitespace with "break". + case DOC_TYPE_FILL: { + const rem = width - pos; + const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0; + const { parts } = doc2; + const length = parts.length - offset; + if (length === 0) { + break; + } + const content = parts[offset + 0]; + const whitespace = parts[offset + 1]; + const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content }; + const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content }; + const contentFits = fits( + contentFlatCmd, + [], + rem, + lineSuffix2.length > 0, + groupModeMap, + true + ); + if (length === 1) { + if (contentFits) { + cmds.push(contentFlatCmd); + } else { + cmds.push(contentBreakCmd); + } + break; + } + const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace }; + const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace }; + if (length === 2) { + if (contentFits) { + cmds.push(whitespaceFlatCmd, contentFlatCmd); + } else { + cmds.push(whitespaceBreakCmd, contentBreakCmd); + } + break; + } + const secondContent = parts[offset + 2]; + const remainingCmd = { + ind, + mode, + doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 } + }; + const firstAndSecondContentFlatCmd = { + ind, + mode: MODE_FLAT, + doc: [content, whitespace, secondContent] + }; + const firstAndSecondContentFits = fits( + firstAndSecondContentFlatCmd, + [], + rem, + lineSuffix2.length > 0, + groupModeMap, + true + ); + if (firstAndSecondContentFits) { + cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); + } else if (contentFits) { + cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); + } else { + cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); + } + break; + } + case DOC_TYPE_IF_BREAK: + case DOC_TYPE_INDENT_IF_BREAK: { + const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; + if (groupMode === MODE_BREAK) { + const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); + if (breakContents) { + cmds.push({ ind, mode, doc: breakContents }); + } + } + if (groupMode === MODE_FLAT) { + const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; + if (flatContents) { + cmds.push({ ind, mode, doc: flatContents }); + } + } + break; + } + case DOC_TYPE_LINE_SUFFIX: + lineSuffix2.push({ ind, mode, doc: doc2.contents }); + break; + case DOC_TYPE_LINE_SUFFIX_BOUNDARY: + if (lineSuffix2.length > 0) { + cmds.push({ ind, mode, doc: hardlineWithoutBreakParent }); + } + break; + case DOC_TYPE_LINE: + switch (mode) { + case MODE_FLAT: + if (!doc2.hard) { + if (!doc2.soft) { + out.push(" "); + pos += 1; + } + break; + } else { + shouldRemeasure = true; + } + // fallthrough + case MODE_BREAK: + if (lineSuffix2.length > 0) { + cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse()); + lineSuffix2.length = 0; + break; + } + if (doc2.literal) { + if (ind.root) { + out.push(newLine, ind.root.value); + pos = ind.root.length; + } else { + out.push(newLine); + pos = 0; + } + } else { + pos -= trim2(out); + out.push(newLine + ind.value); + pos = ind.length; + } + break; + } + break; + case DOC_TYPE_LABEL: + cmds.push({ ind, mode, doc: doc2.contents }); + break; + case DOC_TYPE_BREAK_PARENT: + break; + default: + throw new invalid_doc_error_default(doc2); + } + if (cmds.length === 0 && lineSuffix2.length > 0) { + cmds.push(...lineSuffix2.reverse()); + lineSuffix2.length = 0; + } + } + const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER); + if (cursorPlaceholderIndex !== -1) { + const otherCursorPlaceholderIndex = out.indexOf( + CURSOR_PLACEHOLDER, + cursorPlaceholderIndex + 1 + ); + if (otherCursorPlaceholderIndex === -1) { + return { + formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("") + }; + } + const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); + const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); + const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); + return { + formatted: beforeCursor + aroundCursor + afterCursor, + cursorNodeStart: beforeCursor.length, + cursorNodeText: aroundCursor + }; + } + return { formatted: out.join("") }; +} + +// src/document/public.js +var builders = { + join, + line, + softline, + hardline, + literalline, + group, + conditionalGroup, + fill, + lineSuffix, + lineSuffixBoundary, + cursor, + breakParent, + ifBreak, + trim, + indent, + indentIfBreak, + align, + addAlignmentToDoc, + markAsRoot, + dedentToRoot, + dedent, + hardlineWithoutBreakParent, + literallineWithoutBreakParent, + label, + // TODO: Remove this in v4 + concat: (parts) => parts +}; +var printer = { printDocToString }; +var utils = { + willBreak, + traverseDoc: traverse_doc_default, + findInDoc, + mapDoc, + removeLines, + stripTrailingHardline, + replaceEndOfLine, + canBreak +}; + +// with-default-export:src/document/public.js +var public_default = public_exports; +export { + builders, + public_default as default, + printer, + utils +}; diff --git a/node_modules/prettier/index.cjs b/node_modules/prettier/index.cjs new file mode 100644 index 0000000..f51de08 --- /dev/null +++ b/node_modules/prettier/index.cjs @@ -0,0 +1,685 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/utils/skip.js +function skip(characters) { + return (text, startIndex, options) => { + const backwards = Boolean(options == null ? void 0 : options.backwards); + if (startIndex === false) { + return false; + } + const { length } = text; + let cursor = startIndex; + while (cursor >= 0 && cursor < length) { + const character = text.charAt(cursor); + if (characters instanceof RegExp) { + if (!characters.test(character)) { + return cursor; + } + } else if (!characters.includes(character)) { + return cursor; + } + backwards ? cursor-- : cursor++; + } + if (cursor === -1 || cursor === length) { + return cursor; + } + return false; + }; +} +var skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine; +var init_skip = __esm({ + "src/utils/skip.js"() { + skipWhitespace = skip(/\s/u); + skipSpaces = skip(" "); + skipToLineEnd = skip(",; "); + skipEverythingButNewLine = skip(/[^\n\r]/u); + } +}); + +// src/utils/skip-inline-comment.js +function skipInlineComment(text, startIndex) { + if (startIndex === false) { + return false; + } + if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "*") { + for (let i = startIndex + 2; i < text.length; ++i) { + if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { + return i + 2; + } + } + } + return startIndex; +} +var skip_inline_comment_default; +var init_skip_inline_comment = __esm({ + "src/utils/skip-inline-comment.js"() { + skip_inline_comment_default = skipInlineComment; + } +}); + +// src/utils/skip-newline.js +function skipNewline(text, startIndex, options) { + const backwards = Boolean(options == null ? void 0 : options.backwards); + if (startIndex === false) { + return false; + } + const character = text.charAt(startIndex); + if (backwards) { + if (text.charAt(startIndex - 1) === "\r" && character === "\n") { + return startIndex - 2; + } + if (character === "\n" || character === "\r" || character === "\u2028" || character === "\u2029") { + return startIndex - 1; + } + } else { + if (character === "\r" && text.charAt(startIndex + 1) === "\n") { + return startIndex + 2; + } + if (character === "\n" || character === "\r" || character === "\u2028" || character === "\u2029") { + return startIndex + 1; + } + } + return startIndex; +} +var skip_newline_default; +var init_skip_newline = __esm({ + "src/utils/skip-newline.js"() { + skip_newline_default = skipNewline; + } +}); + +// src/utils/skip-trailing-comment.js +function skipTrailingComment(text, startIndex) { + if (startIndex === false) { + return false; + } + if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "/") { + return skipEverythingButNewLine(text, startIndex); + } + return startIndex; +} +var skip_trailing_comment_default; +var init_skip_trailing_comment = __esm({ + "src/utils/skip-trailing-comment.js"() { + init_skip(); + skip_trailing_comment_default = skipTrailingComment; + } +}); + +// src/utils/get-next-non-space-non-comment-character-index.js +function getNextNonSpaceNonCommentCharacterIndex(text, startIndex) { + let oldIdx = null; + let nextIdx = startIndex; + while (nextIdx !== oldIdx) { + oldIdx = nextIdx; + nextIdx = skipSpaces(text, nextIdx); + nextIdx = skip_inline_comment_default(text, nextIdx); + nextIdx = skip_trailing_comment_default(text, nextIdx); + nextIdx = skip_newline_default(text, nextIdx); + } + return nextIdx; +} +var get_next_non_space_non_comment_character_index_default; +var init_get_next_non_space_non_comment_character_index = __esm({ + "src/utils/get-next-non-space-non-comment-character-index.js"() { + init_skip(); + init_skip_inline_comment(); + init_skip_newline(); + init_skip_trailing_comment(); + get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex; + } +}); + +// src/utils/has-newline.js +function hasNewline(text, startIndex, options = {}) { + const idx = skipSpaces( + text, + options.backwards ? startIndex - 1 : startIndex, + options + ); + const idx2 = skip_newline_default(text, idx, options); + return idx !== idx2; +} +var has_newline_default; +var init_has_newline = __esm({ + "src/utils/has-newline.js"() { + init_skip(); + init_skip_newline(); + has_newline_default = hasNewline; + } +}); + +// src/utils/is-next-line-empty.js +function isNextLineEmpty(text, startIndex) { + let oldIdx = null; + let idx = startIndex; + while (idx !== oldIdx) { + oldIdx = idx; + idx = skipToLineEnd(text, idx); + idx = skip_inline_comment_default(text, idx); + idx = skipSpaces(text, idx); + } + idx = skip_trailing_comment_default(text, idx); + idx = skip_newline_default(text, idx); + return idx !== false && has_newline_default(text, idx); +} +var is_next_line_empty_default; +var init_is_next_line_empty = __esm({ + "src/utils/is-next-line-empty.js"() { + init_has_newline(); + init_skip(); + init_skip_inline_comment(); + init_skip_newline(); + init_skip_trailing_comment(); + is_next_line_empty_default = isNextLineEmpty; + } +}); + +// src/utils/is-previous-line-empty.js +function isPreviousLineEmpty(text, startIndex) { + let idx = startIndex - 1; + idx = skipSpaces(text, idx, { backwards: true }); + idx = skip_newline_default(text, idx, { backwards: true }); + idx = skipSpaces(text, idx, { backwards: true }); + const idx2 = skip_newline_default(text, idx, { backwards: true }); + return idx !== idx2; +} +var is_previous_line_empty_default; +var init_is_previous_line_empty = __esm({ + "src/utils/is-previous-line-empty.js"() { + init_skip(); + init_skip_newline(); + is_previous_line_empty_default = isPreviousLineEmpty; + } +}); + +// src/main/comments/utils.js +function describeNodeForDebugging(node) { + const nodeType = node.type || node.kind || "(unknown type)"; + let nodeName = String( + node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || "" + ); + if (nodeName.length > 20) { + nodeName = nodeName.slice(0, 19) + "\u2026"; + } + return nodeType + (nodeName ? " " + nodeName : ""); +} +function addCommentHelper(node, comment) { + const comments = node.comments ?? (node.comments = []); + comments.push(comment); + comment.printed = false; + comment.nodeDescription = describeNodeForDebugging(node); +} +function addLeadingComment(node, comment) { + comment.leading = true; + comment.trailing = false; + addCommentHelper(node, comment); +} +function addDanglingComment(node, comment, marker) { + comment.leading = false; + comment.trailing = false; + if (marker) { + comment.marker = marker; + } + addCommentHelper(node, comment); +} +function addTrailingComment(node, comment) { + comment.leading = false; + comment.trailing = true; + addCommentHelper(node, comment); +} +var init_utils = __esm({ + "src/main/comments/utils.js"() { + } +}); + +// src/utils/get-alignment-size.js +function getAlignmentSize(text, tabWidth, startIndex = 0) { + let size = 0; + for (let i = startIndex; i < text.length; ++i) { + if (text[i] === " ") { + size = size + tabWidth - size % tabWidth; + } else { + size++; + } + } + return size; +} +var get_alignment_size_default; +var init_get_alignment_size = __esm({ + "src/utils/get-alignment-size.js"() { + get_alignment_size_default = getAlignmentSize; + } +}); + +// src/utils/get-indent-size.js +function getIndentSize(value, tabWidth) { + const lastNewlineIndex = value.lastIndexOf("\n"); + if (lastNewlineIndex === -1) { + return 0; + } + return get_alignment_size_default( + // All the leading whitespaces + value.slice(lastNewlineIndex + 1).match(/^[\t ]*/u)[0], + tabWidth + ); +} +var get_indent_size_default; +var init_get_indent_size = __esm({ + "src/utils/get-indent-size.js"() { + init_get_alignment_size(); + get_indent_size_default = getIndentSize; + } +}); + +// node_modules/escape-string-regexp/index.js +function escapeStringRegexp(string) { + if (typeof string !== "string") { + throw new TypeError("Expected a string"); + } + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); +} +var init_escape_string_regexp = __esm({ + "node_modules/escape-string-regexp/index.js"() { + } +}); + +// src/utils/get-max-continuous-count.js +function getMaxContinuousCount(text, searchString) { + const results = text.match( + new RegExp(`(${escapeStringRegexp(searchString)})+`, "gu") + ); + if (results === null) { + return 0; + } + return results.reduce( + (maxCount, result) => Math.max(maxCount, result.length / searchString.length), + 0 + ); +} +var get_max_continuous_count_default; +var init_get_max_continuous_count = __esm({ + "src/utils/get-max-continuous-count.js"() { + init_escape_string_regexp(); + get_max_continuous_count_default = getMaxContinuousCount; + } +}); + +// src/utils/get-next-non-space-non-comment-character.js +function getNextNonSpaceNonCommentCharacter(text, startIndex) { + const index = get_next_non_space_non_comment_character_index_default(text, startIndex); + return index === false ? "" : text.charAt(index); +} +var get_next_non_space_non_comment_character_default; +var init_get_next_non_space_non_comment_character = __esm({ + "src/utils/get-next-non-space-non-comment-character.js"() { + init_get_next_non_space_non_comment_character_index(); + get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter; + } +}); + +// src/utils/get-preferred-quote.js +function getPreferredQuote(text, preferredQuoteOrPreferSingleQuote) { + const preferred = preferredQuoteOrPreferSingleQuote === true || preferredQuoteOrPreferSingleQuote === SINGLE_QUOTE ? SINGLE_QUOTE : DOUBLE_QUOTE; + const alternate = preferred === SINGLE_QUOTE ? DOUBLE_QUOTE : SINGLE_QUOTE; + let preferredQuoteCount = 0; + let alternateQuoteCount = 0; + for (const character of text) { + if (character === preferred) { + preferredQuoteCount++; + } else if (character === alternate) { + alternateQuoteCount++; + } + } + return preferredQuoteCount > alternateQuoteCount ? alternate : preferred; +} +var SINGLE_QUOTE, DOUBLE_QUOTE, get_preferred_quote_default; +var init_get_preferred_quote = __esm({ + "src/utils/get-preferred-quote.js"() { + SINGLE_QUOTE = "'"; + DOUBLE_QUOTE = '"'; + get_preferred_quote_default = getPreferredQuote; + } +}); + +// node_modules/emoji-regex/index.mjs +var emoji_regex_default; +var init_emoji_regex = __esm({ + "node_modules/emoji-regex/index.mjs"() { + emoji_regex_default = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; + }; + } +}); + +// node_modules/get-east-asian-width/lookup.js +function isFullWidth(x) { + return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510; +} +function isWide(x) { + return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141; +} +var init_lookup = __esm({ + "node_modules/get-east-asian-width/lookup.js"() { + } +}); + +// node_modules/get-east-asian-width/index.js +var _isNarrowWidth; +var init_get_east_asian_width = __esm({ + "node_modules/get-east-asian-width/index.js"() { + init_lookup(); + _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint)); + } +}); + +// src/utils/get-string-width.js +function getStringWidth(text) { + if (!text) { + return 0; + } + if (!notAsciiRegex.test(text)) { + return text.length; + } + text = text.replace(emoji_regex_default(), " "); + let width = 0; + for (const character of text) { + const codePoint = character.codePointAt(0); + if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { + continue; + } + if (codePoint >= 768 && codePoint <= 879) { + continue; + } + width += _isNarrowWidth(codePoint) ? 1 : 2; + } + return width; +} +var notAsciiRegex, get_string_width_default; +var init_get_string_width = __esm({ + "src/utils/get-string-width.js"() { + init_emoji_regex(); + init_get_east_asian_width(); + notAsciiRegex = /[^\x20-\x7F]/u; + get_string_width_default = getStringWidth; + } +}); + +// src/utils/has-newline-in-range.js +function hasNewlineInRange(text, startIndex, endIndex) { + for (let i = startIndex; i < endIndex; ++i) { + if (text.charAt(i) === "\n") { + return true; + } + } + return false; +} +var has_newline_in_range_default; +var init_has_newline_in_range = __esm({ + "src/utils/has-newline-in-range.js"() { + has_newline_in_range_default = hasNewlineInRange; + } +}); + +// src/utils/has-spaces.js +function hasSpaces(text, startIndex, options = {}) { + const idx = skipSpaces( + text, + options.backwards ? startIndex - 1 : startIndex, + options + ); + return idx !== startIndex; +} +var has_spaces_default; +var init_has_spaces = __esm({ + "src/utils/has-spaces.js"() { + init_skip(); + has_spaces_default = hasSpaces; + } +}); + +// scripts/build/shims/string-replace-all.js +var stringReplaceAll, string_replace_all_default; +var init_string_replace_all = __esm({ + "scripts/build/shims/string-replace-all.js"() { + stringReplaceAll = (isOptionalObject, original, pattern, replacement) => { + if (isOptionalObject && (original === void 0 || original === null)) { + return; + } + if (original.replaceAll) { + return original.replaceAll(pattern, replacement); + } + if (pattern.global) { + return original.replace(pattern, replacement); + } + return original.split(pattern).join(replacement); + }; + string_replace_all_default = stringReplaceAll; + } +}); + +// src/utils/make-string.js +function makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) { + const otherQuote = enclosingQuote === '"' ? "'" : '"'; + const regex = /\\(.)|(["'])/gsu; + const raw = string_replace_all_default( + /* isOptionalObject */ + false, + rawText, + regex, + (match, escaped, quote) => { + if (escaped === otherQuote) { + return escaped; + } + if (quote === enclosingQuote) { + return "\\" + quote; + } + if (quote) { + return quote; + } + return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(escaped) ? escaped : "\\" + escaped; + } + ); + return enclosingQuote + raw + enclosingQuote; +} +var make_string_default; +var init_make_string = __esm({ + "src/utils/make-string.js"() { + init_string_replace_all(); + make_string_default = makeString; + } +}); + +// src/utils/public.js +var public_exports = {}; +__export(public_exports, { + addDanglingComment: () => addDanglingComment, + addLeadingComment: () => addLeadingComment, + addTrailingComment: () => addTrailingComment, + getAlignmentSize: () => get_alignment_size_default, + getIndentSize: () => get_indent_size_default, + getMaxContinuousCount: () => get_max_continuous_count_default, + getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default, + getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2, + getPreferredQuote: () => get_preferred_quote_default, + getStringWidth: () => get_string_width_default, + hasNewline: () => has_newline_default, + hasNewlineInRange: () => has_newline_in_range_default, + hasSpaces: () => has_spaces_default, + isNextLineEmpty: () => isNextLineEmpty2, + isNextLineEmptyAfterIndex: () => is_next_line_empty_default, + isPreviousLineEmpty: () => isPreviousLineEmpty2, + makeString: () => make_string_default, + skip: () => skip, + skipEverythingButNewLine: () => skipEverythingButNewLine, + skipInlineComment: () => skip_inline_comment_default, + skipNewline: () => skip_newline_default, + skipSpaces: () => skipSpaces, + skipToLineEnd: () => skipToLineEnd, + skipTrailingComment: () => skip_trailing_comment_default, + skipWhitespace: () => skipWhitespace +}); +function legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { + return get_next_non_space_non_comment_character_index_default( + text, + locEnd(node) + ); +} +function getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) { + return arguments.length === 2 || typeof startIndex === "number" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : ( + // @ts-expect-error -- expected + // eslint-disable-next-line prefer-rest-params + legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments) + ); +} +function legacyIsPreviousLineEmpty(text, node, locStart) { + return is_previous_line_empty_default(text, locStart(node)); +} +function isPreviousLineEmpty2(text, startIndex) { + return arguments.length === 2 || typeof startIndex === "number" ? is_previous_line_empty_default(text, startIndex) : ( + // @ts-expect-error -- expected + // eslint-disable-next-line prefer-rest-params + legacyIsPreviousLineEmpty(...arguments) + ); +} +function legacyIsNextLineEmpty(text, node, locEnd) { + return is_next_line_empty_default(text, locEnd(node)); +} +function isNextLineEmpty2(text, startIndex) { + return arguments.length === 2 || typeof startIndex === "number" ? is_next_line_empty_default(text, startIndex) : ( + // @ts-expect-error -- expected + // eslint-disable-next-line prefer-rest-params + legacyIsNextLineEmpty(...arguments) + ); +} +var init_public = __esm({ + "src/utils/public.js"() { + init_get_next_non_space_non_comment_character_index(); + init_is_next_line_empty(); + init_is_previous_line_empty(); + init_utils(); + init_get_alignment_size(); + init_get_indent_size(); + init_get_max_continuous_count(); + init_get_next_non_space_non_comment_character(); + init_get_preferred_quote(); + init_get_string_width(); + init_has_newline(); + init_has_newline_in_range(); + init_has_spaces(); + init_make_string(); + init_skip(); + init_skip_inline_comment(); + init_skip_newline(); + init_skip_trailing_comment(); + } +}); + +// src/main/version.evaluate.js +var version_evaluate_exports = {}; +__export(version_evaluate_exports, { + default: () => version_evaluate_default +}); +var version_evaluate_default; +var init_version_evaluate = __esm({ + "src/main/version.evaluate.js"() { + version_evaluate_default = "3.6.2"; + } +}); + +// src/index.cjs +var prettierPromise = import("./index.mjs"); +var functionNames = [ + "formatWithCursor", + "format", + "check", + "resolveConfig", + "resolveConfigFile", + "clearConfigCache", + "getFileInfo", + "getSupportInfo" +]; +var prettier = /* @__PURE__ */ Object.create(null); +for (const name of functionNames) { + prettier[name] = async (...args) => { + const prettier2 = await prettierPromise; + return prettier2[name](...args); + }; +} +var debugApiFunctionNames = [ + "parse", + "formatAST", + "formatDoc", + "printToDoc", + "printDocToString" +]; +var debugApis = /* @__PURE__ */ Object.create(null); +for (const name of debugApiFunctionNames) { + debugApis[name] = async (...args) => { + const prettier2 = await prettierPromise; + return prettier2.__debug[name](...args); + }; +} +prettier.__debug = debugApis; +if (true) { + prettier.util = (init_public(), __toCommonJS(public_exports)); + prettier.doc = require("./doc.js"); + prettier.version = (init_version_evaluate(), __toCommonJS(version_evaluate_exports)).default; +} else { + Object.defineProperties(prettier, { + util: { + get() { + try { + return null; + } catch { + } + throw new Error( + "prettier.util is not available in development CommonJS version" + ); + } + }, + doc: { + get() { + try { + return null; + } catch { + } + throw new Error( + "prettier.doc is not available in development CommonJS version" + ); + } + } + }); + prettier.version = null.version; +} +module.exports = prettier; diff --git a/node_modules/prettier/index.d.ts b/node_modules/prettier/index.d.ts new file mode 100644 index 0000000..b66e93e --- /dev/null +++ b/node_modules/prettier/index.d.ts @@ -0,0 +1,962 @@ +// Copied from `@types/prettier` +// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/5bb07fc4b087cb7ee91084afa6fe750551a7bbb1/types/prettier/index.d.ts + +// Minimum TypeScript Version: 4.2 + +// Add `export {}` here to shut off automatic exporting from index.d.ts. There +// are quite a few utility types here that don't need to be shipped with the +// exported module. +export {}; + +import { builders, printer, utils } from "./doc.js"; + +export namespace doc { + export { builders, printer, utils }; +} + +// This utility is here to handle the case where you have an explicit union +// between string literals and the generic string type. It would normally +// resolve out to just the string type, but this generic LiteralUnion maintains +// the intellisense of the original union. +// +// It comes from this issue: microsoft/TypeScript#29729: +// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-700527227 +export type LiteralUnion = + | T + | (Pick & { _?: never | undefined }); + +export type AST = any; +export type Doc = doc.builders.Doc; + +// The type of elements that make up the given array T. +type ArrayElement = T extends Array ? E : never; + +// A union of the properties of the given object that are arrays. +type ArrayProperties = { + [K in keyof T]: NonNullable extends readonly any[] ? K : never; +}[keyof T]; + +// A union of the properties of the given array T that can be used to index it. +// If the array is a tuple, then that's going to be the explicit indices of the +// array, otherwise it's going to just be number. +type IndexProperties = + IsTuple extends true ? Exclude["length"], T["length"]> : number; + +// Effectively performing T[P], except that it's telling TypeScript that it's +// safe to do this for tuples, arrays, or objects. +type IndexValue = T extends any[] + ? P extends number + ? T[P] + : never + : P extends keyof T + ? T[P] + : never; + +// Determines if an object T is an array like string[] (in which case this +// evaluates to false) or a tuple like [string] (in which case this evaluates to +// true). +// eslint-disable-next-line @typescript-eslint/no-unused-vars +type IsTuple = T extends [] + ? true + : T extends [infer First, ...infer Remain] + ? IsTuple + : false; + +type CallProperties = T extends any[] ? IndexProperties : keyof T; +type IterProperties = T extends any[] + ? IndexProperties + : ArrayProperties; + +type CallCallback = (path: AstPath, index: number, value: any) => U; +type EachCallback = ( + path: AstPath>, + index: number, + value: any, +) => void; +type MapCallback = ( + path: AstPath>, + index: number, + value: any, +) => U; + +// https://github.com/prettier/prettier/blob/next/src/common/ast-path.js +export class AstPath { + constructor(value: T); + + get key(): string | null; + get index(): number | null; + get node(): T; + get parent(): T | null; + get grandparent(): T | null; + get isInArray(): boolean; + get siblings(): T[] | null; + get next(): T | null; + get previous(): T | null; + get isFirst(): boolean; + get isLast(): boolean; + get isRoot(): boolean; + get root(): T; + get ancestors(): T[]; + + stack: T[]; + + callParent(callback: (path: this) => U, count?: number): U; + + /** + * @deprecated Please use `AstPath#key` or `AstPath#index` + */ + getName(): PropertyKey | null; + + /** + * @deprecated Please use `AstPath#node` or `AstPath#siblings` + */ + getValue(): T; + + getNode(count?: number): T | null; + + getParentNode(count?: number): T | null; + + match( + ...predicates: Array< + (node: any, name: string | null, number: number | null) => boolean + > + ): boolean; + + // For each of the tree walk functions (call, each, and map) this provides 5 + // strict type signatures, along with a fallback at the end if you end up + // calling more than 5 properties deep. This helps a lot with typing because + // for the majority of cases you're calling fewer than 5 properties, so the + // tree walk functions have a clearer understanding of what you're doing. + // + // Note that resolving these types is somewhat complicated, and it wasn't + // even supported until TypeScript 4.2 (before it would just say that the + // type instantiation was excessively deep and possibly infinite). + + call(callback: CallCallback): U; + call>( + callback: CallCallback, U>, + prop1: P1, + ): U; + call>( + callback: CallCallback, P2>, U>, + prop1: P1, + prop2: P2, + ): U; + call< + U, + P1 extends keyof T, + P2 extends CallProperties, + P3 extends CallProperties>, + >( + callback: CallCallback< + IndexValue, P2>, P3>, + U + >, + prop1: P1, + prop2: P2, + prop3: P3, + ): U; + call< + U, + P1 extends keyof T, + P2 extends CallProperties, + P3 extends CallProperties>, + P4 extends CallProperties, P3>>, + >( + callback: CallCallback< + IndexValue, P2>, P3>, P4>, + U + >, + prop1: P1, + prop2: P2, + prop3: P3, + prop4: P4, + ): U; + call( + callback: CallCallback, + prop1: P, + prop2: P, + prop3: P, + prop4: P, + ...props: P[] + ): U; + + each(callback: EachCallback): void; + each>( + callback: EachCallback>, + prop1: P1, + ): void; + each>( + callback: EachCallback, P2>>, + prop1: P1, + prop2: P2, + ): void; + each< + P1 extends keyof T, + P2 extends IterProperties, + P3 extends IterProperties>, + >( + callback: EachCallback, P2>, P3>>, + prop1: P1, + prop2: P2, + prop3: P3, + ): void; + each< + P1 extends keyof T, + P2 extends IterProperties, + P3 extends IterProperties>, + P4 extends IterProperties, P3>>, + >( + callback: EachCallback< + IndexValue, P2>, P3>, P4> + >, + prop1: P1, + prop2: P2, + prop3: P3, + prop4: P4, + ): void; + each( + callback: EachCallback, + prop1: PropertyKey, + prop2: PropertyKey, + prop3: PropertyKey, + prop4: PropertyKey, + ...props: PropertyKey[] + ): void; + + map(callback: MapCallback): U[]; + map>( + callback: MapCallback, U>, + prop1: P1, + ): U[]; + map>( + callback: MapCallback, P2>, U>, + prop1: P1, + prop2: P2, + ): U[]; + map< + U, + P1 extends keyof T, + P2 extends IterProperties, + P3 extends IterProperties>, + >( + callback: MapCallback, P2>, P3>, U>, + prop1: P1, + prop2: P2, + prop3: P3, + ): U[]; + map< + U, + P1 extends keyof T, + P2 extends IterProperties, + P3 extends IterProperties>, + P4 extends IterProperties, P3>>, + >( + callback: MapCallback< + IndexValue, P2>, P3>, P4>, + U + >, + prop1: P1, + prop2: P2, + prop3: P3, + prop4: P4, + ): U[]; + map( + callback: MapCallback, + prop1: PropertyKey, + prop2: PropertyKey, + prop3: PropertyKey, + prop4: PropertyKey, + ...props: PropertyKey[] + ): U[]; +} + +/** @deprecated `FastPath` was renamed to `AstPath` */ +export type FastPath = AstPath; + +export type BuiltInParser = (text: string, options?: any) => AST; +export type BuiltInParserName = + | "acorn" + | "angular" + | "babel-flow" + | "babel-ts" + | "babel" + | "css" + | "espree" + | "flow" + | "glimmer" + | "graphql" + | "html" + | "json-stringify" + | "json" + | "json5" + | "jsonc" + | "less" + | "lwc" + | "markdown" + | "mdx" + | "meriyah" + | "mjml" + | "scss" + | "typescript" + | "vue" + | "yaml"; +export type BuiltInParsers = Record; + +/** + * For use in `.prettierrc.js`, `.prettierrc.ts`, `.prettierrc.cjs`, `.prettierrc.cts`, `prettierrc.mjs`, `prettierrc.mts`, `prettier.config.js`, `prettier.config.ts`, `prettier.config.cjs`, `prettier.config.cts`, `prettier.config.mjs`, `prettier.config.mts` + */ +export interface Config extends Options { + overrides?: Array<{ + files: string | string[]; + excludeFiles?: string | string[]; + options?: Options; + }>; +} + +export interface Options extends Partial {} + +export interface RequiredOptions extends doc.printer.Options { + /** + * Print semicolons at the ends of statements. + * @default true + */ + semi: boolean; + /** + * Use single quotes instead of double quotes. + * @default false + */ + singleQuote: boolean; + /** + * Use single quotes in JSX. + * @default false + */ + jsxSingleQuote: boolean; + /** + * Print trailing commas wherever possible. + * @default "all" + */ + trailingComma: "none" | "es5" | "all"; + /** + * Print spaces between brackets in object literals. + * @default true + */ + bracketSpacing: boolean; + /** + * How to wrap object literals. + * @default "preserve" + */ + objectWrap: "preserve" | "collapse"; + /** + * Put the `>` of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line instead of being + * alone on the next line (does not apply to self closing elements). + * @default false + */ + bracketSameLine: boolean; + /** + * Format only a segment of a file. + * @default 0 + */ + rangeStart: number; + /** + * Format only a segment of a file. + * @default Number.POSITIVE_INFINITY + */ + rangeEnd: number; + /** + * Specify which parser to use. + */ + parser: LiteralUnion; + /** + * Specify the input filepath. This will be used to do parser inference. + */ + filepath: string; + /** + * Prettier can restrict itself to only format files that contain a special comment, called a pragma, at the top of the file. + * This is very useful when gradually transitioning large, unformatted codebases to prettier. + * @default false + */ + requirePragma: boolean; + /** + * Prettier can insert a special @format marker at the top of files specifying that + * the file has been formatted with prettier. This works well when used in tandem with + * the --require-pragma option. If there is already a docblock at the top of + * the file then this option will add a newline to it with the @format marker. + * @default false + */ + insertPragma: boolean; + /** + * Prettier can allow individual files to opt out of formatting if they contain a special comment, called a pragma, at the top of the file. + * @default false + */ + checkIgnorePragma: boolean; + /** + * By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer. + * In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out. + * @default "preserve" + */ + proseWrap: "always" | "never" | "preserve"; + /** + * Include parentheses around a sole arrow function parameter. + * @default "always" + */ + arrowParens: "avoid" | "always"; + /** + * Provide ability to support new languages to prettier. + */ + plugins: Array; + /** + * How to handle whitespaces in HTML. + * @default "css" + */ + htmlWhitespaceSensitivity: "css" | "strict" | "ignore"; + /** + * Which end of line characters to apply. + * @default "lf" + */ + endOfLine: "auto" | "lf" | "crlf" | "cr"; + /** + * Change when properties in objects are quoted. + * @default "as-needed" + */ + quoteProps: "as-needed" | "consistent" | "preserve"; + /** + * Whether or not to indent the code inside