# FileTypeRegistry.java

    /*
    ** Module   : FileTypeRegistry.java
    ** Abstract : Implementation of the builtin class.
    **
    ** Copyright (c) 2020-2023, Golden Code Development Corporation.
    **
    ** -#- -I- --Date-- ---------------------------------------Description----------------------------------------
    ** 001 MP  20200602 First version, stubs taken by converting the skeleton using FWD.
    ** 002 CA  20210113 Renamed clear() to clear_(), to follow NameConverter's rules.
    ** 003 CA  20210221 Fixed 'qualified', 'extent' and 'returns' annotations at the legacy signature.
    ** 004 ME  20210519 Fix registry lazy loading.
    **     CA  20220923 Variable definitions (including associated with parameters) must be done always outside of
    **                  the BlockManager API
    ** 005 CA  20230817 Removed ObjectOps.register, as this registration is handled by runtime.
    ** 006 CA  20231019 All BlockManager calls must have a non-null referent.
    ** 007 CA  20231113 The 'execute' method must be annotated with LegacySignature Type.Execute, and also can be
    **                  dropped if is a no-op.
    */

    /*
    ** This program is free software: you can redistribute it and/or modify
    ** it under the terms of the GNU Affero General Public License as
    ** published by the Free Software Foundation, either version 3 of the
    ** License, or (at your option) any later version.
    **
    ** This program is distributed in the hope that it will be useful,
    ** but WITHOUT ANY WARRANTY; without even the implied warranty of
    ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ** GNU Affero General Public License for more details.
    **
    ** You may find a copy of the GNU Affero GPL version 3 at the following
    ** location: https://www.gnu.org/licenses/agpl-3.0.en.html
    **
    ** Additional terms under GNU Affero GPL version 3 section 7:
    **
    **   Under Section 7 of the GNU Affero GPL version 3, the following additional
    **   terms apply to the works covered under the License.  These additional terms
    **   are non-permissive additional terms allowed under Section 7 of the GNU
    **   Affero GPL version 3 and may not be removed by you.
    **
    **   0. Attribution Requirement.
    **
    **     You must preserve all legal notices or author attributions in the covered
    **     work or Appropriate Legal Notices displayed by works containing the covered
    **     work.  You may not remove from the covered work any author or developer
    **     credit already included within the covered work.
    **
    **   1. No License To Use Trademarks.
    **
    **     This license does not grant any license or rights to use the trademarks
    **     Golden Code, FWD, any Golden Code or FWD logo, or any other trademarks
    **     of Golden Code Development Corporation. You are not authorized to use the
    **     name Golden Code, FWD, or the names of any author or contributor, for
    **     publicity purposes without written authorization.
    **
    **   2. No Misrepresentation of Affiliation.
    **
    **     You may not represent yourself as Golden Code Development Corporation or FWD.
    **
    **     You may not represent yourself for publicity purposes as associated with
    **     Golden Code Development Corporation, FWD, or any author or contributor to
    **     the covered work, without written authorization.
    **
    **   3. No Misrepresentation of Source or Origin.
    **
    **     You may not represent the covered work as solely your work.  All modified
    **     versions of the covered work must be marked in a reasonable way to make it
    **     clear that the modified work is not originating from Golden Code Development
    **     Corporation or FWD.  All modified versions must contain the notices of
    **     attribution required in this license.
    */

    package com.goldencode.p2j.oo.net;

    import com.goldencode.p2j.util.*;
    import com.goldencode.p2j.util.BlockManager.Action;
    import com.goldencode.p2j.util.BlockManager.Condition;
    import com.goldencode.p2j.oo.core.Assert;
    import com.goldencode.p2j.oo.lang.*;
    import com.goldencode.p2j.security.*;

    import static com.goldencode.p2j.report.ReportConstants.CVT_LVL_FULL;
    import static com.goldencode.p2j.report.ReportConstants.RT_LVL_FULL;
    import static com.goldencode.p2j.report.ReportConstants.RT_LVL_STUB;
    import static com.goldencode.p2j.util.BlockManager.*;
    import static com.goldencode.p2j.util.InternalEntry.Type;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Set;

    /**
     * Business logic (converted to Java from the 4GL source code
     * in OpenEdge/Net/FileTypeRegistry.cls).
     */
    @LegacyResource(resource = "OpenEdge.Net.FileTypeRegistry")
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public class FileTypeRegistry
    extends BaseObject
    {

       private integer size = TypeFactory.integer();

       private HashMap<String, String> ftr_map= new HashMap<String, String>();

       //store file extension list in order just like legacy class
       private HashMap<String, List<String>> values_map = new HashMap<String, List<String>>();

       private static ContextLocal<object<? extends FileTypeRegistry>> registry = new ContextLocal<object<? extends com.goldencode.p2j.oo.net.FileTypeRegistry>>()
       {
          protected object<? extends FileTypeRegistry> initialValue()
          {
             return TypeFactory.object(FileTypeRegistry.class);
          }
       };

       @LegacySignature(type = Type.EXECUTE)
       public void __net_FileTypeRegistry_execute__()
       {
          onBlockLevel(Condition.ERROR, Action.THROW);
       }

       @LegacySignature(returns = "INTEGER", type = Type.GETTER, name = "Size")
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
       public integer getSize()
       {
          return function(FileTypeRegistry.class, this, "Size", integer.class, new Block((Body) () ->
          {
             integer mapSize = new integer(this.ftr_map.size());
             returnNormal(mapSize);
          }));
       }

       @LegacySignature(type = Type.CONSTRUCTOR)
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL | RT_LVL_FULL)
       public static void __net_FileTypeRegistry_constructor__static__()
       {
          externalProcedure(FileTypeRegistry.class, new Block((Body) () -> {
             onBlockLevel(Condition.ERROR, Action.THROW);
          }));
       }

       @LegacySignature(type = Type.CONSTRUCTOR)
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
       private void __net_FileTypeRegistry_constructor__()
       {
          internalProcedure(FileTypeRegistry.class, this, "__net_FileTypeRegistry_constructor__", new Block((Body) () ->
          {
             __lang_BaseObject_constructor__();

          }));
       }

       @LegacySignature(returns = "OBJECT", qualified = "OpenEdge.Net.FileTypeRegistry", type = Type.GETTER, name = "Registry")
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
       public static object<? extends FileTypeRegistry> getRegistry()
       {
          ObjectOps.load(FileTypeRegistry.class);

          return function(FileTypeRegistry.class, "Registry", object.class, new Block((Body) () ->
          {
             if(!registry.get()._isValid())
             {
                registry.get().assign(ObjectOps.newInstance(FileTypeRegistry.class));
                initMap(registry.get());
             }
             returnNormal(registry.get());
          }));
       }

       @LegacySignature(returns = "LOGICAL", type = Type.METHOD, name = "Put", parameters =
       {
          @LegacyParameter(name = "pcExtensionKey", type = "CHARACTER", mode = "INPUT"),
          @LegacyParameter(name = "pcMimeType", type = "CHARACTER", mode = "INPUT")
       })
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
       public logical put(final character _pcExtensionKey, final character _pcMimeType)
       {
          character pcExtensionKey = TypeFactory.initInput(_pcExtensionKey);
          character pcMimeType = TypeFactory.initInput(_pcMimeType);

          return function(FileTypeRegistry.class, this, "Put", logical.class, new Block((Body) () ->
          {
             Assert.notNullOrEmpty(pcExtensionKey, new character("Extension key"));

             Assert.notNullOrEmpty(pcMimeType, new character("Mime type"));

             boolean keyIsPresent = this.ftr_map.containsKey(pcExtensionKey.getValue());

             String actualValue = "";

             if (keyIsPresent)
             {
                actualValue = this.ftr_map.get(pcExtensionKey.getValue());
             }

             this.ftr_map.put(pcExtensionKey.getValue(), pcMimeType.getValue());

             this.size.assign(this.ftr_map.size());

             this.manageValuesAndKeys(pcMimeType.getValue(), actualValue, pcExtensionKey.getValue());

             if (keyIsPresent)
             {
                returnNormal(new logical(true));
             }
             else
             {
                returnNormal(new logical(false));
             }
          }));
       }

       private void manageValuesAndKeys(String newValue, String actualValue, String key)
       {
          if(actualValue != "")
          {
             int pos = this.values_map.get(actualValue).indexOf(key);

             if(pos != -1)
                this.values_map.get(actualValue).remove(pos);

             if(this.values_map.get(actualValue).isEmpty())
                this.values_map.remove(actualValue);
          }
          else
          {
             if(this.values_map.containsKey(newValue))
             {
                this.values_map.get(newValue).add(key);
             }
             else
             {
                List<String> newList = new ArrayList<String>();
                newList.add(key);
                this.values_map.put(newValue, newList);
             }
          }
       }

       @LegacySignature(returns = "LOGICAL", type = Type.METHOD, name = "Remove", parameters =
       {
          @LegacyParameter(name = "pcExtensionKey", type = "CHARACTER", mode = "INPUT")
       })
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public logical remove(final character _pcExtensionKey)
       {
          character pcExtensionKey = TypeFactory.initInput(_pcExtensionKey);

          return function(FileTypeRegistry.class, this, "Remove", logical.class, new Block((Body) () ->
          {
             Assert.notNullOrEmpty(pcExtensionKey, new character("Extension key"));

             String removeRsp = this.ftr_map.remove(pcExtensionKey.getValue());

             if (removeRsp == null)
             {
                returnNormal(new logical(false));
             }
             else
             {
                this.manageValuesAndKeys(removeRsp, removeRsp, pcExtensionKey.getValue());
                this.size.assign(this.ftr_map.size());
                returnNormal(new logical(true));
             }
          }));
       }

       @LegacySignature(returns = "LOGICAL", type = Type.METHOD, name = "Has", parameters =
       {
          @LegacyParameter(name = "pcExtensionKey", type = "CHARACTER", mode = "INPUT")
       })
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public logical has(final character _pcExtensionKey)
       {
          character pcExtensionKey = TypeFactory.initInput(_pcExtensionKey);

          return function(FileTypeRegistry.class, this, "Has", logical.class, new Block((Body) () ->
          {
             Assert.notNullOrEmpty(pcExtensionKey, new character("Extension key"));

             boolean containsRsp = this.ftr_map.containsKey(pcExtensionKey.getValue());

             returnNormal(new logical(containsRsp));

          }));
       }

       @LegacySignature(returns = "CHARACTER", type = Type.METHOD, name = "Get", parameters =
       {
          @LegacyParameter(name = "pcExtensionKey", type = "CHARACTER", mode = "INPUT")
       })
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public character get(final character _pcExtensionKey)
       {
          character pcExtensionKey = TypeFactory.initInput(_pcExtensionKey);

          return function(FileTypeRegistry.class, this, "Get", character.class, new Block((Body) () ->
          {
             Assert.notNull(pcExtensionKey, new character("Extension key"));

             String getRsp = this.ftr_map.get(pcExtensionKey.getValue());

             returnNormal(new character(getRsp));
          }));
       }

       @LegacySignature(type = Type.METHOD, name = "Clear")
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public void clear_()
       {
          internalProcedure(FileTypeRegistry.class, this, "Clear", new Block((Body) () ->
          {
             this.ftr_map.clear();
             this.size.assign(this.ftr_map.size());
          }));
       }

       @LegacySignature(returns = "CHARACTER", type = Type.METHOD, name = "GetKeys", extent = -1, parameters =
       {
          @LegacyParameter(name = "pMimeType", type = "CHARACTER", mode = "INPUT")
       })
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public character[] getKeys(final character _pMimeType)
       {
          character pMimeType = TypeFactory.initInput(_pMimeType);
          character[][] res = { TypeFactory.characterExtent() };

          return extentFunction(FileTypeRegistry.class, this, "GetKeys", character.class, new Block((Body) () ->
          {
             if(pMimeType.isUnknown() || pMimeType.getValue() == "*")
             {
                returnExtentNormal(this.getKeys());
             }

             if(pMimeType.getValue() == "")
             {
                pMimeType.assign(new character("application/octet-stream"));
             }

             List<String> filterKeys = this.values_map.get(pMimeType.getValue());

             if (filterKeys != null)
             {
                String[] filterdKeysAsArray = filterKeys.toArray(new String[0]);
                returnExtentNormal(TypeFactory.characterExtent(filterdKeysAsArray.length, filterdKeysAsArray));
             }
             else
             {
                returnExtentNormal(res[0]);
             }
          }));
       }

       @LegacySignature(returns = "CHARACTER", type = Type.METHOD, name = "GetKeys", extent = -1)
       @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
       public character[] getKeys()
       {
          character[] res = TypeFactory.characterExtent();

          return extentFunction(FileTypeRegistry.class, this, "GetKeys", character.class, new Block((Body) () ->
          {
             Set<String> allKeysAsSet = this.ftr_map.keySet();

             if (allKeysAsSet.isEmpty())
             {
                returnExtentNormal(res);
             }

             String[] allKeysAsArray = allKeysAsSet.toArray(new String[0]);

             returnExtentNormal(TypeFactory.characterExtent(allKeysAsArray.length, allKeysAsArray));

          }));
       }

       private static void initMap (object<? extends FileTypeRegistry> oFTR)
       {
          internalProcedure(FileTypeRegistry.class, "InitMap", new Block((Body) () ->
          {
             oFTR.ref().put(new character("123"), new character("application/vnd.lotus-1-2-3"));
             oFTR.ref().put(new character("3dml"), new character("text/vnd.in3d.3dml"));
             oFTR.ref().put(new character("3ds"), new character("image/x-3ds"));
             oFTR.ref().put(new character("3g2"), new character("video/3gpp2"));
             oFTR.ref().put(new character("3gp"), new character("video/3gpp"));
             oFTR.ref().put(new character("7z"), new character("application/x-7z-compressed"));
             oFTR.ref().put(new character("aab"), new character("application/x-authorware-bin"));
             oFTR.ref().put(new character("aac"), new character("audio/x-aac"));
             oFTR.ref().put(new character("aam"), new character("application/x-authorware-map"));
             oFTR.ref().put(new character("aas"), new character("application/x-authorware-seg"));
             oFTR.ref().put(new character("abs"), new character("audio/x-mpeg"));
             oFTR.ref().put(new character("abw"), new character("application/x-abiword"));
             oFTR.ref().put(new character("ac"), new character("application/pkix-attr-cert"));
             oFTR.ref().put(new character("acc"), new character("application/vnd.americandynamics.acc"));
             oFTR.ref().put(new character("ace"), new character("application/x-ace-compressed"));
             oFTR.ref().put(new character("acu"), new character("application/vnd.acucobol"));
             oFTR.ref().put(new character("acutc"), new character("application/vnd.acucorp"));
             oFTR.ref().put(new character("adp"), new character("audio/adpcm"));
             oFTR.ref().put(new character("aep"), new character("application/vnd.audiograph"));
             oFTR.ref().put(new character("afm"), new character("application/x-font-type1"));
             oFTR.ref().put(new character("afp"), new character("application/vnd.ibm.modcap"));
             oFTR.ref().put(new character("ahead"), new character("application/vnd.ahead.space"));
             oFTR.ref().put(new character("ai"), new character("application/postscript"));
             oFTR.ref().put(new character("aif"), new character("audio/x-aiff"));
             oFTR.ref().put(new character("aifc"), new character("audio/x-aiff"));
             oFTR.ref().put(new character("aiff"), new character("audio/x-aiff"));
             oFTR.ref().put(new character("aim"), new character("application/x-aim"));
             oFTR.ref().put(new character("air"), new character("application/vnd.adobe.air-application-installer-package+zip"));
             oFTR.ref().put(new character("ait"), new character("application/vnd.dvb.ait"));
             oFTR.ref().put(new character("ami"), new character("application/vnd.amiga.ami"));
             oFTR.ref().put(new character("anx"), new character("application/annodex"));
             oFTR.ref().put(new character("apk"), new character("application/vnd.android.package-archive"));
             oFTR.ref().put(new character("appcache"), new character("text/cache-manifest"));
             oFTR.ref().put(new character("application"), new character("application/x-ms-application"));
             oFTR.ref().put(new character("apr"), new character("application/vnd.lotus-approach"));
             oFTR.ref().put(new character("arc"), new character("application/x-freearc"));
             oFTR.ref().put(new character("art"), new character("image/x-jg"));
             oFTR.ref().put(new character("asc"), new character("application/pgp-signature"));
             oFTR.ref().put(new character("asf"), new character("video/x-ms-asf"));
             oFTR.ref().put(new character("asm"), new character("text/x-asm"));
             oFTR.ref().put(new character("aso"), new character("application/vnd.accpac.simply.aso"));
             oFTR.ref().put(new character("asx"), new character("video/x-ms-asf"));
             oFTR.ref().put(new character("atc"), new character("application/vnd.acucorp"));
             oFTR.ref().put(new character("atom"), new character("application/atom+xml"));
             oFTR.ref().put(new character("atomcat"), new character("application/atomcat+xml"));
             oFTR.ref().put(new character("atomsvc"), new character("application/atomsvc+xml"));
             oFTR.ref().put(new character("atx"), new character("application/vnd.antix.game-component"));
             oFTR.ref().put(new character("au"), new character("audio/basic"));
             oFTR.ref().put(new character("avi"), new character("video/x-msvideo"));
             oFTR.ref().put(new character("avx"), new character("video/x-rad-screenplay"));
             oFTR.ref().put(new character("aw"), new character("application/applixware"));
             oFTR.ref().put(new character("axa"), new character("audio/annodex"));
             oFTR.ref().put(new character("axv"), new character("video/annodex"));
             oFTR.ref().put(new character("azf"), new character("application/vnd.airzip.filesecure.azf"));
             oFTR.ref().put(new character("azs"), new character("application/vnd.airzip.filesecure.azs"));
             oFTR.ref().put(new character("azw"), new character("application/vnd.amazon.ebook"));
             oFTR.ref().put(new character("bat"), new character("application/x-msdownload"));
             oFTR.ref().put(new character("bcpio"), new character("application/x-bcpio"));
             oFTR.ref().put(new character("bdf"), new character("application/x-font-bdf"));
             oFTR.ref().put(new character("bdm"), new character("application/vnd.syncml.dm+wbxml"));
             oFTR.ref().put(new character("bed"), new character("application/vnd.realvnc.bed"));
             oFTR.ref().put(new character("bh2"), new character("application/vnd.fujitsu.oasysprs"));
             oFTR.ref().put(new character("bin"), new character("application/octet-stream"));
             oFTR.ref().put(new character("blb"), new character("application/x-blorb"));
             oFTR.ref().put(new character("blorb"), new character("application/x-blorb"));
             oFTR.ref().put(new character("bmi"), new character("application/vnd.bmi"));
             oFTR.ref().put(new character("bmp"), new character("image/bmp"));
             oFTR.ref().put(new character("body"), new character("text/html"));
             oFTR.ref().put(new character("book"), new character("application/vnd.framemaker"));
             oFTR.ref().put(new character("box"), new character("application/vnd.previewsystems.box"));
             oFTR.ref().put(new character("boz"), new character("application/x-bzip2"));
             oFTR.ref().put(new character("bpk"), new character("application/octet-stream"));
             oFTR.ref().put(new character("btif"), new character("image/prs.btif"));
             oFTR.ref().put(new character("bz"), new character("application/x-bzip"));
             oFTR.ref().put(new character("bz2"), new character("application/x-bzip2"));
             oFTR.ref().put(new character("c"), new character("text/x-c"));
             oFTR.ref().put(new character("c11amc"), new character("application/vnd.cluetrust.cartomobile-config"));
             oFTR.ref().put(new character("c11amz"), new character("application/vnd.cluetrust.cartomobile-config-pkg"));
             oFTR.ref().put(new character("c4d"), new character("application/vnd.clonk.c4group"));
             oFTR.ref().put(new character("c4f"), new character("application/vnd.clonk.c4group"));
             oFTR.ref().put(new character("c4g"), new character("application/vnd.clonk.c4group"));
             oFTR.ref().put(new character("c4p"), new character("application/vnd.clonk.c4group"));
             oFTR.ref().put(new character("c4u"), new character("application/vnd.clonk.c4group"));
             oFTR.ref().put(new character("cab"), new character("application/vnd.ms-cab-compressed"));
             oFTR.ref().put(new character("caf"), new character("audio/x-caf"));
             oFTR.ref().put(new character("cap"), new character("application/vnd.tcpdump.pcap"));
             oFTR.ref().put(new character("car"), new character("application/vnd.curl.car"));
             oFTR.ref().put(new character("cat"), new character("application/vnd.ms-pki.seccat"));
             oFTR.ref().put(new character("cb7"), new character("application/x-cbr"));
             oFTR.ref().put(new character("cba"), new character("application/x-cbr"));
             oFTR.ref().put(new character("cbr"), new character("application/x-cbr"));
             oFTR.ref().put(new character("cbt"), new character("application/x-cbr"));
             oFTR.ref().put(new character("cbz"), new character("application/x-cbr"));
             oFTR.ref().put(new character("cc"), new character("text/x-c"));
             oFTR.ref().put(new character("cct"), new character("application/x-director"));
             oFTR.ref().put(new character("ccxml"), new character("application/ccxml+xml"));
             oFTR.ref().put(new character("cdbcmsg"), new character("application/vnd.contact.cmsg"));
             oFTR.ref().put(new character("cdf"), new character("application/x-cdf"));
             oFTR.ref().put(new character("cdkey"), new character("application/vnd.mediastation.cdkey"));
             oFTR.ref().put(new character("cdmia"), new character("application/cdmi-capability"));
             oFTR.ref().put(new character("cdmic"), new character("application/cdmi-container"));
             oFTR.ref().put(new character("cdmid"), new character("application/cdmi-domain"));
             oFTR.ref().put(new character("cdmio"), new character("application/cdmi-object"));
             oFTR.ref().put(new character("cdmiq"), new character("application/cdmi-queue"));
             oFTR.ref().put(new character("cdx"), new character("chemical/x-cdx"));
             oFTR.ref().put(new character("cdxml"), new character("application/vnd.chemdraw+xml"));
             oFTR.ref().put(new character("cdy"), new character("application/vnd.cinderella"));
             oFTR.ref().put(new character("cer"), new character("application/pkix-cert"));
             oFTR.ref().put(new character("cfs"), new character("application/x-cfs-compressed"));
             oFTR.ref().put(new character("cgm"), new character("image/cgm"));
             oFTR.ref().put(new character("chat"), new character("application/x-chat"));
             oFTR.ref().put(new character("chm"), new character("application/vnd.ms-htmlhelp"));
             oFTR.ref().put(new character("chrt"), new character("application/vnd.kde.kchart"));
             oFTR.ref().put(new character("cif"), new character("chemical/x-cif"));
             oFTR.ref().put(new character("cii"), new character("application/vnd.anser-web-certificate-issue-initiation"));
             oFTR.ref().put(new character("cil"), new character("application/vnd.ms-artgalry"));
             oFTR.ref().put(new character("cla"), new character("application/vnd.claymore"));
             oFTR.ref().put(new character("class"), new character("application/java"));
             oFTR.ref().put(new character("clkk"), new character("application/vnd.crick.clicker.keyboard"));
             oFTR.ref().put(new character("clkp"), new character("application/vnd.crick.clicker.palette"));
             oFTR.ref().put(new character("clkt"), new character("application/vnd.crick.clicker.template"));
             oFTR.ref().put(new character("clkw"), new character("application/vnd.crick.clicker.wordbank"));
             oFTR.ref().put(new character("clkx"), new character("application/vnd.crick.clicker"));
             oFTR.ref().put(new character("clp"), new character("application/x-msclip"));
             oFTR.ref().put(new character("cmc"), new character("application/vnd.cosmocaller"));
             oFTR.ref().put(new character("cmdf"), new character("chemical/x-cmdf"));
             oFTR.ref().put(new character("cml"), new character("chemical/x-cml"));
             oFTR.ref().put(new character("cmp"), new character("application/vnd.yellowriver-custom-menu"));
             oFTR.ref().put(new character("cmx"), new character("image/x-cmx"));
             oFTR.ref().put(new character("cod"), new character("application/vnd.rim.cod"));
             oFTR.ref().put(new character("com"), new character("application/x-msdownload"));
             oFTR.ref().put(new character("conf"), new character("text/plain"));
             oFTR.ref().put(new character("cpio"), new character("application/x-cpio"));
             oFTR.ref().put(new character("cpp"), new character("text/x-c"));
             oFTR.ref().put(new character("cpt"), new character("application/mac-compactpro"));
             oFTR.ref().put(new character("crd"), new character("application/x-mscardfile"));
             oFTR.ref().put(new character("crl"), new character("application/pkix-crl"));
             oFTR.ref().put(new character("crt"), new character("application/x-x509-ca-cert"));
             oFTR.ref().put(new character("cryptonote"), new character("application/vnd.rig.cryptonote"));
             oFTR.ref().put(new character("csh"), new character("application/x-csh"));
             oFTR.ref().put(new character("csml"), new character("chemical/x-csml"));
             oFTR.ref().put(new character("csp"), new character("application/vnd.commonspace"));
             oFTR.ref().put(new character("css"), new character("text/css"));
             oFTR.ref().put(new character("cst"), new character("application/x-director"));
             oFTR.ref().put(new character("csv"), new character("text/csv"));
             oFTR.ref().put(new character("cu"), new character("application/cu-seeme"));
             oFTR.ref().put(new character("curl"), new character("text/vnd.curl"));
             oFTR.ref().put(new character("cww"), new character("application/prs.cww"));
             oFTR.ref().put(new character("cxt"), new character("application/x-director"));
             oFTR.ref().put(new character("cxx"), new character("text/x-c"));
             oFTR.ref().put(new character("dae"), new character("model/vnd.collada+xml"));
             oFTR.ref().put(new character("daf"), new character("application/vnd.mobius.daf"));
             oFTR.ref().put(new character("dart"), new character("application/vnd.dart"));
             oFTR.ref().put(new character("dataless"), new character("application/vnd.fdsn.seed"));
             oFTR.ref().put(new character("davmount"), new character("application/davmount+xml"));
             oFTR.ref().put(new character("dbk"), new character("application/docbook+xml"));
             oFTR.ref().put(new character("dcr"), new character("application/x-director"));
             oFTR.ref().put(new character("dcurl"), new character("text/vnd.curl.dcurl"));
             oFTR.ref().put(new character("dd2"), new character("application/vnd.oma.dd2+xml"));
             oFTR.ref().put(new character("ddd"), new character("application/vnd.fujixerox.ddd"));
             oFTR.ref().put(new character("deb"), new character("application/x-debian-package"));
             oFTR.ref().put(new character("def"), new character("text/plain"));
             oFTR.ref().put(new character("deploy"), new character("application/octet-stream"));
             oFTR.ref().put(new character("der"), new character("application/x-x509-ca-cert"));
             oFTR.ref().put(new character("dfac"), new character("application/vnd.dreamfactory"));
             oFTR.ref().put(new character("dgc"), new character("application/x-dgc-compressed"));
             oFTR.ref().put(new character("dib"), new character("image/bmp"));
             oFTR.ref().put(new character("dic"), new character("text/x-c"));
             oFTR.ref().put(new character("dir"), new character("application/x-director"));
             oFTR.ref().put(new character("dis"), new character("application/vnd.mobius.dis"));
             oFTR.ref().put(new character("dist"), new character("application/octet-stream"));
             oFTR.ref().put(new character("distz"), new character("application/octet-stream"));
             oFTR.ref().put(new character("djv"), new character("image/vnd.djvu"));
             oFTR.ref().put(new character("djvu"), new character("image/vnd.djvu"));
             oFTR.ref().put(new character("dll"), new character("application/x-msdownload"));
             oFTR.ref().put(new character("dmg"), new character("application/x-apple-diskimage"));
             oFTR.ref().put(new character("dmp"), new character("application/vnd.tcpdump.pcap"));
             oFTR.ref().put(new character("dms"), new character("application/octet-stream"));
             oFTR.ref().put(new character("dna"), new character("application/vnd.dna"));
             oFTR.ref().put(new character("doc"), new character("application/msword"));
             oFTR.ref().put(new character("docm"), new character("application/vnd.ms-word.document.macroenabled.12"));
             oFTR.ref().put(new character("docx"), new character("application/vnd.openxmlformats-officedocument.wordprocessingml.document"));
             oFTR.ref().put(new character("dot"), new character("application/msword"));
             oFTR.ref().put(new character("dotm"), new character("application/vnd.ms-word.template.macroenabled.12"));
             oFTR.ref().put(new character("dotx"), new character("application/vnd.openxmlformats-officedocument.wordprocessingml.template"));
             oFTR.ref().put(new character("dp"), new character("application/vnd.osgi.dp"));
             oFTR.ref().put(new character("dpg"), new character("application/vnd.dpgraph"));
             oFTR.ref().put(new character("dra"), new character("audio/vnd.dra"));
             oFTR.ref().put(new character("dsc"), new character("text/prs.lines.tag"));
             oFTR.ref().put(new character("dssc"), new character("application/dssc+der"));
             oFTR.ref().put(new character("dtb"), new character("application/x-dtbook+xml"));
             oFTR.ref().put(new character("dtd"), new character("application/xml-dtd"));
             oFTR.ref().put(new character("dts"), new character("audio/vnd.dts"));
             oFTR.ref().put(new character("dtshd"), new character("audio/vnd.dts.hd"));
             oFTR.ref().put(new character("dump"), new character("application/octet-stream"));
             oFTR.ref().put(new character("dv"), new character("video/x-dv"));
             oFTR.ref().put(new character("dvb"), new character("video/vnd.dvb.file"));
             oFTR.ref().put(new character("dvi"), new character("application/x-dvi"));
             oFTR.ref().put(new character("dwf"), new character("model/vnd.dwf"));
             oFTR.ref().put(new character("dwg"), new character("image/vnd.dwg"));
             oFTR.ref().put(new character("dxf"), new character("image/vnd.dxf"));
             oFTR.ref().put(new character("dxp"), new character("application/vnd.spotfire.dxp"));
             oFTR.ref().put(new character("dxr"), new character("application/x-director"));
             oFTR.ref().put(new character("ecelp4800"), new character("audio/vnd.nuera.ecelp4800"));
             oFTR.ref().put(new character("ecelp7470"), new character("audio/vnd.nuera.ecelp7470"));
             oFTR.ref().put(new character("ecelp9600"), new character("audio/vnd.nuera.ecelp9600"));
             oFTR.ref().put(new character("ecma"), new character("application/ecmascript"));
             oFTR.ref().put(new character("edm"), new character("application/vnd.novadigm.edm"));
             oFTR.ref().put(new character("edx"), new character("application/vnd.novadigm.edx"));
             oFTR.ref().put(new character("efif"), new character("application/vnd.picsel"));
             oFTR.ref().put(new character("ei6"), new character("application/vnd.pg.osasli"));
             oFTR.ref().put(new character("elc"), new character("application/octet-stream"));
             oFTR.ref().put(new character("emf"), new character("application/x-msmetafile"));
             oFTR.ref().put(new character("eml"), new character("message/rfc822"));
             oFTR.ref().put(new character("emma"), new character("application/emma+xml"));
             oFTR.ref().put(new character("emz"), new character("application/x-msmetafile"));
             oFTR.ref().put(new character("eol"), new character("audio/vnd.digital-winds"));
             oFTR.ref().put(new character("eot"), new character("application/vnd.ms-fontobject"));
             oFTR.ref().put(new character("eps"), new character("application/postscript"));
             oFTR.ref().put(new character("epub"), new character("application/epub+zip"));
             oFTR.ref().put(new character("es3"), new character("application/vnd.eszigno3+xml"));
             oFTR.ref().put(new character("esa"), new character("application/vnd.osgi.subsystem"));
             oFTR.ref().put(new character("esf"), new character("application/vnd.epson.esf"));
             oFTR.ref().put(new character("et3"), new character("application/vnd.eszigno3+xml"));
             oFTR.ref().put(new character("etx"), new character("text/x-setext"));
             oFTR.ref().put(new character("eva"), new character("application/x-eva"));
             oFTR.ref().put(new character("evy"), new character("application/x-envoy"));
             oFTR.ref().put(new character("exe"), new character("application/octet-stream"));
             oFTR.ref().put(new character("exi"), new character("application/exi"));
             oFTR.ref().put(new character("ext"), new character("application/vnd.novadigm.ext"));
             oFTR.ref().put(new character("ez"), new character("application/andrew-inset"));
             oFTR.ref().put(new character("ez2"), new character("application/vnd.ezpix-album"));
             oFTR.ref().put(new character("ez3"), new character("application/vnd.ezpix-package"));
             oFTR.ref().put(new character("f"), new character("text/x-fortran"));
             oFTR.ref().put(new character("f4v"), new character("video/x-f4v"));
             oFTR.ref().put(new character("f77"), new character("text/x-fortran"));
             oFTR.ref().put(new character("f90"), new character("text/x-fortran"));
             oFTR.ref().put(new character("fbs"), new character("image/vnd.fastbidsheet"));
             oFTR.ref().put(new character("fcdt"), new character("application/vnd.adobe.formscentral.fcdt"));
             oFTR.ref().put(new character("fcs"), new character("application/vnd.isac.fcs"));
             oFTR.ref().put(new character("fdf"), new character("application/vnd.fdf"));
             oFTR.ref().put(new character("fe_launch"), new character("application/vnd.denovo.fcselayout-link"));
             oFTR.ref().put(new character("fg5"), new character("application/vnd.fujitsu.oasysgp"));
             oFTR.ref().put(new character("fgd"), new character("application/x-director"));
             oFTR.ref().put(new character("fh"), new character("image/x-freehand"));
             oFTR.ref().put(new character("fh4"), new character("image/x-freehand"));
             oFTR.ref().put(new character("fh5"), new character("image/x-freehand"));
             oFTR.ref().put(new character("fh7"), new character("image/x-freehand"));
             oFTR.ref().put(new character("fhc"), new character("image/x-freehand"));
             oFTR.ref().put(new character("fig"), new character("application/x-xfig"));
             oFTR.ref().put(new character("flac"), new character("audio/flac"));
             oFTR.ref().put(new character("fli"), new character("video/x-fli"));
             oFTR.ref().put(new character("flo"), new character("application/vnd.micrografx.flo"));
             oFTR.ref().put(new character("flv"), new character("video/x-flv"));
             oFTR.ref().put(new character("flw"), new character("application/vnd.kde.kivio"));
             oFTR.ref().put(new character("flx"), new character("text/vnd.fmi.flexstor"));
             oFTR.ref().put(new character("fly"), new character("text/vnd.fly"));
             oFTR.ref().put(new character("fm"), new character("application/vnd.framemaker"));
             oFTR.ref().put(new character("fnc"), new character("application/vnd.frogans.fnc"));
             oFTR.ref().put(new character("for"), new character("text/x-fortran"));
             oFTR.ref().put(new character("fpx"), new character("image/vnd.fpx"));
             oFTR.ref().put(new character("frame"), new character("application/vnd.framemaker"));
             oFTR.ref().put(new character("fsc"), new character("application/vnd.fsc.weblaunch"));
             oFTR.ref().put(new character("fst"), new character("image/vnd.fst"));
             oFTR.ref().put(new character("ftc"), new character("application/vnd.fluxtime.clip"));
             oFTR.ref().put(new character("fti"), new character("application/vnd.anser-web-funds-transfer-initiation"));
             oFTR.ref().put(new character("fvt"), new character("video/vnd.fvt"));
             oFTR.ref().put(new character("fxp"), new character("application/vnd.adobe.fxp"));
             oFTR.ref().put(new character("fxpl"), new character("application/vnd.adobe.fxp"));
             oFTR.ref().put(new character("fzs"), new character("application/vnd.fuzzysheet"));
             oFTR.ref().put(new character("g2w"), new character("application/vnd.geoplan"));
             oFTR.ref().put(new character("g3"), new character("image/g3fax"));
             oFTR.ref().put(new character("g3w"), new character("application/vnd.geospace"));
             oFTR.ref().put(new character("gac"), new character("application/vnd.groove-account"));
             oFTR.ref().put(new character("gam"), new character("application/x-tads"));
             oFTR.ref().put(new character("gbr"), new character("application/rpki-ghostbusters"));
             oFTR.ref().put(new character("gca"), new character("application/x-gca-compressed"));
             oFTR.ref().put(new character("gdl"), new character("model/vnd.gdl"));
             oFTR.ref().put(new character("geo"), new character("application/vnd.dynageo"));
             oFTR.ref().put(new character("gex"), new character("application/vnd.geometry-explorer"));
             oFTR.ref().put(new character("ggb"), new character("application/vnd.geogebra.file"));
             oFTR.ref().put(new character("ggt"), new character("application/vnd.geogebra.tool"));
             oFTR.ref().put(new character("ghf"), new character("application/vnd.groove-help"));
             oFTR.ref().put(new character("gif"), new character("image/gif"));
             oFTR.ref().put(new character("gim"), new character("application/vnd.groove-identity-message"));
             oFTR.ref().put(new character("gml"), new character("application/gml+xml"));
             oFTR.ref().put(new character("gmx"), new character("application/vnd.gmx"));
             oFTR.ref().put(new character("gnumeric"), new character("application/x-gnumeric"));
             oFTR.ref().put(new character("gph"), new character("application/vnd.flographit"));
             oFTR.ref().put(new character("gpx"), new character("application/gpx+xml"));
             oFTR.ref().put(new character("gqf"), new character("application/vnd.grafeq"));
             oFTR.ref().put(new character("gqs"), new character("application/vnd.grafeq"));
             oFTR.ref().put(new character("gram"), new character("application/srgs"));
             oFTR.ref().put(new character("gramps"), new character("application/x-gramps-xml"));
             oFTR.ref().put(new character("gre"), new character("application/vnd.geometry-explorer"));
             oFTR.ref().put(new character("grv"), new character("application/vnd.groove-injector"));
             oFTR.ref().put(new character("grxml"), new character("application/srgs+xml"));
             oFTR.ref().put(new character("gsf"), new character("application/x-font-ghostscript"));
             oFTR.ref().put(new character("gtar"), new character("application/x-gtar"));
             oFTR.ref().put(new character("gtm"), new character("application/vnd.groove-tool-message"));
             oFTR.ref().put(new character("gtw"), new character("model/vnd.gtw"));
             oFTR.ref().put(new character("gv"), new character("text/vnd.graphviz"));
             oFTR.ref().put(new character("gxf"), new character("application/gxf"));
             oFTR.ref().put(new character("gxt"), new character("application/vnd.geonext"));
             oFTR.ref().put(new character("gz"), new character("application/x-gzip"));
             oFTR.ref().put(new character("h"), new character("text/x-c"));
             oFTR.ref().put(new character("h261"), new character("video/h261"));
             oFTR.ref().put(new character("h263"), new character("video/h263"));
             oFTR.ref().put(new character("h264"), new character("video/h264"));
             oFTR.ref().put(new character("hal"), new character("application/vnd.hal+xml"));
             oFTR.ref().put(new character("hbci"), new character("application/vnd.hbci"));
             oFTR.ref().put(new character("hdf"), new character("application/x-hdf"));
             oFTR.ref().put(new character("hh"), new character("text/x-c"));
             oFTR.ref().put(new character("hlp"), new character("application/winhlp"));
             oFTR.ref().put(new character("hpgl"), new character("application/vnd.hp-hpgl"));
             oFTR.ref().put(new character("hpid"), new character("application/vnd.hp-hpid"));
             oFTR.ref().put(new character("hps"), new character("application/vnd.hp-hps"));
             oFTR.ref().put(new character("hqx"), new character("application/mac-binhex40"));
             oFTR.ref().put(new character("htc"), new character("text/x-component"));
             oFTR.ref().put(new character("htke"), new character("application/vnd.kenameaapp"));
             oFTR.ref().put(new character("htm"), new character("text/html"));
             oFTR.ref().put(new character("html"), new character("text/html"));
             oFTR.ref().put(new character("hvd"), new character("application/vnd.yamaha.hv-dic"));
             oFTR.ref().put(new character("hvp"), new character("application/vnd.yamaha.hv-voice"));
             oFTR.ref().put(new character("hvs"), new character("application/vnd.yamaha.hv-script"));
             oFTR.ref().put(new character("i2g"), new character("application/vnd.intergeo"));
             oFTR.ref().put(new character("icc"), new character("application/vnd.iccprofile"));
             oFTR.ref().put(new character("ice"), new character("x-conference/x-cooltalk"));
             oFTR.ref().put(new character("icm"), new character("application/vnd.iccprofile"));
             oFTR.ref().put(new character("ico"), new character("image/x-icon"));
             oFTR.ref().put(new character("ics"), new character("text/calendar"));
             oFTR.ref().put(new character("ief"), new character("image/ief"));
             oFTR.ref().put(new character("ifb"), new character("text/calendar"));
             oFTR.ref().put(new character("ifm"), new character("application/vnd.shana.informed.formdata"));
             oFTR.ref().put(new character("iges"), new character("model/iges"));
             oFTR.ref().put(new character("igl"), new character("application/vnd.igloader"));
             oFTR.ref().put(new character("igm"), new character("application/vnd.insors.igm"));
             oFTR.ref().put(new character("igs"), new character("model/iges"));
             oFTR.ref().put(new character("igx"), new character("application/vnd.micrografx.igx"));
             oFTR.ref().put(new character("iif"), new character("application/vnd.shana.informed.interchange"));
             oFTR.ref().put(new character("imp"), new character("application/vnd.accpac.simply.imp"));
             oFTR.ref().put(new character("ims"), new character("application/vnd.ms-ims"));
             oFTR.ref().put(new character("in"), new character("text/plain"));
             oFTR.ref().put(new character("ink"), new character("application/inkml+xml"));
             oFTR.ref().put(new character("inkml"), new character("application/inkml+xml"));
             oFTR.ref().put(new character("install"), new character("application/x-install-instructions"));
             oFTR.ref().put(new character("iota"), new character("application/vnd.astraea-software.iota"));
             oFTR.ref().put(new character("ipfix"), new character("application/ipfix"));
             oFTR.ref().put(new character("ipk"), new character("application/vnd.shana.informed.package"));
             oFTR.ref().put(new character("irm"), new character("application/vnd.ibm.rights-management"));
             oFTR.ref().put(new character("irp"), new character("application/vnd.irepository.package+xml"));
             oFTR.ref().put(new character("iso"), new character("application/x-iso9660-image"));
             oFTR.ref().put(new character("itp"), new character("application/vnd.shana.informed.formtemplate"));
             oFTR.ref().put(new character("ivp"), new character("application/vnd.immervision-ivp"));
             oFTR.ref().put(new character("ivu"), new character("application/vnd.immervision-ivu"));
             oFTR.ref().put(new character("jad"), new character("text/vnd.sun.j2me.app-descriptor"));
             oFTR.ref().put(new character("jam"), new character("application/vnd.jam"));
             oFTR.ref().put(new character("jar"), new character("application/java-archive"));
             oFTR.ref().put(new character("java"), new character("text/x-java-source"));
             oFTR.ref().put(new character("jisp"), new character("application/vnd.jisp"));
             oFTR.ref().put(new character("jlt"), new character("application/vnd.hp-jlyt"));
             oFTR.ref().put(new character("jnlp"), new character("application/x-java-jnlp-file"));
             oFTR.ref().put(new character("joda"), new character("application/vnd.joost.joda-archive"));
             oFTR.ref().put(new character("jpe"), new character("image/jpeg"));
             oFTR.ref().put(new character("jpeg"), new character("image/jpeg"));
             oFTR.ref().put(new character("jpg"), new character("image/jpeg"));
             oFTR.ref().put(new character("jpgm"), new character("video/jpm"));
             oFTR.ref().put(new character("jpgv"), new character("video/jpeg"));
             oFTR.ref().put(new character("jpm"), new character("video/jpm"));
             oFTR.ref().put(new character("js"), new character("application/javascript"));
             oFTR.ref().put(new character("jsf"), new character("text/plain"));
             oFTR.ref().put(new character("json"), new character("application/json"));
             oFTR.ref().put(new character("jsonml"), new character("application/jsonml+json"));
             oFTR.ref().put(new character("jspf"), new character("text/plain"));
             oFTR.ref().put(new character("kar"), new character("audio/midi"));
             oFTR.ref().put(new character("karbon"), new character("application/vnd.kde.karbon"));
             oFTR.ref().put(new character("kfo"), new character("application/vnd.kde.kformula"));
             oFTR.ref().put(new character("kia"), new character("application/vnd.kidspiration"));
             oFTR.ref().put(new character("kml"), new character("application/vnd.google-earth.kml+xml"));
             oFTR.ref().put(new character("kmz"), new character("application/vnd.google-earth.kmz"));
             oFTR.ref().put(new character("kne"), new character("application/vnd.kinar"));
             oFTR.ref().put(new character("knp"), new character("application/vnd.kinar"));
             oFTR.ref().put(new character("kon"), new character("application/vnd.kde.kontour"));
             oFTR.ref().put(new character("kpr"), new character("application/vnd.kde.kpresenter"));
             oFTR.ref().put(new character("kpt"), new character("application/vnd.kde.kpresenter"));
             oFTR.ref().put(new character("kpxx"), new character("application/vnd.ds-keypoint"));
             oFTR.ref().put(new character("ksp"), new character("application/vnd.kde.kspread"));
             oFTR.ref().put(new character("ktr"), new character("application/vnd.kahootz"));
             oFTR.ref().put(new character("ktx"), new character("image/ktx"));
             oFTR.ref().put(new character("ktz"), new character("application/vnd.kahootz"));
             oFTR.ref().put(new character("kwd"), new character("application/vnd.kde.kword"));
             oFTR.ref().put(new character("kwt"), new character("application/vnd.kde.kword"));
             oFTR.ref().put(new character("lasxml"), new character("application/vnd.las.las+xml"));
             oFTR.ref().put(new character("latex"), new character("application/x-latex"));
             oFTR.ref().put(new character("lbd"), new character("application/vnd.llamagraphics.life-balance.desktop"));
             oFTR.ref().put(new character("lbe"), new character("application/vnd.llamagraphics.life-balance.exchange+xml"));
             oFTR.ref().put(new character("les"), new character("application/vnd.hhe.lesson-player"));
             oFTR.ref().put(new character("lha"), new character("application/x-lzh-compressed"));
             oFTR.ref().put(new character("link66"), new character("application/vnd.route66.link66+xml"));
             oFTR.ref().put(new character("list"), new character("text/plain"));
             oFTR.ref().put(new character("list3820"), new character("application/vnd.ibm.modcap"));
             oFTR.ref().put(new character("listafp"), new character("application/vnd.ibm.modcap"));
             oFTR.ref().put(new character("lnk"), new character("application/x-ms-shortcut"));
             oFTR.ref().put(new character("log"), new character("text/plain"));
             oFTR.ref().put(new character("lostxml"), new character("application/lost+xml"));
             oFTR.ref().put(new character("lrf"), new character("application/octet-stream"));
             oFTR.ref().put(new character("lrm"), new character("application/vnd.ms-lrm"));
             oFTR.ref().put(new character("ltf"), new character("application/vnd.frogans.ltf"));
             oFTR.ref().put(new character("lvp"), new character("audio/vnd.lucent.voice"));
             oFTR.ref().put(new character("lwp"), new character("application/vnd.lotus-wordpro"));
             oFTR.ref().put(new character("lzh"), new character("application/x-lzh-compressed"));
             oFTR.ref().put(new character("m13"), new character("application/x-msmediaview"));
             oFTR.ref().put(new character("m14"), new character("application/x-msmediaview"));
             oFTR.ref().put(new character("m1v"), new character("video/mpeg"));
             oFTR.ref().put(new character("m21"), new character("application/mp21"));
             oFTR.ref().put(new character("m2a"), new character("audio/mpeg"));
             oFTR.ref().put(new character("m2v"), new character("video/mpeg"));
             oFTR.ref().put(new character("m3a"), new character("audio/mpeg"));
             oFTR.ref().put(new character("m3u"), new character("audio/x-mpegurl"));
             oFTR.ref().put(new character("m3u8"), new character("application/vnd.apple.mpegurl"));
             oFTR.ref().put(new character("m4a"), new character("audio/mp4"));
             oFTR.ref().put(new character("m4b"), new character("audio/mp4"));
             oFTR.ref().put(new character("m4r"), new character("audio/mp4"));
             oFTR.ref().put(new character("m4u"), new character("video/vnd.mpegurl"));
             oFTR.ref().put(new character("m4v"), new character("video/mp4"));
             oFTR.ref().put(new character("ma"), new character("application/mathematica"));
             oFTR.ref().put(new character("mac"), new character("image/x-macpaint"));
             oFTR.ref().put(new character("mads"), new character("application/mads+xml"));
             oFTR.ref().put(new character("mag"), new character("application/vnd.ecowin.chart"));
             oFTR.ref().put(new character("maker"), new character("application/vnd.framemaker"));
             oFTR.ref().put(new character("man"), new character("text/troff"));
             oFTR.ref().put(new character("mar"), new character("application/octet-stream"));
             oFTR.ref().put(new character("mathml"), new character("application/mathml+xml"));
             oFTR.ref().put(new character("mb"), new character("application/mathematica"));
             oFTR.ref().put(new character("mbk"), new character("application/vnd.mobius.mbk"));
             oFTR.ref().put(new character("mbox"), new character("application/mbox"));
             oFTR.ref().put(new character("mc1"), new character("application/vnd.medcalcdata"));
             oFTR.ref().put(new character("mcd"), new character("application/vnd.mcd"));
             oFTR.ref().put(new character("mcurl"), new character("text/vnd.curl.mcurl"));
             oFTR.ref().put(new character("mdb"), new character("application/x-msaccess"));
             oFTR.ref().put(new character("mdi"), new character("image/vnd.ms-modi"));
             oFTR.ref().put(new character("me"), new character("text/troff"));
             oFTR.ref().put(new character("mesh"), new character("model/mesh"));
             oFTR.ref().put(new character("meta4"), new character("application/metalink4+xml"));
             oFTR.ref().put(new character("metalink"), new character("application/metalink+xml"));
             oFTR.ref().put(new character("mets"), new character("application/mets+xml"));
             oFTR.ref().put(new character("mfm"), new character("application/vnd.mfmp"));
             oFTR.ref().put(new character("mft"), new character("application/rpki-manifest"));
             oFTR.ref().put(new character("mgp"), new character("application/vnd.osgeo.mapguide.package"));
             oFTR.ref().put(new character("mgz"), new character("application/vnd.proteus.magazine"));
             oFTR.ref().put(new character("mid"), new character("audio/midi"));
             oFTR.ref().put(new character("midi"), new character("audio/midi"));
             oFTR.ref().put(new character("mie"), new character("application/x-mie"));
             oFTR.ref().put(new character("mif"), new character("application/x-mif"));
             oFTR.ref().put(new character("mime"), new character("message/rfc822"));
             oFTR.ref().put(new character("mj2"), new character("video/mj2"));
             oFTR.ref().put(new character("mjp2"), new character("video/mj2"));
             oFTR.ref().put(new character("mk3d"), new character("video/x-matroska"));
             oFTR.ref().put(new character("mka"), new character("audio/x-matroska"));
             oFTR.ref().put(new character("mks"), new character("video/x-matroska"));
             oFTR.ref().put(new character("mkv"), new character("video/x-matroska"));
             oFTR.ref().put(new character("mlp"), new character("application/vnd.dolby.mlp"));
             oFTR.ref().put(new character("mmd"), new character("application/vnd.chipnuts.karaoke-mmd"));
             oFTR.ref().put(new character("mmf"), new character("application/vnd.smaf"));
             oFTR.ref().put(new character("mmr"), new character("image/vnd.fujixerox.edmics-mmr"));
             oFTR.ref().put(new character("mng"), new character("video/x-mng"));
             oFTR.ref().put(new character("mny"), new character("application/x-msmoney"));
             oFTR.ref().put(new character("mobi"), new character("application/x-mobipocket-ebook"));
             oFTR.ref().put(new character("mods"), new character("application/mods+xml"));
             oFTR.ref().put(new character("mov"), new character("video/quicktime"));
             oFTR.ref().put(new character("movie"), new character("video/x-sgi-movie"));
             oFTR.ref().put(new character("mp1"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mp2"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mp21"), new character("application/mp21"));
             oFTR.ref().put(new character("mp2a"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mp3"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mp4"), new character("video/mp4"));
             oFTR.ref().put(new character("mp4a"), new character("audio/mp4"));
             oFTR.ref().put(new character("mp4s"), new character("application/mp4"));
             oFTR.ref().put(new character("mp4v"), new character("video/mp4"));
             oFTR.ref().put(new character("mpa"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mpc"), new character("application/vnd.mophun.certificate"));
             oFTR.ref().put(new character("mpe"), new character("video/mpeg"));
             oFTR.ref().put(new character("mpeg"), new character("video/mpeg"));
             oFTR.ref().put(new character("mpega"), new character("audio/x-mpeg"));
             oFTR.ref().put(new character("mpg"), new character("video/mpeg"));
             oFTR.ref().put(new character("mpg4"), new character("video/mp4"));
             oFTR.ref().put(new character("mpga"), new character("audio/mpeg"));
             oFTR.ref().put(new character("mpkg"), new character("application/vnd.apple.installer+xml"));
             oFTR.ref().put(new character("mpm"), new character("application/vnd.blueice.multipass"));
             oFTR.ref().put(new character("mpn"), new character("application/vnd.mophun.application"));
             oFTR.ref().put(new character("mpp"), new character("application/vnd.ms-project"));
             oFTR.ref().put(new character("mpt"), new character("application/vnd.ms-project"));
             oFTR.ref().put(new character("mpv2"), new character("video/mpeg2"));
             oFTR.ref().put(new character("mpy"), new character("application/vnd.ibm.minipay"));
             oFTR.ref().put(new character("mqy"), new character("application/vnd.mobius.mqy"));
             oFTR.ref().put(new character("mrc"), new character("application/marc"));
             oFTR.ref().put(new character("mrcx"), new character("application/marcxml+xml"));
             oFTR.ref().put(new character("ms"), new character("text/troff"));
             oFTR.ref().put(new character("mscml"), new character("application/mediaservercontrol+xml"));
             oFTR.ref().put(new character("mseed"), new character("application/vnd.fdsn.mseed"));
             oFTR.ref().put(new character("mseq"), new character("application/vnd.mseq"));
             oFTR.ref().put(new character("msf"), new character("application/vnd.epson.msf"));
             oFTR.ref().put(new character("msh"), new character("model/mesh"));
             oFTR.ref().put(new character("msi"), new character("application/x-msdownload"));
             oFTR.ref().put(new character("msl"), new character("application/vnd.mobius.msl"));
             oFTR.ref().put(new character("msty"), new character("application/vnd.muvee.style"));
             oFTR.ref().put(new character("mts"), new character("model/vnd.mts"));
             oFTR.ref().put(new character("mus"), new character("application/vnd.musician"));
             oFTR.ref().put(new character("musicxml"), new character("application/vnd.recordare.musicxml+xml"));
             oFTR.ref().put(new character("mvb"), new character("application/x-msmediaview"));
             oFTR.ref().put(new character("mwf"), new character("application/vnd.mfer"));
             oFTR.ref().put(new character("mxf"), new character("application/mxf"));
             oFTR.ref().put(new character("mxl"), new character("application/vnd.recordare.musicxml"));
             oFTR.ref().put(new character("mxml"), new character("application/xv+xml"));
             oFTR.ref().put(new character("mxs"), new character("application/vnd.triscape.mxs"));
             oFTR.ref().put(new character("mxu"), new character("video/vnd.mpegurl"));
             oFTR.ref().put(new character("n-gage"), new character("application/vnd.nokia.n-gage.symbian.install"));
             oFTR.ref().put(new character("n3"), new character("text/n3"));
             oFTR.ref().put(new character("nb"), new character("application/mathematica"));
             oFTR.ref().put(new character("nbp"), new character("application/vnd.wolfram.player"));
             oFTR.ref().put(new character("nc"), new character("application/x-netcdf"));
             oFTR.ref().put(new character("ncx"), new character("application/x-dtbncx+xml"));
             oFTR.ref().put(new character("nfo"), new character("text/x-nfo"));
             oFTR.ref().put(new character("ngdat"), new character("application/vnd.nokia.n-gage.data"));
             oFTR.ref().put(new character("nitf"), new character("application/vnd.nitf"));
             oFTR.ref().put(new character("nlu"), new character("application/vnd.neurolanguage.nlu"));
             oFTR.ref().put(new character("nml"), new character("application/vnd.enliven"));
             oFTR.ref().put(new character("nnd"), new character("application/vnd.noblenet-directory"));
             oFTR.ref().put(new character("nns"), new character("application/vnd.noblenet-sealer"));
             oFTR.ref().put(new character("nnw"), new character("application/vnd.noblenet-web"));
             oFTR.ref().put(new character("npx"), new character("image/vnd.net-fpx"));
             oFTR.ref().put(new character("nsc"), new character("application/x-conference"));
             oFTR.ref().put(new character("nsf"), new character("application/vnd.lotus-notes"));
             oFTR.ref().put(new character("ntf"), new character("application/vnd.nitf"));
             oFTR.ref().put(new character("nzb"), new character("application/x-nzb"));
             oFTR.ref().put(new character("oa2"), new character("application/vnd.fujitsu.oasys2"));
             oFTR.ref().put(new character("oa3"), new character("application/vnd.fujitsu.oasys3"));
             oFTR.ref().put(new character("oas"), new character("application/vnd.fujitsu.oasys"));
             oFTR.ref().put(new character("obd"), new character("application/x-msbinder"));
             oFTR.ref().put(new character("obj"), new character("application/x-tgif"));
             oFTR.ref().put(new character("oda"), new character("application/oda"));
             oFTR.ref().put(new character("odb"), new character("application/vnd.oasis.opendocument.database"));
             oFTR.ref().put(new character("odc"), new character("application/vnd.oasis.opendocument.chart"));
             oFTR.ref().put(new character("odf"), new character("application/vnd.oasis.opendocument.formula"));
             oFTR.ref().put(new character("odft"), new character("application/vnd.oasis.opendocument.formula-template"));
             oFTR.ref().put(new character("odg"), new character("application/vnd.oasis.opendocument.graphics"));
             oFTR.ref().put(new character("odi"), new character("application/vnd.oasis.opendocument.image"));
             oFTR.ref().put(new character("odm"), new character("application/vnd.oasis.opendocument.text-master"));
             oFTR.ref().put(new character("odp"), new character("application/vnd.oasis.opendocument.presentation"));
             oFTR.ref().put(new character("ods"), new character("application/vnd.oasis.opendocument.spreadsheet"));
             oFTR.ref().put(new character("odt"), new character("application/vnd.oasis.opendocument.text"));
             oFTR.ref().put(new character("oga"), new character("audio/ogg"));
             oFTR.ref().put(new character("ogg"), new character("audio/ogg"));
             oFTR.ref().put(new character("ogv"), new character("video/ogg"));
             oFTR.ref().put(new character("ogx"), new character("application/ogg"));
             oFTR.ref().put(new character("omdoc"), new character("application/omdoc+xml"));
             oFTR.ref().put(new character("onepkg"), new character("application/onenote"));
             oFTR.ref().put(new character("onetmp"), new character("application/onenote"));
             oFTR.ref().put(new character("onetoc"), new character("application/onenote"));
             oFTR.ref().put(new character("onetoc2"), new character("application/onenote"));
             oFTR.ref().put(new character("opf"), new character("application/oebps-package+xml"));
             oFTR.ref().put(new character("opml"), new character("text/x-opml"));
             oFTR.ref().put(new character("oprc"), new character("application/vnd.palm"));
             oFTR.ref().put(new character("org"), new character("application/vnd.lotus-organizer"));
             oFTR.ref().put(new character("osf"), new character("application/vnd.yamaha.openscoreformat"));
             oFTR.ref().put(new character("osfpvg"), new character("application/vnd.yamaha.openscoreformat.osfpvg+xml"));
             oFTR.ref().put(new character("otc"), new character("application/vnd.oasis.opendocument.chart-template"));
             oFTR.ref().put(new character("otf"), new character("application/x-font-otf"));
             oFTR.ref().put(new character("otg"), new character("application/vnd.oasis.opendocument.graphics-template"));
             oFTR.ref().put(new character("oth"), new character("application/vnd.oasis.opendocument.text-web"));
             oFTR.ref().put(new character("oti"), new character("application/vnd.oasis.opendocument.image-template"));
             oFTR.ref().put(new character("otp"), new character("application/vnd.oasis.opendocument.presentation-template"));
             oFTR.ref().put(new character("ots"), new character("application/vnd.oasis.opendocument.spreadsheet-template"));
             oFTR.ref().put(new character("ott"), new character("application/vnd.oasis.opendocument.text-template"));
             oFTR.ref().put(new character("oxps"), new character("application/oxps"));
             oFTR.ref().put(new character("oxt"), new character("application/vnd.openofficeorg.extension"));
             oFTR.ref().put(new character("p"), new character("text/x-pascal"));
             oFTR.ref().put(new character("p10"), new character("application/pkcs10"));
             oFTR.ref().put(new character("p12"), new character("application/x-pkcs12"));
             oFTR.ref().put(new character("p7b"), new character("application/x-pkcs7-certificates"));
             oFTR.ref().put(new character("p7c"), new character("application/pkcs7-mime"));
             oFTR.ref().put(new character("p7m"), new character("application/pkcs7-mime"));
             oFTR.ref().put(new character("p7r"), new character("application/x-pkcs7-certreqresp"));
             oFTR.ref().put(new character("p7s"), new character("application/pkcs7-signature"));
             oFTR.ref().put(new character("p8"), new character("application/pkcs8"));
             oFTR.ref().put(new character("pas"), new character("text/x-pascal"));
             oFTR.ref().put(new character("paw"), new character("application/vnd.pawaafile"));
             oFTR.ref().put(new character("pbd"), new character("application/vnd.powerbuilder6"));
             oFTR.ref().put(new character("pbm"), new character("image/x-portable-bitmap"));
             oFTR.ref().put(new character("pcap"), new character("application/vnd.tcpdump.pcap"));
             oFTR.ref().put(new character("pcf"), new character("application/x-font-pcf"));
             oFTR.ref().put(new character("pcl"), new character("application/vnd.hp-pcl"));
             oFTR.ref().put(new character("pclxl"), new character("application/vnd.hp-pclxl"));
             oFTR.ref().put(new character("pct"), new character("image/pict"));
             oFTR.ref().put(new character("pcurl"), new character("application/vnd.curl.pcurl"));
             oFTR.ref().put(new character("pcx"), new character("image/x-pcx"));
             oFTR.ref().put(new character("pdb"), new character("application/vnd.palm"));
             oFTR.ref().put(new character("pdf"), new character("application/pdf"));
             oFTR.ref().put(new character("pfa"), new character("application/x-font-type1"));
             oFTR.ref().put(new character("pfb"), new character("application/x-font-type1"));
             oFTR.ref().put(new character("pfm"), new character("application/x-font-type1"));
             oFTR.ref().put(new character("pfr"), new character("application/font-tdpfr"));
             oFTR.ref().put(new character("pfx"), new character("application/x-pkcs12"));
             oFTR.ref().put(new character("pgm"), new character("image/x-portable-graymap"));
             oFTR.ref().put(new character("pgn"), new character("application/x-chess-pgn"));
             oFTR.ref().put(new character("pgp"), new character("application/pgp-encrypted"));
             oFTR.ref().put(new character("pic"), new character("image/pict"));
             oFTR.ref().put(new character("pict"), new character("image/pict"));
             oFTR.ref().put(new character("pkg"), new character("application/octet-stream"));
             oFTR.ref().put(new character("pki"), new character("application/pkixcmp"));
             oFTR.ref().put(new character("pkipath"), new character("application/pkix-pkipath"));
             oFTR.ref().put(new character("plb"), new character("application/vnd.3gpp.pic-bw-large"));
             oFTR.ref().put(new character("plc"), new character("application/vnd.mobius.plc"));
             oFTR.ref().put(new character("plf"), new character("application/vnd.pocketlearn"));
             oFTR.ref().put(new character("pls"), new character("audio/x-scpls"));
             oFTR.ref().put(new character("pml"), new character("application/vnd.ctc-posml"));
             oFTR.ref().put(new character("png"), new character("image/png"));
             oFTR.ref().put(new character("pnm"), new character("image/x-portable-anymap"));
             oFTR.ref().put(new character("pnt"), new character("image/x-macpaint"));
             oFTR.ref().put(new character("portpkg"), new character("application/vnd.macports.portpkg"));
             oFTR.ref().put(new character("pot"), new character("application/vnd.ms-powerpoint"));
             oFTR.ref().put(new character("potm"), new character("application/vnd.ms-powerpoint.template.macroenabled.12"));
             oFTR.ref().put(new character("potx"), new character("application/vnd.openxmlformats-officedocument.presentationml.template"));
             oFTR.ref().put(new character("ppam"), new character("application/vnd.ms-powerpoint.addin.macroenabled.12"));
             oFTR.ref().put(new character("ppd"), new character("application/vnd.cups-ppd"));
             oFTR.ref().put(new character("ppm"), new character("image/x-portable-pixmap"));
             oFTR.ref().put(new character("pps"), new character("application/vnd.ms-powerpoint"));
             oFTR.ref().put(new character("ppsm"), new character("application/vnd.ms-powerpoint.slideshow.macroenabled.12"));
             oFTR.ref().put(new character("ppsx"), new character("application/vnd.openxmlformats-officedocument.presentationml.slideshow"));
             oFTR.ref().put(new character("ppt"), new character("application/vnd.ms-powerpoint"));
             oFTR.ref().put(new character("pptm"), new character("application/vnd.ms-powerpoint.presentation.macroenabled.12"));
             oFTR.ref().put(new character("pptx"), new character("application/vnd.openxmlformats-officedocument.presentationml.presentation"));
             oFTR.ref().put(new character("pqa"), new character("application/vnd.palm"));
             oFTR.ref().put(new character("prc"), new character("application/x-mobipocket-ebook"));
             oFTR.ref().put(new character("pre"), new character("application/vnd.lotus-freelance"));
             oFTR.ref().put(new character("prf"), new character("application/pics-rules"));
             oFTR.ref().put(new character("ps"), new character("application/postscript"));
             oFTR.ref().put(new character("psb"), new character("application/vnd.3gpp.pic-bw-small"));
             oFTR.ref().put(new character("psd"), new character("image/vnd.adobe.photoshop"));
             oFTR.ref().put(new character("psf"), new character("application/x-font-linux-psf"));
             oFTR.ref().put(new character("pskcxml"), new character("application/pskc+xml"));
             oFTR.ref().put(new character("ptid"), new character("application/vnd.pvi.ptid1"));
             oFTR.ref().put(new character("pub"), new character("application/x-mspublisher"));
             oFTR.ref().put(new character("pvb"), new character("application/vnd.3gpp.pic-bw-var"));
             oFTR.ref().put(new character("pwn"), new character("application/vnd.3m.post-it-notes"));
             oFTR.ref().put(new character("pya"), new character("audio/vnd.ms-playready.media.pya"));
             oFTR.ref().put(new character("pyv"), new character("video/vnd.ms-playready.media.pyv"));
             oFTR.ref().put(new character("qam"), new character("application/vnd.epson.quickanime"));
             oFTR.ref().put(new character("qbo"), new character("application/vnd.intu.qbo"));
             oFTR.ref().put(new character("qfx"), new character("application/vnd.intu.qfx"));
             oFTR.ref().put(new character("qps"), new character("application/vnd.publishare-delta-tree"));
             oFTR.ref().put(new character("qt"), new character("video/quicktime"));
             oFTR.ref().put(new character("qti"), new character("image/x-quicktime"));
             oFTR.ref().put(new character("qtif"), new character("image/x-quicktime"));
             oFTR.ref().put(new character("qwd"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("qwt"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("qxb"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("qxd"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("qxl"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("qxt"), new character("application/vnd.quark.quarkxpress"));
             oFTR.ref().put(new character("ra"), new character("audio/x-pn-realaudio"));
             oFTR.ref().put(new character("ram"), new character("audio/x-pn-realaudio"));
             oFTR.ref().put(new character("rar"), new character("application/x-rar-compressed"));
             oFTR.ref().put(new character("ras"), new character("image/x-cmu-raster"));
             oFTR.ref().put(new character("rcprofile"), new character("application/vnd.ipunplugged.rcprofile"));
             oFTR.ref().put(new character("rdf"), new character("application/rdf+xml"));
             oFTR.ref().put(new character("rdz"), new character("application/vnd.data-vision.rdz"));
             oFTR.ref().put(new character("rep"), new character("application/vnd.businessobjects"));
             oFTR.ref().put(new character("res"), new character("application/x-dtbresource+xml"));
             oFTR.ref().put(new character("rgb"), new character("image/x-rgb"));
             oFTR.ref().put(new character("rif"), new character("application/reginfo+xml"));
             oFTR.ref().put(new character("rip"), new character("audio/vnd.rip"));
             oFTR.ref().put(new character("ris"), new character("application/x-research-info-systems"));
             oFTR.ref().put(new character("rl"), new character("application/resource-lists+xml"));
             oFTR.ref().put(new character("rlc"), new character("image/vnd.fujixerox.edmics-rlc"));
             oFTR.ref().put(new character("rld"), new character("application/resource-lists-diff+xml"));
             oFTR.ref().put(new character("rm"), new character("application/vnd.rn-realmedia"));
             oFTR.ref().put(new character("rmi"), new character("audio/midi"));
             oFTR.ref().put(new character("rmp"), new character("audio/x-pn-realaudio-plugin"));
             oFTR.ref().put(new character("rms"), new character("application/vnd.jcp.javame.midlet-rms"));
             oFTR.ref().put(new character("rmvb"), new character("application/vnd.rn-realmedia-vbr"));
             oFTR.ref().put(new character("rnc"), new character("application/relax-ng-compact-syntax"));
             oFTR.ref().put(new character("roa"), new character("application/rpki-roa"));
             oFTR.ref().put(new character("roff"), new character("text/troff"));
             oFTR.ref().put(new character("rp9"), new character("application/vnd.cloanto.rp9"));
             oFTR.ref().put(new character("rpss"), new character("application/vnd.nokia.radio-presets"));
             oFTR.ref().put(new character("rpst"), new character("application/vnd.nokia.radio-preset"));
             oFTR.ref().put(new character("rq"), new character("application/sparql-query"));
             oFTR.ref().put(new character("rs"), new character("application/rls-services+xml"));
             oFTR.ref().put(new character("rsd"), new character("application/rsd+xml"));
             oFTR.ref().put(new character("rss"), new character("application/rss+xml"));
             oFTR.ref().put(new character("rtf"), new character("application/rtf"));
             oFTR.ref().put(new character("rtx"), new character("text/richtext"));
             oFTR.ref().put(new character("s"), new character("text/x-asm"));
             oFTR.ref().put(new character("s3m"), new character("audio/s3m"));
             oFTR.ref().put(new character("saf"), new character("application/vnd.yamaha.smaf-audio"));
             oFTR.ref().put(new character("sbml"), new character("application/sbml+xml"));
             oFTR.ref().put(new character("sc"), new character("application/vnd.ibm.secure-container"));
             oFTR.ref().put(new character("scd"), new character("application/x-msschedule"));
             oFTR.ref().put(new character("scm"), new character("application/vnd.lotus-screencam"));
             oFTR.ref().put(new character("scq"), new character("application/scvp-cv-request"));
             oFTR.ref().put(new character("scs"), new character("application/scvp-cv-response"));
             oFTR.ref().put(new character("scurl"), new character("text/vnd.curl.scurl"));
             oFTR.ref().put(new character("sda"), new character("application/vnd.stardivision.draw"));
             oFTR.ref().put(new character("sdc"), new character("application/vnd.stardivision.calc"));
             oFTR.ref().put(new character("sdd"), new character("application/vnd.stardivision.impress"));
             oFTR.ref().put(new character("sdkd"), new character("application/vnd.solent.sdkm+xml"));
             oFTR.ref().put(new character("sdkm"), new character("application/vnd.solent.sdkm+xml"));
             oFTR.ref().put(new character("sdp"), new character("application/sdp"));
             oFTR.ref().put(new character("sdw"), new character("application/vnd.stardivision.writer"));
             oFTR.ref().put(new character("see"), new character("application/vnd.seemail"));
             oFTR.ref().put(new character("seed"), new character("application/vnd.fdsn.seed"));
             oFTR.ref().put(new character("sema"), new character("application/vnd.sema"));
             oFTR.ref().put(new character("semd"), new character("application/vnd.semd"));
             oFTR.ref().put(new character("semf"), new character("application/vnd.semf"));
             oFTR.ref().put(new character("ser"), new character("application/java-serialized-object"));
             oFTR.ref().put(new character("setpay"), new character("application/set-payment-initiation"));
             oFTR.ref().put(new character("setreg"), new character("application/set-registration-initiation"));
             oFTR.ref().put(new character("sfd-hdstx"), new character("application/vnd.hydrostatix.sof-data"));
             oFTR.ref().put(new character("sfs"), new character("application/vnd.spotfire.sfs"));
             oFTR.ref().put(new character("sfv"), new character("text/x-sfv"));
             oFTR.ref().put(new character("sgi"), new character("image/sgi"));
             oFTR.ref().put(new character("sgl"), new character("application/vnd.stardivision.writer-global"));
             oFTR.ref().put(new character("sgm"), new character("text/sgml"));
             oFTR.ref().put(new character("sgml"), new character("text/sgml"));
             oFTR.ref().put(new character("sh"), new character("application/x-sh"));
             oFTR.ref().put(new character("shar"), new character("application/x-shar"));
             oFTR.ref().put(new character("shf"), new character("application/shf+xml"));
             oFTR.ref().put(new character("sid"), new character("image/x-mrsid-image"));
             oFTR.ref().put(new character("sig"), new character("application/pgp-signature"));
             oFTR.ref().put(new character("sil"), new character("audio/silk"));
             oFTR.ref().put(new character("silo"), new character("model/mesh"));
             oFTR.ref().put(new character("sis"), new character("application/vnd.symbian.install"));
             oFTR.ref().put(new character("sisx"), new character("application/vnd.symbian.install"));
             oFTR.ref().put(new character("sit"), new character("application/x-stuffit"));
             oFTR.ref().put(new character("sitx"), new character("application/x-stuffitx"));
             oFTR.ref().put(new character("skd"), new character("application/vnd.koan"));
             oFTR.ref().put(new character("skm"), new character("application/vnd.koan"));
             oFTR.ref().put(new character("skp"), new character("application/vnd.koan"));
             oFTR.ref().put(new character("skt"), new character("application/vnd.koan"));
             oFTR.ref().put(new character("sldm"), new character("application/vnd.ms-powerpoint.slide.macroenabled.12"));
             oFTR.ref().put(new character("sldx"), new character("application/vnd.openxmlformats-officedocument.presentationml.slide"));
             oFTR.ref().put(new character("slt"), new character("application/vnd.epson.salt"));
             oFTR.ref().put(new character("sm"), new character("application/vnd.stepmania.stepchart"));
             oFTR.ref().put(new character("smf"), new character("application/vnd.stardivision.math"));
             oFTR.ref().put(new character("smi"), new character("application/smil+xml"));
             oFTR.ref().put(new character("smil"), new character("application/smil+xml"));
             oFTR.ref().put(new character("smv"), new character("video/x-smv"));
             oFTR.ref().put(new character("smzip"), new character("application/vnd.stepmania.package"));
             oFTR.ref().put(new character("snd"), new character("audio/basic"));
             oFTR.ref().put(new character("snf"), new character("application/x-font-snf"));
             oFTR.ref().put(new character("so"), new character("application/octet-stream"));
             oFTR.ref().put(new character("spc"), new character("application/x-pkcs7-certificates"));
             oFTR.ref().put(new character("spf"), new character("application/vnd.yamaha.smaf-phrase"));
             oFTR.ref().put(new character("spl"), new character("application/x-futuresplash"));
             oFTR.ref().put(new character("spot"), new character("text/vnd.in3d.spot"));
             oFTR.ref().put(new character("spp"), new character("application/scvp-vp-response"));
             oFTR.ref().put(new character("spq"), new character("application/scvp-vp-request"));
             oFTR.ref().put(new character("spx"), new character("audio/ogg"));
             oFTR.ref().put(new character("sql"), new character("application/x-sql"));
             oFTR.ref().put(new character("src"), new character("application/x-wais-source"));
             oFTR.ref().put(new character("srt"), new character("application/x-subrip"));
             oFTR.ref().put(new character("sru"), new character("application/sru+xml"));
             oFTR.ref().put(new character("srx"), new character("application/sparql-results+xml"));
             oFTR.ref().put(new character("ssdl"), new character("application/ssdl+xml"));
             oFTR.ref().put(new character("sse"), new character("application/vnd.kodak-descriptor"));
             oFTR.ref().put(new character("ssf"), new character("application/vnd.epson.ssf"));
             oFTR.ref().put(new character("ssml"), new character("application/ssml+xml"));
             oFTR.ref().put(new character("st"), new character("application/vnd.sailingtracker.track"));
             oFTR.ref().put(new character("stc"), new character("application/vnd.sun.xml.calc.template"));
             oFTR.ref().put(new character("std"), new character("application/vnd.sun.xml.draw.template"));
             oFTR.ref().put(new character("stf"), new character("application/vnd.wt.stf"));
             oFTR.ref().put(new character("sti"), new character("application/vnd.sun.xml.impress.template"));
             oFTR.ref().put(new character("stk"), new character("application/hyperstudio"));
             oFTR.ref().put(new character("stl"), new character("application/vnd.ms-pki.stl"));
             oFTR.ref().put(new character("str"), new character("application/vnd.pg.format"));
             oFTR.ref().put(new character("stw"), new character("application/vnd.sun.xml.writer.template"));
             oFTR.ref().put(new character("sub"), new character("text/vnd.dvb.subtitle"));
             oFTR.ref().put(new character("sus"), new character("application/vnd.sus-calendar"));
             oFTR.ref().put(new character("susp"), new character("application/vnd.sus-calendar"));
             oFTR.ref().put(new character("sv4cpio"), new character("application/x-sv4cpio"));
             oFTR.ref().put(new character("sv4crc"), new character("application/x-sv4crc"));
             oFTR.ref().put(new character("svc"), new character("application/vnd.dvb.service"));
             oFTR.ref().put(new character("svd"), new character("application/vnd.svd"));
             oFTR.ref().put(new character("svg"), new character("image/svg+xml"));
             oFTR.ref().put(new character("svgz"), new character("image/svg+xml"));
             oFTR.ref().put(new character("swa"), new character("application/x-director"));
             oFTR.ref().put(new character("swf"), new character("application/x-shockwave-flash"));
             oFTR.ref().put(new character("swi"), new character("application/vnd.aristanetworks.swi"));
             oFTR.ref().put(new character("sxc"), new character("application/vnd.sun.xml.calc"));
             oFTR.ref().put(new character("sxd"), new character("application/vnd.sun.xml.draw"));
             oFTR.ref().put(new character("sxg"), new character("application/vnd.sun.xml.writer.global"));
             oFTR.ref().put(new character("sxi"), new character("application/vnd.sun.xml.impress"));
             oFTR.ref().put(new character("sxm"), new character("application/vnd.sun.xml.math"));
             oFTR.ref().put(new character("sxw"), new character("application/vnd.sun.xml.writer"));
             oFTR.ref().put(new character("t"), new character("text/troff"));
             oFTR.ref().put(new character("t3"), new character("application/x-t3vm-image"));
             oFTR.ref().put(new character("taglet"), new character("application/vnd.mynfc"));
             oFTR.ref().put(new character("tao"), new character("application/vnd.tao.intent-module-archive"));
             oFTR.ref().put(new character("tar"), new character("application/x-tar"));
             oFTR.ref().put(new character("tcap"), new character("application/vnd.3gpp2.tcap"));
             oFTR.ref().put(new character("tcl"), new character("application/x-tcl"));
             oFTR.ref().put(new character("teacher"), new character("application/vnd.smart.teacher"));
             oFTR.ref().put(new character("tei"), new character("application/tei+xml"));
             oFTR.ref().put(new character("teicorpus"), new character("application/tei+xml"));
             oFTR.ref().put(new character("tex"), new character("application/x-tex"));
             oFTR.ref().put(new character("texi"), new character("application/x-texinfo"));
             oFTR.ref().put(new character("texinfo"), new character("application/x-texinfo"));
             oFTR.ref().put(new character("text"), new character("text/plain"));
             oFTR.ref().put(new character("tfi"), new character("application/thraud+xml"));
             oFTR.ref().put(new character("tfm"), new character("application/x-tex-tfm"));
             oFTR.ref().put(new character("tga"), new character("image/x-tga"));
             oFTR.ref().put(new character("thmx"), new character("application/vnd.ms-officetheme"));
             oFTR.ref().put(new character("tif"), new character("image/tiff"));
             oFTR.ref().put(new character("tiff"), new character("image/tiff"));
             oFTR.ref().put(new character("tmo"), new character("application/vnd.tmobile-livetv"));
             oFTR.ref().put(new character("torrent"), new character("application/x-bittorrent"));
             oFTR.ref().put(new character("tpl"), new character("application/vnd.groove-tool-template"));
             oFTR.ref().put(new character("tpt"), new character("application/vnd.trid.tpt"));
             oFTR.ref().put(new character("tr"), new character("text/troff"));
             oFTR.ref().put(new character("tra"), new character("application/vnd.trueapp"));
             oFTR.ref().put(new character("trm"), new character("application/x-msterminal"));
             oFTR.ref().put(new character("tsd"), new character("application/timestamped-data"));
             oFTR.ref().put(new character("tsv"), new character("text/tab-separated-values"));
             oFTR.ref().put(new character("ttc"), new character("application/x-font-ttf"));
             oFTR.ref().put(new character("ttf"), new character("application/x-font-ttf"));
             oFTR.ref().put(new character("ttl"), new character("text/turtle"));
             oFTR.ref().put(new character("twd"), new character("application/vnd.simtech-mindmapper"));
             oFTR.ref().put(new character("twds"), new character("application/vnd.simtech-mindmapper"));
             oFTR.ref().put(new character("txd"), new character("application/vnd.genomatix.tuxedo"));
             oFTR.ref().put(new character("txf"), new character("application/vnd.mobius.txf"));
             oFTR.ref().put(new character("txt"), new character("text/plain"));
             oFTR.ref().put(new character("u32"), new character("application/x-authorware-bin"));
             oFTR.ref().put(new character("udeb"), new character("application/x-debian-package"));
             oFTR.ref().put(new character("ufd"), new character("application/vnd.ufdl"));
             oFTR.ref().put(new character("ufdl"), new character("application/vnd.ufdl"));
             oFTR.ref().put(new character("ulw"), new character("audio/basic"));
             oFTR.ref().put(new character("ulx"), new character("application/x-glulx"));
             oFTR.ref().put(new character("umj"), new character("application/vnd.umajin"));
             oFTR.ref().put(new character("unityweb"), new character("application/vnd.unity"));
             oFTR.ref().put(new character("uoml"), new character("application/vnd.uoml+xml"));
             oFTR.ref().put(new character("uri"), new character("text/uri-list"));
             oFTR.ref().put(new character("uris"), new character("text/uri-list"));
             oFTR.ref().put(new character("urls"), new character("text/uri-list"));
             oFTR.ref().put(new character("ustar"), new character("application/x-ustar"));
             oFTR.ref().put(new character("utz"), new character("application/vnd.uiq.theme"));
             oFTR.ref().put(new character("uu"), new character("text/x-uuencode"));
             oFTR.ref().put(new character("uva"), new character("audio/vnd.dece.audio"));
             oFTR.ref().put(new character("uvd"), new character("application/vnd.dece.data"));
             oFTR.ref().put(new character("uvf"), new character("application/vnd.dece.data"));
             oFTR.ref().put(new character("uvg"), new character("image/vnd.dece.graphic"));
             oFTR.ref().put(new character("uvh"), new character("video/vnd.dece.hd"));
             oFTR.ref().put(new character("uvi"), new character("image/vnd.dece.graphic"));
             oFTR.ref().put(new character("uvm"), new character("video/vnd.dece.mobile"));
             oFTR.ref().put(new character("uvp"), new character("video/vnd.dece.pd"));
             oFTR.ref().put(new character("uvs"), new character("video/vnd.dece.sd"));
             oFTR.ref().put(new character("uvt"), new character("application/vnd.dece.ttml+xml"));
             oFTR.ref().put(new character("uvu"), new character("video/vnd.uvvu.mp4"));
             oFTR.ref().put(new character("uvv"), new character("video/vnd.dece.video"));
             oFTR.ref().put(new character("uvva"), new character("audio/vnd.dece.audio"));
             oFTR.ref().put(new character("uvvd"), new character("application/vnd.dece.data"));
             oFTR.ref().put(new character("uvvf"), new character("application/vnd.dece.data"));
             oFTR.ref().put(new character("uvvg"), new character("image/vnd.dece.graphic"));
             oFTR.ref().put(new character("uvvh"), new character("video/vnd.dece.hd"));
             oFTR.ref().put(new character("uvvi"), new character("image/vnd.dece.graphic"));
             oFTR.ref().put(new character("uvvm"), new character("video/vnd.dece.mobile"));
             oFTR.ref().put(new character("uvvp"), new character("video/vnd.dece.pd"));
             oFTR.ref().put(new character("uvvs"), new character("video/vnd.dece.sd"));
             oFTR.ref().put(new character("uvvt"), new character("application/vnd.dece.ttml+xml"));
             oFTR.ref().put(new character("uvvu"), new character("video/vnd.uvvu.mp4"));
             oFTR.ref().put(new character("uvvv"), new character("video/vnd.dece.video"));
             oFTR.ref().put(new character("uvvx"), new character("application/vnd.dece.unspecified"));
             oFTR.ref().put(new character("uvvz"), new character("application/vnd.dece.zip"));
             oFTR.ref().put(new character("uvx"), new character("application/vnd.dece.unspecified"));
             oFTR.ref().put(new character("uvz"), new character("application/vnd.dece.zip"));
             oFTR.ref().put(new character("vcard"), new character("text/vcard"));
             oFTR.ref().put(new character("vcd"), new character("application/x-cdlink"));
             oFTR.ref().put(new character("vcf"), new character("text/x-vcard"));
             oFTR.ref().put(new character("vcg"), new character("application/vnd.groove-vcard"));
             oFTR.ref().put(new character("vcs"), new character("text/x-vcalendar"));
             oFTR.ref().put(new character("vcx"), new character("application/vnd.vcx"));
             oFTR.ref().put(new character("vis"), new character("application/vnd.visionary"));
             oFTR.ref().put(new character("viv"), new character("video/vnd.vivo"));
             oFTR.ref().put(new character("vob"), new character("video/x-ms-vob"));
             oFTR.ref().put(new character("vor"), new character("application/vnd.stardivision.writer"));
             oFTR.ref().put(new character("vox"), new character("application/x-authorware-bin"));
             oFTR.ref().put(new character("vrml"), new character("model/vrml"));
             oFTR.ref().put(new character("vsd"), new character("application/vnd.visio"));
             oFTR.ref().put(new character("vsf"), new character("application/vnd.vsf"));
             oFTR.ref().put(new character("vss"), new character("application/vnd.visio"));
             oFTR.ref().put(new character("vst"), new character("application/vnd.visio"));
             oFTR.ref().put(new character("vsw"), new character("application/vnd.visio"));
             oFTR.ref().put(new character("vtu"), new character("model/vnd.vtu"));
             oFTR.ref().put(new character("vxml"), new character("application/voicexml+xml"));
             oFTR.ref().put(new character("w3d"), new character("application/x-director"));
             oFTR.ref().put(new character("wad"), new character("application/x-doom"));
             oFTR.ref().put(new character("wav"), new character("audio/x-wav"));
             oFTR.ref().put(new character("wax"), new character("audio/x-ms-wax"));
             oFTR.ref().put(new character("wbmp"), new character("image/vnd.wap.wbmp"));
             oFTR.ref().put(new character("wbs"), new character("application/vnd.criticaltools.wbs+xml"));
             oFTR.ref().put(new character("wbxml"), new character("application/vnd.wap.wbxml"));
             oFTR.ref().put(new character("wcm"), new character("application/vnd.ms-works"));
             oFTR.ref().put(new character("wdb"), new character("application/vnd.ms-works"));
             oFTR.ref().put(new character("wdp"), new character("image/vnd.ms-photo"));
             oFTR.ref().put(new character("weba"), new character("audio/webm"));
             oFTR.ref().put(new character("webm"), new character("video/webm"));
             oFTR.ref().put(new character("webp"), new character("image/webp"));
             oFTR.ref().put(new character("wg"), new character("application/vnd.pmi.widget"));
             oFTR.ref().put(new character("wgt"), new character("application/widget"));
             oFTR.ref().put(new character("wks"), new character("application/vnd.ms-works"));
             oFTR.ref().put(new character("wm"), new character("video/x-ms-wm"));
             oFTR.ref().put(new character("wma"), new character("audio/x-ms-wma"));
             oFTR.ref().put(new character("wmd"), new character("application/x-ms-wmd"));
             oFTR.ref().put(new character("wmf"), new character("application/x-msmetafile"));
             oFTR.ref().put(new character("wml"), new character("text/vnd.wap.wml"));
             oFTR.ref().put(new character("wmlc"), new character("application/vnd.wap.wmlc"));
             oFTR.ref().put(new character("wmls"), new character("text/vnd.wap.wmlscript"));
             oFTR.ref().put(new character("wmlsc"), new character("application/vnd.wap.wmlscriptc"));
             oFTR.ref().put(new character("wmv"), new character("video/x-ms-wmv"));
             oFTR.ref().put(new character("wmx"), new character("video/x-ms-wmx"));
             oFTR.ref().put(new character("wmz"), new character("application/x-msmetafile"));
             oFTR.ref().put(new character("woff"), new character("application/x-font-woff"));
             oFTR.ref().put(new character("wpd"), new character("application/vnd.wordperfect"));
             oFTR.ref().put(new character("wpl"), new character("application/vnd.ms-wpl"));
             oFTR.ref().put(new character("wps"), new character("application/vnd.ms-works"));
             oFTR.ref().put(new character("wqd"), new character("application/vnd.wqd"));
             oFTR.ref().put(new character("wri"), new character("application/x-mswrite"));
             oFTR.ref().put(new character("wrl"), new character("model/vrml"));
             oFTR.ref().put(new character("wsdl"), new character("application/wsdl+xml"));
             oFTR.ref().put(new character("wspolicy"), new character("application/wspolicy+xml"));
             oFTR.ref().put(new character("wtb"), new character("application/vnd.webturbo"));
             oFTR.ref().put(new character("wvx"), new character("video/x-ms-wvx"));
             oFTR.ref().put(new character("x32"), new character("application/x-authorware-bin"));
             oFTR.ref().put(new character("x3d"), new character("model/x3d+xml"));
             oFTR.ref().put(new character("x3db"), new character("model/x3d+binary"));
             oFTR.ref().put(new character("x3dbz"), new character("model/x3d+binary"));
             oFTR.ref().put(new character("x3dv"), new character("model/x3d+vrml"));
             oFTR.ref().put(new character("x3dvz"), new character("model/x3d+vrml"));
             oFTR.ref().put(new character("x3dz"), new character("model/x3d+xml"));
             oFTR.ref().put(new character("xaml"), new character("application/xaml+xml"));
             oFTR.ref().put(new character("xap"), new character("application/x-silverlight-app"));
             oFTR.ref().put(new character("xar"), new character("application/vnd.xara"));
             oFTR.ref().put(new character("xbap"), new character("application/x-ms-xbap"));
             oFTR.ref().put(new character("xbd"), new character("application/vnd.fujixerox.docuworks.binder"));
             oFTR.ref().put(new character("xbm"), new character("image/x-xbitmap"));
             oFTR.ref().put(new character("xdf"), new character("application/xcap-diff+xml"));
             oFTR.ref().put(new character("xdm"), new character("application/vnd.syncml.dm+xml"));
             oFTR.ref().put(new character("xdp"), new character("application/vnd.adobe.xdp+xml"));
             oFTR.ref().put(new character("xdssc"), new character("application/dssc+xml"));
             oFTR.ref().put(new character("xdw"), new character("application/vnd.fujixerox.docuworks"));
             oFTR.ref().put(new character("xenc"), new character("application/xenc+xml"));
             oFTR.ref().put(new character("xer"), new character("application/patch-ops-error+xml"));
             oFTR.ref().put(new character("xfdf"), new character("application/vnd.adobe.xfdf"));
             oFTR.ref().put(new character("xfdl"), new character("application/vnd.xfdl"));
             oFTR.ref().put(new character("xht"), new character("application/xhtml+xml"));
             oFTR.ref().put(new character("xhtml"), new character("application/xhtml+xml"));
             oFTR.ref().put(new character("xhvml"), new character("application/xv+xml"));
             oFTR.ref().put(new character("xif"), new character("image/vnd.xiff"));
             oFTR.ref().put(new character("xla"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xlam"), new character("application/vnd.ms-excel.addin.macroenabled.12"));
             oFTR.ref().put(new character("xlc"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xlf"), new character("application/x-xliff+xml"));
             oFTR.ref().put(new character("xlm"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xls"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xlsb"), new character("application/vnd.ms-excel.sheet.binary.macroenabled.12"));
             oFTR.ref().put(new character("xlsm"), new character("application/vnd.ms-excel.sheet.macroenabled.12"));
             oFTR.ref().put(new character("xlsx"), new character("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
             oFTR.ref().put(new character("xlt"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xltm"), new character("application/vnd.ms-excel.template.macroenabled.12"));
             oFTR.ref().put(new character("xltx"), new character("application/vnd.openxmlformats-officedocument.spreadsheetml.template"));
             oFTR.ref().put(new character("xlw"), new character("application/vnd.ms-excel"));
             oFTR.ref().put(new character("xm"), new character("audio/xm"));
             oFTR.ref().put(new character("xml"), new character("application/xml"));
             oFTR.ref().put(new character("xo"), new character("application/vnd.olpc-sugar"));
             oFTR.ref().put(new character("xop"), new character("application/xop+xml"));
             oFTR.ref().put(new character("xpi"), new character("application/x-xpinstall"));
             oFTR.ref().put(new character("xpl"), new character("application/xproc+xml"));
             oFTR.ref().put(new character("xpm"), new character("image/x-xpixmap"));
             oFTR.ref().put(new character("xpr"), new character("application/vnd.is-xpr"));
             oFTR.ref().put(new character("xps"), new character("application/vnd.ms-xpsdocument"));
             oFTR.ref().put(new character("xpw"), new character("application/vnd.intercon.formnet"));
             oFTR.ref().put(new character("xpx"), new character("application/vnd.intercon.formnet"));
             oFTR.ref().put(new character("xsl"), new character("application/xml"));
             oFTR.ref().put(new character("xslt"), new character("application/xslt+xml"));
             oFTR.ref().put(new character("xsm"), new character("application/vnd.syncml+xml"));
             oFTR.ref().put(new character("xspf"), new character("application/xspf+xml"));
             oFTR.ref().put(new character("xul"), new character("application/vnd.mozilla.xul+xml"));
             oFTR.ref().put(new character("xvm"), new character("application/xv+xml"));
             oFTR.ref().put(new character("xvml"), new character("application/xv+xml"));
             oFTR.ref().put(new character("xwd"), new character("image/x-xwindowdump"));
             oFTR.ref().put(new character("xyz"), new character("chemical/x-xyz"));
             oFTR.ref().put(new character("xz"), new character("application/x-xz"));
             oFTR.ref().put(new character("yang"), new character("application/yang"));
             oFTR.ref().put(new character("yin"), new character("application/yin+xml"));
             oFTR.ref().put(new character("z"), new character("application/x-compress"));
             oFTR.ref().put(new character("z1"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z2"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z3"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z4"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z5"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z6"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z7"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("z8"), new character("application/x-zmachine"));
             oFTR.ref().put(new character("zaz"), new character("application/vnd.zzazz.deck+xml"));
             oFTR.ref().put(new character("zip"), new character("application/zip"));
             oFTR.ref().put(new character("zir"), new character("application/vnd.zul"));
             oFTR.ref().put(new character("zirz"), new character("application/vnd.zul"));
             oFTR.ref().put(new character("zmm"), new character("application/vnd.handheld-entertainment+xml"));
          }));
       }
    }