diff options
15 files changed, 6862 insertions, 6060 deletions
diff --git a/distribution/pom.xml b/distribution/pom.xml index 17db2cd6..9a383102 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -34,6 +34,7 @@ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> <linux64outputdir>target/assembly/linux64</linux64outputdir> <dockeroutput>target/version/${usecaseui.version}</dockeroutput> + <docker.push.registry>localhost:5000</docker.push.registry> </properties> <build> @@ -201,7 +202,7 @@ <configuration> <images> <image> - <name>onap/usecase-ui</name> + <name>${docker.push.registry}/onap/usecase-ui</name> <build> <cleanup>try</cleanup> <dockerFileDir>${basedir}/${dockeroutput}</dockerFileDir> diff --git a/distribution/src/main/assembly/server.xml b/distribution/src/main/assembly/server.xml index 69683fb3..c3b10e58 100644 --- a/distribution/src/main/assembly/server.xml +++ b/distribution/src/main/assembly/server.xml @@ -1,173 +1,174 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/server.html
- -->
-
-<Server port="8005" shutdown="SHUTDOWN">
- <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
- <!-- Security listener. Documentation at /docs/config/listeners.html
- <Listener className="org.apache.catalina.security.SecurityListener" />
- -->
- <!--APR library loader. Documentation at /docs/apr.html -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->
- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
-
- <!-- Global JNDI resources
- Documentation at /docs/jndi-resources-howto.html
- -->
- <GlobalNamingResources>
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users
- -->
- <Resource name="UserDatabase" auth="Container"
- type="org.apache.catalina.UserDatabase"
- description="User database that can be updated and saved"
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
- pathname="conf/tomcat-users.xml" />
- </GlobalNamingResources>
-
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" Note: A "Service" is not itself a "Container",
- so you may not define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/service.html
- -->
- <Service name="Catalina">
-
- <!--The connectors can use a shared executor, you can define one or more named thread pools-->
- <!--
- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
- maxThreads="150" minSpareThreads="4"/>
- -->
-
-
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Documentation at :
- Java HTTP Connector: /docs/config/http.html
- Java AJP Connector: /docs/config/ajp.html
- APR (HTTP/AJP) Connector: /docs/apr.html
- Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
- -->
- <!--Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- -->
-<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
- maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" keystoreFile="conf/uuiServer.jks" keystorePass="Aa123456" />
-
-<!-- A "Connector" using the shared thread pool-->
- <!--
- <Connector executor="tomcatThreadPool"
- port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- -->
- <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
- This connector uses the NIO implementation. The default
- SSLImplementation will depend on the presence of the APR/native
- library and the useOpenSSL attribute of the
- AprLifecycleListener.
- Either JSSE or OpenSSL style configuration may be used regardless of
- the SSLImplementation selected. JSSE style configuration is used below.
- -->
- <!--
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
- maxThreads="150" SSLEnabled="true">
- <SSLHostConfig>
- <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
- type="RSA" />
- </SSLHostConfig>
- </Connector>
- -->
- <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
- This connector uses the APR/native implementation which always uses
- OpenSSL for TLS.
- Either JSSE or OpenSSL style configuration may be used. OpenSSL style
- configuration is used below.
- -->
- <!--
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
- maxThreads="150" SSLEnabled="true" >
- <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
- <SSLHostConfig>
- <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
- certificateFile="conf/localhost-rsa-cert.pem"
- certificateChainFile="conf/localhost-rsa-chain.pem"
- type="RSA" />
- </SSLHostConfig>
- </Connector>
- -->
-
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-
-
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host).
- Documentation at /docs/config/engine.html -->
-
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
- -->
- <Engine name="Catalina" defaultHost="localhost">
-
- <!--For clustering, please take a look at documentation at:
- /docs/cluster-howto.html (simple how to)
- /docs/config/cluster.html (reference documentation) -->
- <!--
- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- -->
-
- <!-- Use the LockOutRealm to prevent attempts to guess user passwords
- via a brute-force attack -->
- <Realm className="org.apache.catalina.realm.LockOutRealm">
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
- </Realm>
-
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true">
-
- <!-- SingleSignOn valve, share authentication between web applications
- Documentation at: /docs/config/valve.html -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
-
- <!-- Access log processes all example.
- Documentation at: /docs/config/valve.html
- Note: The pattern used is equivalent to using pattern="common" -->
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="localhost_access_log" suffix=".txt"
- pattern="%h %l %u %t "%r" %s %b" />
-
- </Host>
- </Engine>
- </Service>
-</Server>
+<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- Note: A "Server" is not itself a "Container", so you may not + define subcomponents such as "Valves" at this level. + Documentation at /docs/config/server.html + --> + + +<Server port="8005" shutdown="SHUTDOWN"> + <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> + <!-- Security listener. Documentation at /docs/config/listeners.html + <Listener className="org.apache.catalina.security.SecurityListener" /> + --> + <!--APR library loader. Documentation at /docs/apr.html --> + <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> + <!-- Prevent memory leaks due to use of particular java/javax APIs--> + <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> + <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> + <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> + + <!-- Global JNDI resources + Documentation at /docs/jndi-resources-howto.html + --> + <GlobalNamingResources> + <!-- Editable user database that can also be used by + UserDatabaseRealm to authenticate users + --> + <Resource name="UserDatabase" auth="Container" + type="org.apache.catalina.UserDatabase" + description="User database that can be updated and saved" + factory="org.apache.catalina.users.MemoryUserDatabaseFactory" + pathname="conf/tomcat-users.xml" /> + </GlobalNamingResources> + + <!-- A "Service" is a collection of one or more "Connectors" that share + a single "Container" Note: A "Service" is not itself a "Container", + so you may not define subcomponents such as "Valves" at this level. + Documentation at /docs/config/service.html + --> + <Service name="Catalina"> + + <!--The connectors can use a shared executor, you can define one or more named thread pools--> + <!-- + <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" + maxThreads="150" minSpareThreads="4"/> + --> + + + <!-- A "Connector" represents an endpoint by which requests are received + and responses are returned. Documentation at : + Java HTTP Connector: /docs/config/http.html + Java AJP Connector: /docs/config/ajp.html + APR (HTTP/AJP) Connector: /docs/apr.html + Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 + --> + <!--Connector port="8080" protocol="HTTP/1.1" + connectionTimeout="20000" + redirectPort="8443" /> + --> +<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" + maxThreads="150" SSLEnabled="true" scheme="https" secure="true" + clientAuth="false" sslProtocol="TLS" keystoreFile="conf/uuiServer.jks" keystorePass="Aa123456" /> + +<!-- A "Connector" using the shared thread pool--> + <!-- + <Connector executor="tomcatThreadPool" + port="8080" protocol="HTTP/1.1" + connectionTimeout="20000" + redirectPort="8443" /> + --> + <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 + This connector uses the NIO implementation. The default + SSLImplementation will depend on the presence of the APR/native + library and the useOpenSSL attribute of the + AprLifecycleListener. + Either JSSE or OpenSSL style configuration may be used regardless of + the SSLImplementation selected. JSSE style configuration is used below. + --> + <!-- + <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" + maxThreads="150" SSLEnabled="true"> + <SSLHostConfig> + <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" + type="RSA" /> + </SSLHostConfig> + </Connector> + --> + <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2 + This connector uses the APR/native implementation which always uses + OpenSSL for TLS. + Either JSSE or OpenSSL style configuration may be used. OpenSSL style + configuration is used below. + --> + <!-- + <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" + maxThreads="150" SSLEnabled="true" > + <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> + <SSLHostConfig> + <Certificate certificateKeyFile="conf/localhost-rsa-key.pem" + certificateFile="conf/localhost-rsa-cert.pem" + certificateChainFile="conf/localhost-rsa-chain.pem" + type="RSA" /> + </SSLHostConfig> + </Connector> + --> + + <!-- Define an AJP 1.3 Connector on port 8009 --> + <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> + + + <!-- An Engine represents the entry point (within Catalina) that processes + every request. The Engine implementation for Tomcat stand alone + analyzes the HTTP headers included with the request, and passes them + on to the appropriate Host (virtual host). + Documentation at /docs/config/engine.html --> + + <!-- You should set jvmRoute to support load-balancing via AJP ie : + <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> + --> + <Engine name="Catalina" defaultHost="localhost"> + + <!--For clustering, please take a look at documentation at: + /docs/cluster-howto.html (simple how to) + /docs/config/cluster.html (reference documentation) --> + <!-- + <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> + --> + + <!-- Use the LockOutRealm to prevent attempts to guess user passwords + via a brute-force attack --> + <Realm className="org.apache.catalina.realm.LockOutRealm"> + <!-- This Realm uses the UserDatabase configured in the global JNDI + resources under the key "UserDatabase". Any edits + that are performed against this UserDatabase are immediately + available for use by the Realm. --> + <Realm className="org.apache.catalina.realm.UserDatabaseRealm" + resourceName="UserDatabase"/> + </Realm> + + <Host name="localhost" appBase="webapps" + unpackWARs="true" autoDeploy="true"> + + <!-- SingleSignOn valve, share authentication between web applications + Documentation at: /docs/config/valve.html --> + <!-- + <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> + --> + + <!-- Access log processes all example. + Documentation at: /docs/config/valve.html + Note: The pattern used is equivalent to using pattern="common" --> + <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" + prefix="localhost_access_log" suffix=".txt" + pattern="%h %l %u %t "%r" %s %b" /> + + </Host> + </Engine> + </Service> +</Server> diff --git a/distribution/src/main/assembly/web.xml b/distribution/src/main/assembly/web.xml index a292a59d..25162892 100644 --- a/distribution/src/main/assembly/web.xml +++ b/distribution/src/main/assembly/web.xml @@ -1,4733 +1,4737 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
-
- <!-- ======================== Introduction ============================== -->
- <!-- This document defines default values for *all* web applications -->
- <!-- loaded into this instance of Tomcat. As each application is -->
- <!-- deployed, this file is processed, followed by the -->
- <!-- "/WEB-INF/web.xml" deployment descriptor from your own -->
- <!-- applications. -->
- <!-- -->
- <!-- WARNING: Do not configure application-specific resources here! -->
- <!-- They should go in the "/WEB-INF/web.xml" file in your application. -->
-
-
- <!-- ================== Built In Servlet Definitions ==================== -->
-
-
- <!-- The default servlet for all web applications, that serves static -->
- <!-- resources. It processes all requests that are not mapped to other -->
- <!-- servlets with servlet mappings (defined either here or in your own -->
- <!-- web.xml file). This servlet supports the following initialization -->
- <!-- parameters (default values are in square brackets): -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. Useful values are 0, 1, and -->
- <!-- 11 where higher values mean more detail. [0] -->
- <!-- -->
- <!-- fileEncoding Encoding to be used to read static resources -->
- <!-- [platform default] -->
- <!-- -->
- <!-- useBomIfPresent If a static file contains a byte order mark -->
- <!-- (BOM), should this be used to determine the -->
- <!-- file encoding in preference to fileEncoding. -->
- <!-- [true] -->
- <!-- -->
- <!-- input Input buffer size (in bytes) when reading -->
- <!-- resources to be served. [2048] -->
- <!-- -->
- <!-- listings Should directory listings be produced if there -->
- <!-- is no welcome file in this directory? [false] -->
- <!-- WARNING: Listings for directories with many -->
- <!-- entries can be slow and may consume -->
- <!-- significant proportions of server resources. -->
- <!-- -->
- <!-- output Output buffer size (in bytes) when writing -->
- <!-- resources to be served. [2048] -->
- <!-- -->
- <!-- readonly Is this context "read only", so HTTP -->
- <!-- commands like PUT and DELETE are -->
- <!-- rejected? [true] -->
- <!-- -->
- <!-- readmeFile File to display together with the directory -->
- <!-- contents. [null] -->
- <!-- -->
- <!-- sendfileSize If the connector used supports sendfile, this -->
- <!-- represents the minimal file size in KB for -->
- <!-- which sendfile will be used. Use a negative -->
- <!-- value to always disable sendfile. [48] -->
- <!-- -->
- <!-- useAcceptRanges Should the Accept-Ranges header be included -->
- <!-- in responses where appropriate? [true] -->
- <!-- -->
- <!-- For directory listing customization. Checks localXsltFile, then -->
- <!-- globalXsltFile, then defaults to original behavior. -->
- <!-- -->
- <!-- localXsltFile Make directory listings an XML doc and -->
- <!-- pass the result to this style sheet residing -->
- <!-- in that directory. This overrides -->
- <!-- contextXsltFile and globalXsltFile[null] -->
- <!-- -->
- <!-- contextXsltFile Make directory listings an XML doc and -->
- <!-- pass the result to this style sheet which is -->
- <!-- relative to the context root. This overrides -->
- <!-- globalXsltFile[null] -->
- <!-- -->
- <!-- globalXsltFile Site wide configuration version of -->
- <!-- localXsltFile. This argument must either be an -->
- <!-- absolute or relative (to either -->
- <!-- $CATALINA_BASE/conf or $CATALINA_HOME/conf) -->
- <!-- path that points to a location below either -->
- <!-- $CATALINA_BASE/conf (checked first) or -->
- <!-- $CATALINA_HOME/conf (checked second).[null] -->
- <!-- -->
- <!-- showServerInfo Should server information be presented in the -->
- <!-- response sent to clients when directory -->
- <!-- listings is enabled? [true] -->
-
- <servlet>
- <servlet-name>default</servlet-name>
- <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>listings</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
-
- <!-- The JSP page compiler and execution servlet, which is the mechanism -->
- <!-- used by Tomcat to support JSP pages. Traditionally, this servlet -->
- <!-- is mapped to the URL pattern "*.jsp". This servlet supports the -->
- <!-- following initialization parameters (default values are in square -->
- <!-- brackets): -->
- <!-- -->
- <!-- checkInterval If development is false and checkInterval is -->
- <!-- greater than zero, background compilations are -->
- <!-- enabled. checkInterval is the time in seconds -->
- <!-- between checks to see if a JSP page (and its -->
- <!-- dependent files) needs to be recompiled. [0] -->
- <!-- -->
- <!-- classdebuginfo Should the class file be compiled with -->
- <!-- debugging information? [true] -->
- <!-- -->
- <!-- classpath What class path should I use while compiling -->
- <!-- generated servlets? [Created dynamically -->
- <!-- based on the current web application] -->
- <!-- -->
- <!-- compiler Which compiler Ant should use to compile JSP -->
- <!-- pages. See the jasper documentation for more -->
- <!-- information. -->
- <!-- -->
- <!-- compilerSourceVM Compiler source VM. [1.8] -->
- <!-- -->
- <!-- compilerTargetVM Compiler target VM. [1.8] -->
- <!-- -->
- <!-- development Is Jasper used in development mode? If true, -->
- <!-- the frequency at which JSPs are checked for -->
- <!-- modification may be specified via the -->
- <!-- modificationTestInterval parameter. [true] -->
- <!-- -->
- <!-- displaySourceFragment -->
- <!-- Should a source fragment be included in -->
- <!-- exception messages? [true] -->
- <!-- -->
- <!-- dumpSmap Should the SMAP info for JSR45 debugging be -->
- <!-- dumped to a file? [false] -->
- <!-- False if suppressSmap is true -->
- <!-- -->
- <!-- enablePooling Determines whether tag handler pooling is -->
- <!-- enabled. This is a compilation option. It will -->
- <!-- not alter the behaviour of JSPs that have -->
- <!-- already been compiled. [true] -->
- <!-- -->
- <!-- engineOptionsClass Allows specifying the Options class used to -->
- <!-- configure Jasper. If not present, the default -->
- <!-- EmbeddedServletOptions will be used. -->
- <!-- This option is ignored when running under a -->
- <!-- SecurityManager. -->
- <!-- -->
- <!-- errorOnUseBeanInvalidClassAttribute -->
- <!-- Should Jasper issue an error when the value of -->
- <!-- the class attribute in an useBean action is -->
- <!-- not a valid bean class? [true] -->
- <!-- -->
- <!-- fork Tell Ant to fork compiles of JSP pages so that -->
- <!-- a separate JVM is used for JSP page compiles -->
- <!-- from the one Tomcat is running in. [true] -->
- <!-- -->
- <!-- genStringAsCharArray -->
- <!-- Should text strings be generated as char -->
- <!-- arrays, to improve performance in some cases? -->
- <!-- [false] -->
- <!-- -->
- <!-- ieClassId The class-id value to be sent to Internet -->
- <!-- Explorer when using <jsp:plugin> tags. -->
- <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] -->
- <!-- -->
- <!-- javaEncoding Java file encoding to use for generating java -->
- <!-- source files. [UTF8] -->
- <!-- -->
- <!-- keepgenerated Should we keep the generated Java source code -->
- <!-- for each page instead of deleting it? [true] -->
- <!-- -->
- <!-- mappedfile Should we generate static content with one -->
- <!-- print statement per input line, to ease -->
- <!-- debugging? [true] -->
- <!-- -->
- <!-- maxLoadedJsps The maximum number of JSPs that will be loaded -->
- <!-- for a web application. If more than this -->
- <!-- number of JSPs are loaded, the least recently -->
- <!-- used JSPs will be unloaded so that the number -->
- <!-- of JSPs loaded at any one time does not exceed -->
- <!-- this limit. A value of zero or less indicates -->
- <!-- no limit. [-1] -->
- <!-- -->
- <!-- jspIdleTimeout The amount of time in seconds a JSP can be -->
- <!-- idle before it is unloaded. A value of zero -->
- <!-- or less indicates never unload. [-1] -->
- <!-- -->
- <!-- modificationTestInterval -->
- <!-- Causes a JSP (and its dependent files) to not -->
- <!-- be checked for modification during the -->
- <!-- specified time interval (in seconds) from the -->
- <!-- last time the JSP was checked for -->
- <!-- modification. A value of 0 will cause the JSP -->
- <!-- to be checked on every access. -->
- <!-- Used in development mode only. [4] -->
- <!-- -->
- <!-- recompileOnFail If a JSP compilation fails should the -->
- <!-- modificationTestInterval be ignored and the -->
- <!-- next access trigger a re-compilation attempt? -->
- <!-- Used in development mode only and is disabled -->
- <!-- by default as compilation may be expensive and -->
- <!-- could lead to excessive resource usage. -->
- <!-- [false] -->
- <!-- -->
- <!-- scratchdir What scratch directory should we use when -->
- <!-- compiling JSP pages? [default work directory -->
- <!-- for the current web application] -->
- <!-- This option is ignored when running under a -->
- <!-- SecurityManager. -->
- <!-- -->
- <!-- suppressSmap Should the generation of SMAP info for JSR45 -->
- <!-- debugging be suppressed? [false] -->
- <!-- -->
- <!-- trimSpaces Should template text that consists entirely of -->
- <!-- whitespace be removed from the output (true), -->
- <!-- replaced with a single space (single) or left -->
- <!-- unchanged (false)? Note that if a JSP page or -->
- <!-- tag file specifies a trimDirectiveWhitespaces -->
- <!-- value of true, that will take precedence over -->
- <!-- this configuration setting for that page/tag. -->
- <!-- [false] -->
- <!-- -->
- <!-- xpoweredBy Determines whether X-Powered-By response -->
- <!-- header is added by generated servlet. [false] -->
- <!-- -->
- <!-- strictQuoteEscaping When scriptlet expressions are used for -->
- <!-- attribute values, should the rules in JSP.1.6 -->
- <!-- for the escaping of quote characters be -->
- <!-- strictly applied? [true] -->
- <!-- -->
- <!-- quoteAttributeEL When EL is used in an attribute value on a -->
- <!-- JSP page should the rules for quoting of -->
- <!-- attributes described in JSP.1.6 be applied to -->
- <!-- the expression? [true] -->
-
- <servlet>
- <servlet-name>jsp</servlet-name>
- <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
- <init-param>
- <param-name>fork</param-name>
- <param-value>false</param-value>
- </init-param>
- <init-param>
- <param-name>xpoweredBy</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>3</load-on-startup>
- </servlet>
-
-
- <!-- NOTE: An SSI Filter is also available as an alternative SSI -->
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->
- <!-- -->
- <!-- Server Side Includes processing servlet, which processes SSI -->
- <!-- directives in HTML pages consistent with similar support in web -->
- <!-- servers like Apache. Traditionally, this servlet is mapped to the -->
- <!-- URL pattern "*.shtml". This servlet supports the following -->
- <!-- initialization parameters (default values are in square brackets): -->
- <!-- -->
- <!-- buffered Should output from this servlet be buffered? -->
- <!-- (0=false, 1=true) [0] -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- expires The number of seconds before a page with SSI -->
- <!-- directives will expire. [No default] -->
- <!-- -->
- <!-- isVirtualWebappRelative -->
- <!-- Should "virtual" paths be interpreted as -->
- <!-- relative to the context root, instead of -->
- <!-- the server root? [false] -->
- <!-- -->
- <!-- inputEncoding The encoding to assume for SSI resources if -->
- <!-- one is not available from the resource. -->
- <!-- [Platform default] -->
- <!-- -->
- <!-- outputEncoding The encoding to use for the page that results -->
- <!-- from the SSI processing. [UTF-8] -->
- <!-- -->
- <!-- allowExec Is use of the exec command enabled? [false] -->
-
-<!--
- <servlet>
- <servlet-name>ssi</servlet-name>
- <servlet-class>
- org.apache.catalina.ssi.SSIServlet
- </servlet-class>
- <init-param>
- <param-name>buffered</param-name>
- <param-value>1</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>expires</param-name>
- <param-value>666</param-value>
- </init-param>
- <init-param>
- <param-name>isVirtualWebappRelative</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>4</load-on-startup>
- </servlet>
--->
-
-
- <!-- Common Gateway Includes (CGI) processing servlet, which supports -->
- <!-- execution of external applications that conform to the CGI spec -->
- <!-- requirements. Typically, this servlet is mapped to the URL pattern -->
- <!-- "/cgi-bin/*", which means that any CGI applications that are -->
- <!-- executed must be present within the web application. This servlet -->
- <!-- supports the following initialization parameters (default values -->
- <!-- are in square brackets): -->
- <!-- -->
- <!-- cgiPathPrefix The CGI search path will start at -->
- <!-- webAppRootDir + File.separator + this prefix. -->
- <!-- If not set, then webAppRootDir is used. -->
- <!-- Recommended value: WEB-INF/cgi -->
- <!-- -->
- <!-- cmdLineArgumentsDecoded -->
- <!-- Only used when enableCmdLineArguments is -->
- <!-- true. The pattern that individual decoded -->
- <!-- command line arguments must match else the -->
- <!-- request will be rejected. This is to -->
- <!-- work-around various issues when Java passes -->
- <!-- the arguments to the OS. See the CGI How-To -->
- <!-- for more details. The default varies by -->
- <!-- platform. -->
- <!-- Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+] -->
- <!-- Others: [.*] -->
- <!-- Note that internally the CGI Servlet treats -->
- <!-- [.*] as a special case to improve performance -->
- <!-- -->
- <!-- cmdLineArgumentsEncoded -->
- <!-- Only used when enableCmdLineArguments is -->
- <!-- true. The pattern that individual encoded -->
- <!-- command line arguments must match else the -->
- <!-- request will be rejected. The default matches -->
- <!-- the allowed values defined by RFC3875. -->
- <!-- [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+] -->
- <!-- -->
- <!-- enableCmdLineArguments -->
- <!-- Are command line parameters generated from -->
- <!-- the query string as per section 4.4 of 3875 -->
- <!-- RFC? [false] -->
- <!-- -->
- <!-- executable Name of the executable used to run the -->
- <!-- script. [perl] -->
- <!-- -->
- <!-- envHttpHeaders A regular expression used to select the HTTP -->
- <!-- headers passed to the CGI process as -->
- <!-- environment variables. Note that headers are -->
- <!-- converted to upper case before matching and -->
- <!-- that the entire header name must match the -->
- <!-- pattern. -->
- <!-- [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST| -->
- <!-- IF-[-0-9A-Z]*|REFERER|USER-AGENT] -->
- <!-- -->
- <!-- environment-variable- An environment to be set for the execution -->
- <!-- environment of the CGI script. The name of -->
- <!-- variable is taken from the parameter name. -->
- <!-- To configure an environment variable named -->
- <!-- FOO, configure a parameter named -->
- <!-- environment-variable-FOO. The parameter value -->
- <!-- is used as the environment variable value. -->
- <!-- The default is no environment variables. -->
- <!-- -->
- <!-- parameterEncoding Name of parameter encoding to be used with -->
- <!-- CGI servlet. -->
- <!-- [System.getProperty("file.encoding","UTF-8")] -->
- <!-- -->
- <!-- passShellEnvironment Should the shell environment variables (if -->
- <!-- any) be passed to the CGI script? [false] -->
- <!-- -->
- <!-- stderrTimeout The time (in milliseconds) to wait for the -->
- <!-- reading of stderr to complete before -->
- <!-- terminating the CGI process. [2000] -->
-
-<!--
- <servlet>
- <servlet-name>cgi</servlet-name>
- <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
- <init-param>
- <param-name>cgiPathPrefix</param-name>
- <param-value>WEB-INF/cgi</param-value>
- </init-param>
- <load-on-startup>5</load-on-startup>
- </servlet>
--->
-
-
- <!-- ================ Built In Servlet Mappings ========================= -->
-
-
- <!-- The servlet mappings for the built in servlets defined above. Note -->
- <!-- that, by default, the CGI and SSI servlets are *not* mapped. You -->
- <!-- must uncomment these mappings (or add them to your application's own -->
- <!-- web.xml deployment descriptor) to enable these services -->
-
- <!-- The mapping for the default servlet -->
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
-
- <!-- The mappings for the JSP servlet -->
- <servlet-mapping>
- <servlet-name>jsp</servlet-name>
- <url-pattern>*.jsp</url-pattern>
- <url-pattern>*.jspx</url-pattern>
- </servlet-mapping>
-
- <!-- The mapping for the SSI servlet -->
-<!--
- <servlet-mapping>
- <servlet-name>ssi</servlet-name>
- <url-pattern>*.shtml</url-pattern>
- </servlet-mapping>
--->
-
- <!-- The mapping for the CGI Gateway servlet -->
-
-<!--
- <servlet-mapping>
- <servlet-name>cgi</servlet-name>
- <url-pattern>/cgi-bin/*</url-pattern>
- </servlet-mapping>
--->
-
-
- <!-- ================== Built In Filter Definitions ===================== -->
-
- <!-- A filter that sets various security related HTTP Response headers. -->
- <!-- This filter supports the following initialization parameters -->
- <!-- (default values are in square brackets): -->
- <!-- -->
- <!-- hstsEnabled Should the HTTP Strict Transport Security -->
- <!-- (HSTS) header be added to the response? See -->
- <!-- RFC 6797 for more information on HSTS. [true] -->
- <!-- -->
- <!-- hstsMaxAgeSeconds The max age value that should be used in the -->
- <!-- HSTS header. Negative values will be treated -->
- <!-- as zero. [0] -->
- <!-- -->
- <!-- hstsIncludeSubDomains -->
- <!-- Should the includeSubDomains parameter be -->
- <!-- included in the HSTS header. -->
- <!-- -->
- <!-- antiClickJackingEnabled -->
- <!-- Should the anti click-jacking header -->
- <!-- X-Frame-Options be added to every response? -->
- <!-- [true] -->
- <!-- -->
- <!-- antiClickJackingOption -->
- <!-- What value should be used for the header. Must -->
- <!-- be one of DENY, SAMEORIGIN, ALLOW-FROM -->
- <!-- (case-insensitive). [DENY] -->
- <!-- -->
- <!-- antiClickJackingUri IF ALLOW-FROM is used, what URI should be -->
- <!-- allowed? [] -->
- <!-- -->
- <!-- blockContentTypeSniffingEnabled -->
- <!-- Should the header that blocks content type -->
- <!-- sniffing be added to every response? [true] -->
-<!--
- <filter>
- <filter-name>httpHeaderSecurity</filter-name>
- <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
- <async-supported>true</async-supported>
- </filter>
--->
-
- <!-- A filter that sets character encoding that is used to decode -->
- <!-- parameters in a POST request -->
-<!--
- <filter>
- <filter-name>setCharacterEncodingFilter</filter-name>
- <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <async-supported>true</async-supported>
- </filter>
--->
-
- <!-- A filter that triggers request parameters parsing and rejects the -->
- <!-- request if some parameters were skipped because of parsing errors or -->
- <!-- request size limitations. -->
-<!--
- <filter>
- <filter-name>failedRequestFilter</filter-name>
- <filter-class>
- org.apache.catalina.filters.FailedRequestFilter
- </filter-class>
- <async-supported>true</async-supported>
- </filter>
--->
-
-
- <!-- NOTE: An SSI Servlet is also available as an alternative SSI -->
- <!-- implementation. Use either the Servlet or the Filter but NOT both. -->
- <!-- -->
- <!-- Server Side Includes processing filter, which processes SSI -->
- <!-- directives in HTML pages consistent with similar support in web -->
- <!-- servers like Apache. Traditionally, this filter is mapped to the -->
- <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will -->
- <!-- selectively enable/disable SSI processing based on mime types. For -->
- <!-- this to work you will need to uncomment the .shtml mime type -->
- <!-- definition towards the bottom of this file. -->
- <!-- The contentType init param allows you to apply SSI processing to JSP -->
- <!-- pages, javascript, or any other content you wish. This filter -->
- <!-- supports the following initialization parameters (default values are -->
- <!-- in square brackets): -->
- <!-- -->
- <!-- contentType A regex pattern that must be matched before -->
- <!-- SSI processing is applied. -->
- <!-- [text/x-server-parsed-html(;.*)?] -->
- <!-- -->
- <!-- debug Debugging detail level for messages logged -->
- <!-- by this servlet. [0] -->
- <!-- -->
- <!-- expires The number of seconds before a page with SSI -->
- <!-- directives will expire. [No default] -->
- <!-- -->
- <!-- isVirtualWebappRelative -->
- <!-- Should "virtual" paths be interpreted as -->
- <!-- relative to the context root, instead of -->
- <!-- the server root? [false] -->
- <!-- -->
- <!-- allowExec Is use of the exec command enabled? [false] -->
-
-<!--
- <filter>
- <filter-name>ssi</filter-name>
- <filter-class>
- org.apache.catalina.ssi.SSIFilter
- </filter-class>
- <init-param>
- <param-name>contentType</param-name>
- <param-value>text/x-server-parsed-html(;.*)?</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>expires</param-name>
- <param-value>666</param-value>
- </init-param>
- <init-param>
- <param-name>isVirtualWebappRelative</param-name>
- <param-value>false</param-value>
- </init-param>
- </filter>
--->
-
-
- <!-- ==================== Built In Filter Mappings ====================== -->
-
- <!-- The mapping for the HTTP header security Filter -->
-<!--
- <filter-mapping>
- <filter-name>httpHeaderSecurity</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- </filter-mapping>
--->
-
- <!-- The mapping for the Set Character Encoding Filter -->
-<!--
- <filter-mapping>
- <filter-name>setCharacterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
--->
-
- <!-- The mapping for the Failed Request Filter -->
-<!--
- <filter-mapping>
- <filter-name>failedRequestFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
--->
-
- <!-- The mapping for the SSI Filter -->
-<!--
- <filter-mapping>
- <filter-name>ssi</filter-name>
- <url-pattern>*.shtml</url-pattern>
- </filter-mapping>
--->
-
-
- <!-- ==================== Default Session Configuration ================= -->
- <!-- You can set the default session timeout (in minutes) for all newly -->
- <!-- created sessions by modifying the value below. -->
-
- <session-config>
- <session-timeout>30</session-timeout>
- </session-config>
-
-
- <!-- ===================== Default MIME Type Mappings =================== -->
- <!-- When serving static resources, Tomcat will automatically generate -->
- <!-- a "Content-Type" header based on the resource's filename extension, -->
- <!-- based on these mappings. Additional mappings can be added here (to -->
- <!-- apply to all web applications), or in your own application's web.xml -->
- <!-- deployment descriptor. -->
- <!-- Note: Extensions are always matched in a case-insensitive manner. -->
-
- <mime-mapping>
- <extension>123</extension>
- <mime-type>application/vnd.lotus-1-2-3</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>3dml</extension>
- <mime-type>text/vnd.in3d.3dml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>3ds</extension>
- <mime-type>image/x-3ds</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>3g2</extension>
- <mime-type>video/3gpp2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>3gp</extension>
- <mime-type>video/3gpp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>7z</extension>
- <mime-type>application/x-7z-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aab</extension>
- <mime-type>application/x-authorware-bin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aac</extension>
- <mime-type>audio/x-aac</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aam</extension>
- <mime-type>application/x-authorware-map</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aas</extension>
- <mime-type>application/x-authorware-seg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>abs</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>abw</extension>
- <mime-type>application/x-abiword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ac</extension>
- <mime-type>application/pkix-attr-cert</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>acc</extension>
- <mime-type>application/vnd.americandynamics.acc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ace</extension>
- <mime-type>application/x-ace-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>acu</extension>
- <mime-type>application/vnd.acucobol</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>acutc</extension>
- <mime-type>application/vnd.acucorp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>adp</extension>
- <mime-type>audio/adpcm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aep</extension>
- <mime-type>application/vnd.audiograph</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>afm</extension>
- <mime-type>application/x-font-type1</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>afp</extension>
- <mime-type>application/vnd.ibm.modcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ahead</extension>
- <mime-type>application/vnd.ahead.space</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ai</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aif</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aifc</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aiff</extension>
- <mime-type>audio/x-aiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aim</extension>
- <mime-type>application/x-aim</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>air</extension>
- <mime-type>application/vnd.adobe.air-application-installer-package+zip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ait</extension>
- <mime-type>application/vnd.dvb.ait</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ami</extension>
- <mime-type>application/vnd.amiga.ami</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>anx</extension>
- <mime-type>application/annodex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>apk</extension>
- <mime-type>application/vnd.android.package-archive</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>appcache</extension>
- <mime-type>text/cache-manifest</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>application</extension>
- <mime-type>application/x-ms-application</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>apr</extension>
- <mime-type>application/vnd.lotus-approach</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>arc</extension>
- <mime-type>application/x-freearc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>art</extension>
- <mime-type>image/x-jg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asc</extension>
- <mime-type>application/pgp-signature</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asf</extension>
- <mime-type>video/x-ms-asf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asm</extension>
- <mime-type>text/x-asm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aso</extension>
- <mime-type>application/vnd.accpac.simply.aso</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>asx</extension>
- <mime-type>video/x-ms-asf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>atc</extension>
- <mime-type>application/vnd.acucorp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>atom</extension>
- <mime-type>application/atom+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>atomcat</extension>
- <mime-type>application/atomcat+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>atomsvc</extension>
- <mime-type>application/atomsvc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>atx</extension>
- <mime-type>application/vnd.antix.game-component</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>au</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>avi</extension>
- <mime-type>video/x-msvideo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>avx</extension>
- <mime-type>video/x-rad-screenplay</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>aw</extension>
- <mime-type>application/applixware</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>axa</extension>
- <mime-type>audio/annodex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>axv</extension>
- <mime-type>video/annodex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>azf</extension>
- <mime-type>application/vnd.airzip.filesecure.azf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>azs</extension>
- <mime-type>application/vnd.airzip.filesecure.azs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>azw</extension>
- <mime-type>application/vnd.amazon.ebook</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bat</extension>
- <mime-type>application/x-msdownload</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bcpio</extension>
- <mime-type>application/x-bcpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bdf</extension>
- <mime-type>application/x-font-bdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bdm</extension>
- <mime-type>application/vnd.syncml.dm+wbxml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bed</extension>
- <mime-type>application/vnd.realvnc.bed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bh2</extension>
- <mime-type>application/vnd.fujitsu.oasysprs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bin</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>blb</extension>
- <mime-type>application/x-blorb</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>blorb</extension>
- <mime-type>application/x-blorb</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bmi</extension>
- <mime-type>application/vnd.bmi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bmp</extension>
- <mime-type>image/bmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>body</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>book</extension>
- <mime-type>application/vnd.framemaker</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>box</extension>
- <mime-type>application/vnd.previewsystems.box</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>boz</extension>
- <mime-type>application/x-bzip2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bpk</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>btif</extension>
- <mime-type>image/prs.btif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bz</extension>
- <mime-type>application/x-bzip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>bz2</extension>
- <mime-type>application/x-bzip2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c11amc</extension>
- <mime-type>application/vnd.cluetrust.cartomobile-config</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c11amz</extension>
- <mime-type>application/vnd.cluetrust.cartomobile-config-pkg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c4d</extension>
- <mime-type>application/vnd.clonk.c4group</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c4f</extension>
- <mime-type>application/vnd.clonk.c4group</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c4g</extension>
- <mime-type>application/vnd.clonk.c4group</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c4p</extension>
- <mime-type>application/vnd.clonk.c4group</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>c4u</extension>
- <mime-type>application/vnd.clonk.c4group</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cab</extension>
- <mime-type>application/vnd.ms-cab-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>caf</extension>
- <mime-type>audio/x-caf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cap</extension>
- <mime-type>application/vnd.tcpdump.pcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>car</extension>
- <mime-type>application/vnd.curl.car</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cat</extension>
- <mime-type>application/vnd.ms-pki.seccat</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cb7</extension>
- <mime-type>application/x-cbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cba</extension>
- <mime-type>application/x-cbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cbr</extension>
- <mime-type>application/x-cbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cbt</extension>
- <mime-type>application/x-cbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cbz</extension>
- <mime-type>application/x-cbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cc</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cct</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ccxml</extension>
- <mime-type>application/ccxml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdbcmsg</extension>
- <mime-type>application/vnd.contact.cmsg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdf</extension>
- <mime-type>application/x-cdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdkey</extension>
- <mime-type>application/vnd.mediastation.cdkey</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdmia</extension>
- <mime-type>application/cdmi-capability</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdmic</extension>
- <mime-type>application/cdmi-container</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdmid</extension>
- <mime-type>application/cdmi-domain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdmio</extension>
- <mime-type>application/cdmi-object</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdmiq</extension>
- <mime-type>application/cdmi-queue</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdx</extension>
- <mime-type>chemical/x-cdx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdxml</extension>
- <mime-type>application/vnd.chemdraw+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cdy</extension>
- <mime-type>application/vnd.cinderella</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cer</extension>
- <mime-type>application/pkix-cert</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cfs</extension>
- <mime-type>application/x-cfs-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cgm</extension>
- <mime-type>image/cgm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>chat</extension>
- <mime-type>application/x-chat</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>chm</extension>
- <mime-type>application/vnd.ms-htmlhelp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>chrt</extension>
- <mime-type>application/vnd.kde.kchart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cif</extension>
- <mime-type>chemical/x-cif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cii</extension>
- <mime-type>application/vnd.anser-web-certificate-issue-initiation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cil</extension>
- <mime-type>application/vnd.ms-artgalry</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cla</extension>
- <mime-type>application/vnd.claymore</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>class</extension>
- <mime-type>application/java</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clkk</extension>
- <mime-type>application/vnd.crick.clicker.keyboard</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clkp</extension>
- <mime-type>application/vnd.crick.clicker.palette</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clkt</extension>
- <mime-type>application/vnd.crick.clicker.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clkw</extension>
- <mime-type>application/vnd.crick.clicker.wordbank</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clkx</extension>
- <mime-type>application/vnd.crick.clicker</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>clp</extension>
- <mime-type>application/x-msclip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cmc</extension>
- <mime-type>application/vnd.cosmocaller</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cmdf</extension>
- <mime-type>chemical/x-cmdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cml</extension>
- <mime-type>chemical/x-cml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cmp</extension>
- <mime-type>application/vnd.yellowriver-custom-menu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cmx</extension>
- <mime-type>image/x-cmx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cod</extension>
- <mime-type>application/vnd.rim.cod</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>com</extension>
- <mime-type>application/x-msdownload</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>conf</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cpio</extension>
- <mime-type>application/x-cpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cpp</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cpt</extension>
- <mime-type>application/mac-compactpro</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>crd</extension>
- <mime-type>application/x-mscardfile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>crl</extension>
- <mime-type>application/pkix-crl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>crt</extension>
- <mime-type>application/x-x509-ca-cert</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cryptonote</extension>
- <mime-type>application/vnd.rig.cryptonote</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>csh</extension>
- <mime-type>application/x-csh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>csml</extension>
- <mime-type>chemical/x-csml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>csp</extension>
- <mime-type>application/vnd.commonspace</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>css</extension>
- <mime-type>text/css</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cst</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>csv</extension>
- <mime-type>text/csv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cu</extension>
- <mime-type>application/cu-seeme</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>curl</extension>
- <mime-type>text/vnd.curl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cww</extension>
- <mime-type>application/prs.cww</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cxt</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>cxx</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dae</extension>
- <mime-type>model/vnd.collada+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>daf</extension>
- <mime-type>application/vnd.mobius.daf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dart</extension>
- <mime-type>application/vnd.dart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dataless</extension>
- <mime-type>application/vnd.fdsn.seed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>davmount</extension>
- <mime-type>application/davmount+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dbk</extension>
- <mime-type>application/docbook+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dcr</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dcurl</extension>
- <mime-type>text/vnd.curl.dcurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dd2</extension>
- <mime-type>application/vnd.oma.dd2+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ddd</extension>
- <mime-type>application/vnd.fujixerox.ddd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>deb</extension>
- <mime-type>application/x-debian-package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>def</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>deploy</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>der</extension>
- <mime-type>application/x-x509-ca-cert</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dfac</extension>
- <mime-type>application/vnd.dreamfactory</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dgc</extension>
- <mime-type>application/x-dgc-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dib</extension>
- <mime-type>image/bmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dic</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dir</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dis</extension>
- <mime-type>application/vnd.mobius.dis</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dist</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>distz</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>djv</extension>
- <mime-type>image/vnd.djvu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>djvu</extension>
- <mime-type>image/vnd.djvu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dll</extension>
- <mime-type>application/x-msdownload</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dmg</extension>
- <mime-type>application/x-apple-diskimage</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dmp</extension>
- <mime-type>application/vnd.tcpdump.pcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dms</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dna</extension>
- <mime-type>application/vnd.dna</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>doc</extension>
- <mime-type>application/msword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>docm</extension>
- <mime-type>application/vnd.ms-word.document.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>docx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dot</extension>
- <mime-type>application/msword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dotm</extension>
- <mime-type>application/vnd.ms-word.template.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dotx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dp</extension>
- <mime-type>application/vnd.osgi.dp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dpg</extension>
- <mime-type>application/vnd.dpgraph</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dra</extension>
- <mime-type>audio/vnd.dra</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dsc</extension>
- <mime-type>text/prs.lines.tag</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dssc</extension>
- <mime-type>application/dssc+der</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dtb</extension>
- <mime-type>application/x-dtbook+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dtd</extension>
- <mime-type>application/xml-dtd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dts</extension>
- <mime-type>audio/vnd.dts</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dtshd</extension>
- <mime-type>audio/vnd.dts.hd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dump</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dv</extension>
- <mime-type>video/x-dv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dvb</extension>
- <mime-type>video/vnd.dvb.file</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dvi</extension>
- <mime-type>application/x-dvi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dwf</extension>
- <mime-type>model/vnd.dwf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dwg</extension>
- <mime-type>image/vnd.dwg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dxf</extension>
- <mime-type>image/vnd.dxf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dxp</extension>
- <mime-type>application/vnd.spotfire.dxp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>dxr</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ecelp4800</extension>
- <mime-type>audio/vnd.nuera.ecelp4800</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ecelp7470</extension>
- <mime-type>audio/vnd.nuera.ecelp7470</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ecelp9600</extension>
- <mime-type>audio/vnd.nuera.ecelp9600</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ecma</extension>
- <mime-type>application/ecmascript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>edm</extension>
- <mime-type>application/vnd.novadigm.edm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>edx</extension>
- <mime-type>application/vnd.novadigm.edx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>efif</extension>
- <mime-type>application/vnd.picsel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ei6</extension>
- <mime-type>application/vnd.pg.osasli</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>elc</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>emf</extension>
- <mime-type>application/x-msmetafile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eml</extension>
- <mime-type>message/rfc822</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>emma</extension>
- <mime-type>application/emma+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>emz</extension>
- <mime-type>application/x-msmetafile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eol</extension>
- <mime-type>audio/vnd.digital-winds</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eot</extension>
- <mime-type>application/vnd.ms-fontobject</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eps</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>epub</extension>
- <mime-type>application/epub+zip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>es3</extension>
- <mime-type>application/vnd.eszigno3+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>esa</extension>
- <mime-type>application/vnd.osgi.subsystem</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>esf</extension>
- <mime-type>application/vnd.epson.esf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>et3</extension>
- <mime-type>application/vnd.eszigno3+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>etx</extension>
- <mime-type>text/x-setext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>eva</extension>
- <mime-type>application/x-eva</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>evy</extension>
- <mime-type>application/x-envoy</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>exe</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>exi</extension>
- <mime-type>application/exi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ext</extension>
- <mime-type>application/vnd.novadigm.ext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ez</extension>
- <mime-type>application/andrew-inset</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ez2</extension>
- <mime-type>application/vnd.ezpix-album</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ez3</extension>
- <mime-type>application/vnd.ezpix-package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>f</extension>
- <mime-type>text/x-fortran</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>f4v</extension>
- <mime-type>video/x-f4v</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>f77</extension>
- <mime-type>text/x-fortran</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>f90</extension>
- <mime-type>text/x-fortran</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fbs</extension>
- <mime-type>image/vnd.fastbidsheet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fcdt</extension>
- <mime-type>application/vnd.adobe.formscentral.fcdt</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fcs</extension>
- <mime-type>application/vnd.isac.fcs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fdf</extension>
- <mime-type>application/vnd.fdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fe_launch</extension>
- <mime-type>application/vnd.denovo.fcselayout-link</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fg5</extension>
- <mime-type>application/vnd.fujitsu.oasysgp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fgd</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fh</extension>
- <mime-type>image/x-freehand</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fh4</extension>
- <mime-type>image/x-freehand</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fh5</extension>
- <mime-type>image/x-freehand</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fh7</extension>
- <mime-type>image/x-freehand</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fhc</extension>
- <mime-type>image/x-freehand</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fig</extension>
- <mime-type>application/x-xfig</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>flac</extension>
- <mime-type>audio/flac</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fli</extension>
- <mime-type>video/x-fli</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>flo</extension>
- <mime-type>application/vnd.micrografx.flo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>flv</extension>
- <mime-type>video/x-flv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>flw</extension>
- <mime-type>application/vnd.kde.kivio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>flx</extension>
- <mime-type>text/vnd.fmi.flexstor</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fly</extension>
- <mime-type>text/vnd.fly</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fm</extension>
- <mime-type>application/vnd.framemaker</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fnc</extension>
- <mime-type>application/vnd.frogans.fnc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>for</extension>
- <mime-type>text/x-fortran</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fpx</extension>
- <mime-type>image/vnd.fpx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>frame</extension>
- <mime-type>application/vnd.framemaker</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fsc</extension>
- <mime-type>application/vnd.fsc.weblaunch</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fst</extension>
- <mime-type>image/vnd.fst</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ftc</extension>
- <mime-type>application/vnd.fluxtime.clip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fti</extension>
- <mime-type>application/vnd.anser-web-funds-transfer-initiation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fvt</extension>
- <mime-type>video/vnd.fvt</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fxp</extension>
- <mime-type>application/vnd.adobe.fxp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fxpl</extension>
- <mime-type>application/vnd.adobe.fxp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>fzs</extension>
- <mime-type>application/vnd.fuzzysheet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>g2w</extension>
- <mime-type>application/vnd.geoplan</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>g3</extension>
- <mime-type>image/g3fax</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>g3w</extension>
- <mime-type>application/vnd.geospace</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gac</extension>
- <mime-type>application/vnd.groove-account</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gam</extension>
- <mime-type>application/x-tads</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gbr</extension>
- <mime-type>application/rpki-ghostbusters</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gca</extension>
- <mime-type>application/x-gca-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gdl</extension>
- <mime-type>model/vnd.gdl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>geo</extension>
- <mime-type>application/vnd.dynageo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gex</extension>
- <mime-type>application/vnd.geometry-explorer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ggb</extension>
- <mime-type>application/vnd.geogebra.file</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ggt</extension>
- <mime-type>application/vnd.geogebra.tool</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ghf</extension>
- <mime-type>application/vnd.groove-help</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gif</extension>
- <mime-type>image/gif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gim</extension>
- <mime-type>application/vnd.groove-identity-message</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gml</extension>
- <mime-type>application/gml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gmx</extension>
- <mime-type>application/vnd.gmx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gnumeric</extension>
- <mime-type>application/x-gnumeric</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gph</extension>
- <mime-type>application/vnd.flographit</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gpx</extension>
- <mime-type>application/gpx+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gqf</extension>
- <mime-type>application/vnd.grafeq</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gqs</extension>
- <mime-type>application/vnd.grafeq</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gram</extension>
- <mime-type>application/srgs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gramps</extension>
- <mime-type>application/x-gramps-xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gre</extension>
- <mime-type>application/vnd.geometry-explorer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>grv</extension>
- <mime-type>application/vnd.groove-injector</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>grxml</extension>
- <mime-type>application/srgs+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gsf</extension>
- <mime-type>application/x-font-ghostscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gtar</extension>
- <mime-type>application/x-gtar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gtm</extension>
- <mime-type>application/vnd.groove-tool-message</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gtw</extension>
- <mime-type>model/vnd.gtw</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gv</extension>
- <mime-type>text/vnd.graphviz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gxf</extension>
- <mime-type>application/gxf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gxt</extension>
- <mime-type>application/vnd.geonext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>gz</extension>
- <mime-type>application/x-gzip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>h</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>h261</extension>
- <mime-type>video/h261</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>h263</extension>
- <mime-type>video/h263</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>h264</extension>
- <mime-type>video/h264</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hal</extension>
- <mime-type>application/vnd.hal+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hbci</extension>
- <mime-type>application/vnd.hbci</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hdf</extension>
- <mime-type>application/x-hdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hh</extension>
- <mime-type>text/x-c</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hlp</extension>
- <mime-type>application/winhlp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hpgl</extension>
- <mime-type>application/vnd.hp-hpgl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hpid</extension>
- <mime-type>application/vnd.hp-hpid</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hps</extension>
- <mime-type>application/vnd.hp-hps</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hqx</extension>
- <mime-type>application/mac-binhex40</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>htc</extension>
- <mime-type>text/x-component</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>htke</extension>
- <mime-type>application/vnd.kenameaapp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>htm</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>html</extension>
- <mime-type>text/html</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hvd</extension>
- <mime-type>application/vnd.yamaha.hv-dic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hvp</extension>
- <mime-type>application/vnd.yamaha.hv-voice</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>hvs</extension>
- <mime-type>application/vnd.yamaha.hv-script</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>i2g</extension>
- <mime-type>application/vnd.intergeo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>icc</extension>
- <mime-type>application/vnd.iccprofile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ice</extension>
- <mime-type>x-conference/x-cooltalk</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>icm</extension>
- <mime-type>application/vnd.iccprofile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ico</extension>
- <mime-type>image/x-icon</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ics</extension>
- <mime-type>text/calendar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ief</extension>
- <mime-type>image/ief</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ifb</extension>
- <mime-type>text/calendar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ifm</extension>
- <mime-type>application/vnd.shana.informed.formdata</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>iges</extension>
- <mime-type>model/iges</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>igl</extension>
- <mime-type>application/vnd.igloader</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>igm</extension>
- <mime-type>application/vnd.insors.igm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>igs</extension>
- <mime-type>model/iges</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>igx</extension>
- <mime-type>application/vnd.micrografx.igx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>iif</extension>
- <mime-type>application/vnd.shana.informed.interchange</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>imp</extension>
- <mime-type>application/vnd.accpac.simply.imp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ims</extension>
- <mime-type>application/vnd.ms-ims</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>in</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ink</extension>
- <mime-type>application/inkml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>inkml</extension>
- <mime-type>application/inkml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>install</extension>
- <mime-type>application/x-install-instructions</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>iota</extension>
- <mime-type>application/vnd.astraea-software.iota</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ipfix</extension>
- <mime-type>application/ipfix</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ipk</extension>
- <mime-type>application/vnd.shana.informed.package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>irm</extension>
- <mime-type>application/vnd.ibm.rights-management</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>irp</extension>
- <mime-type>application/vnd.irepository.package+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>iso</extension>
- <mime-type>application/x-iso9660-image</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>itp</extension>
- <mime-type>application/vnd.shana.informed.formtemplate</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ivp</extension>
- <mime-type>application/vnd.immervision-ivp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ivu</extension>
- <mime-type>application/vnd.immervision-ivu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jad</extension>
- <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jam</extension>
- <mime-type>application/vnd.jam</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jar</extension>
- <mime-type>application/java-archive</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>java</extension>
- <mime-type>text/x-java-source</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jisp</extension>
- <mime-type>application/vnd.jisp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jlt</extension>
- <mime-type>application/vnd.hp-jlyt</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jnlp</extension>
- <mime-type>application/x-java-jnlp-file</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>joda</extension>
- <mime-type>application/vnd.joost.joda-archive</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpe</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpeg</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpg</extension>
- <mime-type>image/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpgm</extension>
- <mime-type>video/jpm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpgv</extension>
- <mime-type>video/jpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jpm</extension>
- <mime-type>video/jpm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>js</extension>
- <mime-type>application/javascript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jsf</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>json</extension>
- <mime-type>application/json</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jsonml</extension>
- <mime-type>application/jsonml+json</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>jspf</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kar</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>karbon</extension>
- <mime-type>application/vnd.kde.karbon</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kfo</extension>
- <mime-type>application/vnd.kde.kformula</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kia</extension>
- <mime-type>application/vnd.kidspiration</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kml</extension>
- <mime-type>application/vnd.google-earth.kml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kmz</extension>
- <mime-type>application/vnd.google-earth.kmz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kne</extension>
- <mime-type>application/vnd.kinar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>knp</extension>
- <mime-type>application/vnd.kinar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kon</extension>
- <mime-type>application/vnd.kde.kontour</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kpr</extension>
- <mime-type>application/vnd.kde.kpresenter</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kpt</extension>
- <mime-type>application/vnd.kde.kpresenter</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kpxx</extension>
- <mime-type>application/vnd.ds-keypoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ksp</extension>
- <mime-type>application/vnd.kde.kspread</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ktr</extension>
- <mime-type>application/vnd.kahootz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ktx</extension>
- <mime-type>image/ktx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ktz</extension>
- <mime-type>application/vnd.kahootz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kwd</extension>
- <mime-type>application/vnd.kde.kword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>kwt</extension>
- <mime-type>application/vnd.kde.kword</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lasxml</extension>
- <mime-type>application/vnd.las.las+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>latex</extension>
- <mime-type>application/x-latex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lbd</extension>
- <mime-type>application/vnd.llamagraphics.life-balance.desktop</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lbe</extension>
- <mime-type>application/vnd.llamagraphics.life-balance.exchange+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>les</extension>
- <mime-type>application/vnd.hhe.lesson-player</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lha</extension>
- <mime-type>application/x-lzh-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>link66</extension>
- <mime-type>application/vnd.route66.link66+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>list</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>list3820</extension>
- <mime-type>application/vnd.ibm.modcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>listafp</extension>
- <mime-type>application/vnd.ibm.modcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lnk</extension>
- <mime-type>application/x-ms-shortcut</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>log</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lostxml</extension>
- <mime-type>application/lost+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lrf</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lrm</extension>
- <mime-type>application/vnd.ms-lrm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ltf</extension>
- <mime-type>application/vnd.frogans.ltf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lvp</extension>
- <mime-type>audio/vnd.lucent.voice</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lwp</extension>
- <mime-type>application/vnd.lotus-wordpro</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>lzh</extension>
- <mime-type>application/x-lzh-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m13</extension>
- <mime-type>application/x-msmediaview</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m14</extension>
- <mime-type>application/x-msmediaview</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m1v</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m21</extension>
- <mime-type>application/mp21</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m2a</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m2v</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m3a</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m3u</extension>
- <mime-type>audio/x-mpegurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m3u8</extension>
- <mime-type>application/vnd.apple.mpegurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m4a</extension>
- <mime-type>audio/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m4b</extension>
- <mime-type>audio/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m4r</extension>
- <mime-type>audio/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m4u</extension>
- <mime-type>video/vnd.mpegurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>m4v</extension>
- <mime-type>video/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ma</extension>
- <mime-type>application/mathematica</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mac</extension>
- <mime-type>image/x-macpaint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mads</extension>
- <mime-type>application/mads+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mag</extension>
- <mime-type>application/vnd.ecowin.chart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>maker</extension>
- <mime-type>application/vnd.framemaker</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>man</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mar</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mathml</extension>
- <mime-type>application/mathml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mb</extension>
- <mime-type>application/mathematica</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mbk</extension>
- <mime-type>application/vnd.mobius.mbk</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mbox</extension>
- <mime-type>application/mbox</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mc1</extension>
- <mime-type>application/vnd.medcalcdata</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mcd</extension>
- <mime-type>application/vnd.mcd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mcurl</extension>
- <mime-type>text/vnd.curl.mcurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mdb</extension>
- <mime-type>application/x-msaccess</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mdi</extension>
- <mime-type>image/vnd.ms-modi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>me</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mesh</extension>
- <mime-type>model/mesh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>meta4</extension>
- <mime-type>application/metalink4+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>metalink</extension>
- <mime-type>application/metalink+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mets</extension>
- <mime-type>application/mets+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mfm</extension>
- <mime-type>application/vnd.mfmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mft</extension>
- <mime-type>application/rpki-manifest</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mgp</extension>
- <mime-type>application/vnd.osgeo.mapguide.package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mgz</extension>
- <mime-type>application/vnd.proteus.magazine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mid</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>midi</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mie</extension>
- <mime-type>application/x-mie</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mif</extension>
- <mime-type>application/x-mif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mime</extension>
- <mime-type>message/rfc822</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mj2</extension>
- <mime-type>video/mj2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mjp2</extension>
- <mime-type>video/mj2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mk3d</extension>
- <mime-type>video/x-matroska</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mka</extension>
- <mime-type>audio/x-matroska</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mks</extension>
- <mime-type>video/x-matroska</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mkv</extension>
- <mime-type>video/x-matroska</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mlp</extension>
- <mime-type>application/vnd.dolby.mlp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mmd</extension>
- <mime-type>application/vnd.chipnuts.karaoke-mmd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mmf</extension>
- <mime-type>application/vnd.smaf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mmr</extension>
- <mime-type>image/vnd.fujixerox.edmics-mmr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mng</extension>
- <mime-type>video/x-mng</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mny</extension>
- <mime-type>application/x-msmoney</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mobi</extension>
- <mime-type>application/x-mobipocket-ebook</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mods</extension>
- <mime-type>application/mods+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mov</extension>
- <mime-type>video/quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>movie</extension>
- <mime-type>video/x-sgi-movie</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp1</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp2</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp21</extension>
- <mime-type>application/mp21</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp2a</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp3</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp4</extension>
- <mime-type>video/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp4a</extension>
- <mime-type>audio/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp4s</extension>
- <mime-type>application/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mp4v</extension>
- <mime-type>video/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpa</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpc</extension>
- <mime-type>application/vnd.mophun.certificate</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpe</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpeg</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpega</extension>
- <mime-type>audio/x-mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpg</extension>
- <mime-type>video/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpg4</extension>
- <mime-type>video/mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpga</extension>
- <mime-type>audio/mpeg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpkg</extension>
- <mime-type>application/vnd.apple.installer+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpm</extension>
- <mime-type>application/vnd.blueice.multipass</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpn</extension>
- <mime-type>application/vnd.mophun.application</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpp</extension>
- <mime-type>application/vnd.ms-project</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpt</extension>
- <mime-type>application/vnd.ms-project</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpv2</extension>
- <mime-type>video/mpeg2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mpy</extension>
- <mime-type>application/vnd.ibm.minipay</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mqy</extension>
- <mime-type>application/vnd.mobius.mqy</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mrc</extension>
- <mime-type>application/marc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mrcx</extension>
- <mime-type>application/marcxml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ms</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mscml</extension>
- <mime-type>application/mediaservercontrol+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mseed</extension>
- <mime-type>application/vnd.fdsn.mseed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mseq</extension>
- <mime-type>application/vnd.mseq</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>msf</extension>
- <mime-type>application/vnd.epson.msf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>msh</extension>
- <mime-type>model/mesh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>msi</extension>
- <mime-type>application/x-msdownload</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>msl</extension>
- <mime-type>application/vnd.mobius.msl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>msty</extension>
- <mime-type>application/vnd.muvee.style</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mts</extension>
- <mime-type>model/vnd.mts</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mus</extension>
- <mime-type>application/vnd.musician</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>musicxml</extension>
- <mime-type>application/vnd.recordare.musicxml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mvb</extension>
- <mime-type>application/x-msmediaview</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mwf</extension>
- <mime-type>application/vnd.mfer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mxf</extension>
- <mime-type>application/mxf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mxl</extension>
- <mime-type>application/vnd.recordare.musicxml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mxml</extension>
- <mime-type>application/xv+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mxs</extension>
- <mime-type>application/vnd.triscape.mxs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>mxu</extension>
- <mime-type>video/vnd.mpegurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>n-gage</extension>
- <mime-type>application/vnd.nokia.n-gage.symbian.install</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>n3</extension>
- <mime-type>text/n3</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nb</extension>
- <mime-type>application/mathematica</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nbp</extension>
- <mime-type>application/vnd.wolfram.player</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nc</extension>
- <mime-type>application/x-netcdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ncx</extension>
- <mime-type>application/x-dtbncx+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nfo</extension>
- <mime-type>text/x-nfo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ngdat</extension>
- <mime-type>application/vnd.nokia.n-gage.data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nitf</extension>
- <mime-type>application/vnd.nitf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nlu</extension>
- <mime-type>application/vnd.neurolanguage.nlu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nml</extension>
- <mime-type>application/vnd.enliven</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nnd</extension>
- <mime-type>application/vnd.noblenet-directory</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nns</extension>
- <mime-type>application/vnd.noblenet-sealer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nnw</extension>
- <mime-type>application/vnd.noblenet-web</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>npx</extension>
- <mime-type>image/vnd.net-fpx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nsc</extension>
- <mime-type>application/x-conference</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nsf</extension>
- <mime-type>application/vnd.lotus-notes</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ntf</extension>
- <mime-type>application/vnd.nitf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>nzb</extension>
- <mime-type>application/x-nzb</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oa2</extension>
- <mime-type>application/vnd.fujitsu.oasys2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oa3</extension>
- <mime-type>application/vnd.fujitsu.oasys3</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oas</extension>
- <mime-type>application/vnd.fujitsu.oasys</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>obd</extension>
- <mime-type>application/x-msbinder</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>obj</extension>
- <mime-type>application/x-tgif</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oda</extension>
- <mime-type>application/oda</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Database -->
- <extension>odb</extension>
- <mime-type>application/vnd.oasis.opendocument.database</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Chart -->
- <extension>odc</extension>
- <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Formula -->
- <extension>odf</extension>
- <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>odft</extension>
- <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Drawing -->
- <extension>odg</extension>
- <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Image -->
- <extension>odi</extension>
- <mime-type>application/vnd.oasis.opendocument.image</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Master Document -->
- <extension>odm</extension>
- <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Presentation -->
- <extension>odp</extension>
- <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Spreadsheet -->
- <extension>ods</extension>
- <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Text -->
- <extension>odt</extension>
- <mime-type>application/vnd.oasis.opendocument.text</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oga</extension>
- <mime-type>audio/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ogg</extension>
- <mime-type>audio/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ogv</extension>
- <mime-type>video/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- xiph mime types -->
- <extension>ogx</extension>
- <mime-type>application/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>omdoc</extension>
- <mime-type>application/omdoc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>onepkg</extension>
- <mime-type>application/onenote</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>onetmp</extension>
- <mime-type>application/onenote</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>onetoc</extension>
- <mime-type>application/onenote</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>onetoc2</extension>
- <mime-type>application/onenote</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>opf</extension>
- <mime-type>application/oebps-package+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>opml</extension>
- <mime-type>text/x-opml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oprc</extension>
- <mime-type>application/vnd.palm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>org</extension>
- <mime-type>application/vnd.lotus-organizer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>osf</extension>
- <mime-type>application/vnd.yamaha.openscoreformat</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>osfpvg</extension>
- <mime-type>application/vnd.yamaha.openscoreformat.osfpvg+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>otc</extension>
- <mime-type>application/vnd.oasis.opendocument.chart-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>otf</extension>
- <mime-type>font/otf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Drawing Template -->
- <extension>otg</extension>
- <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- HTML Document Template -->
- <extension>oth</extension>
- <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oti</extension>
- <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Presentation Template -->
- <extension>otp</extension>
- <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Spreadsheet Template -->
- <extension>ots</extension>
- <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- OpenDocument Text Template -->
- <extension>ott</extension>
- <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oxps</extension>
- <mime-type>application/oxps</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>oxt</extension>
- <mime-type>application/vnd.openofficeorg.extension</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p</extension>
- <mime-type>text/x-pascal</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p10</extension>
- <mime-type>application/pkcs10</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p12</extension>
- <mime-type>application/x-pkcs12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p7b</extension>
- <mime-type>application/x-pkcs7-certificates</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p7c</extension>
- <mime-type>application/pkcs7-mime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p7m</extension>
- <mime-type>application/pkcs7-mime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p7r</extension>
- <mime-type>application/x-pkcs7-certreqresp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p7s</extension>
- <mime-type>application/pkcs7-signature</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>p8</extension>
- <mime-type>application/pkcs8</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pas</extension>
- <mime-type>text/x-pascal</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>paw</extension>
- <mime-type>application/vnd.pawaafile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pbd</extension>
- <mime-type>application/vnd.powerbuilder6</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pbm</extension>
- <mime-type>image/x-portable-bitmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pcap</extension>
- <mime-type>application/vnd.tcpdump.pcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pcf</extension>
- <mime-type>application/x-font-pcf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pcl</extension>
- <mime-type>application/vnd.hp-pcl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pclxl</extension>
- <mime-type>application/vnd.hp-pclxl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pct</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pcurl</extension>
- <mime-type>application/vnd.curl.pcurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pcx</extension>
- <mime-type>image/x-pcx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pdb</extension>
- <mime-type>application/vnd.palm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pdf</extension>
- <mime-type>application/pdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pfa</extension>
- <mime-type>application/x-font-type1</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pfb</extension>
- <mime-type>application/x-font-type1</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pfm</extension>
- <mime-type>application/x-font-type1</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pfr</extension>
- <mime-type>application/font-tdpfr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pfx</extension>
- <mime-type>application/x-pkcs12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pgm</extension>
- <mime-type>image/x-portable-graymap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pgn</extension>
- <mime-type>application/x-chess-pgn</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pgp</extension>
- <mime-type>application/pgp-encrypted</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pic</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pict</extension>
- <mime-type>image/pict</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pkg</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pki</extension>
- <mime-type>application/pkixcmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pkipath</extension>
- <mime-type>application/pkix-pkipath</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>plb</extension>
- <mime-type>application/vnd.3gpp.pic-bw-large</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>plc</extension>
- <mime-type>application/vnd.mobius.plc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>plf</extension>
- <mime-type>application/vnd.pocketlearn</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pls</extension>
- <mime-type>audio/x-scpls</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pml</extension>
- <mime-type>application/vnd.ctc-posml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>png</extension>
- <mime-type>image/png</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pnm</extension>
- <mime-type>image/x-portable-anymap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pnt</extension>
- <mime-type>image/x-macpaint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>portpkg</extension>
- <mime-type>application/vnd.macports.portpkg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pot</extension>
- <mime-type>application/vnd.ms-powerpoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>potm</extension>
- <mime-type>application/vnd.ms-powerpoint.template.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>potx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.presentationml.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppam</extension>
- <mime-type>application/vnd.ms-powerpoint.addin.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppd</extension>
- <mime-type>application/vnd.cups-ppd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppm</extension>
- <mime-type>image/x-portable-pixmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pps</extension>
- <mime-type>application/vnd.ms-powerpoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppsm</extension>
- <mime-type>application/vnd.ms-powerpoint.slideshow.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppsx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slideshow</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ppt</extension>
- <mime-type>application/vnd.ms-powerpoint</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pptm</extension>
- <mime-type>application/vnd.ms-powerpoint.presentation.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pptx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.presentationml.presentation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pqa</extension>
- <mime-type>application/vnd.palm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>prc</extension>
- <mime-type>application/x-mobipocket-ebook</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pre</extension>
- <mime-type>application/vnd.lotus-freelance</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>prf</extension>
- <mime-type>application/pics-rules</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ps</extension>
- <mime-type>application/postscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>psb</extension>
- <mime-type>application/vnd.3gpp.pic-bw-small</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>psd</extension>
- <mime-type>image/vnd.adobe.photoshop</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>psf</extension>
- <mime-type>application/x-font-linux-psf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pskcxml</extension>
- <mime-type>application/pskc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ptid</extension>
- <mime-type>application/vnd.pvi.ptid1</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pub</extension>
- <mime-type>application/x-mspublisher</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pvb</extension>
- <mime-type>application/vnd.3gpp.pic-bw-var</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pwn</extension>
- <mime-type>application/vnd.3m.post-it-notes</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pya</extension>
- <mime-type>audio/vnd.ms-playready.media.pya</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>pyv</extension>
- <mime-type>video/vnd.ms-playready.media.pyv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qam</extension>
- <mime-type>application/vnd.epson.quickanime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qbo</extension>
- <mime-type>application/vnd.intu.qbo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qfx</extension>
- <mime-type>application/vnd.intu.qfx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qps</extension>
- <mime-type>application/vnd.publishare-delta-tree</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qt</extension>
- <mime-type>video/quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qti</extension>
- <mime-type>image/x-quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qtif</extension>
- <mime-type>image/x-quicktime</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qwd</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qwt</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qxb</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qxd</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qxl</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>qxt</extension>
- <mime-type>application/vnd.quark.quarkxpress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ra</extension>
- <mime-type>audio/x-pn-realaudio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ram</extension>
- <mime-type>audio/x-pn-realaudio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rar</extension>
- <mime-type>application/x-rar-compressed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ras</extension>
- <mime-type>image/x-cmu-raster</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rcprofile</extension>
- <mime-type>application/vnd.ipunplugged.rcprofile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rdf</extension>
- <mime-type>application/rdf+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rdz</extension>
- <mime-type>application/vnd.data-vision.rdz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rep</extension>
- <mime-type>application/vnd.businessobjects</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>res</extension>
- <mime-type>application/x-dtbresource+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rgb</extension>
- <mime-type>image/x-rgb</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rif</extension>
- <mime-type>application/reginfo+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rip</extension>
- <mime-type>audio/vnd.rip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ris</extension>
- <mime-type>application/x-research-info-systems</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rl</extension>
- <mime-type>application/resource-lists+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rlc</extension>
- <mime-type>image/vnd.fujixerox.edmics-rlc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rld</extension>
- <mime-type>application/resource-lists-diff+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rm</extension>
- <mime-type>application/vnd.rn-realmedia</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rmi</extension>
- <mime-type>audio/midi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rmp</extension>
- <mime-type>audio/x-pn-realaudio-plugin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rms</extension>
- <mime-type>application/vnd.jcp.javame.midlet-rms</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rmvb</extension>
- <mime-type>application/vnd.rn-realmedia-vbr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rnc</extension>
- <mime-type>application/relax-ng-compact-syntax</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>roa</extension>
- <mime-type>application/rpki-roa</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>roff</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rp9</extension>
- <mime-type>application/vnd.cloanto.rp9</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rpss</extension>
- <mime-type>application/vnd.nokia.radio-presets</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rpst</extension>
- <mime-type>application/vnd.nokia.radio-preset</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rq</extension>
- <mime-type>application/sparql-query</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rs</extension>
- <mime-type>application/rls-services+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rsd</extension>
- <mime-type>application/rsd+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rss</extension>
- <mime-type>application/rss+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rtf</extension>
- <mime-type>application/rtf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>rtx</extension>
- <mime-type>text/richtext</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>s</extension>
- <mime-type>text/x-asm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>s3m</extension>
- <mime-type>audio/s3m</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>saf</extension>
- <mime-type>application/vnd.yamaha.smaf-audio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sbml</extension>
- <mime-type>application/sbml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sc</extension>
- <mime-type>application/vnd.ibm.secure-container</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>scd</extension>
- <mime-type>application/x-msschedule</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>scm</extension>
- <mime-type>application/vnd.lotus-screencam</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>scq</extension>
- <mime-type>application/scvp-cv-request</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>scs</extension>
- <mime-type>application/scvp-cv-response</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>scurl</extension>
- <mime-type>text/vnd.curl.scurl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sda</extension>
- <mime-type>application/vnd.stardivision.draw</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdc</extension>
- <mime-type>application/vnd.stardivision.calc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdd</extension>
- <mime-type>application/vnd.stardivision.impress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdkd</extension>
- <mime-type>application/vnd.solent.sdkm+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdkm</extension>
- <mime-type>application/vnd.solent.sdkm+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdp</extension>
- <mime-type>application/sdp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sdw</extension>
- <mime-type>application/vnd.stardivision.writer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>see</extension>
- <mime-type>application/vnd.seemail</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>seed</extension>
- <mime-type>application/vnd.fdsn.seed</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sema</extension>
- <mime-type>application/vnd.sema</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>semd</extension>
- <mime-type>application/vnd.semd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>semf</extension>
- <mime-type>application/vnd.semf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ser</extension>
- <mime-type>application/java-serialized-object</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>setpay</extension>
- <mime-type>application/set-payment-initiation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>setreg</extension>
- <mime-type>application/set-registration-initiation</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sfd-hdstx</extension>
- <mime-type>application/vnd.hydrostatix.sof-data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sfs</extension>
- <mime-type>application/vnd.spotfire.sfs</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sfv</extension>
- <mime-type>text/x-sfv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sgi</extension>
- <mime-type>image/sgi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sgl</extension>
- <mime-type>application/vnd.stardivision.writer-global</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sgm</extension>
- <mime-type>text/sgml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sgml</extension>
- <mime-type>text/sgml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sh</extension>
- <mime-type>application/x-sh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>shar</extension>
- <mime-type>application/x-shar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>shf</extension>
- <mime-type>application/shf+xml</mime-type>
- </mime-mapping>
- <!--
- <mime-mapping>
- <extension>shtml</extension>
- <mime-type>text/x-server-parsed-html</mime-type>
- </mime-mapping>
- -->
- <mime-mapping>
- <extension>sid</extension>
- <mime-type>image/x-mrsid-image</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sig</extension>
- <mime-type>application/pgp-signature</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sil</extension>
- <mime-type>audio/silk</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>silo</extension>
- <mime-type>model/mesh</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sis</extension>
- <mime-type>application/vnd.symbian.install</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sisx</extension>
- <mime-type>application/vnd.symbian.install</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sit</extension>
- <mime-type>application/x-stuffit</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sitx</extension>
- <mime-type>application/x-stuffitx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>skd</extension>
- <mime-type>application/vnd.koan</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>skm</extension>
- <mime-type>application/vnd.koan</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>skp</extension>
- <mime-type>application/vnd.koan</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>skt</extension>
- <mime-type>application/vnd.koan</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sldm</extension>
- <mime-type>application/vnd.ms-powerpoint.slide.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sldx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slide</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>slt</extension>
- <mime-type>application/vnd.epson.salt</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sm</extension>
- <mime-type>application/vnd.stepmania.stepchart</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>smf</extension>
- <mime-type>application/vnd.stardivision.math</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>smi</extension>
- <mime-type>application/smil+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>smil</extension>
- <mime-type>application/smil+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>smv</extension>
- <mime-type>video/x-smv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>smzip</extension>
- <mime-type>application/vnd.stepmania.package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>snd</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>snf</extension>
- <mime-type>application/x-font-snf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>so</extension>
- <mime-type>application/octet-stream</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spc</extension>
- <mime-type>application/x-pkcs7-certificates</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spf</extension>
- <mime-type>application/vnd.yamaha.smaf-phrase</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spl</extension>
- <mime-type>application/x-futuresplash</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spot</extension>
- <mime-type>text/vnd.in3d.spot</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spp</extension>
- <mime-type>application/scvp-vp-response</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spq</extension>
- <mime-type>application/scvp-vp-request</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>spx</extension>
- <mime-type>audio/ogg</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sql</extension>
- <mime-type>application/x-sql</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>src</extension>
- <mime-type>application/x-wais-source</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>srt</extension>
- <mime-type>application/x-subrip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sru</extension>
- <mime-type>application/sru+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>srx</extension>
- <mime-type>application/sparql-results+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ssdl</extension>
- <mime-type>application/ssdl+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sse</extension>
- <mime-type>application/vnd.kodak-descriptor</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ssf</extension>
- <mime-type>application/vnd.epson.ssf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ssml</extension>
- <mime-type>application/ssml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>st</extension>
- <mime-type>application/vnd.sailingtracker.track</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>stc</extension>
- <mime-type>application/vnd.sun.xml.calc.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>std</extension>
- <mime-type>application/vnd.sun.xml.draw.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>stf</extension>
- <mime-type>application/vnd.wt.stf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sti</extension>
- <mime-type>application/vnd.sun.xml.impress.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>stk</extension>
- <mime-type>application/hyperstudio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>stl</extension>
- <mime-type>application/vnd.ms-pki.stl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>str</extension>
- <mime-type>application/vnd.pg.format</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>stw</extension>
- <mime-type>application/vnd.sun.xml.writer.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sub</extension>
- <mime-type>text/vnd.dvb.subtitle</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sus</extension>
- <mime-type>application/vnd.sus-calendar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>susp</extension>
- <mime-type>application/vnd.sus-calendar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sv4cpio</extension>
- <mime-type>application/x-sv4cpio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sv4crc</extension>
- <mime-type>application/x-sv4crc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svc</extension>
- <mime-type>application/vnd.dvb.service</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svd</extension>
- <mime-type>application/vnd.svd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svg</extension>
- <mime-type>image/svg+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>svgz</extension>
- <mime-type>image/svg+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>swa</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>swf</extension>
- <mime-type>application/x-shockwave-flash</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>swi</extension>
- <mime-type>application/vnd.aristanetworks.swi</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxc</extension>
- <mime-type>application/vnd.sun.xml.calc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxd</extension>
- <mime-type>application/vnd.sun.xml.draw</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxg</extension>
- <mime-type>application/vnd.sun.xml.writer.global</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxi</extension>
- <mime-type>application/vnd.sun.xml.impress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxm</extension>
- <mime-type>application/vnd.sun.xml.math</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>sxw</extension>
- <mime-type>application/vnd.sun.xml.writer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>t</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>t3</extension>
- <mime-type>application/x-t3vm-image</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>taglet</extension>
- <mime-type>application/vnd.mynfc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tao</extension>
- <mime-type>application/vnd.tao.intent-module-archive</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tar</extension>
- <mime-type>application/x-tar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tcap</extension>
- <mime-type>application/vnd.3gpp2.tcap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tcl</extension>
- <mime-type>application/x-tcl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>teacher</extension>
- <mime-type>application/vnd.smart.teacher</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tei</extension>
- <mime-type>application/tei+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>teicorpus</extension>
- <mime-type>application/tei+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tex</extension>
- <mime-type>application/x-tex</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>texi</extension>
- <mime-type>application/x-texinfo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>texinfo</extension>
- <mime-type>application/x-texinfo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>text</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tfi</extension>
- <mime-type>application/thraud+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tfm</extension>
- <mime-type>application/x-tex-tfm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tga</extension>
- <mime-type>image/x-tga</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>thmx</extension>
- <mime-type>application/vnd.ms-officetheme</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tif</extension>
- <mime-type>image/tiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tiff</extension>
- <mime-type>image/tiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tmo</extension>
- <mime-type>application/vnd.tmobile-livetv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>torrent</extension>
- <mime-type>application/x-bittorrent</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tpl</extension>
- <mime-type>application/vnd.groove-tool-template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tpt</extension>
- <mime-type>application/vnd.trid.tpt</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tr</extension>
- <mime-type>text/troff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tra</extension>
- <mime-type>application/vnd.trueapp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>trm</extension>
- <mime-type>application/x-msterminal</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tsd</extension>
- <mime-type>application/timestamped-data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>tsv</extension>
- <mime-type>text/tab-separated-values</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ttc</extension>
- <mime-type>font/collection</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ttf</extension>
- <mime-type>font/ttf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ttl</extension>
- <mime-type>text/turtle</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>twd</extension>
- <mime-type>application/vnd.simtech-mindmapper</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>twds</extension>
- <mime-type>application/vnd.simtech-mindmapper</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>txd</extension>
- <mime-type>application/vnd.genomatix.tuxedo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>txf</extension>
- <mime-type>application/vnd.mobius.txf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>txt</extension>
- <mime-type>text/plain</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>u32</extension>
- <mime-type>application/x-authorware-bin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>udeb</extension>
- <mime-type>application/x-debian-package</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ufd</extension>
- <mime-type>application/vnd.ufdl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ufdl</extension>
- <mime-type>application/vnd.ufdl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ulw</extension>
- <mime-type>audio/basic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ulx</extension>
- <mime-type>application/x-glulx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>umj</extension>
- <mime-type>application/vnd.umajin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>unityweb</extension>
- <mime-type>application/vnd.unity</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uoml</extension>
- <mime-type>application/vnd.uoml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uri</extension>
- <mime-type>text/uri-list</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uris</extension>
- <mime-type>text/uri-list</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>urls</extension>
- <mime-type>text/uri-list</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>ustar</extension>
- <mime-type>application/x-ustar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>utz</extension>
- <mime-type>application/vnd.uiq.theme</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uu</extension>
- <mime-type>text/x-uuencode</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uva</extension>
- <mime-type>audio/vnd.dece.audio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvd</extension>
- <mime-type>application/vnd.dece.data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvf</extension>
- <mime-type>application/vnd.dece.data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvg</extension>
- <mime-type>image/vnd.dece.graphic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvh</extension>
- <mime-type>video/vnd.dece.hd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvi</extension>
- <mime-type>image/vnd.dece.graphic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvm</extension>
- <mime-type>video/vnd.dece.mobile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvp</extension>
- <mime-type>video/vnd.dece.pd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvs</extension>
- <mime-type>video/vnd.dece.sd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvt</extension>
- <mime-type>application/vnd.dece.ttml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvu</extension>
- <mime-type>video/vnd.uvvu.mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvv</extension>
- <mime-type>video/vnd.dece.video</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvva</extension>
- <mime-type>audio/vnd.dece.audio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvd</extension>
- <mime-type>application/vnd.dece.data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvf</extension>
- <mime-type>application/vnd.dece.data</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvg</extension>
- <mime-type>image/vnd.dece.graphic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvh</extension>
- <mime-type>video/vnd.dece.hd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvi</extension>
- <mime-type>image/vnd.dece.graphic</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvm</extension>
- <mime-type>video/vnd.dece.mobile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvp</extension>
- <mime-type>video/vnd.dece.pd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvs</extension>
- <mime-type>video/vnd.dece.sd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvt</extension>
- <mime-type>application/vnd.dece.ttml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvu</extension>
- <mime-type>video/vnd.uvvu.mp4</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvv</extension>
- <mime-type>video/vnd.dece.video</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvx</extension>
- <mime-type>application/vnd.dece.unspecified</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvvz</extension>
- <mime-type>application/vnd.dece.zip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvx</extension>
- <mime-type>application/vnd.dece.unspecified</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>uvz</extension>
- <mime-type>application/vnd.dece.zip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcard</extension>
- <mime-type>text/vcard</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcd</extension>
- <mime-type>application/x-cdlink</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcf</extension>
- <mime-type>text/x-vcard</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcg</extension>
- <mime-type>application/vnd.groove-vcard</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcs</extension>
- <mime-type>text/x-vcalendar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vcx</extension>
- <mime-type>application/vnd.vcx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vis</extension>
- <mime-type>application/vnd.visionary</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>viv</extension>
- <mime-type>video/vnd.vivo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vob</extension>
- <mime-type>video/x-ms-vob</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vor</extension>
- <mime-type>application/vnd.stardivision.writer</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vox</extension>
- <mime-type>application/x-authorware-bin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vrml</extension>
- <mime-type>model/vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vsd</extension>
- <mime-type>application/vnd.visio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vsf</extension>
- <mime-type>application/vnd.vsf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vss</extension>
- <mime-type>application/vnd.visio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vst</extension>
- <mime-type>application/vnd.visio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vsw</extension>
- <mime-type>application/vnd.visio</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vtu</extension>
- <mime-type>model/vnd.vtu</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>vxml</extension>
- <mime-type>application/voicexml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>w3d</extension>
- <mime-type>application/x-director</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wad</extension>
- <mime-type>application/x-doom</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wav</extension>
- <mime-type>audio/x-wav</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wax</extension>
- <mime-type>audio/x-ms-wax</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Wireless Bitmap -->
- <extension>wbmp</extension>
- <mime-type>image/vnd.wap.wbmp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wbs</extension>
- <mime-type>application/vnd.criticaltools.wbs+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wbxml</extension>
- <mime-type>application/vnd.wap.wbxml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wcm</extension>
- <mime-type>application/vnd.ms-works</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wdb</extension>
- <mime-type>application/vnd.ms-works</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wdp</extension>
- <mime-type>image/vnd.ms-photo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>weba</extension>
- <mime-type>audio/webm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>webm</extension>
- <mime-type>video/webm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>webp</extension>
- <mime-type>image/webp</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wg</extension>
- <mime-type>application/vnd.pmi.widget</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wgt</extension>
- <mime-type>application/widget</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wks</extension>
- <mime-type>application/vnd.ms-works</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wm</extension>
- <mime-type>video/x-ms-wm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wma</extension>
- <mime-type>audio/x-ms-wma</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wmd</extension>
- <mime-type>application/x-ms-wmd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wmf</extension>
- <mime-type>application/x-msmetafile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- WML Source -->
- <extension>wml</extension>
- <mime-type>text/vnd.wap.wml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Compiled WML -->
- <extension>wmlc</extension>
- <mime-type>application/vnd.wap.wmlc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- WML Script Source -->
- <extension>wmls</extension>
- <mime-type>text/vnd.wap.wmlscript</mime-type>
- </mime-mapping>
- <mime-mapping>
- <!-- Compiled WML Script -->
- <extension>wmlsc</extension>
- <mime-type>application/vnd.wap.wmlscriptc</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wmv</extension>
- <mime-type>video/x-ms-wmv</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wmx</extension>
- <mime-type>video/x-ms-wmx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wmz</extension>
- <mime-type>application/x-msmetafile</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>woff</extension>
- <mime-type>font/woff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>woff2</extension>
- <mime-type>font/woff2</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wpd</extension>
- <mime-type>application/vnd.wordperfect</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wpl</extension>
- <mime-type>application/vnd.ms-wpl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wps</extension>
- <mime-type>application/vnd.ms-works</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wqd</extension>
- <mime-type>application/vnd.wqd</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wri</extension>
- <mime-type>application/x-mswrite</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wrl</extension>
- <mime-type>model/vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wsdl</extension>
- <mime-type>application/wsdl+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wspolicy</extension>
- <mime-type>application/wspolicy+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wtb</extension>
- <mime-type>application/vnd.webturbo</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>wvx</extension>
- <mime-type>video/x-ms-wvx</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x32</extension>
- <mime-type>application/x-authorware-bin</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3d</extension>
- <mime-type>model/x3d+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3db</extension>
- <mime-type>model/x3d+binary</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3dbz</extension>
- <mime-type>model/x3d+binary</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3dv</extension>
- <mime-type>model/x3d+vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3dvz</extension>
- <mime-type>model/x3d+vrml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>x3dz</extension>
- <mime-type>model/x3d+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xaml</extension>
- <mime-type>application/xaml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xap</extension>
- <mime-type>application/x-silverlight-app</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xar</extension>
- <mime-type>application/vnd.xara</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xbap</extension>
- <mime-type>application/x-ms-xbap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xbd</extension>
- <mime-type>application/vnd.fujixerox.docuworks.binder</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xbm</extension>
- <mime-type>image/x-xbitmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xdf</extension>
- <mime-type>application/xcap-diff+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xdm</extension>
- <mime-type>application/vnd.syncml.dm+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xdp</extension>
- <mime-type>application/vnd.adobe.xdp+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xdssc</extension>
- <mime-type>application/dssc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xdw</extension>
- <mime-type>application/vnd.fujixerox.docuworks</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xenc</extension>
- <mime-type>application/xenc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xer</extension>
- <mime-type>application/patch-ops-error+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xfdf</extension>
- <mime-type>application/vnd.adobe.xfdf</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xfdl</extension>
- <mime-type>application/vnd.xfdl</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xht</extension>
- <mime-type>application/xhtml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xhtml</extension>
- <mime-type>application/xhtml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xhvml</extension>
- <mime-type>application/xv+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xif</extension>
- <mime-type>image/vnd.xiff</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xla</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlam</extension>
- <mime-type>application/vnd.ms-excel.addin.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlc</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlf</extension>
- <mime-type>application/x-xliff+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlm</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xls</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlsb</extension>
- <mime-type>application/vnd.ms-excel.sheet.binary.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlsm</extension>
- <mime-type>application/vnd.ms-excel.sheet.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlsx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlt</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xltm</extension>
- <mime-type>application/vnd.ms-excel.template.macroenabled.12</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xltx</extension>
- <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.template</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xlw</extension>
- <mime-type>application/vnd.ms-excel</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xm</extension>
- <mime-type>audio/xm</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xml</extension>
- <mime-type>application/xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xo</extension>
- <mime-type>application/vnd.olpc-sugar</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xop</extension>
- <mime-type>application/xop+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpi</extension>
- <mime-type>application/x-xpinstall</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpl</extension>
- <mime-type>application/xproc+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpm</extension>
- <mime-type>image/x-xpixmap</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpr</extension>
- <mime-type>application/vnd.is-xpr</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xps</extension>
- <mime-type>application/vnd.ms-xpsdocument</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpw</extension>
- <mime-type>application/vnd.intercon.formnet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xpx</extension>
- <mime-type>application/vnd.intercon.formnet</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xsl</extension>
- <mime-type>application/xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xslt</extension>
- <mime-type>application/xslt+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xsm</extension>
- <mime-type>application/vnd.syncml+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xspf</extension>
- <mime-type>application/xspf+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xul</extension>
- <mime-type>application/vnd.mozilla.xul+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xvm</extension>
- <mime-type>application/xv+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xvml</extension>
- <mime-type>application/xv+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xwd</extension>
- <mime-type>image/x-xwindowdump</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xyz</extension>
- <mime-type>chemical/x-xyz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xz</extension>
- <mime-type>application/x-xz</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>yang</extension>
- <mime-type>application/yang</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>yin</extension>
- <mime-type>application/yin+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z</extension>
- <mime-type>application/x-compress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>Z</extension>
- <mime-type>application/x-compress</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z1</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z2</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z3</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z4</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z5</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z6</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z7</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>z8</extension>
- <mime-type>application/x-zmachine</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zaz</extension>
- <mime-type>application/vnd.zzazz.deck+xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zip</extension>
- <mime-type>application/zip</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zir</extension>
- <mime-type>application/vnd.zul</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zirz</extension>
- <mime-type>application/vnd.zul</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>zmm</extension>
- <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
- </mime-mapping>
-
- <!-- ==================== Default Welcome File List ===================== -->
- <!-- When a request URI refers to a directory, the default servlet looks -->
- <!-- for a "welcome file" within that directory and, if present, to the -->
- <!-- corresponding resource URI for display. -->
- <!-- If no welcome files are present, the default servlet either serves a -->
- <!-- directory listing (see default servlet configuration on how to -->
- <!-- customize) or returns a 404 status, depending on the value of the -->
- <!-- listings setting. -->
- <!-- -->
- <!-- If you define welcome files in your own application's web.xml -->
- <!-- deployment descriptor, that list *replaces* the list configured -->
- <!-- here, so be sure to include any of the default values that you wish -->
- <!-- to use within your application. -->
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
-
-<security-constraint> <web-resource-collection> <web-resource-name>Protected Context</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <!-- auth-constraint goes here if you requre authentication --> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
-</web-app>
+<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee + http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" + version="4.0"> + + <!-- ======================== Introduction ============================== --> + <!-- This document defines default values for *all* web applications --> + <!-- loaded into this instance of Tomcat. As each application is --> + <!-- deployed, this file is processed, followed by the --> + <!-- "/WEB-INF/web.xml" deployment descriptor from your own --> + <!-- applications. --> + <!-- --> + <!-- WARNING: Do not configure application-specific resources here! --> + <!-- They should go in the "/WEB-INF/web.xml" file in your application. --> + + + <!-- ================== Built In Servlet Definitions ==================== --> + + + <!-- The default servlet for all web applications, that serves static --> + <!-- resources. It processes all requests that are not mapped to other --> + <!-- servlets with servlet mappings (defined either here or in your own --> + <!-- web.xml file). This servlet supports the following initialization --> + <!-- parameters (default values are in square brackets): --> + <!-- --> + <!-- debug Debugging detail level for messages logged --> + <!-- by this servlet. Useful values are 0, 1, and --> + <!-- 11 where higher values mean more detail. [0] --> + <!-- --> + <!-- fileEncoding Encoding to be used to read static resources --> + <!-- [platform default] --> + <!-- --> + <!-- useBomIfPresent If a static file contains a byte order mark --> + <!-- (BOM), should this be used to determine the --> + <!-- file encoding in preference to fileEncoding. --> + <!-- [true] --> + <!-- --> + <!-- input Input buffer size (in bytes) when reading --> + <!-- resources to be served. [2048] --> + <!-- --> + <!-- listings Should directory listings be produced if there --> + <!-- is no welcome file in this directory? [false] --> + <!-- WARNING: Listings for directories with many --> + <!-- entries can be slow and may consume --> + <!-- significant proportions of server resources. --> + <!-- --> + <!-- output Output buffer size (in bytes) when writing --> + <!-- resources to be served. [2048] --> + <!-- --> + <!-- readonly Is this context "read only", so HTTP --> + <!-- commands like PUT and DELETE are --> + <!-- rejected? [true] --> + <!-- --> + <!-- readmeFile File to display together with the directory --> + <!-- contents. [null] --> + <!-- --> + <!-- sendfileSize If the connector used supports sendfile, this --> + <!-- represents the minimal file size in KB for --> + <!-- which sendfile will be used. Use a negative --> + <!-- value to always disable sendfile. [48] --> + <!-- --> + <!-- useAcceptRanges Should the Accept-Ranges header be included --> + <!-- in responses where appropriate? [true] --> + <!-- --> + <!-- For directory listing customization. Checks localXsltFile, then --> + <!-- globalXsltFile, then defaults to original behavior. --> + <!-- --> + <!-- localXsltFile Make directory listings an XML doc and --> + <!-- pass the result to this style sheet residing --> + <!-- in that directory. This overrides --> + <!-- contextXsltFile and globalXsltFile[null] --> + <!-- --> + <!-- contextXsltFile Make directory listings an XML doc and --> + <!-- pass the result to this style sheet which is --> + <!-- relative to the context root. This overrides --> + <!-- globalXsltFile[null] --> + <!-- --> + <!-- globalXsltFile Site wide configuration version of --> + <!-- localXsltFile. This argument must either be an --> + <!-- absolute or relative (to either --> + <!-- $CATALINA_BASE/conf or $CATALINA_HOME/conf) --> + <!-- path that points to a location below either --> + <!-- $CATALINA_BASE/conf (checked first) or --> + <!-- $CATALINA_HOME/conf (checked second).[null] --> + <!-- --> + <!-- showServerInfo Should server information be presented in the --> + <!-- response sent to clients when directory --> + <!-- listings is enabled? [true] --> + + <servlet> + <servlet-name>default</servlet-name> + <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> + <init-param> + <param-name>debug</param-name> + <param-value>0</param-value> + </init-param> + <init-param> + <param-name>listings</param-name> + <param-value>false</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + + + <!-- The JSP page compiler and execution servlet, which is the mechanism --> + <!-- used by Tomcat to support JSP pages. Traditionally, this servlet --> + <!-- is mapped to the URL pattern "*.jsp". This servlet supports the --> + <!-- following initialization parameters (default values are in square --> + <!-- brackets): --> + <!-- --> + <!-- checkInterval If development is false and checkInterval is --> + <!-- greater than zero, background compilations are --> + <!-- enabled. checkInterval is the time in seconds --> + <!-- between checks to see if a JSP page (and its --> + <!-- dependent files) needs to be recompiled. [0] --> + <!-- --> + <!-- classdebuginfo Should the class file be compiled with --> + <!-- debugging information? [true] --> + <!-- --> + <!-- classpath What class path should I use while compiling --> + <!-- generated servlets? [Created dynamically --> + <!-- based on the current web application] --> + <!-- --> + <!-- compiler Which compiler Ant should use to compile JSP --> + <!-- pages. See the jasper documentation for more --> + <!-- information. --> + <!-- --> + <!-- compilerSourceVM Compiler source VM. [1.8] --> + <!-- --> + <!-- compilerTargetVM Compiler target VM. [1.8] --> + <!-- --> + <!-- development Is Jasper used in development mode? If true, --> + <!-- the frequency at which JSPs are checked for --> + <!-- modification may be specified via the --> + <!-- modificationTestInterval parameter. [true] --> + <!-- --> + <!-- displaySourceFragment --> + <!-- Should a source fragment be included in --> + <!-- exception messages? [true] --> + <!-- --> + <!-- dumpSmap Should the SMAP info for JSR45 debugging be --> + <!-- dumped to a file? [false] --> + <!-- False if suppressSmap is true --> + <!-- --> + <!-- enablePooling Determines whether tag handler pooling is --> + <!-- enabled. This is a compilation option. It will --> + <!-- not alter the behaviour of JSPs that have --> + <!-- already been compiled. [true] --> + <!-- --> + <!-- engineOptionsClass Allows specifying the Options class used to --> + <!-- configure Jasper. If not present, the default --> + <!-- EmbeddedServletOptions will be used. --> + <!-- This option is ignored when running under a --> + <!-- SecurityManager. --> + <!-- --> + <!-- errorOnUseBeanInvalidClassAttribute --> + <!-- Should Jasper issue an error when the value of --> + + <!-- the class attribute in an useBean action is --> + <!-- not a valid bean class? [true] --> + <!-- --> + <!-- fork Tell Ant to fork compiles of JSP pages so that --> + <!-- a separate JVM is used for JSP page compiles --> + <!-- from the one Tomcat is running in. [true] --> + <!-- --> + <!-- genStringAsCharArray --> + <!-- Should text strings be generated as char --> + <!-- arrays, to improve performance in some cases? --> + <!-- [false] --> + <!-- --> + <!-- ieClassId The class-id value to be sent to Internet --> + <!-- Explorer when using <jsp:plugin> tags. --> + <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] --> + <!-- --> + <!-- javaEncoding Java file encoding to use for generating java --> + <!-- source files. [UTF8] --> + <!-- --> + <!-- keepgenerated Should we keep the generated Java source code --> + <!-- for each page instead of deleting it? [true] --> + <!-- --> + <!-- mappedfile Should we generate static content with one --> + <!-- print statement per input line, to ease --> + <!-- debugging? [true] --> + <!-- --> + <!-- maxLoadedJsps The maximum number of JSPs that will be loaded --> + <!-- for a web application. If more than this --> + <!-- number of JSPs are loaded, the least recently --> + <!-- used JSPs will be unloaded so that the number --> + <!-- of JSPs loaded at any one time does not exceed --> + <!-- this limit. A value of zero or less indicates --> + <!-- no limit. [-1] --> + <!-- --> + <!-- jspIdleTimeout The amount of time in seconds a JSP can be --> + <!-- idle before it is unloaded. A value of zero --> + <!-- or less indicates never unload. [-1] --> + <!-- --> + <!-- modificationTestInterval --> + <!-- Causes a JSP (and its dependent files) to not --> + <!-- be checked for modification during the --> + <!-- specified time interval (in seconds) from the --> + <!-- last time the JSP was checked for --> + <!-- modification. A value of 0 will cause the JSP --> + <!-- to be checked on every access. --> + <!-- Used in development mode only. [4] --> + <!-- --> + <!-- recompileOnFail If a JSP compilation fails should the --> + <!-- modificationTestInterval be ignored and the --> + <!-- next access trigger a re-compilation attempt? --> + <!-- Used in development mode only and is disabled --> + <!-- by default as compilation may be expensive and --> + <!-- could lead to excessive resource usage. --> + <!-- [false] --> + <!-- --> + <!-- scratchdir What scratch directory should we use when --> + <!-- compiling JSP pages? [default work directory --> + <!-- for the current web application] --> + <!-- This option is ignored when running under a --> + <!-- SecurityManager. --> + <!-- --> + <!-- suppressSmap Should the generation of SMAP info for JSR45 --> + <!-- debugging be suppressed? [false] --> + <!-- --> + <!-- trimSpaces Should template text that consists entirely of --> + <!-- whitespace be removed from the output (true), --> + <!-- replaced with a single space (single) or left --> + <!-- unchanged (false)? Note that if a JSP page or --> + <!-- tag file specifies a trimDirectiveWhitespaces --> + <!-- value of true, that will take precedence over --> + <!-- this configuration setting for that page/tag. --> + <!-- [false] --> + <!-- --> + <!-- xpoweredBy Determines whether X-Powered-By response --> + <!-- header is added by generated servlet. [false] --> + <!-- --> + <!-- strictQuoteEscaping When scriptlet expressions are used for --> + <!-- attribute values, should the rules in JSP.1.6 --> + <!-- for the escaping of quote characters be --> + <!-- strictly applied? [true] --> + <!-- --> + <!-- quoteAttributeEL When EL is used in an attribute value on a --> + <!-- JSP page should the rules for quoting of --> + <!-- attributes described in JSP.1.6 be applied to --> + <!-- the expression? [true] --> + + <servlet> + <servlet-name>jsp</servlet-name> + <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> + <init-param> + <param-name>fork</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>xpoweredBy</param-name> + <param-value>false</param-value> + </init-param> + <load-on-startup>3</load-on-startup> + </servlet> + + + <!-- NOTE: An SSI Filter is also available as an alternative SSI --> + <!-- implementation. Use either the Servlet or the Filter but NOT both. --> + <!-- --> + <!-- Server Side Includes processing servlet, which processes SSI --> + <!-- directives in HTML pages consistent with similar support in web --> + <!-- servers like Apache. Traditionally, this servlet is mapped to the --> + <!-- URL pattern "*.shtml". This servlet supports the following --> + <!-- initialization parameters (default values are in square brackets): --> + <!-- --> + <!-- buffered Should output from this servlet be buffered? --> + <!-- (0=false, 1=true) [0] --> + <!-- --> + <!-- debug Debugging detail level for messages logged --> + <!-- by this servlet. [0] --> + <!-- --> + <!-- expires The number of seconds before a page with SSI --> + <!-- directives will expire. [No default] --> + <!-- --> + <!-- isVirtualWebappRelative --> + <!-- Should "virtual" paths be interpreted as --> + <!-- relative to the context root, instead of --> + <!-- the server root? [false] --> + <!-- --> + <!-- inputEncoding The encoding to assume for SSI resources if --> + <!-- one is not available from the resource. --> + <!-- [Platform default] --> + <!-- --> + <!-- outputEncoding The encoding to use for the page that results --> + <!-- from the SSI processing. [UTF-8] --> + <!-- --> + <!-- allowExec Is use of the exec command enabled? [false] --> + +<!-- + <servlet> + <servlet-name>ssi</servlet-name> + <servlet-class> + org.apache.catalina.ssi.SSIServlet + </servlet-class> + <init-param> + <param-name>buffered</param-name> + <param-value>1</param-value> + </init-param> + <init-param> + <param-name>debug</param-name> + <param-value>0</param-value> + </init-param> + <init-param> + <param-name>expires</param-name> + <param-value>666</param-value> + </init-param> + <init-param> + <param-name>isVirtualWebappRelative</param-name> + <param-value>false</param-value> + </init-param> + <load-on-startup>4</load-on-startup> + </servlet> +--> + + + <!-- Common Gateway Includes (CGI) processing servlet, which supports --> + <!-- execution of external applications that conform to the CGI spec --> + <!-- requirements. Typically, this servlet is mapped to the URL pattern --> + <!-- "/cgi-bin/*", which means that any CGI applications that are --> + <!-- executed must be present within the web application. This servlet --> + <!-- supports the following initialization parameters (default values --> + <!-- are in square brackets): --> + <!-- --> + <!-- cgiPathPrefix The CGI search path will start at --> + <!-- webAppRootDir + File.separator + this prefix. --> + <!-- If not set, then webAppRootDir is used. --> + <!-- Recommended value: WEB-INF/cgi --> + <!-- --> + <!-- cmdLineArgumentsDecoded --> + <!-- Only used when enableCmdLineArguments is --> + <!-- true. The pattern that individual decoded --> + <!-- command line arguments must match else the --> + <!-- request will be rejected. This is to --> + <!-- work-around various issues when Java passes --> + <!-- the arguments to the OS. See the CGI How-To --> + <!-- for more details. The default varies by --> + <!-- platform. --> + <!-- Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+] --> + <!-- Others: [.*] --> + <!-- Note that internally the CGI Servlet treats --> + <!-- [.*] as a special case to improve performance --> + <!-- --> + <!-- cmdLineArgumentsEncoded --> + <!-- Only used when enableCmdLineArguments is --> + <!-- true. The pattern that individual encoded --> + <!-- command line arguments must match else the --> + <!-- request will be rejected. The default matches --> + <!-- the allowed values defined by RFC3875. --> + <!-- [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+] --> + <!-- --> + <!-- enableCmdLineArguments --> + <!-- Are command line parameters generated from --> + <!-- the query string as per section 4.4 of 3875 --> + <!-- RFC? [false] --> + <!-- --> + <!-- executable Name of the executable used to run the --> + <!-- script. [perl] --> + <!-- --> + <!-- envHttpHeaders A regular expression used to select the HTTP --> + <!-- headers passed to the CGI process as --> + <!-- environment variables. Note that headers are --> + <!-- converted to upper case before matching and --> + <!-- that the entire header name must match the --> + <!-- pattern. --> + <!-- [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST| --> + <!-- IF-[-0-9A-Z]*|REFERER|USER-AGENT] --> + <!-- --> + <!-- environment-variable- An environment to be set for the execution --> + <!-- environment of the CGI script. The name of --> + <!-- variable is taken from the parameter name. --> + <!-- To configure an environment variable named --> + <!-- FOO, configure a parameter named --> + <!-- environment-variable-FOO. The parameter value --> + <!-- is used as the environment variable value. --> + <!-- The default is no environment variables. --> + <!-- --> + <!-- parameterEncoding Name of parameter encoding to be used with --> + <!-- CGI servlet. --> + <!-- [System.getProperty("file.encoding","UTF-8")] --> + <!-- --> + <!-- passShellEnvironment Should the shell environment variables (if --> + <!-- any) be passed to the CGI script? [false] --> + <!-- --> + <!-- stderrTimeout The time (in milliseconds) to wait for the --> + <!-- reading of stderr to complete before --> + <!-- terminating the CGI process. [2000] --> + +<!-- + <servlet> + <servlet-name>cgi</servlet-name> + <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> + <init-param> + <param-name>cgiPathPrefix</param-name> + <param-value>WEB-INF/cgi</param-value> + </init-param> + <load-on-startup>5</load-on-startup> + </servlet> +--> + + + <!-- ================ Built In Servlet Mappings ========================= --> + + + <!-- The servlet mappings for the built in servlets defined above. Note --> + <!-- that, by default, the CGI and SSI servlets are *not* mapped. You --> + <!-- must uncomment these mappings (or add them to your application's own --> + <!-- web.xml deployment descriptor) to enable these services --> + + <!-- The mapping for the default servlet --> + <servlet-mapping> + <servlet-name>default</servlet-name> + <url-pattern>/</url-pattern> + </servlet-mapping> + + <!-- The mappings for the JSP servlet --> + <servlet-mapping> + <servlet-name>jsp</servlet-name> + <url-pattern>*.jsp</url-pattern> + <url-pattern>*.jspx</url-pattern> + </servlet-mapping> + + <!-- The mapping for the SSI servlet --> +<!-- + <servlet-mapping> + <servlet-name>ssi</servlet-name> + <url-pattern>*.shtml</url-pattern> + </servlet-mapping> +--> + + <!-- The mapping for the CGI Gateway servlet --> + +<!-- + <servlet-mapping> + <servlet-name>cgi</servlet-name> + <url-pattern>/cgi-bin/*</url-pattern> + </servlet-mapping> +--> + + + <!-- ================== Built In Filter Definitions ===================== --> + + <!-- A filter that sets various security related HTTP Response headers. --> + <!-- This filter supports the following initialization parameters --> + <!-- (default values are in square brackets): --> + <!-- --> + <!-- hstsEnabled Should the HTTP Strict Transport Security --> + <!-- (HSTS) header be added to the response? See --> + <!-- RFC 6797 for more information on HSTS. [true] --> + <!-- --> + <!-- hstsMaxAgeSeconds The max age value that should be used in the --> + <!-- HSTS header. Negative values will be treated --> + <!-- as zero. [0] --> + <!-- --> + <!-- hstsIncludeSubDomains --> + <!-- Should the includeSubDomains parameter be --> + <!-- included in the HSTS header. --> + <!-- --> + <!-- antiClickJackingEnabled --> + <!-- Should the anti click-jacking header --> + <!-- X-Frame-Options be added to every response? --> + <!-- [true] --> + <!-- --> + <!-- antiClickJackingOption --> + <!-- What value should be used for the header. Must --> + <!-- be one of DENY, SAMEORIGIN, ALLOW-FROM --> + <!-- (case-insensitive). [DENY] --> + <!-- --> + <!-- antiClickJackingUri IF ALLOW-FROM is used, what URI should be --> + <!-- allowed? [] --> + <!-- --> + <!-- blockContentTypeSniffingEnabled --> + <!-- Should the header that blocks content type --> + <!-- sniffing be added to every response? [true] --> +<!-- + <filter> + <filter-name>httpHeaderSecurity</filter-name> + <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> + <async-supported>true</async-supported> + </filter> +--> + + <!-- A filter that sets character encoding that is used to decode --> + <!-- parameters in a POST request --> +<!-- + <filter> + <filter-name>setCharacterEncodingFilter</filter-name> + <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> + <init-param> + <param-name>encoding</param-name> + <param-value>UTF-8</param-value> + </init-param> + <async-supported>true</async-supported> + </filter> +--> + + <!-- A filter that triggers request parameters parsing and rejects the --> + <!-- request if some parameters were skipped because of parsing errors or --> + <!-- request size limitations. --> +<!-- + <filter> + <filter-name>failedRequestFilter</filter-name> + <filter-class> + org.apache.catalina.filters.FailedRequestFilter + </filter-class> + <async-supported>true</async-supported> + </filter> +--> + + + <!-- NOTE: An SSI Servlet is also available as an alternative SSI --> + <!-- implementation. Use either the Servlet or the Filter but NOT both. --> + <!-- --> + <!-- Server Side Includes processing filter, which processes SSI --> + <!-- directives in HTML pages consistent with similar support in web --> + <!-- servers like Apache. Traditionally, this filter is mapped to the --> + <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will --> + <!-- selectively enable/disable SSI processing based on mime types. For --> + <!-- this to work you will need to uncomment the .shtml mime type --> + <!-- definition towards the bottom of this file. --> + <!-- The contentType init param allows you to apply SSI processing to JSP --> + <!-- pages, javascript, or any other content you wish. This filter --> + <!-- supports the following initialization parameters (default values are --> + <!-- in square brackets): --> + <!-- --> + <!-- contentType A regex pattern that must be matched before --> + <!-- SSI processing is applied. --> + <!-- [text/x-server-parsed-html(;.*)?] --> + <!-- --> + <!-- debug Debugging detail level for messages logged --> + <!-- by this servlet. [0] --> + <!-- --> + <!-- expires The number of seconds before a page with SSI --> + <!-- directives will expire. [No default] --> + <!-- --> + <!-- isVirtualWebappRelative --> + <!-- Should "virtual" paths be interpreted as --> + <!-- relative to the context root, instead of --> + <!-- the server root? [false] --> + <!-- --> + <!-- allowExec Is use of the exec command enabled? [false] --> + +<!-- + <filter> + <filter-name>ssi</filter-name> + <filter-class> + org.apache.catalina.ssi.SSIFilter + </filter-class> + <init-param> + <param-name>contentType</param-name> + <param-value>text/x-server-parsed-html(;.*)?</param-value> + </init-param> + <init-param> + <param-name>debug</param-name> + <param-value>0</param-value> + </init-param> + <init-param> + <param-name>expires</param-name> + <param-value>666</param-value> + </init-param> + <init-param> + <param-name>isVirtualWebappRelative</param-name> + <param-value>false</param-value> + </init-param> + </filter> +--> + + + <!-- ==================== Built In Filter Mappings ====================== --> + + <!-- The mapping for the HTTP header security Filter --> +<!-- + <filter-mapping> + <filter-name>httpHeaderSecurity</filter-name> + <url-pattern>/*</url-pattern> + <dispatcher>REQUEST</dispatcher> + </filter-mapping> +--> + + <!-- The mapping for the Set Character Encoding Filter --> +<!-- + <filter-mapping> + <filter-name>setCharacterEncodingFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> +--> + + <!-- The mapping for the Failed Request Filter --> +<!-- + <filter-mapping> + <filter-name>failedRequestFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> +--> + + <!-- The mapping for the SSI Filter --> +<!-- + <filter-mapping> + <filter-name>ssi</filter-name> + <url-pattern>*.shtml</url-pattern> + </filter-mapping> +--> + + + <!-- ==================== Default Session Configuration ================= --> + <!-- You can set the default session timeout (in minutes) for all newly --> + <!-- created sessions by modifying the value below. --> + + <session-config> + <session-timeout>30</session-timeout> + </session-config> + + + <!-- ===================== Default MIME Type Mappings =================== --> + <!-- When serving static resources, Tomcat will automatically generate --> + <!-- a "Content-Type" header based on the resource's filename extension, --> + <!-- based on these mappings. Additional mappings can be added here (to --> + <!-- apply to all web applications), or in your own application's web.xml --> + <!-- deployment descriptor. --> + <!-- Note: Extensions are always matched in a case-insensitive manner. --> + + <mime-mapping> + <extension>123</extension> + <mime-type>application/vnd.lotus-1-2-3</mime-type> + </mime-mapping> + <mime-mapping> + <extension>3dml</extension> + <mime-type>text/vnd.in3d.3dml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>3ds</extension> + <mime-type>image/x-3ds</mime-type> + </mime-mapping> + <mime-mapping> + <extension>3g2</extension> + <mime-type>video/3gpp2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>3gp</extension> + <mime-type>video/3gpp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>7z</extension> + <mime-type>application/x-7z-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aab</extension> + <mime-type>application/x-authorware-bin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aac</extension> + <mime-type>audio/x-aac</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aam</extension> + <mime-type>application/x-authorware-map</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aas</extension> + <mime-type>application/x-authorware-seg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>abs</extension> + <mime-type>audio/x-mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>abw</extension> + <mime-type>application/x-abiword</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ac</extension> + <mime-type>application/pkix-attr-cert</mime-type> + </mime-mapping> + <mime-mapping> + <extension>acc</extension> + <mime-type>application/vnd.americandynamics.acc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ace</extension> + <mime-type>application/x-ace-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>acu</extension> + <mime-type>application/vnd.acucobol</mime-type> + </mime-mapping> + <mime-mapping> + <extension>acutc</extension> + <mime-type>application/vnd.acucorp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>adp</extension> + <mime-type>audio/adpcm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aep</extension> + <mime-type>application/vnd.audiograph</mime-type> + </mime-mapping> + <mime-mapping> + <extension>afm</extension> + <mime-type>application/x-font-type1</mime-type> + </mime-mapping> + <mime-mapping> + <extension>afp</extension> + <mime-type>application/vnd.ibm.modcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ahead</extension> + <mime-type>application/vnd.ahead.space</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ai</extension> + <mime-type>application/postscript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aif</extension> + <mime-type>audio/x-aiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aifc</extension> + <mime-type>audio/x-aiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aiff</extension> + <mime-type>audio/x-aiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aim</extension> + <mime-type>application/x-aim</mime-type> + </mime-mapping> + <mime-mapping> + <extension>air</extension> + <mime-type>application/vnd.adobe.air-application-installer-package+zip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ait</extension> + <mime-type>application/vnd.dvb.ait</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ami</extension> + <mime-type>application/vnd.amiga.ami</mime-type> + </mime-mapping> + <mime-mapping> + <extension>anx</extension> + <mime-type>application/annodex</mime-type> + </mime-mapping> + <mime-mapping> + <extension>apk</extension> + <mime-type>application/vnd.android.package-archive</mime-type> + </mime-mapping> + <mime-mapping> + <extension>appcache</extension> + <mime-type>text/cache-manifest</mime-type> + </mime-mapping> + <mime-mapping> + <extension>application</extension> + <mime-type>application/x-ms-application</mime-type> + </mime-mapping> + <mime-mapping> + <extension>apr</extension> + <mime-type>application/vnd.lotus-approach</mime-type> + </mime-mapping> + <mime-mapping> + <extension>arc</extension> + <mime-type>application/x-freearc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>art</extension> + <mime-type>image/x-jg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>asc</extension> + <mime-type>application/pgp-signature</mime-type> + </mime-mapping> + <mime-mapping> + <extension>asf</extension> + <mime-type>video/x-ms-asf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>asm</extension> + <mime-type>text/x-asm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aso</extension> + <mime-type>application/vnd.accpac.simply.aso</mime-type> + </mime-mapping> + <mime-mapping> + <extension>asx</extension> + <mime-type>video/x-ms-asf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>atc</extension> + <mime-type>application/vnd.acucorp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>atom</extension> + <mime-type>application/atom+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>atomcat</extension> + <mime-type>application/atomcat+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>atomsvc</extension> + <mime-type>application/atomsvc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>atx</extension> + <mime-type>application/vnd.antix.game-component</mime-type> + </mime-mapping> + <mime-mapping> + <extension>au</extension> + <mime-type>audio/basic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>avi</extension> + <mime-type>video/x-msvideo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>avx</extension> + <mime-type>video/x-rad-screenplay</mime-type> + </mime-mapping> + <mime-mapping> + <extension>aw</extension> + <mime-type>application/applixware</mime-type> + </mime-mapping> + <mime-mapping> + <extension>axa</extension> + <mime-type>audio/annodex</mime-type> + </mime-mapping> + <mime-mapping> + <extension>axv</extension> + <mime-type>video/annodex</mime-type> + </mime-mapping> + <mime-mapping> + <extension>azf</extension> + <mime-type>application/vnd.airzip.filesecure.azf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>azs</extension> + <mime-type>application/vnd.airzip.filesecure.azs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>azw</extension> + <mime-type>application/vnd.amazon.ebook</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bat</extension> + <mime-type>application/x-msdownload</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bcpio</extension> + <mime-type>application/x-bcpio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bdf</extension> + <mime-type>application/x-font-bdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bdm</extension> + <mime-type>application/vnd.syncml.dm+wbxml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bed</extension> + <mime-type>application/vnd.realvnc.bed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bh2</extension> + <mime-type>application/vnd.fujitsu.oasysprs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bin</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>blb</extension> + <mime-type>application/x-blorb</mime-type> + </mime-mapping> + <mime-mapping> + <extension>blorb</extension> + <mime-type>application/x-blorb</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bmi</extension> + <mime-type>application/vnd.bmi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bmp</extension> + <mime-type>image/bmp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>body</extension> + <mime-type>text/html</mime-type> + </mime-mapping> + <mime-mapping> + <extension>book</extension> + <mime-type>application/vnd.framemaker</mime-type> + </mime-mapping> + <mime-mapping> + <extension>box</extension> + <mime-type>application/vnd.previewsystems.box</mime-type> + </mime-mapping> + <mime-mapping> + <extension>boz</extension> + <mime-type>application/x-bzip2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bpk</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>btif</extension> + <mime-type>image/prs.btif</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bz</extension> + <mime-type>application/x-bzip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>bz2</extension> + <mime-type>application/x-bzip2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c11amc</extension> + <mime-type>application/vnd.cluetrust.cartomobile-config</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c11amz</extension> + <mime-type>application/vnd.cluetrust.cartomobile-config-pkg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c4d</extension> + <mime-type>application/vnd.clonk.c4group</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c4f</extension> + <mime-type>application/vnd.clonk.c4group</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c4g</extension> + <mime-type>application/vnd.clonk.c4group</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c4p</extension> + <mime-type>application/vnd.clonk.c4group</mime-type> + </mime-mapping> + <mime-mapping> + <extension>c4u</extension> + <mime-type>application/vnd.clonk.c4group</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cab</extension> + <mime-type>application/vnd.ms-cab-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>caf</extension> + <mime-type>audio/x-caf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cap</extension> + <mime-type>application/vnd.tcpdump.pcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>car</extension> + <mime-type>application/vnd.curl.car</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cat</extension> + <mime-type>application/vnd.ms-pki.seccat</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cb7</extension> + <mime-type>application/x-cbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cba</extension> + <mime-type>application/x-cbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cbr</extension> + <mime-type>application/x-cbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cbt</extension> + <mime-type>application/x-cbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cbz</extension> + <mime-type>application/x-cbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cc</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cct</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ccxml</extension> + <mime-type>application/ccxml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdbcmsg</extension> + <mime-type>application/vnd.contact.cmsg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdf</extension> + <mime-type>application/x-cdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdkey</extension> + <mime-type>application/vnd.mediastation.cdkey</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdmia</extension> + <mime-type>application/cdmi-capability</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdmic</extension> + <mime-type>application/cdmi-container</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdmid</extension> + <mime-type>application/cdmi-domain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdmio</extension> + <mime-type>application/cdmi-object</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdmiq</extension> + <mime-type>application/cdmi-queue</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdx</extension> + <mime-type>chemical/x-cdx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdxml</extension> + <mime-type>application/vnd.chemdraw+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cdy</extension> + <mime-type>application/vnd.cinderella</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cer</extension> + <mime-type>application/pkix-cert</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cfs</extension> + <mime-type>application/x-cfs-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cgm</extension> + <mime-type>image/cgm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>chat</extension> + <mime-type>application/x-chat</mime-type> + </mime-mapping> + <mime-mapping> + <extension>chm</extension> + <mime-type>application/vnd.ms-htmlhelp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>chrt</extension> + <mime-type>application/vnd.kde.kchart</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cif</extension> + <mime-type>chemical/x-cif</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cii</extension> + <mime-type>application/vnd.anser-web-certificate-issue-initiation</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cil</extension> + <mime-type>application/vnd.ms-artgalry</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cla</extension> + <mime-type>application/vnd.claymore</mime-type> + </mime-mapping> + <mime-mapping> + <extension>class</extension> + <mime-type>application/java</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clkk</extension> + <mime-type>application/vnd.crick.clicker.keyboard</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clkp</extension> + <mime-type>application/vnd.crick.clicker.palette</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clkt</extension> + <mime-type>application/vnd.crick.clicker.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clkw</extension> + <mime-type>application/vnd.crick.clicker.wordbank</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clkx</extension> + <mime-type>application/vnd.crick.clicker</mime-type> + </mime-mapping> + <mime-mapping> + <extension>clp</extension> + <mime-type>application/x-msclip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cmc</extension> + <mime-type>application/vnd.cosmocaller</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cmdf</extension> + <mime-type>chemical/x-cmdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cml</extension> + <mime-type>chemical/x-cml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cmp</extension> + <mime-type>application/vnd.yellowriver-custom-menu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cmx</extension> + <mime-type>image/x-cmx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cod</extension> + <mime-type>application/vnd.rim.cod</mime-type> + </mime-mapping> + <mime-mapping> + <extension>com</extension> + <mime-type>application/x-msdownload</mime-type> + </mime-mapping> + <mime-mapping> + <extension>conf</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cpio</extension> + <mime-type>application/x-cpio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cpp</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cpt</extension> + <mime-type>application/mac-compactpro</mime-type> + </mime-mapping> + <mime-mapping> + <extension>crd</extension> + <mime-type>application/x-mscardfile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>crl</extension> + <mime-type>application/pkix-crl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>crt</extension> + <mime-type>application/x-x509-ca-cert</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cryptonote</extension> + <mime-type>application/vnd.rig.cryptonote</mime-type> + </mime-mapping> + <mime-mapping> + <extension>csh</extension> + <mime-type>application/x-csh</mime-type> + </mime-mapping> + <mime-mapping> + <extension>csml</extension> + <mime-type>chemical/x-csml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>csp</extension> + <mime-type>application/vnd.commonspace</mime-type> + </mime-mapping> + <mime-mapping> + <extension>css</extension> + <mime-type>text/css</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cst</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>csv</extension> + <mime-type>text/csv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cu</extension> + <mime-type>application/cu-seeme</mime-type> + </mime-mapping> + <mime-mapping> + <extension>curl</extension> + <mime-type>text/vnd.curl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cww</extension> + <mime-type>application/prs.cww</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cxt</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>cxx</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dae</extension> + <mime-type>model/vnd.collada+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>daf</extension> + <mime-type>application/vnd.mobius.daf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dart</extension> + <mime-type>application/vnd.dart</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dataless</extension> + <mime-type>application/vnd.fdsn.seed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>davmount</extension> + <mime-type>application/davmount+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dbk</extension> + <mime-type>application/docbook+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dcr</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dcurl</extension> + <mime-type>text/vnd.curl.dcurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dd2</extension> + <mime-type>application/vnd.oma.dd2+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ddd</extension> + <mime-type>application/vnd.fujixerox.ddd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>deb</extension> + <mime-type>application/x-debian-package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>def</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>deploy</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>der</extension> + <mime-type>application/x-x509-ca-cert</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dfac</extension> + <mime-type>application/vnd.dreamfactory</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dgc</extension> + <mime-type>application/x-dgc-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dib</extension> + <mime-type>image/bmp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dic</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dir</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dis</extension> + <mime-type>application/vnd.mobius.dis</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dist</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>distz</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>djv</extension> + <mime-type>image/vnd.djvu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>djvu</extension> + <mime-type>image/vnd.djvu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dll</extension> + <mime-type>application/x-msdownload</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dmg</extension> + <mime-type>application/x-apple-diskimage</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dmp</extension> + <mime-type>application/vnd.tcpdump.pcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dms</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dna</extension> + <mime-type>application/vnd.dna</mime-type> + </mime-mapping> + <mime-mapping> + <extension>doc</extension> + <mime-type>application/msword</mime-type> + </mime-mapping> + <mime-mapping> + <extension>docm</extension> + <mime-type>application/vnd.ms-word.document.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>docx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dot</extension> + <mime-type>application/msword</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dotm</extension> + <mime-type>application/vnd.ms-word.template.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dotx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dp</extension> + <mime-type>application/vnd.osgi.dp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dpg</extension> + <mime-type>application/vnd.dpgraph</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dra</extension> + <mime-type>audio/vnd.dra</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dsc</extension> + <mime-type>text/prs.lines.tag</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dssc</extension> + <mime-type>application/dssc+der</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dtb</extension> + <mime-type>application/x-dtbook+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dtd</extension> + <mime-type>application/xml-dtd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dts</extension> + <mime-type>audio/vnd.dts</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dtshd</extension> + <mime-type>audio/vnd.dts.hd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dump</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dv</extension> + <mime-type>video/x-dv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dvb</extension> + <mime-type>video/vnd.dvb.file</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dvi</extension> + <mime-type>application/x-dvi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dwf</extension> + <mime-type>model/vnd.dwf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dwg</extension> + <mime-type>image/vnd.dwg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dxf</extension> + <mime-type>image/vnd.dxf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dxp</extension> + <mime-type>application/vnd.spotfire.dxp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>dxr</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ecelp4800</extension> + <mime-type>audio/vnd.nuera.ecelp4800</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ecelp7470</extension> + <mime-type>audio/vnd.nuera.ecelp7470</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ecelp9600</extension> + <mime-type>audio/vnd.nuera.ecelp9600</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ecma</extension> + <mime-type>application/ecmascript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>edm</extension> + <mime-type>application/vnd.novadigm.edm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>edx</extension> + <mime-type>application/vnd.novadigm.edx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>efif</extension> + <mime-type>application/vnd.picsel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ei6</extension> + <mime-type>application/vnd.pg.osasli</mime-type> + </mime-mapping> + <mime-mapping> + <extension>elc</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>emf</extension> + <mime-type>application/x-msmetafile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>eml</extension> + <mime-type>message/rfc822</mime-type> + </mime-mapping> + <mime-mapping> + <extension>emma</extension> + <mime-type>application/emma+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>emz</extension> + <mime-type>application/x-msmetafile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>eol</extension> + <mime-type>audio/vnd.digital-winds</mime-type> + </mime-mapping> + <mime-mapping> + <extension>eot</extension> + <mime-type>application/vnd.ms-fontobject</mime-type> + </mime-mapping> + <mime-mapping> + <extension>eps</extension> + <mime-type>application/postscript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>epub</extension> + <mime-type>application/epub+zip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>es3</extension> + <mime-type>application/vnd.eszigno3+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>esa</extension> + <mime-type>application/vnd.osgi.subsystem</mime-type> + </mime-mapping> + <mime-mapping> + <extension>esf</extension> + <mime-type>application/vnd.epson.esf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>et3</extension> + <mime-type>application/vnd.eszigno3+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>etx</extension> + <mime-type>text/x-setext</mime-type> + </mime-mapping> + <mime-mapping> + <extension>eva</extension> + <mime-type>application/x-eva</mime-type> + </mime-mapping> + <mime-mapping> + <extension>evy</extension> + <mime-type>application/x-envoy</mime-type> + </mime-mapping> + <mime-mapping> + <extension>exe</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>exi</extension> + <mime-type>application/exi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ext</extension> + <mime-type>application/vnd.novadigm.ext</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ez</extension> + <mime-type>application/andrew-inset</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ez2</extension> + <mime-type>application/vnd.ezpix-album</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ez3</extension> + <mime-type>application/vnd.ezpix-package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>f</extension> + <mime-type>text/x-fortran</mime-type> + </mime-mapping> + <mime-mapping> + <extension>f4v</extension> + <mime-type>video/x-f4v</mime-type> + </mime-mapping> + <mime-mapping> + <extension>f77</extension> + <mime-type>text/x-fortran</mime-type> + </mime-mapping> + <mime-mapping> + <extension>f90</extension> + <mime-type>text/x-fortran</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fbs</extension> + <mime-type>image/vnd.fastbidsheet</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fcdt</extension> + <mime-type>application/vnd.adobe.formscentral.fcdt</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fcs</extension> + <mime-type>application/vnd.isac.fcs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fdf</extension> + <mime-type>application/vnd.fdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fe_launch</extension> + <mime-type>application/vnd.denovo.fcselayout-link</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fg5</extension> + <mime-type>application/vnd.fujitsu.oasysgp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fgd</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fh</extension> + <mime-type>image/x-freehand</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fh4</extension> + <mime-type>image/x-freehand</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fh5</extension> + <mime-type>image/x-freehand</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fh7</extension> + <mime-type>image/x-freehand</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fhc</extension> + <mime-type>image/x-freehand</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fig</extension> + <mime-type>application/x-xfig</mime-type> + </mime-mapping> + <mime-mapping> + <extension>flac</extension> + <mime-type>audio/flac</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fli</extension> + <mime-type>video/x-fli</mime-type> + </mime-mapping> + <mime-mapping> + <extension>flo</extension> + <mime-type>application/vnd.micrografx.flo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>flv</extension> + <mime-type>video/x-flv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>flw</extension> + <mime-type>application/vnd.kde.kivio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>flx</extension> + <mime-type>text/vnd.fmi.flexstor</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fly</extension> + <mime-type>text/vnd.fly</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fm</extension> + <mime-type>application/vnd.framemaker</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fnc</extension> + <mime-type>application/vnd.frogans.fnc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>for</extension> + <mime-type>text/x-fortran</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fpx</extension> + <mime-type>image/vnd.fpx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>frame</extension> + <mime-type>application/vnd.framemaker</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fsc</extension> + <mime-type>application/vnd.fsc.weblaunch</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fst</extension> + <mime-type>image/vnd.fst</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ftc</extension> + <mime-type>application/vnd.fluxtime.clip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fti</extension> + <mime-type>application/vnd.anser-web-funds-transfer-initiation</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fvt</extension> + <mime-type>video/vnd.fvt</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fxp</extension> + <mime-type>application/vnd.adobe.fxp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fxpl</extension> + <mime-type>application/vnd.adobe.fxp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>fzs</extension> + <mime-type>application/vnd.fuzzysheet</mime-type> + </mime-mapping> + <mime-mapping> + <extension>g2w</extension> + <mime-type>application/vnd.geoplan</mime-type> + </mime-mapping> + <mime-mapping> + <extension>g3</extension> + <mime-type>image/g3fax</mime-type> + </mime-mapping> + <mime-mapping> + <extension>g3w</extension> + <mime-type>application/vnd.geospace</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gac</extension> + <mime-type>application/vnd.groove-account</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gam</extension> + <mime-type>application/x-tads</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gbr</extension> + <mime-type>application/rpki-ghostbusters</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gca</extension> + <mime-type>application/x-gca-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gdl</extension> + <mime-type>model/vnd.gdl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>geo</extension> + <mime-type>application/vnd.dynageo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gex</extension> + <mime-type>application/vnd.geometry-explorer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ggb</extension> + <mime-type>application/vnd.geogebra.file</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ggt</extension> + <mime-type>application/vnd.geogebra.tool</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ghf</extension> + <mime-type>application/vnd.groove-help</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gif</extension> + <mime-type>image/gif</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gim</extension> + <mime-type>application/vnd.groove-identity-message</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gml</extension> + <mime-type>application/gml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gmx</extension> + <mime-type>application/vnd.gmx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gnumeric</extension> + <mime-type>application/x-gnumeric</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gph</extension> + <mime-type>application/vnd.flographit</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gpx</extension> + <mime-type>application/gpx+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gqf</extension> + <mime-type>application/vnd.grafeq</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gqs</extension> + <mime-type>application/vnd.grafeq</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gram</extension> + <mime-type>application/srgs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gramps</extension> + <mime-type>application/x-gramps-xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gre</extension> + <mime-type>application/vnd.geometry-explorer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>grv</extension> + <mime-type>application/vnd.groove-injector</mime-type> + </mime-mapping> + <mime-mapping> + <extension>grxml</extension> + <mime-type>application/srgs+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gsf</extension> + <mime-type>application/x-font-ghostscript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gtar</extension> + <mime-type>application/x-gtar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gtm</extension> + <mime-type>application/vnd.groove-tool-message</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gtw</extension> + <mime-type>model/vnd.gtw</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gv</extension> + <mime-type>text/vnd.graphviz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gxf</extension> + <mime-type>application/gxf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gxt</extension> + <mime-type>application/vnd.geonext</mime-type> + </mime-mapping> + <mime-mapping> + <extension>gz</extension> + <mime-type>application/x-gzip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>h</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>h261</extension> + <mime-type>video/h261</mime-type> + </mime-mapping> + <mime-mapping> + <extension>h263</extension> + <mime-type>video/h263</mime-type> + </mime-mapping> + <mime-mapping> + <extension>h264</extension> + <mime-type>video/h264</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hal</extension> + <mime-type>application/vnd.hal+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hbci</extension> + <mime-type>application/vnd.hbci</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hdf</extension> + <mime-type>application/x-hdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hh</extension> + <mime-type>text/x-c</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hlp</extension> + <mime-type>application/winhlp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hpgl</extension> + <mime-type>application/vnd.hp-hpgl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hpid</extension> + <mime-type>application/vnd.hp-hpid</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hps</extension> + <mime-type>application/vnd.hp-hps</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hqx</extension> + <mime-type>application/mac-binhex40</mime-type> + </mime-mapping> + <mime-mapping> + <extension>htc</extension> + <mime-type>text/x-component</mime-type> + </mime-mapping> + <mime-mapping> + <extension>htke</extension> + <mime-type>application/vnd.kenameaapp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>htm</extension> + <mime-type>text/html</mime-type> + </mime-mapping> + <mime-mapping> + <extension>html</extension> + <mime-type>text/html</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hvd</extension> + <mime-type>application/vnd.yamaha.hv-dic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hvp</extension> + <mime-type>application/vnd.yamaha.hv-voice</mime-type> + </mime-mapping> + <mime-mapping> + <extension>hvs</extension> + <mime-type>application/vnd.yamaha.hv-script</mime-type> + </mime-mapping> + <mime-mapping> + <extension>i2g</extension> + <mime-type>application/vnd.intergeo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>icc</extension> + <mime-type>application/vnd.iccprofile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ice</extension> + <mime-type>x-conference/x-cooltalk</mime-type> + </mime-mapping> + <mime-mapping> + <extension>icm</extension> + <mime-type>application/vnd.iccprofile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ico</extension> + <mime-type>image/x-icon</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ics</extension> + <mime-type>text/calendar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ief</extension> + <mime-type>image/ief</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ifb</extension> + <mime-type>text/calendar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ifm</extension> + <mime-type>application/vnd.shana.informed.formdata</mime-type> + </mime-mapping> + <mime-mapping> + <extension>iges</extension> + <mime-type>model/iges</mime-type> + </mime-mapping> + <mime-mapping> + <extension>igl</extension> + <mime-type>application/vnd.igloader</mime-type> + </mime-mapping> + <mime-mapping> + <extension>igm</extension> + <mime-type>application/vnd.insors.igm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>igs</extension> + <mime-type>model/iges</mime-type> + </mime-mapping> + <mime-mapping> + <extension>igx</extension> + <mime-type>application/vnd.micrografx.igx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>iif</extension> + <mime-type>application/vnd.shana.informed.interchange</mime-type> + </mime-mapping> + <mime-mapping> + <extension>imp</extension> + <mime-type>application/vnd.accpac.simply.imp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ims</extension> + <mime-type>application/vnd.ms-ims</mime-type> + </mime-mapping> + <mime-mapping> + <extension>in</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ink</extension> + <mime-type>application/inkml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>inkml</extension> + <mime-type>application/inkml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>install</extension> + <mime-type>application/x-install-instructions</mime-type> + </mime-mapping> + <mime-mapping> + <extension>iota</extension> + <mime-type>application/vnd.astraea-software.iota</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ipfix</extension> + <mime-type>application/ipfix</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ipk</extension> + <mime-type>application/vnd.shana.informed.package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>irm</extension> + <mime-type>application/vnd.ibm.rights-management</mime-type> + </mime-mapping> + <mime-mapping> + <extension>irp</extension> + <mime-type>application/vnd.irepository.package+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>iso</extension> + <mime-type>application/x-iso9660-image</mime-type> + </mime-mapping> + <mime-mapping> + <extension>itp</extension> + <mime-type>application/vnd.shana.informed.formtemplate</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ivp</extension> + <mime-type>application/vnd.immervision-ivp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ivu</extension> + <mime-type>application/vnd.immervision-ivu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jad</extension> + <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jam</extension> + <mime-type>application/vnd.jam</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jar</extension> + <mime-type>application/java-archive</mime-type> + </mime-mapping> + <mime-mapping> + <extension>java</extension> + <mime-type>text/x-java-source</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jisp</extension> + <mime-type>application/vnd.jisp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jlt</extension> + <mime-type>application/vnd.hp-jlyt</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jnlp</extension> + <mime-type>application/x-java-jnlp-file</mime-type> + </mime-mapping> + <mime-mapping> + <extension>joda</extension> + <mime-type>application/vnd.joost.joda-archive</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpe</extension> + <mime-type>image/jpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpeg</extension> + <mime-type>image/jpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpg</extension> + <mime-type>image/jpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpgm</extension> + <mime-type>video/jpm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpgv</extension> + <mime-type>video/jpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jpm</extension> + <mime-type>video/jpm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>js</extension> + <mime-type>application/javascript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jsf</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>json</extension> + <mime-type>application/json</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jsonml</extension> + <mime-type>application/jsonml+json</mime-type> + </mime-mapping> + <mime-mapping> + <extension>jspf</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kar</extension> + <mime-type>audio/midi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>karbon</extension> + <mime-type>application/vnd.kde.karbon</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kfo</extension> + <mime-type>application/vnd.kde.kformula</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kia</extension> + <mime-type>application/vnd.kidspiration</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kml</extension> + <mime-type>application/vnd.google-earth.kml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kmz</extension> + <mime-type>application/vnd.google-earth.kmz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kne</extension> + <mime-type>application/vnd.kinar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>knp</extension> + <mime-type>application/vnd.kinar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kon</extension> + <mime-type>application/vnd.kde.kontour</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kpr</extension> + <mime-type>application/vnd.kde.kpresenter</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kpt</extension> + <mime-type>application/vnd.kde.kpresenter</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kpxx</extension> + <mime-type>application/vnd.ds-keypoint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ksp</extension> + <mime-type>application/vnd.kde.kspread</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ktr</extension> + <mime-type>application/vnd.kahootz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ktx</extension> + <mime-type>image/ktx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ktz</extension> + <mime-type>application/vnd.kahootz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kwd</extension> + <mime-type>application/vnd.kde.kword</mime-type> + </mime-mapping> + <mime-mapping> + <extension>kwt</extension> + <mime-type>application/vnd.kde.kword</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lasxml</extension> + <mime-type>application/vnd.las.las+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>latex</extension> + <mime-type>application/x-latex</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lbd</extension> + <mime-type>application/vnd.llamagraphics.life-balance.desktop</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lbe</extension> + <mime-type>application/vnd.llamagraphics.life-balance.exchange+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>les</extension> + <mime-type>application/vnd.hhe.lesson-player</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lha</extension> + <mime-type>application/x-lzh-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>link66</extension> + <mime-type>application/vnd.route66.link66+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>list</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>list3820</extension> + <mime-type>application/vnd.ibm.modcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>listafp</extension> + <mime-type>application/vnd.ibm.modcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lnk</extension> + <mime-type>application/x-ms-shortcut</mime-type> + </mime-mapping> + <mime-mapping> + <extension>log</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lostxml</extension> + <mime-type>application/lost+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lrf</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lrm</extension> + <mime-type>application/vnd.ms-lrm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ltf</extension> + <mime-type>application/vnd.frogans.ltf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lvp</extension> + <mime-type>audio/vnd.lucent.voice</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lwp</extension> + <mime-type>application/vnd.lotus-wordpro</mime-type> + </mime-mapping> + <mime-mapping> + <extension>lzh</extension> + <mime-type>application/x-lzh-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m13</extension> + <mime-type>application/x-msmediaview</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m14</extension> + <mime-type>application/x-msmediaview</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m1v</extension> + <mime-type>video/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m21</extension> + <mime-type>application/mp21</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m2a</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m2v</extension> + <mime-type>video/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m3a</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m3u</extension> + <mime-type>audio/x-mpegurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m3u8</extension> + <mime-type>application/vnd.apple.mpegurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m4a</extension> + <mime-type>audio/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m4b</extension> + <mime-type>audio/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m4r</extension> + <mime-type>audio/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m4u</extension> + <mime-type>video/vnd.mpegurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>m4v</extension> + <mime-type>video/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ma</extension> + <mime-type>application/mathematica</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mac</extension> + <mime-type>image/x-macpaint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mads</extension> + <mime-type>application/mads+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mag</extension> + <mime-type>application/vnd.ecowin.chart</mime-type> + </mime-mapping> + <mime-mapping> + <extension>maker</extension> + <mime-type>application/vnd.framemaker</mime-type> + </mime-mapping> + <mime-mapping> + <extension>man</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mar</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mathml</extension> + <mime-type>application/mathml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mb</extension> + <mime-type>application/mathematica</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mbk</extension> + <mime-type>application/vnd.mobius.mbk</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mbox</extension> + <mime-type>application/mbox</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mc1</extension> + <mime-type>application/vnd.medcalcdata</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mcd</extension> + <mime-type>application/vnd.mcd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mcurl</extension> + <mime-type>text/vnd.curl.mcurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mdb</extension> + <mime-type>application/x-msaccess</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mdi</extension> + <mime-type>image/vnd.ms-modi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>me</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mesh</extension> + <mime-type>model/mesh</mime-type> + </mime-mapping> + <mime-mapping> + <extension>meta4</extension> + <mime-type>application/metalink4+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>metalink</extension> + <mime-type>application/metalink+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mets</extension> + <mime-type>application/mets+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mfm</extension> + <mime-type>application/vnd.mfmp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mft</extension> + <mime-type>application/rpki-manifest</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mgp</extension> + <mime-type>application/vnd.osgeo.mapguide.package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mgz</extension> + <mime-type>application/vnd.proteus.magazine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mid</extension> + <mime-type>audio/midi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>midi</extension> + <mime-type>audio/midi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mie</extension> + <mime-type>application/x-mie</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mif</extension> + <mime-type>application/x-mif</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mime</extension> + <mime-type>message/rfc822</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mj2</extension> + <mime-type>video/mj2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mjp2</extension> + <mime-type>video/mj2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mk3d</extension> + <mime-type>video/x-matroska</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mka</extension> + <mime-type>audio/x-matroska</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mks</extension> + <mime-type>video/x-matroska</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mkv</extension> + <mime-type>video/x-matroska</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mlp</extension> + <mime-type>application/vnd.dolby.mlp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mmd</extension> + <mime-type>application/vnd.chipnuts.karaoke-mmd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mmf</extension> + <mime-type>application/vnd.smaf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mmr</extension> + <mime-type>image/vnd.fujixerox.edmics-mmr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mng</extension> + <mime-type>video/x-mng</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mny</extension> + <mime-type>application/x-msmoney</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mobi</extension> + <mime-type>application/x-mobipocket-ebook</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mods</extension> + <mime-type>application/mods+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mov</extension> + <mime-type>video/quicktime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>movie</extension> + <mime-type>video/x-sgi-movie</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp1</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp2</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp21</extension> + <mime-type>application/mp21</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp2a</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp3</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp4</extension> + <mime-type>video/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp4a</extension> + <mime-type>audio/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp4s</extension> + <mime-type>application/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mp4v</extension> + <mime-type>video/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpa</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpc</extension> + <mime-type>application/vnd.mophun.certificate</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpe</extension> + <mime-type>video/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpeg</extension> + <mime-type>video/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpega</extension> + <mime-type>audio/x-mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpg</extension> + <mime-type>video/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpg4</extension> + <mime-type>video/mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpga</extension> + <mime-type>audio/mpeg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpkg</extension> + <mime-type>application/vnd.apple.installer+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpm</extension> + <mime-type>application/vnd.blueice.multipass</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpn</extension> + <mime-type>application/vnd.mophun.application</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpp</extension> + <mime-type>application/vnd.ms-project</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpt</extension> + <mime-type>application/vnd.ms-project</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpv2</extension> + <mime-type>video/mpeg2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mpy</extension> + <mime-type>application/vnd.ibm.minipay</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mqy</extension> + <mime-type>application/vnd.mobius.mqy</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mrc</extension> + <mime-type>application/marc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mrcx</extension> + <mime-type>application/marcxml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ms</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mscml</extension> + <mime-type>application/mediaservercontrol+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mseed</extension> + <mime-type>application/vnd.fdsn.mseed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mseq</extension> + <mime-type>application/vnd.mseq</mime-type> + </mime-mapping> + <mime-mapping> + <extension>msf</extension> + <mime-type>application/vnd.epson.msf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>msh</extension> + <mime-type>model/mesh</mime-type> + </mime-mapping> + <mime-mapping> + <extension>msi</extension> + <mime-type>application/x-msdownload</mime-type> + </mime-mapping> + <mime-mapping> + <extension>msl</extension> + <mime-type>application/vnd.mobius.msl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>msty</extension> + <mime-type>application/vnd.muvee.style</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mts</extension> + <mime-type>model/vnd.mts</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mus</extension> + <mime-type>application/vnd.musician</mime-type> + </mime-mapping> + <mime-mapping> + <extension>musicxml</extension> + <mime-type>application/vnd.recordare.musicxml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mvb</extension> + <mime-type>application/x-msmediaview</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mwf</extension> + <mime-type>application/vnd.mfer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mxf</extension> + <mime-type>application/mxf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mxl</extension> + <mime-type>application/vnd.recordare.musicxml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mxml</extension> + <mime-type>application/xv+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mxs</extension> + <mime-type>application/vnd.triscape.mxs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>mxu</extension> + <mime-type>video/vnd.mpegurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>n-gage</extension> + <mime-type>application/vnd.nokia.n-gage.symbian.install</mime-type> + </mime-mapping> + <mime-mapping> + <extension>n3</extension> + <mime-type>text/n3</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nb</extension> + <mime-type>application/mathematica</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nbp</extension> + <mime-type>application/vnd.wolfram.player</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nc</extension> + <mime-type>application/x-netcdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ncx</extension> + <mime-type>application/x-dtbncx+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nfo</extension> + <mime-type>text/x-nfo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ngdat</extension> + <mime-type>application/vnd.nokia.n-gage.data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nitf</extension> + <mime-type>application/vnd.nitf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nlu</extension> + <mime-type>application/vnd.neurolanguage.nlu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nml</extension> + <mime-type>application/vnd.enliven</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nnd</extension> + <mime-type>application/vnd.noblenet-directory</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nns</extension> + <mime-type>application/vnd.noblenet-sealer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nnw</extension> + <mime-type>application/vnd.noblenet-web</mime-type> + </mime-mapping> + <mime-mapping> + <extension>npx</extension> + <mime-type>image/vnd.net-fpx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nsc</extension> + <mime-type>application/x-conference</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nsf</extension> + <mime-type>application/vnd.lotus-notes</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ntf</extension> + <mime-type>application/vnd.nitf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>nzb</extension> + <mime-type>application/x-nzb</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oa2</extension> + <mime-type>application/vnd.fujitsu.oasys2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oa3</extension> + <mime-type>application/vnd.fujitsu.oasys3</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oas</extension> + <mime-type>application/vnd.fujitsu.oasys</mime-type> + </mime-mapping> + <mime-mapping> + <extension>obd</extension> + <mime-type>application/x-msbinder</mime-type> + </mime-mapping> + <mime-mapping> + <extension>obj</extension> + <mime-type>application/x-tgif</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oda</extension> + <mime-type>application/oda</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Database --> + <extension>odb</extension> + <mime-type>application/vnd.oasis.opendocument.database</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Chart --> + <extension>odc</extension> + <mime-type>application/vnd.oasis.opendocument.chart</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Formula --> + <extension>odf</extension> + <mime-type>application/vnd.oasis.opendocument.formula</mime-type> + </mime-mapping> + <mime-mapping> + <extension>odft</extension> + <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Drawing --> + <extension>odg</extension> + <mime-type>application/vnd.oasis.opendocument.graphics</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Image --> + <extension>odi</extension> + <mime-type>application/vnd.oasis.opendocument.image</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Master Document --> + <extension>odm</extension> + <mime-type>application/vnd.oasis.opendocument.text-master</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Presentation --> + <extension>odp</extension> + <mime-type>application/vnd.oasis.opendocument.presentation</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Spreadsheet --> + <extension>ods</extension> + <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Text --> + <extension>odt</extension> + <mime-type>application/vnd.oasis.opendocument.text</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oga</extension> + <mime-type>audio/ogg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ogg</extension> + <mime-type>audio/ogg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ogv</extension> + <mime-type>video/ogg</mime-type> + </mime-mapping> + <mime-mapping> + <!-- xiph mime types --> + <extension>ogx</extension> + <mime-type>application/ogg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>omdoc</extension> + <mime-type>application/omdoc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>onepkg</extension> + <mime-type>application/onenote</mime-type> + </mime-mapping> + <mime-mapping> + <extension>onetmp</extension> + <mime-type>application/onenote</mime-type> + </mime-mapping> + <mime-mapping> + <extension>onetoc</extension> + <mime-type>application/onenote</mime-type> + </mime-mapping> + <mime-mapping> + <extension>onetoc2</extension> + <mime-type>application/onenote</mime-type> + </mime-mapping> + <mime-mapping> + <extension>opf</extension> + <mime-type>application/oebps-package+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>opml</extension> + <mime-type>text/x-opml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oprc</extension> + <mime-type>application/vnd.palm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>org</extension> + <mime-type>application/vnd.lotus-organizer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>osf</extension> + <mime-type>application/vnd.yamaha.openscoreformat</mime-type> + </mime-mapping> + <mime-mapping> + <extension>osfpvg</extension> + <mime-type>application/vnd.yamaha.openscoreformat.osfpvg+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>otc</extension> + <mime-type>application/vnd.oasis.opendocument.chart-template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>otf</extension> + <mime-type>font/otf</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Drawing Template --> + <extension>otg</extension> + <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type> + </mime-mapping> + <mime-mapping> + <!-- HTML Document Template --> + <extension>oth</extension> + <mime-type>application/vnd.oasis.opendocument.text-web</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oti</extension> + <mime-type>application/vnd.oasis.opendocument.image-template</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Presentation Template --> + <extension>otp</extension> + <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Spreadsheet Template --> + <extension>ots</extension> + <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type> + </mime-mapping> + <mime-mapping> + <!-- OpenDocument Text Template --> + <extension>ott</extension> + <mime-type>application/vnd.oasis.opendocument.text-template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oxps</extension> + <mime-type>application/oxps</mime-type> + </mime-mapping> + <mime-mapping> + <extension>oxt</extension> + <mime-type>application/vnd.openofficeorg.extension</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p</extension> + <mime-type>text/x-pascal</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p10</extension> + <mime-type>application/pkcs10</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p12</extension> + <mime-type>application/x-pkcs12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p7b</extension> + <mime-type>application/x-pkcs7-certificates</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p7c</extension> + <mime-type>application/pkcs7-mime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p7m</extension> + <mime-type>application/pkcs7-mime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p7r</extension> + <mime-type>application/x-pkcs7-certreqresp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p7s</extension> + <mime-type>application/pkcs7-signature</mime-type> + </mime-mapping> + <mime-mapping> + <extension>p8</extension> + <mime-type>application/pkcs8</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pas</extension> + <mime-type>text/x-pascal</mime-type> + </mime-mapping> + <mime-mapping> + <extension>paw</extension> + <mime-type>application/vnd.pawaafile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pbd</extension> + <mime-type>application/vnd.powerbuilder6</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pbm</extension> + <mime-type>image/x-portable-bitmap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pcap</extension> + <mime-type>application/vnd.tcpdump.pcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pcf</extension> + <mime-type>application/x-font-pcf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pcl</extension> + <mime-type>application/vnd.hp-pcl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pclxl</extension> + <mime-type>application/vnd.hp-pclxl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pct</extension> + <mime-type>image/pict</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pcurl</extension> + <mime-type>application/vnd.curl.pcurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pcx</extension> + <mime-type>image/x-pcx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pdb</extension> + <mime-type>application/vnd.palm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pdf</extension> + <mime-type>application/pdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pfa</extension> + <mime-type>application/x-font-type1</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pfb</extension> + <mime-type>application/x-font-type1</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pfm</extension> + <mime-type>application/x-font-type1</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pfr</extension> + <mime-type>application/font-tdpfr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pfx</extension> + <mime-type>application/x-pkcs12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pgm</extension> + <mime-type>image/x-portable-graymap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pgn</extension> + <mime-type>application/x-chess-pgn</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pgp</extension> + <mime-type>application/pgp-encrypted</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pic</extension> + <mime-type>image/pict</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pict</extension> + <mime-type>image/pict</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pkg</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pki</extension> + <mime-type>application/pkixcmp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pkipath</extension> + <mime-type>application/pkix-pkipath</mime-type> + </mime-mapping> + <mime-mapping> + <extension>plb</extension> + <mime-type>application/vnd.3gpp.pic-bw-large</mime-type> + </mime-mapping> + <mime-mapping> + <extension>plc</extension> + <mime-type>application/vnd.mobius.plc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>plf</extension> + <mime-type>application/vnd.pocketlearn</mime-type> + </mime-mapping> + <mime-mapping> + + <extension>pls</extension> + <mime-type>audio/x-scpls</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pml</extension> + <mime-type>application/vnd.ctc-posml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>png</extension> + <mime-type>image/png</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pnm</extension> + <mime-type>image/x-portable-anymap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pnt</extension> + <mime-type>image/x-macpaint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>portpkg</extension> + <mime-type>application/vnd.macports.portpkg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pot</extension> + <mime-type>application/vnd.ms-powerpoint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>potm</extension> + <mime-type>application/vnd.ms-powerpoint.template.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>potx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.presentationml.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppam</extension> + <mime-type>application/vnd.ms-powerpoint.addin.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppd</extension> + <mime-type>application/vnd.cups-ppd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppm</extension> + <mime-type>image/x-portable-pixmap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pps</extension> + <mime-type>application/vnd.ms-powerpoint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppsm</extension> + <mime-type>application/vnd.ms-powerpoint.slideshow.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppsx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slideshow</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ppt</extension> + <mime-type>application/vnd.ms-powerpoint</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pptm</extension> + <mime-type>application/vnd.ms-powerpoint.presentation.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pptx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.presentationml.presentation</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pqa</extension> + <mime-type>application/vnd.palm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>prc</extension> + <mime-type>application/x-mobipocket-ebook</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pre</extension> + <mime-type>application/vnd.lotus-freelance</mime-type> + </mime-mapping> + <mime-mapping> + <extension>prf</extension> + <mime-type>application/pics-rules</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ps</extension> + <mime-type>application/postscript</mime-type> + </mime-mapping> + <mime-mapping> + <extension>psb</extension> + <mime-type>application/vnd.3gpp.pic-bw-small</mime-type> + </mime-mapping> + <mime-mapping> + <extension>psd</extension> + <mime-type>image/vnd.adobe.photoshop</mime-type> + </mime-mapping> + <mime-mapping> + <extension>psf</extension> + <mime-type>application/x-font-linux-psf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pskcxml</extension> + <mime-type>application/pskc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ptid</extension> + <mime-type>application/vnd.pvi.ptid1</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pub</extension> + <mime-type>application/x-mspublisher</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pvb</extension> + <mime-type>application/vnd.3gpp.pic-bw-var</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pwn</extension> + <mime-type>application/vnd.3m.post-it-notes</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pya</extension> + <mime-type>audio/vnd.ms-playready.media.pya</mime-type> + </mime-mapping> + <mime-mapping> + <extension>pyv</extension> + <mime-type>video/vnd.ms-playready.media.pyv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qam</extension> + <mime-type>application/vnd.epson.quickanime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qbo</extension> + <mime-type>application/vnd.intu.qbo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qfx</extension> + <mime-type>application/vnd.intu.qfx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qps</extension> + <mime-type>application/vnd.publishare-delta-tree</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qt</extension> + <mime-type>video/quicktime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qti</extension> + <mime-type>image/x-quicktime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qtif</extension> + <mime-type>image/x-quicktime</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qwd</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qwt</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qxb</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qxd</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qxl</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>qxt</extension> + <mime-type>application/vnd.quark.quarkxpress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ra</extension> + <mime-type>audio/x-pn-realaudio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ram</extension> + <mime-type>audio/x-pn-realaudio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rar</extension> + <mime-type>application/x-rar-compressed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ras</extension> + <mime-type>image/x-cmu-raster</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rcprofile</extension> + <mime-type>application/vnd.ipunplugged.rcprofile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rdf</extension> + <mime-type>application/rdf+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rdz</extension> + <mime-type>application/vnd.data-vision.rdz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rep</extension> + <mime-type>application/vnd.businessobjects</mime-type> + </mime-mapping> + <mime-mapping> + <extension>res</extension> + <mime-type>application/x-dtbresource+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rgb</extension> + <mime-type>image/x-rgb</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rif</extension> + <mime-type>application/reginfo+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rip</extension> + <mime-type>audio/vnd.rip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ris</extension> + <mime-type>application/x-research-info-systems</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rl</extension> + <mime-type>application/resource-lists+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rlc</extension> + <mime-type>image/vnd.fujixerox.edmics-rlc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rld</extension> + <mime-type>application/resource-lists-diff+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rm</extension> + <mime-type>application/vnd.rn-realmedia</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rmi</extension> + <mime-type>audio/midi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rmp</extension> + <mime-type>audio/x-pn-realaudio-plugin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rms</extension> + <mime-type>application/vnd.jcp.javame.midlet-rms</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rmvb</extension> + <mime-type>application/vnd.rn-realmedia-vbr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rnc</extension> + <mime-type>application/relax-ng-compact-syntax</mime-type> + </mime-mapping> + <mime-mapping> + <extension>roa</extension> + <mime-type>application/rpki-roa</mime-type> + </mime-mapping> + <mime-mapping> + <extension>roff</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rp9</extension> + <mime-type>application/vnd.cloanto.rp9</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rpss</extension> + <mime-type>application/vnd.nokia.radio-presets</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rpst</extension> + <mime-type>application/vnd.nokia.radio-preset</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rq</extension> + <mime-type>application/sparql-query</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rs</extension> + <mime-type>application/rls-services+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rsd</extension> + <mime-type>application/rsd+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rss</extension> + <mime-type>application/rss+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rtf</extension> + <mime-type>application/rtf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>rtx</extension> + <mime-type>text/richtext</mime-type> + </mime-mapping> + <mime-mapping> + <extension>s</extension> + <mime-type>text/x-asm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>s3m</extension> + <mime-type>audio/s3m</mime-type> + </mime-mapping> + <mime-mapping> + <extension>saf</extension> + <mime-type>application/vnd.yamaha.smaf-audio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sbml</extension> + <mime-type>application/sbml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sc</extension> + <mime-type>application/vnd.ibm.secure-container</mime-type> + </mime-mapping> + <mime-mapping> + <extension>scd</extension> + <mime-type>application/x-msschedule</mime-type> + </mime-mapping> + <mime-mapping> + <extension>scm</extension> + <mime-type>application/vnd.lotus-screencam</mime-type> + </mime-mapping> + <mime-mapping> + <extension>scq</extension> + <mime-type>application/scvp-cv-request</mime-type> + </mime-mapping> + <mime-mapping> + <extension>scs</extension> + <mime-type>application/scvp-cv-response</mime-type> + </mime-mapping> + <mime-mapping> + <extension>scurl</extension> + <mime-type>text/vnd.curl.scurl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sda</extension> + <mime-type>application/vnd.stardivision.draw</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdc</extension> + <mime-type>application/vnd.stardivision.calc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdd</extension> + <mime-type>application/vnd.stardivision.impress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdkd</extension> + <mime-type>application/vnd.solent.sdkm+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdkm</extension> + <mime-type>application/vnd.solent.sdkm+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdp</extension> + <mime-type>application/sdp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sdw</extension> + <mime-type>application/vnd.stardivision.writer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>see</extension> + <mime-type>application/vnd.seemail</mime-type> + </mime-mapping> + <mime-mapping> + <extension>seed</extension> + <mime-type>application/vnd.fdsn.seed</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sema</extension> + <mime-type>application/vnd.sema</mime-type> + </mime-mapping> + <mime-mapping> + <extension>semd</extension> + <mime-type>application/vnd.semd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>semf</extension> + <mime-type>application/vnd.semf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ser</extension> + <mime-type>application/java-serialized-object</mime-type> + </mime-mapping> + <mime-mapping> + <extension>setpay</extension> + <mime-type>application/set-payment-initiation</mime-type> + </mime-mapping> + <mime-mapping> + <extension>setreg</extension> + <mime-type>application/set-registration-initiation</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sfd-hdstx</extension> + <mime-type>application/vnd.hydrostatix.sof-data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sfs</extension> + <mime-type>application/vnd.spotfire.sfs</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sfv</extension> + <mime-type>text/x-sfv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sgi</extension> + <mime-type>image/sgi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sgl</extension> + <mime-type>application/vnd.stardivision.writer-global</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sgm</extension> + <mime-type>text/sgml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sgml</extension> + <mime-type>text/sgml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sh</extension> + <mime-type>application/x-sh</mime-type> + </mime-mapping> + <mime-mapping> + <extension>shar</extension> + <mime-type>application/x-shar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>shf</extension> + <mime-type>application/shf+xml</mime-type> + </mime-mapping> + <!-- + <mime-mapping> + <extension>shtml</extension> + <mime-type>text/x-server-parsed-html</mime-type> + </mime-mapping> + --> + <mime-mapping> + <extension>sid</extension> + <mime-type>image/x-mrsid-image</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sig</extension> + <mime-type>application/pgp-signature</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sil</extension> + <mime-type>audio/silk</mime-type> + </mime-mapping> + <mime-mapping> + <extension>silo</extension> + <mime-type>model/mesh</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sis</extension> + <mime-type>application/vnd.symbian.install</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sisx</extension> + <mime-type>application/vnd.symbian.install</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sit</extension> + <mime-type>application/x-stuffit</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sitx</extension> + <mime-type>application/x-stuffitx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>skd</extension> + <mime-type>application/vnd.koan</mime-type> + </mime-mapping> + <mime-mapping> + <extension>skm</extension> + <mime-type>application/vnd.koan</mime-type> + </mime-mapping> + <mime-mapping> + <extension>skp</extension> + <mime-type>application/vnd.koan</mime-type> + </mime-mapping> + <mime-mapping> + <extension>skt</extension> + <mime-type>application/vnd.koan</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sldm</extension> + <mime-type>application/vnd.ms-powerpoint.slide.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sldx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slide</mime-type> + </mime-mapping> + <mime-mapping> + <extension>slt</extension> + <mime-type>application/vnd.epson.salt</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sm</extension> + <mime-type>application/vnd.stepmania.stepchart</mime-type> + </mime-mapping> + <mime-mapping> + <extension>smf</extension> + <mime-type>application/vnd.stardivision.math</mime-type> + </mime-mapping> + <mime-mapping> + <extension>smi</extension> + <mime-type>application/smil+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>smil</extension> + <mime-type>application/smil+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>smv</extension> + <mime-type>video/x-smv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>smzip</extension> + <mime-type>application/vnd.stepmania.package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>snd</extension> + <mime-type>audio/basic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>snf</extension> + <mime-type>application/x-font-snf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>so</extension> + <mime-type>application/octet-stream</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spc</extension> + <mime-type>application/x-pkcs7-certificates</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spf</extension> + <mime-type>application/vnd.yamaha.smaf-phrase</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spl</extension> + <mime-type>application/x-futuresplash</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spot</extension> + <mime-type>text/vnd.in3d.spot</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spp</extension> + <mime-type>application/scvp-vp-response</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spq</extension> + <mime-type>application/scvp-vp-request</mime-type> + </mime-mapping> + <mime-mapping> + <extension>spx</extension> + <mime-type>audio/ogg</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sql</extension> + <mime-type>application/x-sql</mime-type> + </mime-mapping> + <mime-mapping> + <extension>src</extension> + <mime-type>application/x-wais-source</mime-type> + </mime-mapping> + <mime-mapping> + <extension>srt</extension> + <mime-type>application/x-subrip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sru</extension> + <mime-type>application/sru+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>srx</extension> + <mime-type>application/sparql-results+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ssdl</extension> + <mime-type>application/ssdl+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sse</extension> + <mime-type>application/vnd.kodak-descriptor</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ssf</extension> + <mime-type>application/vnd.epson.ssf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ssml</extension> + <mime-type>application/ssml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>st</extension> + <mime-type>application/vnd.sailingtracker.track</mime-type> + </mime-mapping> + <mime-mapping> + <extension>stc</extension> + <mime-type>application/vnd.sun.xml.calc.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>std</extension> + <mime-type>application/vnd.sun.xml.draw.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>stf</extension> + <mime-type>application/vnd.wt.stf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sti</extension> + <mime-type>application/vnd.sun.xml.impress.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>stk</extension> + <mime-type>application/hyperstudio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>stl</extension> + <mime-type>application/vnd.ms-pki.stl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>str</extension> + <mime-type>application/vnd.pg.format</mime-type> + </mime-mapping> + <mime-mapping> + <extension>stw</extension> + <mime-type>application/vnd.sun.xml.writer.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sub</extension> + <mime-type>text/vnd.dvb.subtitle</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sus</extension> + <mime-type>application/vnd.sus-calendar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>susp</extension> + <mime-type>application/vnd.sus-calendar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sv4cpio</extension> + <mime-type>application/x-sv4cpio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sv4crc</extension> + <mime-type>application/x-sv4crc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>svc</extension> + <mime-type>application/vnd.dvb.service</mime-type> + </mime-mapping> + <mime-mapping> + <extension>svd</extension> + <mime-type>application/vnd.svd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>svg</extension> + <mime-type>image/svg+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>svgz</extension> + <mime-type>image/svg+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>swa</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>swf</extension> + <mime-type>application/x-shockwave-flash</mime-type> + </mime-mapping> + <mime-mapping> + <extension>swi</extension> + <mime-type>application/vnd.aristanetworks.swi</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxc</extension> + <mime-type>application/vnd.sun.xml.calc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxd</extension> + <mime-type>application/vnd.sun.xml.draw</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxg</extension> + <mime-type>application/vnd.sun.xml.writer.global</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxi</extension> + <mime-type>application/vnd.sun.xml.impress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxm</extension> + <mime-type>application/vnd.sun.xml.math</mime-type> + </mime-mapping> + <mime-mapping> + <extension>sxw</extension> + <mime-type>application/vnd.sun.xml.writer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>t</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>t3</extension> + <mime-type>application/x-t3vm-image</mime-type> + </mime-mapping> + <mime-mapping> + <extension>taglet</extension> + <mime-type>application/vnd.mynfc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tao</extension> + <mime-type>application/vnd.tao.intent-module-archive</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tar</extension> + <mime-type>application/x-tar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tcap</extension> + <mime-type>application/vnd.3gpp2.tcap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tcl</extension> + <mime-type>application/x-tcl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>teacher</extension> + <mime-type>application/vnd.smart.teacher</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tei</extension> + <mime-type>application/tei+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>teicorpus</extension> + <mime-type>application/tei+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tex</extension> + <mime-type>application/x-tex</mime-type> + </mime-mapping> + <mime-mapping> + <extension>texi</extension> + <mime-type>application/x-texinfo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>texinfo</extension> + <mime-type>application/x-texinfo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>text</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tfi</extension> + <mime-type>application/thraud+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tfm</extension> + <mime-type>application/x-tex-tfm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tga</extension> + <mime-type>image/x-tga</mime-type> + </mime-mapping> + <mime-mapping> + <extension>thmx</extension> + <mime-type>application/vnd.ms-officetheme</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tif</extension> + <mime-type>image/tiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tiff</extension> + <mime-type>image/tiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tmo</extension> + <mime-type>application/vnd.tmobile-livetv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>torrent</extension> + <mime-type>application/x-bittorrent</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tpl</extension> + <mime-type>application/vnd.groove-tool-template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tpt</extension> + <mime-type>application/vnd.trid.tpt</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tr</extension> + <mime-type>text/troff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tra</extension> + <mime-type>application/vnd.trueapp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>trm</extension> + <mime-type>application/x-msterminal</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tsd</extension> + <mime-type>application/timestamped-data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>tsv</extension> + <mime-type>text/tab-separated-values</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ttc</extension> + <mime-type>font/collection</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ttf</extension> + <mime-type>font/ttf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ttl</extension> + <mime-type>text/turtle</mime-type> + </mime-mapping> + <mime-mapping> + <extension>twd</extension> + <mime-type>application/vnd.simtech-mindmapper</mime-type> + </mime-mapping> + <mime-mapping> + <extension>twds</extension> + <mime-type>application/vnd.simtech-mindmapper</mime-type> + </mime-mapping> + <mime-mapping> + <extension>txd</extension> + <mime-type>application/vnd.genomatix.tuxedo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>txf</extension> + <mime-type>application/vnd.mobius.txf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>txt</extension> + <mime-type>text/plain</mime-type> + </mime-mapping> + <mime-mapping> + <extension>u32</extension> + <mime-type>application/x-authorware-bin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>udeb</extension> + <mime-type>application/x-debian-package</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ufd</extension> + <mime-type>application/vnd.ufdl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ufdl</extension> + <mime-type>application/vnd.ufdl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ulw</extension> + <mime-type>audio/basic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ulx</extension> + <mime-type>application/x-glulx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>umj</extension> + <mime-type>application/vnd.umajin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>unityweb</extension> + <mime-type>application/vnd.unity</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uoml</extension> + <mime-type>application/vnd.uoml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uri</extension> + <mime-type>text/uri-list</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uris</extension> + <mime-type>text/uri-list</mime-type> + </mime-mapping> + <mime-mapping> + <extension>urls</extension> + <mime-type>text/uri-list</mime-type> + </mime-mapping> + <mime-mapping> + <extension>ustar</extension> + <mime-type>application/x-ustar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>utz</extension> + <mime-type>application/vnd.uiq.theme</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uu</extension> + <mime-type>text/x-uuencode</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uva</extension> + <mime-type>audio/vnd.dece.audio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvd</extension> + <mime-type>application/vnd.dece.data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvf</extension> + <mime-type>application/vnd.dece.data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvg</extension> + <mime-type>image/vnd.dece.graphic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvh</extension> + <mime-type>video/vnd.dece.hd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvi</extension> + <mime-type>image/vnd.dece.graphic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvm</extension> + <mime-type>video/vnd.dece.mobile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvp</extension> + <mime-type>video/vnd.dece.pd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvs</extension> + <mime-type>video/vnd.dece.sd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvt</extension> + <mime-type>application/vnd.dece.ttml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvu</extension> + <mime-type>video/vnd.uvvu.mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvv</extension> + <mime-type>video/vnd.dece.video</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvva</extension> + <mime-type>audio/vnd.dece.audio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvd</extension> + <mime-type>application/vnd.dece.data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvf</extension> + <mime-type>application/vnd.dece.data</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvg</extension> + <mime-type>image/vnd.dece.graphic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvh</extension> + <mime-type>video/vnd.dece.hd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvi</extension> + <mime-type>image/vnd.dece.graphic</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvm</extension> + <mime-type>video/vnd.dece.mobile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvp</extension> + <mime-type>video/vnd.dece.pd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvs</extension> + <mime-type>video/vnd.dece.sd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvt</extension> + <mime-type>application/vnd.dece.ttml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvu</extension> + <mime-type>video/vnd.uvvu.mp4</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvv</extension> + <mime-type>video/vnd.dece.video</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvx</extension> + <mime-type>application/vnd.dece.unspecified</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvvz</extension> + <mime-type>application/vnd.dece.zip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvx</extension> + <mime-type>application/vnd.dece.unspecified</mime-type> + </mime-mapping> + <mime-mapping> + <extension>uvz</extension> + <mime-type>application/vnd.dece.zip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcard</extension> + <mime-type>text/vcard</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcd</extension> + <mime-type>application/x-cdlink</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcf</extension> + <mime-type>text/x-vcard</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcg</extension> + <mime-type>application/vnd.groove-vcard</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcs</extension> + <mime-type>text/x-vcalendar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vcx</extension> + <mime-type>application/vnd.vcx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vis</extension> + <mime-type>application/vnd.visionary</mime-type> + </mime-mapping> + <mime-mapping> + <extension>viv</extension> + <mime-type>video/vnd.vivo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vob</extension> + <mime-type>video/x-ms-vob</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vor</extension> + <mime-type>application/vnd.stardivision.writer</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vox</extension> + + <mime-type>application/x-authorware-bin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vrml</extension> + <mime-type>model/vrml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vsd</extension> + <mime-type>application/vnd.visio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vsf</extension> + <mime-type>application/vnd.vsf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vss</extension> + <mime-type>application/vnd.visio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vst</extension> + <mime-type>application/vnd.visio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vsw</extension> + <mime-type>application/vnd.visio</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vtu</extension> + <mime-type>model/vnd.vtu</mime-type> + </mime-mapping> + <mime-mapping> + <extension>vxml</extension> + <mime-type>application/voicexml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>w3d</extension> + <mime-type>application/x-director</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wad</extension> + <mime-type>application/x-doom</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wav</extension> + <mime-type>audio/x-wav</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wax</extension> + <mime-type>audio/x-ms-wax</mime-type> + </mime-mapping> + <mime-mapping> + <!-- Wireless Bitmap --> + <extension>wbmp</extension> + <mime-type>image/vnd.wap.wbmp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wbs</extension> + <mime-type>application/vnd.criticaltools.wbs+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wbxml</extension> + <mime-type>application/vnd.wap.wbxml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wcm</extension> + <mime-type>application/vnd.ms-works</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wdb</extension> + <mime-type>application/vnd.ms-works</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wdp</extension> + <mime-type>image/vnd.ms-photo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>weba</extension> + <mime-type>audio/webm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>webm</extension> + <mime-type>video/webm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>webp</extension> + <mime-type>image/webp</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wg</extension> + <mime-type>application/vnd.pmi.widget</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wgt</extension> + <mime-type>application/widget</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wks</extension> + <mime-type>application/vnd.ms-works</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wm</extension> + <mime-type>video/x-ms-wm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wma</extension> + <mime-type>audio/x-ms-wma</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wmd</extension> + <mime-type>application/x-ms-wmd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wmf</extension> + <mime-type>application/x-msmetafile</mime-type> + </mime-mapping> + <mime-mapping> + <!-- WML Source --> + <extension>wml</extension> + <mime-type>text/vnd.wap.wml</mime-type> + </mime-mapping> + <mime-mapping> + <!-- Compiled WML --> + <extension>wmlc</extension> + <mime-type>application/vnd.wap.wmlc</mime-type> + </mime-mapping> + <mime-mapping> + <!-- WML Script Source --> + <extension>wmls</extension> + <mime-type>text/vnd.wap.wmlscript</mime-type> + </mime-mapping> + <mime-mapping> + <!-- Compiled WML Script --> + <extension>wmlsc</extension> + <mime-type>application/vnd.wap.wmlscriptc</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wmv</extension> + <mime-type>video/x-ms-wmv</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wmx</extension> + <mime-type>video/x-ms-wmx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wmz</extension> + <mime-type>application/x-msmetafile</mime-type> + </mime-mapping> + <mime-mapping> + <extension>woff</extension> + <mime-type>font/woff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>woff2</extension> + <mime-type>font/woff2</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wpd</extension> + <mime-type>application/vnd.wordperfect</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wpl</extension> + <mime-type>application/vnd.ms-wpl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wps</extension> + <mime-type>application/vnd.ms-works</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wqd</extension> + <mime-type>application/vnd.wqd</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wri</extension> + <mime-type>application/x-mswrite</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wrl</extension> + <mime-type>model/vrml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wsdl</extension> + <mime-type>application/wsdl+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wspolicy</extension> + <mime-type>application/wspolicy+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wtb</extension> + <mime-type>application/vnd.webturbo</mime-type> + </mime-mapping> + <mime-mapping> + <extension>wvx</extension> + <mime-type>video/x-ms-wvx</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x32</extension> + <mime-type>application/x-authorware-bin</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3d</extension> + <mime-type>model/x3d+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3db</extension> + <mime-type>model/x3d+binary</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3dbz</extension> + <mime-type>model/x3d+binary</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3dv</extension> + <mime-type>model/x3d+vrml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3dvz</extension> + <mime-type>model/x3d+vrml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>x3dz</extension> + <mime-type>model/x3d+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xaml</extension> + <mime-type>application/xaml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xap</extension> + <mime-type>application/x-silverlight-app</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xar</extension> + <mime-type>application/vnd.xara</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xbap</extension> + <mime-type>application/x-ms-xbap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xbd</extension> + <mime-type>application/vnd.fujixerox.docuworks.binder</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xbm</extension> + <mime-type>image/x-xbitmap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xdf</extension> + <mime-type>application/xcap-diff+xml</mime-type> + </mime-mapping> + <mime-mapping> + + <extension>xdm</extension> + <mime-type>application/vnd.syncml.dm+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xdp</extension> + <mime-type>application/vnd.adobe.xdp+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xdssc</extension> + <mime-type>application/dssc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xdw</extension> + <mime-type>application/vnd.fujixerox.docuworks</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xenc</extension> + <mime-type>application/xenc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xer</extension> + <mime-type>application/patch-ops-error+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xfdf</extension> + <mime-type>application/vnd.adobe.xfdf</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xfdl</extension> + <mime-type>application/vnd.xfdl</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xht</extension> + <mime-type>application/xhtml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xhtml</extension> + <mime-type>application/xhtml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xhvml</extension> + <mime-type>application/xv+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xif</extension> + <mime-type>image/vnd.xiff</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xla</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlam</extension> + <mime-type>application/vnd.ms-excel.addin.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlc</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlf</extension> + <mime-type>application/x-xliff+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlm</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xls</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlsb</extension> + <mime-type>application/vnd.ms-excel.sheet.binary.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlsm</extension> + <mime-type>application/vnd.ms-excel.sheet.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlsx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlt</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xltm</extension> + <mime-type>application/vnd.ms-excel.template.macroenabled.12</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xltx</extension> + <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.template</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xlw</extension> + <mime-type>application/vnd.ms-excel</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xm</extension> + <mime-type>audio/xm</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xml</extension> + <mime-type>application/xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xo</extension> + <mime-type>application/vnd.olpc-sugar</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xop</extension> + <mime-type>application/xop+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpi</extension> + <mime-type>application/x-xpinstall</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpl</extension> + <mime-type>application/xproc+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpm</extension> + <mime-type>image/x-xpixmap</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpr</extension> + <mime-type>application/vnd.is-xpr</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xps</extension> + <mime-type>application/vnd.ms-xpsdocument</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpw</extension> + <mime-type>application/vnd.intercon.formnet</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xpx</extension> + <mime-type>application/vnd.intercon.formnet</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xsl</extension> + <mime-type>application/xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xslt</extension> + <mime-type>application/xslt+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xsm</extension> + <mime-type>application/vnd.syncml+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xspf</extension> + <mime-type>application/xspf+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xul</extension> + <mime-type>application/vnd.mozilla.xul+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xvm</extension> + <mime-type>application/xv+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xvml</extension> + <mime-type>application/xv+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xwd</extension> + <mime-type>image/x-xwindowdump</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xyz</extension> + <mime-type>chemical/x-xyz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>xz</extension> + <mime-type>application/x-xz</mime-type> + </mime-mapping> + <mime-mapping> + <extension>yang</extension> + <mime-type>application/yang</mime-type> + </mime-mapping> + <mime-mapping> + <extension>yin</extension> + <mime-type>application/yin+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z</extension> + <mime-type>application/x-compress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>Z</extension> + <mime-type>application/x-compress</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z1</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z2</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z3</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z4</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z5</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z6</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z7</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>z8</extension> + <mime-type>application/x-zmachine</mime-type> + </mime-mapping> + <mime-mapping> + <extension>zaz</extension> + <mime-type>application/vnd.zzazz.deck+xml</mime-type> + </mime-mapping> + <mime-mapping> + <extension>zip</extension> + <mime-type>application/zip</mime-type> + </mime-mapping> + <mime-mapping> + <extension>zir</extension> + <mime-type>application/vnd.zul</mime-type> + </mime-mapping> + <mime-mapping> + <extension>zirz</extension> + <mime-type>application/vnd.zul</mime-type> + </mime-mapping> + <mime-mapping> + <extension>zmm</extension> + <mime-type>application/vnd.handheld-entertainment+xml</mime-type> + </mime-mapping> + + <!-- ==================== Default Welcome File List ===================== --> + <!-- When a request URI refers to a directory, the default servlet looks --> + <!-- for a "welcome file" within that directory and, if present, to the --> + <!-- corresponding resource URI for display. --> + <!-- If no welcome files are present, the default servlet either serves a --> + <!-- directory listing (see default servlet configuration on how to --> + <!-- customize) or returns a 404 status, depending on the value of the --> + <!-- listings setting. --> + <!-- --> + <!-- If you define welcome files in your own application's web.xml --> + <!-- deployment descriptor, that list *replaces* the list configured --> + <!-- here, so be sure to include any of the default values that you wish --> + <!-- to use within your application. --> + + <welcome-file-list> + <welcome-file>index.html</welcome-file> + <welcome-file>index.htm</welcome-file> + <welcome-file>index.jsp</welcome-file> + </welcome-file-list> + +<security-constraint> <web-resource-collection> <web-resource-name>Protected Context</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <!-- auth-constraint goes here if you requre authentication --> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> +</web-app> diff --git a/usecaseui-portal/src/app/app.module.ts b/usecaseui-portal/src/app/app.module.ts index 57c188ff..e4b3568d 100644 --- a/usecaseui-portal/src/app/app.module.ts +++ b/usecaseui-portal/src/app/app.module.ts @@ -105,6 +105,7 @@ import { ManageServiceComponent } from "./views/services/sotn-management/manage- import { MonitorServiceComponent } from "./views/services/sotn-management/monitor-service/monitor-service.component"; import { OrderServiceComponent } from "./views/services/sotn-management/order-service/order-service.component"; import { SotnManagementComponent } from "./views/services/sotn-management/sotn-management.component"; +import { EventQueueService } from "@src/app/core/services/eventQueue.service"; export function HttpLoaderFactory(httpClient: HttpClient) { return new TranslateHttpLoader(httpClient, "./assets/i18n/", ".json"); @@ -133,6 +134,7 @@ registerLocaleData(en); ManagemencsService, TextService, SlicingTaskServices, + EventQueueService, // fakeBackendProvider ], declarations: [ diff --git a/usecaseui-portal/src/app/core/services/appEvent.ts b/usecaseui-portal/src/app/core/services/appEvent.ts new file mode 100644 index 00000000..775eced9 --- /dev/null +++ b/usecaseui-portal/src/app/core/services/appEvent.ts @@ -0,0 +1,23 @@ +/* + Copyright (C) 2021 Huawei Canada, Inc. and others. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import {AppEventType} from "@src/app/core/services/appEventType"; + +export class AppEvent<T> { + constructor( + public type: AppEventType, + public payload: T, + ) {} +}
\ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/appEventType.ts b/usecaseui-portal/src/app/core/services/appEventType.ts new file mode 100644 index 00000000..e5369a8c --- /dev/null +++ b/usecaseui-portal/src/app/core/services/appEventType.ts @@ -0,0 +1,4 @@ +export enum AppEventType { + GenericEvent = 'GENERIC_EVENT', + UserNodeDrag = 'USER_NODE_DRAG' +}
\ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/eventQueue.service.ts b/usecaseui-portal/src/app/core/services/eventQueue.service.ts new file mode 100644 index 00000000..e4c32c38 --- /dev/null +++ b/usecaseui-portal/src/app/core/services/eventQueue.service.ts @@ -0,0 +1,36 @@ +/* + Copyright (C) 2021 Huawei Canada, Inc. and others. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { Injectable } from '@angular/core'; +import {Observable, Subject} from "rxjs/Rx"; +import {AppEvent} from "@src/app/core/services/appEvent"; +import {AppEventType} from "@src/app/core/services/appEventType"; +import {filter} from "rxjs/operators"; + +@Injectable() +export class EventQueueService { + + private eventBroker = new Subject<AppEvent<any>>(); + + on(eventType: AppEventType): Observable<AppEvent<any>> { + return this.eventBroker.pipe(filter(event => event.type === eventType)); + } + + dispatch<T>(event: AppEvent<T>): void { + this.eventBroker.next(event); + } + +}
\ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts b/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts index 20b79a77..0959f564 100644 --- a/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts +++ b/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts @@ -27,6 +27,7 @@ export class networkHttpservice { url = { "getNetworkD3Data": this.baseUrl+"/uui-sotn/getNetWorkResources", "getLogicalLinksData": this.baseUrl+"/uui-sotn/getLogicalLinks", + "getPnfsData": this.baseUrl+"/uui-sotn/getPnfs", "deleteCloud": this.baseUrl+"/uui-sotn/deleteExtNetWork", "getPInterfacesData": this.baseUrl+"/uui-sotn/getPinterfaceByPnfName/", "createLink": this.baseUrl+"/uui-sotn/createLink/", @@ -39,6 +40,7 @@ export class networkHttpservice { "createCloudLink": this.baseUrl+"/uui-sotn/createLink/", "createCloudUrl": this.baseUrl+"/uui-sotn/createHostUrl/", "deleteLink": this.baseUrl+"/uui-sotn/deleteLink/", + "getConnectivities": this.baseUrl+"/uui-sotn/getConnectivityInfo", }; @@ -47,6 +49,10 @@ export class networkHttpservice { getNetworkD3Data() { return this.http.get<any>(this.url["getNetworkD3Data"]); } + // GET AAI PNF(s) data + getPnfsData() { + return this.http.get<any>(this.url["getPnfsData"]); + } //Initialize the connection logical-links getLogicalLinksData() { return this.http.get<any>(this.url["getLogicalLinksData"]); @@ -76,6 +82,11 @@ export class networkHttpservice { queryExtAAIIdVersion(aaiId) { return this.http.get<any>(this.url["queryExtAAIIdVersion"] + aaiId); } + + getConnectivities(){ + return this.http.get<any>(this.url["getConnectivities"]); + } + //Create an external cloud newwork interface createNetwrok(paramsObj) { return this.http.put<any>(this.url["createNetwrok"] + paramsObj["network-id"], paramsObj); diff --git a/usecaseui-portal/src/app/mock/json/uui-sotn_getConnectivityInfo.json b/usecaseui-portal/src/app/mock/json/uui-sotn_getConnectivityInfo.json index 967ec98b..a43c8c45 100644 --- a/usecaseui-portal/src/app/mock/json/uui-sotn_getConnectivityInfo.json +++ b/usecaseui-portal/src/app/mock/json/uui-sotn_getConnectivityInfo.json @@ -1,89 +1,288 @@ { "connectivity": [ { - "connectivity-id": "4424ea5a-3603-4040-baa9-4046ed533fe5", - "bandwidth-profile-name": "vpn1", - "vpn-type": "ethernet", - "color-aware": "true", - "coupling-flag": "true", - "etht-svc-name": "vpn1", - "access-provider-id": "", - "access-client-id": "", - "access-topology-id": "", - "access-node-id": "", - "access-ltp-id": "", - "connectivity-selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/32cd906f-ee7a-4ecf-b1c3-2fce4d59f8c0/service-data/networks/network/4424ea5a-3603-4040-baa9-4046ed533fe5/network-data/", - "operational-status": "Active", - "model-customization-id": "2bafc8aa-c60c-4a17-a658-db4cbca07fac", - "model-invariant-id": "5d0ada6b-de04-4624-9410-3baab839cd6f", - "model-version-id": "15e21930-3248-4148-b071-a2a9be1f9889", - "resource-version": "1537623789475", + "connectivity-id": "0cdb3c80-e319-4690-bed9-ae081e69542c", + "bandwidth-profile-name": "3", + "vpn-type": "leaf", + "cir": "3000000", + "eir": "3000000", + "coupling-flag": "-,OA==", + "etht-svc-name": "cll-link-1", + "access-provider-id": "10", + "access-client-id": "0", + "access-topology-id": "2", + "access-node-id": "10.1.1.3", + "access-ltp-id": "1000001", + "connectivity-selflink": "restconf/config/GENERIC-RESOURCE-API:services/service//service-data/networks/network//network-data/", + "cvlan": "47", + "operational-status": "Activated", + "resource-version": "1632433788978", "relationship-list": { "relationship": [ { "related-to": "vpn-binding", - "relationship-label": "org.onap.relationships.inventory.PartOf", - "related-link": "/aai/v13/network/vpn-bindings/vpn-binding/11.11.11.11-vpn1", + "relationship-label": "tosca.relationships.network.BindsTo", + "related-link": "/aai/v24/network/vpn-bindings/vpn-binding/7bdc2f8c-2d3f-4a9f-91c9-e13e105b3f85", "relationship-data": [ { "relationship-key": "vpn-binding.vpn-id", - "relationship-value": "11.11.11.11-vpn1" + "relationship-value": "7bdc2f8c-2d3f-4a9f-91c9-e13e105b3f85" } ], "related-to-property": [ { "property-key": "vpn-binding.vpn-name", - "property-value": "11.11.11.11-vpn1" + "property-value": "32edeb0d-1036-4f16-9c11-c5257d81ae0e" }, { - "property-key": "vpn-binding.vpn-type", - "property-value": "ethernet" + "property-key": "vpn-binding.vpn-type" } ] }, { "related-to": "service-instance", "relationship-label": "org.onap.relationships.inventory.PartOf", - "related-link": "/aai/v13/business/customers/customer/demo/service-subscriptions/service-subscription/ccvpn/service-instances/service-instance/32cd906f-ee7a-4ecf-b1c3-2fce4d59f8c0", + "related-link": "/aai/v24/business/customers/customer/IBNCustomer/service-subscriptions/service-subscription/IBN/service-instances/service-instance/cll-101", "relationship-data": [ { "relationship-key": "customer.global-customer-id", - "relationship-value": "demo" + "relationship-value": "IBNCustomer" }, { "relationship-key": "service-subscription.service-type", - "relationship-value": "ccvpn" + "relationship-value": "IBN" }, { "relationship-key": "service-instance.service-instance-id", - "relationship-value": "32cd906f-ee7a-4ecf-b1c3-2fce4d59f8c0" + "relationship-value": "cll-101" } ], "related-to-property": [ { "property-key": "service-instance.service-instance-name", - "property-value": "SOTNVPNInfra" + "property-value": "cloud-leased-line-101" } ] }, { - "related-to": "vpn-binding", + "related-to": "uni", + "relationship-label": "org.onap.relationships.inventory.PartOf", + "related-link": "/aai/v24/network/unis/uni/networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.3-ltpId-1000001", + "relationship-data": [ + { + "relationship-key": "uni.id", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.3-ltpId-1000001" + } + ] + }, + { + "related-to": "connectivity", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/connectivities/connectivity/c648ddff-7abe-44ba-946f-8d7a4fa2691b", + "relationship-data": [ + { + "relationship-key": "connectivity.connectivity-id", + "relationship-value": "c648ddff-7abe-44ba-946f-8d7a4fa2691b" + } + ], + "related-to-property": [ + { + "property-key": "connectivity.etht-svc-name", + "property-value": "cll-link-1" + } + ] + } + ] + } + }, + { + "connectivity-id": "c648ddff-7abe-44ba-946f-8d7a4fa2691b", + "bandwidth-profile-name": "3", + "vpn-type": "mdsc", + "cir": "3000000", + "eir": "3000000", + "color-aware": "networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512", + "etht-svc-name": "cll-link-1", + "connectivity-selflink": "restconf/config/GENERIC-RESOURCE-API:services/service//service-data/networks/network//network-data/", + "cvlan": "47", + "operational-status": "Created", + "resource-version": "1632433782443", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "relationship-label": "org.onap.relationships.inventory.PartOf", + "related-link": "/aai/v24/business/customers/customer/IBNCustomer/service-subscriptions/service-subscription/IBN/service-instances/service-instance/cll-101", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "IBNCustomer" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "IBN" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "cll-101" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "cloud-leased-line-101" + } + ] + }, + { + "related-to": "uni", + "relationship-label": "org.onap.relationships.inventory.PartOf", + "related-link": "/aai/v24/network/unis/uni/networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.3-ltpId-1000001", + "relationship-data": [ + { + "relationship-key": "uni.id", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.3-ltpId-1000001" + } + ] + }, + { + "related-to": "uni", "relationship-label": "org.onap.relationships.inventory.PartOf", - "related-link": "/aai/v13/network/vpn-bindings/vpn-binding/12.12.12.12-vpn1", + "related-link": "/aai/v24/network/unis/uni/networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512", + "relationship-data": [ + { + "relationship-key": "uni.id", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512" + } + ] + }, + { + "related-to": "connectivity", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/connectivities/connectivity/0cdb3c80-e319-4690-bed9-ae081e69542c", + "relationship-data": [ + { + "relationship-key": "connectivity.connectivity-id", + "relationship-value": "0cdb3c80-e319-4690-bed9-ae081e69542c" + } + ], + "related-to-property": [ + { + "property-key": "connectivity.etht-svc-name", + "property-value": "cll-link-1" + } + ] + }, + { + "related-to": "connectivity", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/connectivities/connectivity/8dfd5f6a-e795-47ff-8d66-ff26e78a7175", + "relationship-data": [ + { + "relationship-key": "connectivity.connectivity-id", + "relationship-value": "8dfd5f6a-e795-47ff-8d66-ff26e78a7175" + } + ], + "related-to-property": [ + { + "property-key": "connectivity.etht-svc-name", + "property-value": "cll-link-1" + } + ] + } + ] + } + }, + { + "connectivity-id": "8dfd5f6a-e795-47ff-8d66-ff26e78a7175", + "bandwidth-profile-name": "3", + "vpn-type": "root", + "cir": "3000000", + "eir": "3000000", + "color-aware": "networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512", + "coupling-flag": "-MTI=,", + "etht-svc-name": "cll-link-1", + "access-provider-id": "20", + "access-client-id": "0", + "access-topology-id": "2", + "access-node-id": "10.2.1.2", + "access-ltp-id": "512", + "connectivity-selflink": "restconf/config/GENERIC-RESOURCE-API:services/service//service-data/networks/network//network-data/", + "cvlan": "47", + "operational-status": "Activated", + "resource-version": "1632433789733", + "relationship-list": { + "relationship": [ + { + "related-to": "vpn-binding", + "relationship-label": "tosca.relationships.network.BindsTo", + "related-link": "/aai/v24/network/vpn-bindings/vpn-binding/c4b924e2-8a39-4f67-b9c1-d04b6c7a6053", "relationship-data": [ { "relationship-key": "vpn-binding.vpn-id", - "relationship-value": "12.12.12.12-vpn1" + "relationship-value": "c4b924e2-8a39-4f67-b9c1-d04b6c7a6053" } ], "related-to-property": [ { "property-key": "vpn-binding.vpn-name", - "property-value": "12.12.12.12-vpn1" + "property-value": "32edeb0d-1036-4f16-9c11-c5257d81ae0e" + }, + { + "property-key": "vpn-binding.vpn-type" + } + ] + }, + { + "related-to": "service-instance", + "relationship-label": "org.onap.relationships.inventory.PartOf", + "related-link": "/aai/v24/business/customers/customer/IBNCustomer/service-subscriptions/service-subscription/IBN/service-instances/service-instance/cll-101", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "IBNCustomer" }, { - "property-key": "vpn-binding.vpn-type", - "property-value": "ethernet" + "relationship-key": "service-subscription.service-type", + "relationship-value": "IBN" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "cll-101" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "cloud-leased-line-101" + } + ] + }, + { + "related-to": "uni", + "relationship-label": "org.onap.relationships.inventory.PartOf", + "related-link": "/aai/v24/network/unis/uni/networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512", + "relationship-data": [ + { + "relationship-key": "uni.id", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512" + } + ] + }, + { + "related-to": "connectivity", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/connectivities/connectivity/c648ddff-7abe-44ba-946f-8d7a4fa2691b", + "relationship-data": [ + { + "relationship-key": "connectivity.connectivity-id", + "relationship-value": "c648ddff-7abe-44ba-946f-8d7a4fa2691b" + } + ], + "related-to-property": [ + { + "property-key": "connectivity.etht-svc-name", + "property-value": "cll-link-1" } ] } diff --git a/usecaseui-portal/src/app/mock/json/uui-sotn_getLogicalLinks.json b/usecaseui-portal/src/app/mock/json/uui-sotn_getLogicalLinks.json index 1b8ecff1..4ee81b6b 100644 --- a/usecaseui-portal/src/app/mock/json/uui-sotn_getLogicalLinks.json +++ b/usecaseui-portal/src/app/mock/json/uui-sotn_getLogicalLinks.json @@ -1,25 +1,25 @@ { "logical-link": [ { - "link-name": "cross-link-1", + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.2-22", "in-maint": false, - "link-type": "cross-link", - "resource-version": "1536029865021", - "operational-status": "up", + "link-type": "point-to-point", + "resource-version": "1632418647894", + "link-id": "10.1.1.2-22", "relationship-list": { "relationship": [ { "related-to": "p-interface", "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v13/network/pnfs/pnf/pnf2000/p-interfaces/p-interface/nodeId-78.78.78.78-ltpId-1", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-22", "relationship-data": [ { "relationship-key": "pnf.pnf-name", - "relationship-value": "pnf2000" + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2" }, { "relationship-key": "p-interface.interface-name", - "relationship-value": "nodeId-78.78.78.78-ltpId-1" + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-22" } ], "related-to-property": [ @@ -31,15 +31,15 @@ { "related-to": "p-interface", "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v13/network/pnfs/pnf/pnf1000/p-interfaces/p-interface/nodeId-79.79.79.79-ltpId-1", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-12", "relationship-data": [ { "relationship-key": "pnf.pnf-name", - "relationship-value": "pnf1000" + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3" }, { "relationship-key": "p-interface.interface-name", - "relationship-value": "nodeId-79.79.79.79-ltpId-1" + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-12" } ], "related-to-property": [ @@ -52,25 +52,559 @@ } }, { - "link-name": "cross-link-2", + "link-name": "networkId-providerId-10-clientId-0-topologyId-2-linkId-10.1.1.1-1000001", "in-maint": false, - "link-type": "cross-link", - "resource-version": "1536029865021", - "operational-status": "up", + "link-type": "point-to-point", + "resource-version": "1632418637582", + "link-id": "10.1.1.1-1000001" + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-2-linkId-10.1.1.1-2000001", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418638991", + "link-id": "10.1.1.1-2000001" + }, + { + "link-name": "51000", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418711940", + "link-role": "cross-domain", + "link-id": "10.1.1.2-12", + "relationship-list": { + "relationship": [ + { + "related-to": "te-link-attribute", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/te-link-attributes/te-link-attribute/10.1.1.2-12", + "relationship-data": [ + { + "relationship-key": "te-link-attribute.id", + "relationship-value": "10.1.1.2-12" + } + ] + }, + { + "related-to": "te-link-attribute", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/te-link-attributes/te-link-attribute/10.2.1.1-22", + "relationship-data": [ + { + "relationship-key": "te-link-attribute.id", + "relationship-value": "10.2.1.1-22" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.3-12", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418648333", + "link-id": "10.1.1.3-12", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "52000", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418711437", + "link-role": "cross-domain", + "link-id": "10.1.1.3-8", + "relationship-list": { + "relationship": [ + { + "related-to": "te-link-attribute", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/te-link-attributes/te-link-attribute/10.1.1.3-8", + "relationship-data": [ + { + "relationship-key": "te-link-attribute.id", + "relationship-value": "10.1.1.3-8" + } + ] + }, + { + "related-to": "te-link-attribute", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/te-link-attributes/te-link-attribute/10.2.1.3-12", + "relationship-data": [ + { + "relationship-key": "te-link-attribute.id", + "relationship-value": "10.2.1.3-12" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-8", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-8" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.3-22", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418649331", + "link-id": "10.1.1.3-22", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-6", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-6" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.2-2", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418647397", + "link-id": "10.1.1.2-2", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-2", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-2" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "tranportEp_src_ID_111_2", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418767038", + "link-name2": "tranportEp_dst_ID_212_1", + "link-id": "111-2-212-1" + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.2-22", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418710116", + "link-id": "10.2.1.2-22", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.1-12", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418648797", + "link-id": "10.1.1.1-12", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-2", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.2-ltpId-2" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-1-linkId-10.1.1.1-6", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418650687", + "link-id": "10.1.1.1-6", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-6", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.1-ltpId-6" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3/p-interfaces/p-interface/networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-10-clientId-0-topologyId-1-nodeId-10.1.1.3-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-2-linkId-10.2.1.2-512", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418701065", + "link-id": "10.2.1.2-512" + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.1-12", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418710752", + "link-id": "10.2.1.1-12", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-12", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-12" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.2-5", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418710349", + "link-id": "10.2.1.2-5", "relationship-list": { "relationship": [ { "related-to": "p-interface", "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v13/network/pnfs/pnf/pnf3000/p-interfaces/p-interface/nodeId-80.80.80.80-ltpId-2", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-3", "relationship-data": [ { "relationship-key": "pnf.pnf-name", - "relationship-value": "pnf3000" + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3" }, { "relationship-key": "p-interface.interface-name", - "relationship-value": "nodeId-80.80.80.80-ltpId-2" + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-3" } ], "related-to-property": [ @@ -82,15 +616,46 @@ { "related-to": "p-interface", "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v13/network/pnfs/pnf/pnf-cloud/p-interfaces/p-interface/cloud-tp", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-5", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-5" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.3-3", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418710549", + "link-id": "10.2.1.3-3", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-3", "relationship-data": [ { "relationship-key": "pnf.pnf-name", - "relationship-value": "pnf-cloud" + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3" }, { "relationship-key": "p-interface.interface-name", - "relationship-value": "cloud-tp" + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-3" } ], "related-to-property": [ @@ -100,18 +665,144 @@ ] }, { - "related-to": "ext-aai-network", - "relationship-label": "org.onap.relationships.inventory.BelongsTo", - "related-link": "/aai/v13/network/ext-aai-networks/ext-aai-network/gongjie666", + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-5", "relationship-data": [ { - "relationship-key": "ext-aai-network.aai-id", - "relationship-value": "gongjie666" + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.2-ltpId-5" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" } ] } ] } + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.3-22", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418710961", + "link-id": "10.2.1.3-22", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-9", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-9" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "networkId-providerId-10-clientId-0-topologyId-2-linkId-10.1.1.3-1000001", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418639304", + "link-id": "10.1.1.3-1000001" + }, + { + "link-name": "networkId-providerId-20-clientId-0-topologyId-1-linkId-10.2.1.1-9", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418709796", + "link-id": "10.2.1.1-9", + "relationship-list": { + "relationship": [ + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-22", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.3-ltpId-22" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + }, + { + "related-to": "p-interface", + "relationship-label": "tosca.relationships.network.LinksTo", + "related-link": "/aai/v24/network/pnfs/pnf/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1/p-interfaces/p-interface/networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-9", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1" + }, + { + "relationship-key": "p-interface.interface-name", + "relationship-value": "networkId-providerId-20-clientId-0-topologyId-1-nodeId-10.2.1.1-ltpId-9" + } + ], + "related-to-property": [ + { + "property-key": "p-interface.prov-status" + } + ] + } + ] + } + }, + { + "link-name": "tranportEp_src_ID_113_1", + "in-maint": false, + "link-type": "point-to-point", + "resource-version": "1632418777509", + "link-name2": "tranportEp_dst_ID_212_1", + "link-id": "113-1-212-1" } ] -} +}
\ No newline at end of file diff --git a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.css b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.css index 53cf02b4..e1a1d6e4 100644 --- a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.css +++ b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.css @@ -71,7 +71,6 @@ margin: 0; color: #3C4F8C; margin-left: 10px; - display: inline-block; } .model .title-modelshow{ color: #A0AACD; @@ -115,3 +114,4 @@ + diff --git a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.html b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.html index fb025d96..48d01d36 100644 --- a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.html +++ b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.html @@ -16,13 +16,40 @@ <nz-spin [nzSpinning]="isSpinning" nzSize="large"> <div class="model"> <!--chart--> - <button nz-button nzType="primary" *ngIf="!nonetwork" style="margin-top: 2px;display: inline-block" (click)="showForm()" - [disabled]='isVisible' [attr.disabled] ='isVisible?true:undefined'> - {{"i18nTextDefine_CreateLink" | translate}} - </button> + <div class="action ant-tabs-bar"> + <span> + <i class="icon"> + <img src="assets/images/service-type.png"alt=""> + </i> + {{"i18nTextDefine_Connectivity" | translate}} : + </span> + <nz-dropdown [nzTrigger]="'click'" [nzPlacement]="'bottomLeft'"> + <button nz-button nz-dropdown><span>{{connectivitySelected.name}}</span> <i class="anticon anticon-down"></i> + </button> + <ul nz-menu> + <li nz-menu-item (click)="choseConnectivity(item)" *ngFor="let item of connectivityList"> + <a title="{{item.name}}">{{item.name}}</a> + </li> + </ul> + </nz-dropdown> + +<!-- <button class="create" nz-button [nzType]="'primary'" (click)="createModal()"> + <i *ngIf="width>1200" class="anticon anticon-plus"></i> + <span> {{"i18nTextDefine_Create" | translate}} </span> + </button>--> + </div> + <h2 *ngIf="!nonetwork" [ngClass]="{'title-modelshow':isVisible == true}"> Please configure network links for registered devices and partner system. </h2> + <h3 [ngClass]="{'title-modelshow':isVisible == true}"> + Service Instances: + </h3> + <div id="svcContainer" style="overflow: hidden;"> + </div> + <h3 [ngClass]="{'title-modelshow':isVisible == true}"> + Network Topology: + </h3> <div id="tpContainer" style="overflow: hidden;"> <div *ngIf="nonetwork" style="padding: 20px"> <h2> diff --git a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.ts b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.ts index 56009546..d1e40672 100644 --- a/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.ts +++ b/usecaseui-portal/src/app/views/network/ccvpn-network/ccvpn-network.component.ts @@ -13,10 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Component, EventEmitter, OnInit, Output } from '@angular/core'; -import * as d3 from 'd3'; +import {Component, OnInit} from '@angular/core'; +import * as d3 from 'd3' import * as $ from 'jquery'; -import { networkHttpservice } from '../../../core/services/networkHttpservice.service'; +import {networkHttpservice} from '../../../core/services/networkHttpservice.service'; +import {EventQueueService} from "../../../core/services/eventQueue.service"; +import {AppEvent} from "@src/app/core/services/appEvent"; +import {AppEventType} from "@src/app/core/services/appEventType"; @Component({ selector: 'app-ccvpn-network', @@ -25,62 +28,64 @@ import { networkHttpservice } from '../../../core/services/networkHttpservice.se }) export class CcvpnNetworkComponent implements OnInit { - constructor(private myhttp: networkHttpservice) { + constructor(private myhttp: networkHttpservice, + private eventDispatcher: EventQueueService) { } ngOnInit() { let thisNg = this; - thisNg.getD3Data(); - - - //Local cloud TP port connection, click on the right to expand the details - $('#tpContainer').on('click', '.line-port', function () { - thisNg.isVisible = false; - thisNg.delBoxisVisible = true; - thisNg.delcloud = false; - - thisNg.delTp1 = $(this).attr('data-tp1'); - thisNg.delTp2 = $(this).attr('data-tp2'); - thisNg.delNode1 = $(this).attr('data-node1'); - thisNg.delNode2 = $(this).attr('data-node2'); - thisNg.delVersion = $(this).attr('data-version'); - thisNg.delLinkname = $(this).attr('data-link'); - thisNg.delcloudUrl = null; - thisNg.delLinkIndex = $(this); - - let dataD3 = thisNg.d3Data; - for (let p = 0; p < dataD3.length; p++) {//Determine which Domain network the two tp ports belong to - if (dataD3[p]['name'] == thisNg.delTp1) { - thisNg.network.push(dataD3[p]['source']['name']); - } - if (dataD3[p]['name'] == thisNg.delTp2) { - thisNg.network.push(dataD3[p]['source']['name']); + this.isSpinning = true; + this.myhttp.getConnectivities() + .subscribe((data) => { + if(data){ + for (let conn of data["connectivity"]) { + if (conn["vpn-type"] === "mdsc"){ + this.connectivityList.push({ "name": conn["connectivity-id"], + "id": conn["connectivity-id"], + "relationship-list" : conn["relationship-list"] + }); + } + } + if (this.connectivityList.length !== 0) { + this.connectivitySelected = this.connectivityList[0]; + this.choseConnectivity(this.connectivitySelected); + + }; } - } - thisNg.delNetwork1 = thisNg.network[0]; - thisNg.delNetwork2 = thisNg.network[1]; - }); + }, + (err) => { + console.log(err); + }); + this.myhttp.getLogicalLinksData() + .subscribe((data) => { + if (data) { + for (let ll of data["logical-link"]){ + // Filter layer1 logical link + //if (ll["relationship-list"] !== undefined && + // ll["relationship-list"]["relationship"].length) { + thisNg.logicalLinks.push(ll); + //} + } + let tpMapping = thisNg.getPnfTpMapping(thisNg.logicalLinks); - //External cloud connection, click on the right to expand the details - $('#tpContainer').on('click', '.cloudline', function () { - thisNg.isVisible = false; - thisNg.delBoxisVisible = true; - thisNg.delcloud = true; - - thisNg.delTp1 = $(this).attr('data-tp1'); - thisNg.delTp2 = $(this).attr('data-tp2'); - thisNg.delNode1 = $(this).attr('data-node1'); - thisNg.delNode2 = $(this).attr('data-node2'); - thisNg.delVersion = $(this).attr('data-version'); - thisNg.delNetwork1 = $(this).attr('data-network'); - thisNg.delNetwork2 = $(this).attr('data-cloudnetwork'); - thisNg.delcloudUrl = $(this).attr('data-url'); - thisNg.delLinkname = $(this).attr('data-link'); - thisNg.aaiId = $(this).attr('data-aaiid'); - thisNg.getCloudUrl(thisNg.aaiId); - }); + let links = thisNg.getLinks( thisNg.logicalLinks, tpMapping); + let tps = thisNg.getNodes(tpMapping); + console.log(links); + console.log(tps); + + thisNg.drawTopo(tps, links); + + } + this.isSpinning = false; + }, + (err) => { + console.log(err); + }) } + connectivityList = []; + connectivitySelected = { name: null, id: null }; + addLinkDisabled = true; nonetwork = false; isVisible = false; @@ -89,6 +94,9 @@ export class CcvpnNetworkComponent implements OnInit { delBoxisVisible = false; isSpinning = true; + pnfs = []; + layer1Tps = []; + d3Data = [];//D3Render the required data logicalLinks = [];//logicalLinks Existing connection data returned by the interface linkName = null;//Linked name link-name @@ -129,12 +137,25 @@ export class CcvpnNetworkComponent implements OnInit { winWidth = $('#tpContainer').width(); winHeight = $('#tpContainer').height(); charge = -300; + SEPERATOR = '-'; - imgmap = { - '1': 'assets/images/cloud-county1.png', - '2': 'assets/images/tp.png', - '3': 'assets/images/cloud-out.png', + + imgMap = { + 'pnf': 'assets/images/site.png', + 'tp': 'assets/images/tp.png' }; + + //### SELECTION - store the selected node ### + //### EDITING - store the drag mode (either 'drag' or 'add_link') ### + svcEditorGlobal = { + selection: null + } + svcContainerOpt = { + containerId : "svcContainer", + width: 1000, + height: this.winHeight + }; + tpoption = { container: '#tpContainer', data: '', @@ -142,1127 +163,907 @@ export class CcvpnNetworkComponent implements OnInit { height: this.winHeight }; - showForm(): void { - if (this.addLinkDisabled == false) { - this.isVisible = true; - this.delBoxisVisible = false; - } - } - - hideForm(): void { - this.isVisible = false; - this.delBoxisVisible = false; - this.linkName = null; - this.networkVal1 = null;//Initialize the default data of the network1 drop-down box - this.networkVal2 = null;//Initialize the network2 drop-down box default data - this.selectedNode1 = null;//Initialize the default data of the node1 drop-down box - this.selectedNode2 = null;//Initialize the default data of the node2 drop-down box - this.selecteTpName1 = null;//Initialize the default data of the TP1 drop-down box - this.selecteTpName2 = null;//Initialize the default data of the TP2 drop-down box - this.cloudUrl = null;//External cloud URL address - this.cloudNetwork = null;//External cloud network name - this.cloudNode = null;//External cloud Node name - this.cloudTp = null;//External cloud Tp name - } - - //Get cloud image data - getD3Data() { - this.isSpinning = true; - this.myhttp.getNetworkD3Data() - .subscribe((data) => { - this.isSpinning = false; - if (data.length == 0) { - this.addLinkDisabled = false; - this.nonetwork = true; - return; - } - this.nonetwork = false; - for (let ii = 0; ii < data.length; ii++) {//Determine if there is external cloud information in the data, and kick it out. - if (data[ii]['aaiId'] != null) { - this.dataCloud = data.splice(ii, 1); - } - } - - for (let i = 0; i < data.length; i++) { - let name1 = {}, name2 = {}; - let nodess = []; - name1['name'] = name2['network'] = data[i]['networkId']; - name1['type'] = '1'; - name1['source'] = i; - this.d3Data.push(name1); - for (let c = 0; c < data[i]["pnfs"].length; c++) { - nodess.push(data[i]['pnfs'][c]['pnfName']); - this.nodeOption1[name2['network']] = nodess; - } - this.networkOption.push(name2); + /** + * Redraw the selected L2 ethernet service. + * @param {Array<object>} treeData parsed from AAI connectivity. + */ + drawService(treeData) { + //Model of service graph + let graph = { + nodes: [ + ], + links: [ + ], + objectify: (function() { + /* resolve node IDs (not optimized at all!) + */ + var l, n, _i, _len, _ref, _results; + _ref = graph.links; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + l = _ref[_i]; + _results.push((function() { + var _j, _len2, _ref2, _results2; + _ref2 = graph.nodes; + _results2 = []; + for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { + n = _ref2[_j]; + if (l.source === n.id) { + l.source = n; + continue; + } + if (l.target === n.id) { + l.target = n; + continue; + } else { + _results2.push(void 0); + } + } + return _results2; + })()); } - for (let i = 0; i < data.length; i++) { - let tp_length = data[i]['tps'].length; - for (let h = 0; h < tp_length; h++) { - let name2 = {}; - let interface_name = data[i]['tps'][h]['interface-name']; - name2['name'] = interface_name; - name2['type'] = '2'; - name2['source'] = i; - this.d3Data.push(name2); - } + return _results; + }), + remove: (function(condemned) { + /* remove the given node or link from the graph, also deleting dangling links if a node is removed + */ if (Array.prototype.indexOf.call(this.nodes, condemned) >= 0) { + this.nodes = this.nodes.filter(function(n) { + return n !== condemned; + }); + return this.links = this.links.filter(function(l) { + return l.source.id !== condemned.id && l.target.id !== condemned.id; + }); + } else if (Array.prototype.indexOf.call(this.links, condemned) >= 0) { + return this.links = this.links.filter(function(l) { + return l !== condemned; + }); } - for (let b = 0; b < this.d3Data.length; b++) { - this.d3Data[b]['target'] = b; + }), + last_index: 0, + add_node: (function(type) { + var n; + n = { + id: this.last_index++, + x: 960 / 2, + y: 500 / 2, + type: type + }; + this.nodes.push(n); + return n; + }), + add_link: (function(source, target) { + /* avoid links to self + */ + var l, link, _i, _len, _ref; + if (source === target) return null; + /* avoid link duplicates + */ + _ref = this.links; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + link = _ref[_i]; + if (link.source === source && link.target === target) return null; } - this.initPosition(this.d3Data); - setTimeout(this.render(this.d3Data, this.imgmap, this.dataCloud, this.charge, data), 0); - }, (err) => { - console.log(err); - }); + l = { + source: source, + target: target + }; + this.links.push(l); + return l; + }) + }; - } + var nodeList = treeData.map(obj => { + let rObj = {}; + rObj["id"] = obj["id"]; + rObj["x"] = 500; + rObj["y"] = 500; + rObj["type"] = obj["type"]; + return rObj; + }) - //Get the initial connection status of the cloud image getlogicalLinksData - getLinksData() { - this.myhttp.getLogicalLinksData() - .subscribe((data) => { - if (data["status"] == "FAILED") { - return; + var linkList = [] ; + for (var i = 0, e = treeData.length; i < e; i++){ + for (var j = i+1, k = e; j < k; j++){ + linkList.push({ + source: treeData[i].id, + target: treeData[j].id + }); } - for (let i = 0; i < data["logical-link"].length; i++) {//Determine whether there is an external cloud connection in the obtained connection, and kick it out. - if (data['logical-link'][i]['relationship-list']['relationship'].length > 2) { - this.dataCloudLink = data['logical-link'].splice(i, 1); + } + graph.nodes = nodeList; + graph.links = linkList; + graph.objectify(); + var _this = this; + var margin = {top: 20, right: 120, bottom: 20, left: 120}, + width = 1000 - margin.right - margin.left, + height = 350 - margin.top - margin.bottom; + //clean existing element + d3.select("div#" + this.svcContainerOpt.containerId).selectAll("*").remove(); + + let svg = d3.select("div#" + this.svcContainerOpt.containerId).append("svg") + .attr("width", width + margin.right + margin.left) + .attr("height", height + margin.top + margin.bottom); + let container = svg.append("g").style("fill", "transparent"); + + let vis = container.append('g'); + container.call(d3.behavior.zoom().scaleExtent([0.5, 8]) + .on('zoom', function(){ + vis.attr('transform', "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")"); + })); + + vis.append('rect') + .attr('class', 'overlay') + .attr('x', -500000) + .attr('y', -500000) + .attr('width', 1000000) + .attr('height', 1000000) + .on('click', function(d) { + _this.svcEditorGlobal.selection = null; + d3.selectAll('.node').classed('selected', false); + return d3.selectAll('.link').classed('selected', false); + }); + let colorify = d3.scale.category10(); + /* initialize the force layout + */ + let force = d3.layout.force().size([width, height]).charge(-400).linkDistance(160) + .on('tick', (function(e) { + /* update nodes and links + */ + let k = 16 * e.alpha; + graph.nodes.forEach(function(o, i) { + if (o["type"] === "root"){ + o["x"] += k + //o["x"] += i & 2 ? k : -k; + + } else if (o["type"] === "leaf") { + o["x"] += -k; + //o["x"] += i & 2 ? k : -k; } - } + }); + vis.selectAll('.node').attr('transform', function(d) { + return "translate(" + d.x + "," + d.y + ")"; + }); - for (let i = 0; i < data["logical-link"].length; i++) { - let textval = []; - textval[0] = data['logical-link'][i]['relationship-list']['relationship'][0]['relationship-data'][1]['relationship-value'];//tp1 - textval[1] = data['logical-link'][i]['relationship-list']['relationship'][1]['relationship-data'][1]['relationship-value'];//tp2 - textval[2] = data['logical-link'][i]['resource-version'];//version - textval[3] = data['logical-link'][i]['relationship-list']['relationship'][0]['relationship-data'][0]['relationship-value'];//node1 - textval[4] = data['logical-link'][i]['relationship-list']['relationship'][1]['relationship-data'][0]['relationship-value'];//node2 - textval[5] = data['logical-link'][i]['operational-status']; - textval[6] = data['logical-link'][i]['link-name']; - this.logicalLinks.push(textval); - this.chose(textval); - } - if (this.dataCloudLink.length > 0) { - this.getcloudLine(this.dataCloudLink); - } - }, (err) => { - console.log(err); - }); - } - //D3Cloud rendering - render(nodes, imgmap, dataCloud, charge, dataD3) { - let thiss = this; - let _this = this.tpoption, - width = null, - height = _this.height; - if (_this.width > 800) { - width = _this.width; - } else { - width = 800; - } - if (dataD3.length <= 4) { - charge = -300; - } else if (dataD3.length > 4 && dataD3.length <= 6) { - charge = -160; - } else if (dataD3.length > 6 && dataD3.length <= 10) { - charge = -110; - } else { - charge = -100; - } - let svg = d3.select(_this.container).append('svg') - .attr('width', width) - .attr('height', height) - .attr('id', 'content-svg') - .style('pointer-events', 'all') - .style('position', 'absolute') - .style('top', '1%') - .style('right', '2%'), - graph = svg.append('g').attr('class', 'graph').attr('id', 'graph'), - - _g_nodes = graph.selectAll('g.node') - .data(nodes) - .enter() - .append('g') - .style('display', function (d) { - let display = 'block'; - switch (d.type) { - case '1': - display = 'none'; - break; - case '2': - display = 'none'; - break; - default: - break; + //#svcContainer > svg > g > g > g:nth-child(3) > text + //_this.svcEditorGlobal.selection + return vis.selectAll('.link').attr('x1', function(d) { + return d.source.x; + }).attr('y1', function(d) { + return d.source.y; + }).attr('x2', function(d) { + return d.target.x; + }).attr('y2', function(d) { + return d.target.y; + }); + })); + let nodeDragging = force.drag().on('dragstart', function (d){ + d3.event.sourceEvent.stopPropagation(); + d.fixed = true; + }) + + let topoNodeSync = _this.eventDispatcher.on(AppEventType.UserNodeDrag) + .subscribe(event => { + //console.log(event); + let pnfId: string = event.payload.id; + let pnfId_short: string = pnfId.substr(pnfId.lastIndexOf('-')+1); + vis.selectAll('.node > circle').attr('stroke-width', function(d) { + if (d.id.startsWith(pnfId_short)){ + return "4px"; } - return display; - }) - .style('cursor', 'pointer') - .attr('class', 'node'), - - _g_lines = graph.selectAll('line.line') - .data(nodes) - .enter() - .append('g') - .style('display', 'none') - .attr('class', 'line'); - - - _g_lines.append('line') - .style('stroke', '#93c62d' - ) - .style('stroke-width', 2); - - _g_nodes.append('image') - .attr('width', function (d) { - let width = 40; - switch (d.type) { - case '1': - width = 4.4 * width; - break; - case '2': - width = 0.12 * width; - break; - default: - break; - } - return width; - }) - .attr('height', function (d) { - let height = 20; - switch (d.type) { - case '1': - height = 3.5 * height; - break; - case '2': - height = 0.2 * height; - break; - default: - break; - } - return height; - }) - .attr('xlink:href', function (d) { - return imgmap[d.type]; + return "1px"; + }); }); - _g_nodes.append('text') - .text(function (d) { - return d.name; - }) - .style('transform', function (d) { - let x = null; - let y = null; - switch (d.type) { - case '1': - x = 7; - y = -7; - break; - case '2': - x = 1; - y = -2; - break; - default: - break; - } - return 'translate(' + x + '%,' + y + '%)'; - }) - .style('font-size', function (d) { - let size = 14; - switch (d.type) { - case '1': - size = 14; - break; - case '2': - size = 12; - break; - default: - break; - } - return size; - }) - .style('fill', function (d) { - let color = '#666'; - switch (d.type) { - case '1': - color = '#666'; - break; - case '2': - color = '#666'; - break; - default: - break; - } - return color; - }) - .style('font-weight', '500'); - + // DELETION - pressing DEL deletes the selection + // CREATION - pressing N creates a new node + // d3.select(window).on('keydown', function() { + // if (d3.event.keyCode === 46) { + // if (global.selection != null) { + // graph.remove(global.selection); + // global.selection = null; + // return update(); + // } + // } else if (d3.event.keyCode === 78) { + // graph.add_node(); + // return update(); + // } + // }); + + //Parameter for Editing tools + let toolbar = $("<div class='toolbar'></div>"); + $("div#" + this.svcContainerOpt.containerId).append(toolbar); + toolbar.append($("<svg\n" + + " class='active tool'\n " + + "data-tool='pointer'\n" + + " xmlns='http://www.w3.org/2000/svg'\n" + + " version='1.1'\n" + + " width='32'\n" + + " height='32'\n" + + " fill='#b52d0c'" + + " viewBox='0 0 128 128'>\n" + + " <g transform='translate(881.10358,-356.22543)'>\n" + + " <g transform='matrix(0.8660254,-0.5,0.5,0.8660254,-266.51112,-215.31898)'>\n" + + " <path\n" + + " d='m -797.14902,212.29589 a 5.6610848,8.6573169 0 0 0 -4.61823,4.3125 l -28.3428,75.0625 a 5.6610848,8.6573169 0 0 0 4.90431,13 l 56.68561,0 a 5.6610848,8.6573169 0 0 0 4.9043,-13 l -28.3428,-75.0625 a 5.6610848,8.6573169 0 0 0 -5.19039,-4.3125 z m 0.28608,25.96875 18.53419,49.09375 -37.06838,0 18.53419,-49.09375 z'\n />\n" + + " <path\n" + + " d='m -801.84375,290.40625 c -2.09434,2.1e-4 -3.99979,1.90566 -4,4 l 0,35.25 c 2.1e-4,2.09434 1.90566,3.99979 4,4 l 10,0 c 2.09434,-2.1e-4 3.99979,-1.90566 4,-4 l 0,-35.25 c -2.1e-4,-2.09434 -1.90566,-3.99979 -4,-4 z'\n />\n" + + " </g>\n" + + " </g>\n" + + "</svg>")); + toolbar.append($("<svg\n" + + " class='tool'\n" + + " data-tool='add_node'\n" + + " xmlns='http://www.w3.org/2000/svg'\n" + + " version='1.1'\n" + + " width='32'\n" + + " height='32'\n" + + " viewBox='0 0 128 128'>\n" + + " <g transform='translate(720.71649,-356.22543)'>\n" + + " <g transform='translate(-3.8571429,146.42857)'>\n" + + " <path\n d='m -658.27638,248.37149 c -1.95543,0.19978 -3.60373,2.03442 -3.59375,4 l 0,12.40625 -12.40625,0 c -2.09434,2.1e-4 -3.99979,1.90566 -4,4 l 0,10 c -0.007,0.1353 -0.007,0.27095 0,0.40625 0.19978,1.95543 2.03442,3.60373 4,3.59375 l 12.40625,0 0,12.4375 c 2.1e-4,2.09434 1.90566,3.99979 4,4 l 10,0 c 2.09434,-2.1e-4 3.99979,-1.90566 4,-4 l 0,-12.4375 12.4375,0 c 2.09434,-2.1e-4 3.99979,-1.90566 4,-4 l 0,-10 c -2.1e-4,-2.09434 -1.90566,-3.99979 -4,-4 l -12.4375,0 0,-12.40625 c -2.1e-4,-2.09434 -1.90566,-3.99979 -4,-4 l -10,0 c -0.1353,-0.007 -0.27095,-0.007 -0.40625,0 z'\n" + + " />\n" + + " <path\n" + + " d='m -652.84375,213.9375 c -32.97528,0 -59.875,26.86847 -59.875,59.84375 0,32.97528 26.89972,59.875 59.875,59.875 32.97528,0 59.84375,-26.89972 59.84375,-59.875 0,-32.97528 -26.86847,-59.84375 -59.84375,-59.84375 z m 0,14 c 25.40911,0 45.84375,20.43464 45.84375,45.84375 0,25.40911 -20.43464,45.875 -45.84375,45.875 -25.40911,0 -45.875,-20.46589 -45.875,-45.875 0,-25.40911 20.46589,-45.84375 45.875,-45.84375 z'\n" + + " />\n" + + " </g>\n" + + " </g>\n" + + "</svg>")); + toolbar.append($("<svg\n" + + " class='tool'\n" + + " data-tool='add_link'\n" + + " xmlns='http://www.w3.org/2000/svg'\n" + + " version='1.1'\n" + + " width='32'\n" + + " height='32'\n" + + " viewBox='0 0 128 128'>\n" + + "<g transform='translate(557.53125,-356.22543)'>\n" + + " <g transform='translate(20,0)'>\n" + + " <path\n" + + " d='m -480.84375,360 c -15.02602,0 -27.375,12.31773 -27.375,27.34375 0,4.24084 1.00221,8.28018 2.75,11.875 l -28.875,28.875 c -3.59505,-1.74807 -7.6338,-2.75 -11.875,-2.75 -15.02602,0 -27.34375,12.34898 -27.34375,27.375 0,15.02602 12.31773,27.34375 27.34375,27.34375 15.02602,0 27.375,-12.31773 27.375,-27.34375 0,-4.26067 -0.98685,-8.29868 -2.75,-11.90625 L -492.75,411.96875 c 3.60156,1.75589 7.65494,2.75 11.90625,2.75 15.02602,0 27.34375,-12.34898 27.34375,-27.375 C -453.5,372.31773 -465.81773,360 -480.84375,360 z m 0,14 c 7.45986,0 13.34375,5.88389 13.34375,13.34375 0,7.45986 -5.88389,13.375 -13.34375,13.375 -7.45986,0 -13.375,-5.91514 -13.375,-13.375 0,-7.45986 5.91514,-13.34375 13.375,-13.34375 z m -65.375,65.34375 c 7.45986,0 13.34375,5.91514 13.34375,13.375 0,7.45986 -5.88389,13.34375 -13.34375,13.34375 -7.45986,0 -13.34375,-5.88389 -13.34375,-13.34375 0,-7.45986 5.88389,-13.375 13.34375,-13.375 z'\n" + + " />\n <path\n" + + " d='m -484.34375,429.25 c -1.95543,0.19978 -3.60373,2.03442 -3.59375,4 l 0,12.40625 -12.40625,0 c -2.09434,2.1e-4 -3.99979,1.90566 -4,4 l 0,10 c -0.007,0.1353 -0.007,0.27095 0,0.40625 0.19978,1.95543 2.03442,3.60373 4,3.59375 l 12.40625,0 0,12.4375 c 2.1e-4,2.09434 1.90566,3.99979 4,4 l 10,0 c 2.09434,-2.1e-4 3.99979,-1.90566 4,-4 l 0,-12.4375 12.4375,0 c 2.09434,-2.1e-4 3.99979,-1.90566 4,-4 l 0,-10 c -2.1e-4,-2.09434 -1.90566,-3.99979 -4,-4 l -12.4375,0 0,-12.40625 c -2.1e-4,-2.09434 -1.90566,-3.99979 -4,-4 l -10,0 c -0.1353,-0.007 -0.27095,-0.007 -0.40625,0 z'\n" + + " />\n" + + " </g>\n" + + " </g>\n" + + "</svg>")); + let library = $("<div class='library'></div></div>"); + toolbar.append(library); + + ['PON', 'ETH'].forEach(function(type) { + var new_btn; + new_btn = $("<svg width='42' height='42'>\n" + + " <g class='node'>\n" + + " <circle\n" + + " cx='21'\n" + + " cy='21'\n" + + " r='18'\n" + + " stroke='" + (colorify(type)) + "'\n" + + " fill='" + (d3.hcl(colorify(type)).brighter(3)) + "'\n" + + " >\n" + + " <title>" + (type) + " UNI</title> \n" + + " </circle>" + + " </g>\n" + + "</svg>"); + new_btn.bind('click', function() { + graph.add_node(type); + return update(); + }); + library.append(new_btn); + return library.hide(); + }); - //Add custom attributes online - _g_lines.each(function (d, i) { - let _this = d3.select(this); - if (d.name) { - _this.attr('data-text', d.name); + let tool = 'pointer'; + let new_link_source = null; + let drag_link; + vis.on('mousemove.add_link', (function(d) { + /* check if there is a new link in creation + */ + var p; + if (new_link_source != null) { + /* update the draggable link representation + */ + p = d3.mouse(vis.node()); + return drag_link.attr('x1', new_link_source.x).attr('y1', new_link_source.y).attr('x2', p[0]).attr('y2', p[1]); + } + })).on('mouseup.add_link', (function(d) { + new_link_source = null; + /* remove the draggable link representation, if exists + */ + if (drag_link != null) return drag_link.remove(); + })); + d3.selectAll('.tool').on('click', function() { + var new_tool, nodes; + d3.selectAll('.tool').classed('active', false).style("fill", "#a3a4c3"); + d3.select(this).classed('active', true).style("fill", "#b52d0c"); + new_tool = $(this).data('tool'); + nodes = vis.selectAll('.node'); + + //mode change to add_link + if (new_tool === 'add_link' && tool !== 'add_link') { + /* remove drag handlers from nodes + */ + nodes.on('mousedown.drag', null).on('touchstart.drag', null); + /* add drag handlers for the add_link tool + */ + nodes.call(drag_add_link); + } else if (new_tool !== 'add_link' && tool === 'add_link') { + /* remove drag handlers for the add_link tool + */ + nodes.on('mousedown.add_link', null).on('mouseup.add_link', null); + /* add drag behavior to nodes + */ + nodes.call(nodeDragging); + } + if (new_tool === 'add_node') { + library.show(); + } else { + library.hide(); } + return tool = new_tool; }); - - let force = d3.layout.force() - .size([1000, this.winHeight]) - .linkDistance(5) - // .theta(0.6) - .charge(charge) - .nodes(nodes) - .links(nodes) - .start(); - - force.on('tick', function () { - if (force.alpha() <= 0.04) { - - _g_nodes.style('display', function (d) { - let display = 'block'; - switch (d.type) { - case '1': - display = 'block'; - break; - case '2': - display = 'none'; - break; - default: - break; - } - return display; + update(); + function update() { + /* update the layout + */ + var links, new_nodes, nodes; + force.nodes(graph.nodes).links(graph.links).start(); + /* create nodes and links + */ + /* (links are drawn with insert to make them appear under the nodes) + */ + /* also define a drag behavior to drag nodes + */ + /* dragged nodes become fixed + */ + nodes = vis.selectAll('.node').data(graph.nodes, function(d) { + return d.id; + }); + new_nodes = nodes.enter().append('g').attr('class', 'node'); +/* .on('click', (function(d) { + /!* SELECTION + *!/ + _this.svcEditorGlobal.selection = d; + d3.selectAll('.node').classed('selected', function(d2) { + return d2 === d; }); + return d3.selectAll('.link').classed('selected', false); + }));*/ + links = vis.selectAll('.link').data(graph.links, function(d) { + return "" + d.source.id + "->" + d.target.id; + }); - nodes.forEach(function (d, i) { - d.x = d.x - 25 < 0 ? 25 : d.x; - d.x = d.x + 25 > width ? width - 25 : d.x; - d.y = d.y - 15 < 0 ? 15 : d.y; - d.y = d.y + 15 > height ? height - 15 : d.y; + links.enter().insert('line', '.node').attr('class', 'link').on('click', (function(d) { + /* SELECTION + */ + _this.svcEditorGlobal.selection = d; + d3.selectAll('.link').classed('selected', function(d2) { + return d2 === d; }); + return d3.selectAll('.node').classed('selected', false); + })); + links + .style("stroke-width", "6px") + .style("stroke", "gray") + .style("opacity", "0.5"); + + links.exit().remove(); + /* TOOLBAR - add link tool initialization for new nodes + */ + if (tool === 'add_link') { + new_nodes.call(drag_add_link); + } else { + new_nodes.call(nodeDragging); + } + new_nodes.append('circle').attr('r', 18).attr('stroke', function(d) { + return colorify(d.type); + }).attr('fill', function(d) { + return d3.hcl(colorify(d.type)).brighter(3); + }); + /* draw the label + */ + new_nodes.append('text').text(function(d) { + return d.id; + }).attr('dy', '0.35em').attr('fill', function(d) { + return colorify(d.type); + }); + return nodes.exit().remove(); + }; + function drag_add_link (selection) { + return selection.on('mousedown.add_link', (function(d) { + var p; + new_link_source = d; + /* create the draggable link representation + */ + p = d3.mouse(vis.node()); + drag_link = vis.insert('line', '.node').attr('class', 'drag_link').attr('x1', d.x).attr('y1', d.y).attr('x2', p[0]).attr('y2', p[1]); + drag_link + .style("stroke-width", "6px") + .style("stroke", "gray") + .style("opacity", "0.5"); + /* prevent pan activation + */ + d3.event.stopPropagation(); + /* prevent text selection + */ + return d3.event.preventDefault(); + })).on('mouseup.add_link', (function(d) { + /* add link and update, but only if a link is actually added + */ if (graph.add_link(new_link_source, d) != null) return update(); + })); + }; - _g_nodes.attr('transform', function (d) { - let image = d3.select(this).select('image')[0][0], - halfWidth = parseFloat(image.attributes[0]['value']) / 2, - halfHeight = parseFloat(image.attributes[1]['value']) / 2; - let xx = d.x - halfWidth, - yy = d.y - halfHeight; - return 'translate(' + xx + ',' + yy + ')'; - }); + } - _g_lines.select('line') - .attr('x1', function (d) { - return d.source.x; - }) - .attr('y1', function (d) { - return d.source.y; - }) - .attr('x2', function (d) { - return d.target.x; - }) - .attr('y2', function (d) { - return d.target.y; - }); + /** + * Redraw the underlay network topology. + * @param {Array<object>} nodes parsed from AAI logicalLinks. + * @param {Array<object>} lines parsed from AAI logicalLinks. + */ + drawTopo(nodes: Array<object>, lines: Array<object>){ + let margin = {top: 20, right: 120, bottom: 20, left: 120}, + width = 1000 - margin.right - margin.left, + height = 350 - margin.top - margin.bottom; - _g_nodes.select('text').attr('dy', function (d) { - let image = this.previousSibling, - height = parseFloat(image.attributes[1]['value']), - fontSize = 12; - return height + 1.5 * fontSize; - }); - } + let thisNg = this; + + let nodeById = d3.map(); + + nodes.forEach(function(node) { + nodeById.set(node["id"], node); }); - force.on('end', function () { - force.stop(); - if (dataCloud.length > 0) { - thiss.getoutCloud(dataCloud, imgmap); - } - thiss.getLinksData(); - thiss.addLinkDisabled = false; + lines.forEach(function(link) { + link["source"] = nodeById.get(link["source"]); + link["target"] = nodeById.get(link["target"]); }); - }; + let svg = d3.select("div#tpContainer").append("svg") + .attr("width", width + margin.right + margin.left) + .attr("height", height + margin.top + margin.bottom) + .style("pointer-events", "all"); - //Topology drag and drop effect - getDragBehavior(force) { + let graph = svg.append("g").attr("class", "graph"); - return d3.behavior.drag() - .origin(function (d) { - return d; + let force = d3.layout.force() + .nodes(nodes) + .links(lines) + .size([width, height]) + /* .linkStrength(function(d){ + switch(d.type){ + case 1: + return 0.15; + case 2: + default: + return 0.1; + } + })*/ + //.gravity(0) + //.gravity(0) + .linkDistance(function (d) { + return 150; }) - .on('dragstart', dragstart) - .on('drag', dragging) - .on('dragend', dragend); + .charge(function(d) { + return -600; + }) + .start(); - function dragstart(d) { - d3.event.sourceEvent.stopPropagation(); - d3.select(this).classed('dragging', true); - force.start(); - } + let drag = force.drag() + .on("dragstart", dragstart) + .on("dragend", dragend); - function dragging(d) { - d.x = d3.event.x; - d.y = d3.event.y; - } + let _g_lines = graph.selectAll("line.line") + .data(lines) + .enter() + .append("g") + .attr("class", "line"); - function dragend(d) { - d3.select(this).classed('dragging', false); - } + let _g_nodes = graph.selectAll("g.node") + .data(nodes) + .enter() + .append("g") + .attr("class", "node") + .call(drag); + _g_lines.append("line") + .style('stroke', function (d) { + if(d.type === 2){ + return "#000000"; + } else { + return '#93c62d'; + } - } + }) + .style("stroke-width", 4); - //Initialize node location - initPosition(datas) { - let origin = [this.tpoption.width / 2, this.tpoption.height / 2]; - let points = this.getVertices(origin, Math.min(this.tpoption.width / 2, this.tpoption.height / 2), datas.length); - datas.forEach((item, i) => { - item.x = points[i].x; - item.y = points[i].y; - }); - } - //Get anchor points based on polygons - getVertices(origin, r, n) { - if (typeof n !== 'number') return; - let ox = origin[0]; - let oy = origin[1]; - let angle = 30 * n / n; - let i = 0; - let points = []; - let tempAngle = 0; - while (i < n) { - tempAngle = (i * angle * Math.PI) / 180; - points.push({ - x: ox - r * Math.sin(tempAngle), - y: oy - r * Math.cos(tempAngle), + _g_nodes.append("image") + .attr("width", function (d) { + switch (d.group) { + case 'pnf': + return 70; + case 'tp': + default: + return 10; + } + }) + .attr("height", function (d) { + switch (d.group) { + case 'pnf': + return 70; + case 'tp': + default: + return 10; + } + }) + .attr("xlink:href", function (d) { + return thisNg.imgMap[d.group]; }); - i++; - } - return points; - } - //Rendering an external cloud - getoutCloud(dataCloud, imgmap) { - let _this = this, - width; - let networkId = dataCloud[0]['networkId']; - if (_this.tpoption.width > 800) { - width = _this.tpoption.width; - } else { - width = 800; - } - let svg = d3.select('#content-svg'); - svg.append('g').attr('class', 'out').attr('id', 'out').style({ 'display': 'block' }).attr('transform', 'translate(' + (width - 200) + ',0)'); - let out = d3.select('#out'); - out.append('image').style('width', '200').style('height', '118').attr('xlink:href', imgmap['3']); - out.append('text').text(networkId) - .style('transform', 'translate(0,0)') - .style('font-size', '16') - .style('font-weight', '400') - .attr('dx', '40') - .attr('dy', '70') - .style('fill', '#666'); - } + _g_nodes.append("text") + .text(function (d) { + return d.id.substr( d.id.lastIndexOf('-')+1); + }) + .style('font-size', '12') + .style('fill', '#333'); + + //_g_nodes.each(function (d, i) { + var selection = d3.select(this); +/* if (d.status == '0') { + selection.append("g").attr("class", "error-tip") + .append("image").attr("xlink:href", function (d) { + return imgMap['error-tip']; + }); + }*/ + // }); - //External cloud connection - getcloudLine(dataCloudLink) { - let textval = []; - textval[0] = dataCloudLink[0]['relationship-list']['relationship'][0]['relationship-data'][1]['relationship-value'];//tp1 - textval[1] = dataCloudLink[0]['relationship-list']['relationship'][1]['relationship-data'][1]['relationship-value'];//tp2 - textval[2] = dataCloudLink[0]['resource-version'];//version - textval[3] = dataCloudLink[0]['relationship-list']['relationship'][0]['relationship-data'][0]['relationship-value'];//node1 - textval[4] = dataCloudLink[0]['relationship-list']['relationship'][1]['relationship-data'][0]['relationship-value'];//node2 - textval[5] = dataCloudLink[0]['operational-status'];//status - textval[6] = dataCloudLink[0]['relationship-list']['relationship'][2]['relationship-data'][0]['relationship-value'];//aaiId - textval[7] = this.dataCloud[0]['networkId']; - let dataD3 = this.d3Data; - let arr = [ - textval[0], - textval[1] - ]; - for (let p = 0; p < dataD3.length; p++) {//Determine which Domain network the two tp ports belong to - for (let pp = 0; pp < arr.length; pp++) {//Determine which Domain network the two tp ports belong to - if (dataD3[p]['name'] == arr[pp]) { - textval[8] = dataD3[p]['source']['name'];//network1 - } - } - } - textval[9] = dataCloudLink[0]['link-name']; - let lines_json = {}; - let _this = this, - width; - if (_this.tpoption.width > 800) { - width = _this.tpoption.width; - } else { - width = 800; - } - for (let i = 0; i < $(".node").length; i++) { - if ($('.node').eq(i).find('text').html() == textval[8]) { - //Get the x, y coordinates of the second level - let translates = $('.node').eq(i).css('transform'); - lines_json['x1'] = parseFloat(translates.substring(7).split(',')[4]); - lines_json['y1'] = parseFloat(translates.substring(7).split(',')[5]); - lines_json['x2'] = width - 100; - lines_json['y2'] = 100; + _g_lines.each(function (d, i) { + var _this = d3.select(this); + if (d.type === 1) { + _this.append("text") + .text("100GB") + .style('fill', 'rgb(255,198,22)') + .style('font-size', '11'); + + _this.append("rect") + .attr("fill", function (d) { + return '#555'; + }) + .attr("width", function (d) { + return 4; + }) + .attr("height", function (d) { + return 4; + }) + .append("animate"); + + _this.select("rect").append("animate"); + } else { + _this.append("image") + .attr("xlink:href", function () { + return thisNg.imgMap['link-cut']; + }); } - } - let x1 = lines_json['x1']; - let y1 = lines_json['y1']; - let x2 = lines_json['x2']; - let y2 = lines_json['y2']; - let color = '#14bb58'; - if (textval[5] == 'up') { - color = '#14bb58'; - } else { - color = 'red'; - } - let line = '<line class=\'line cloudline line-click\' stroke=\'' + color + '\' stroke-width=\'2\' style=\'cursor:pointer\'></line>'; - let svg = d3.select('#graph'); - $('.cloudline').remove(); - $('#graph').prepend(line); - $('.cloudline').attr({ - x1: x1 + 100, - y1: y1 + 10, - x2: x2, - y2: y2, - 'data-tp1': textval[0], - 'data-tp2': textval[1], - 'data-version': textval[2], - 'data-node1': textval[3], - 'data-node2': textval[4], - 'data-network': textval[8], - 'data-cloudnetwork': textval[7], - 'data-url': '', - 'data-aaiid': textval[6], - 'data-link': textval[9], }); - svg.html(svg.html()); - this.getCloudUrl(textval[6]); - this.getExtAAIIdVersion(textval[6]); - } - //Query external cloud host url address - getCloudUrl(aaiId) { - this.myhttp.queryCloudUrl(aaiId) - .subscribe((data) => { - this.delcloudUrl = data['service-url']; - $('.cloudline').attr({ - 'data-url': data['service-url'] + force.on("tick", function (e) { + + _g_lines.select("line").attr("x1", function (d) { + return d.source.x; + }) + .attr("y1", function (d) { + return d.source.y; + }) + .attr("x2", function (d) { + return d.target.x; + }) + .attr("y2", function (d) { + return d.target.y; + }); + _g_lines.select("image").attr("x", function (d) { + var x1 = d.source.x, + x2 = d.target.x, + x = x1 - (x1 - x2) / 2; + return x - 8; + }) + .attr("y", function (d) { + var y1 = d.source.y, + y2 = d.target.y, + y = y1 - (y1 - y2) / 2; + return y - 15; }); - }, (err) => { - console.log(err); - }); - } - //Query external cloud ext-aai-id resource-version - getExtAAIIdVersion(aaiId) { - this.myhttp.queryExtAAIIdVersion(aaiId) - .subscribe((data) => { - this.delVersion = data["resource-version"]; - $('.cloudline').attr({ - 'data-version': data["resource-version"], + _g_lines.select("text") + .attr('x', function (d) { + var x1 = d.source.x, + x2 = d.target.x, + halfX = x1 - (x1 - x2) / 2, + x3 = x1 - (x1 - halfX) / 2; + return x3; + }) + .attr('y', function (d) { + var y1 = d.source.y, + y2 = d.target.y, + halfY = y1 - (y1 - y2) / 2, + y3 = y1 - (y1 - halfY) / 2; + y3 = y3 - 5; + return y3; + }) + .attr("transform", function (d) { + var x1 = d.source.x, + x2 = d.target.x, + y1 = d.source.y, + y2 = d.target.y, + x = x1 - (x1 - x2) / 2, + y = y1 - (y1 - y2) / 2, + rightAngleSide1 = Math.abs(y2 - y1), + rightAngleSide2 = Math.abs(x2 - x1), + _asin = 0, + _rotateAngle = 0, + x3 = x1 - (x1 - x) / 2, + y3 = y1 - (y1 - y) / 2; + + if (x1 < x2) { + _asin = (y2 - y1) / Math.sqrt(Math.pow(rightAngleSide1, 2) + Math.pow( + rightAngleSide2, 2)); + _rotateAngle = Math.asin(_asin) * 180 / Math.PI; + } else { + _asin = (y1 - y2) / Math.sqrt(Math.pow(rightAngleSide1, 2) + Math.pow( + rightAngleSide2, 2)); + _rotateAngle = Math.asin(_asin) * 180 / Math.PI; + _rotateAngle = _rotateAngle < 0 ? (180 + _rotateAngle) : -(180 - + _rotateAngle); + } + return 'rotate(' + (_rotateAngle) + ',' + x3 + ' ' + y3 + ')'; }); - }, (err) => { - console.log(err); - }); - } + _g_lines.select("rect") + .attr('x', function (d) { + return d.source.x - 1; + }) + .attr('y', function (d) { + return d.source.y - 1; + }) + .selectAll('animate').each(function (d, i) { + if (i == 0) { + d3.select(this) + .attr("attributeName", function (d) { + return 'x'; + }) + .attr("from", function (d) { + return d.source.x - 1; + }) + .attr("to", function (d) { + return d.target.x; + }); + } else { + d3.select(this) + .attr("attributeName", function (d) { + return 'y'; + }) + .attr("from", function (d) { + return d.source.y - 1; + }) + .attr("to", function (d) { + return d.target.y; + }); + } - //The right form drop-down box data is filled with three levels of linkage - //Left Port - network1Change(value: string): void { - this.selectedNode1 = this.nodeOption1[value][0]; - this.getPInterfaces1(); - } + d3.select(this).attr("attributeType", "XML") + .attr("dur", function (d) { + return '1.5s'; + }) + .attr("repeatCount", "indefinite"); - node1Change(): void { - this.getPInterfaces1(); - } + }) +/* let k = 6 * e.alpha; + nodes.forEach(function(o, i) { + if (o["layer"] === "Otn"){ + o["y"] += k + //o["x"] += i & 2 ? k : -k; + + } else if (o["layer"] === "Eth") { + o["y"] += -k; + //o["x"] += i & 2 ? k : -k; + } + });*/ - //Get the TP data under the specified node - getPInterfaces1() { - let params = { - pnfName: this.selectedNode1, - }; - this.myhttp.getPInterfacesData(params) - .subscribe((data) => { - this.tpOption1 = []; - for (let i = 0; i < data.length; i++) { - let tpName = data[i]['interface-name']; - this.tpOption1.push(tpName); + _g_nodes.attr("transform", function (d) { + if(d.group === 'pnf') { + var image = d3.select(this).select("image")[0][0], + halfWidth = parseFloat("70") / 2, + halfHeight = parseFloat("70") / 2; + + return 'translate(' + (d.x - halfWidth) + ',' + (d.y - halfHeight) + ')'; + } else { + return 'translate(' + (d.x) + ',' + (d.y) + ')'; } - this.selecteTpName1 = this.tpOption1[0]; - }, (err) => { - console.log(err); - }); - } - //Right Port - network2Change(value: string): void { - this.selectedNode2 = this.nodeOption1[value][0]; - this.getPInterfaces2(); - } + }); - node2Change(): void { - this.getPInterfaces2(); - } + _g_nodes.select("text").attr('dy', function (d) { + var image = this.previousSibling, + height = parseFloat("10"), + fontSize = parseFloat(this.style.fontSize); - //Get the TP data under the specified node - getPInterfaces2() { - let params = { - pnfName: this.selectedNode2, - }; - this.myhttp.getPInterfacesData(params) - .subscribe((data) => { - this.tpOption2 = []; - for (let i = 0; i < data.length; i++) { - let tpName = data[i]['interface-name']; - this.tpOption2.push(tpName); - } - this.selecteTpName2 = this.tpOption2[0]; - }, (err) => { - console.log(err); + return height + 1.5 * fontSize; }); - } - //Submit form, connect - submitForm(): void { - //When the page ONAP is not selected, the local cloud TP connection - let _thiss = this; - if (this.inputshow == false) { - if (this.linkName == null || this.networkVal1 == null || this.selectedNode1 == null || this.selecteTpName1 == null || this.networkVal2 == null || this.selectedNode2 == null || this.selecteTpName2 == null) { - alert('The service port cannot be empty. Please select the port information.'); - return; - } else if (this.networkVal1 == this.networkVal2) { - alert('The TP port under the same cloud service cannot be connected!'); - return; - } - let tp_links = [], - tp1 = this.selecteTpName1, - tp2 = this.selecteTpName2; - for (let i = 0; i < $(".line-port").length; i++) { - let data_text1 = $('.line-port').eq(i).attr('data-tp1'); - let data_text2 = $('.line-port').eq(i).attr('data-tp2'); - tp_links.push(data_text1); - tp_links.push(data_text2); - } - if (tp_links.indexOf(tp1) != -1 || tp_links.indexOf(tp2) != -1) { - alert('This port number connection already exists!'); - return; - } - this.createTpLinks(); + _g_nodes.select(".error-tip").attr("transform", function (d) { - } else { - //When the page ONAP is selected, the external cloud is created, and the connection is made. - if (this.linkName == null || this.networkVal1 == null || this.selectedNode1 == null || this.selecteTpName1 == null || this.cloudUrl == null || this.cloudNetwork == null || this.cloudNode == null || this.cloudTp == null) { - alert('The service port cannot be empty. Please fill in the complete port information.'); - return; - } - let tp_links = [], - tp1 = this.selecteTpName1; - for (let i = 0; i < $(".line-port").length; i++) { - let data_text1 = $('.line-port').eq(i).attr('data-tp1'); - tp_links.push(data_text1); - } - if (tp_links.indexOf(tp1) != -1) { - alert('This port number connection already exists!'); - return; - } + var image = this.parentNode.firstChild, + width = parseFloat("70"); - let time = this.cloudNetwork + new Date().getTime();//Create aaiid for the external cloud, this identifier is unique and cannot be repeated - this.createCloudUrls(time) - } - } + return 'translate(' + 0.8 * width + ',0)'; - //Create tp connection call interface createLink - createTpLinks() { - let params = { - 'link-name': this.linkName, - 'link-type': 'cross-link', - 'operational-status': 'up', - 'relationship-list': { - 'relationship': [ - { - 'related-to': 'p-interface', - 'related-link': '/aai/v14/network/pnfs/pnf/' + this.selectedNode1 + '/p-interfaces/p-interface/' + this.selecteTpName1, - 'relationship-data': [ - { - 'relationship-key': 'pnf.pnf-id', - 'relationship-value': this.selectedNode1 - }, - { - 'relationship-key': 'p-interface.p-interface-id', - 'relationship-value': this.selecteTpName1, - } - ] - }, - { - 'related-to': 'p-interface', - 'related-link': '/aai/v14/network/pnfs/pnf/' + this.selectedNode2 + '/p-interfaces/p-interface/' + this.selecteTpName2, - 'relationship-data': [ - { - 'relationship-key': 'pnf.pnf-id', - 'relationship-value': this.selectedNode2 - }, - { - 'relationship-key': 'p-interface.p-interface-id', - 'relationship-value': this.selecteTpName2 - } - ] - } - ] - } - }; - this.myhttp.createLink(params) - .subscribe((data) => { - if (data['status'] == 'SUCCESS') { - this.queryAddLink(); - } - }, (err) => { - console.log(err); - console.log('Create connection interface call failed'); }); - } - //Query the newly added connection immediately after creating the tp cable - queryAddLink() { - let linkName = this.linkName, - selecteTpName1 = this.selecteTpName1, - selecteTpName2 = this.selecteTpName2, - selectedNode1 = this.selectedNode1, - selectedNode2 = this.selectedNode2; - let params = { - 'link-name': linkName, - }; - this.myhttp.querySpecificLinkInfo(params) - .subscribe((data) => { - let version = data['resource-version'], - operational_status = data['operational-status'], - linkname = data['link-name']; - let textval = [selecteTpName1, selecteTpName2, version, selectedNode1, selectedNode2, operational_status, linkname]; - this.hideForm(); - this.chose(textval); - }, (err) => { - console.log(err); - }); - } + }); - //Connection between two TP coordinates - chose(textval) { - let lines_json = {}; - lines_json['tp1'] = textval[0]; - lines_json['tp2'] = textval[1]; - lines_json['version'] = textval[2]; - lines_json['node1'] = textval[3]; - lines_json['node2'] = textval[4]; - lines_json['status'] = textval[5]; - lines_json['linkname'] = textval[6]; - for (let i = 0; i < $(".node").length; i++) { - if ($('.node').eq(i).find('text').html() == textval[0]) { - $('.node').eq(i).show(); - //Get the x, y coordinates of the second level - let translates = $('.node').eq(i).css('transform'); - lines_json['x1'] = parseFloat(translates.substring(7).split(',')[4]); - lines_json['y1'] = parseFloat(translates.substring(7).split(',')[5]); - } - if ($('.node').eq(i).find('text').html() == textval[1]) { - $('.node').eq(i).show(); - let translates = $('.node').eq(i).css('transform'); - lines_json['x2'] = parseFloat(translates.substring(7).split(',')[4]); - lines_json['y2'] = parseFloat(translates.substring(7).split(',')[5]); - } - } - this.addLine(lines_json); - } - //Connection between two TPs - addLine(lines) { - let tp1 = lines.tp1; - let tp2 = lines.tp2; - let version = lines.version; - let node1 = lines.node1; - let node2 = lines.node2; - let status = lines.status; - let linkname = lines.linkname; - let x1 = lines.x1; - let y1 = lines.y1; - let x2 = lines.x2; - let y2 = lines.y2; - let color = '#14bb58'; - if (status == 'up') { - color = '#14bb58'; - } else { - color = 'red'; + function dblclick(d) { + d3.select(this).classed("fixed", d.fixed = false); } - let line = '<line class=\'line line-port line-click\' stroke=\'' + color + '\' stroke-width=\'2\' style=\'cursor:pointer\'></line>'; - let svg = d3.select('#graph'); - $('#graph').prepend(line); - $('.line').first().attr({ - x1: x1, - y1: y1, - x2: x2, - y2: y2, - 'data-tp1': tp1, - 'data-tp2': tp2, - 'data-version': version, - 'data-node1': node1, - 'data-node2': node2, - 'data-link': linkname - }); - svg.html(svg.html()); - } - - //After creating an external cloud connection, query the connection immediately - queryOutCloudLink(time) { - let networkVal1 = this.networkVal1, - selectedNode1 = this.selectedNode1, - selecteTpName1 = this.selecteTpName1, - cloudUrl = this.cloudUrl, - cloudNetWork = this.cloudNetwork, - cloudNode = this.cloudNode, - cloudTp = this.cloudTp, - linkname = this.linkName; - let params = { - 'link-name': linkname, - }; - this.myhttp.querySpecificLinkInfo(params) - .subscribe((data) => { - let status = data['operational-status']; - let link_name = data['link-name']; - this.outCloudShow = true; - this.hideForm(); - this.outCloud(this.imgmap); - setTimeout(this.cloudLine(networkVal1, selectedNode1, selecteTpName1, cloudUrl, cloudNetWork, cloudNode, cloudTp, status, link_name, time), 0); - }, (err) => { - console.log(err); - }); - } - //Add external cloud - outCloud(imgmap) { - let _this = this, - width; - if (_this.tpoption.width > 800) { - width = _this.tpoption.width; - } else { - width = 800; + function dragstart(d) { + d3.select(this).classed("fixed", d.fixed = true); + thisNg.eventDispatcher.dispatch(new AppEvent(AppEventType.UserNodeDrag, d)); } - let svg = d3.select('#content-svg'); - svg.append('g').attr('class', 'out').attr('id', 'out').style({ 'display': 'block' }).attr('transform', 'translate(' + (width - 200) + ',0)'); - let out = d3.select('#out'); - out.append('image').style('width', '200').style('height', '118').attr('xlink:href', imgmap['3']); - out.append('text').text('Partner Network') - .style('transform', 'translate(0,0)') - .style('font-size', '16') - .style('font-weight', 'bold') - .attr('dx', '40') - .attr('dy', '70') - .style('fill', '#fff'); - } + function dragend(d) { - //Add external cloud connection - cloudLine(networkVal1, selectedNode1, selecteTpName1, cloudUrl, cloudNetWork, cloudNode, cloudTp, status, link_name, time) { - let lines_json = {}; - let _this = this, - width; - if (_this.tpoption.width > 800) { - width = _this.tpoption.width; - } else { - width = 800; } - for (let i = 0; i < $(".node").length; i++) { - if ($('.node').eq(i).find('text').html() == networkVal1) { - //Get the x, y coordinates of the second level - let translates = $('.node').eq(i).css('transform'); - lines_json['x1'] = parseFloat(translates.substring(7).split(',')[4]); - lines_json['y1'] = parseFloat(translates.substring(7).split(',')[5]); - lines_json['x2'] = width - 100; - lines_json['y2'] = 100; + + function color (d){ + const scale = d3.scaleOrdinal(d3.schemeCategory10); + switch(d.group){ + case "pnf": + return scale(1); + case "tp": + return scale(2); + default: + return scale(9); } } - let x1 = lines_json['x1']; - let y1 = lines_json['y1']; - let x2 = lines_json['x2']; - let y2 = lines_json['y2']; - let color = '#14bb58'; - if (status == 'up') { - color = '#14bb58'; - } else { - color = 'red'; - } - let line = '<line class=\'line cloudline line-click\' stroke=\'' + color + '\' stroke-width=\'2\' style=\'cursor:pointer\'></line>'; - let svg = d3.select('#graph'); - $('.cloudline').remove(); - $('#graph').prepend(line); - $('.cloudline').attr({ - x1: x1 + 100, - y1: y1 + 10, - x2: x2, - y2: y2, - 'data-tp1': selecteTpName1, - 'data-tp2': cloudTp, - 'data-node1': selectedNode1, - 'data-node2': cloudNode, - 'data-network': networkVal1, - 'data-cloudnetwork': cloudNetWork, - 'data-url': cloudUrl, - 'data-aaiid': time, - 'data-link': link_name - }); - svg.html(svg.html()); - this.getExtAAIIdVersion(time); } - //Create an external cloud, call the following 5 interfaces when connecting:createCloudNetwork,createPnfs,createCloudTp,createCloudLinks,createCloudUrls - createCloudNetwork(time) { - let _thiss = this; - let params = { - '-xmlns': 'http://org.onap.aai.inventory/v14', - 'in-maint': 'false', - "network-id": this.cloudNetwork, - "provider-id": "", - "client-id": "", - "te-topo-id": "", - "relationship-list": { - "relationship": [{ - "related-to": "ext-aai-network", - 'related-link': '/aai/v14/network/ext-aai-networks/ext-aai-network/' + time - }] - } - }; + choseConnectivity(item) { + if (this.connectivitySelected !== item) this.connectivitySelected = item; + this.drawService(this.getSvcTree()); + } - //Do some asynchronous operations - _thiss.myhttp.createNetwrok(params) - .subscribe((data) => { - if (data["status"] == "SUCCESS") { - _thiss.createPnfs(time) - } - }, (err) => { - console.log(err); - }); + getSvcTree(): Array<object> { + let tree = [] + let rel = this.connectivitySelected["relationship-list"]["relationship"] || null; + if (rel){ + tree = rel.filter(rl => rl["related-to"] === "uni") + .map(obj => { + let rObj ={}; + rObj["id"] = obj["relationship-data"][0]["relationship-value"], + rObj["type"] = "leaf"; + return rObj; + }) + } + return tree; + } + getNodes(ptMapping: Array<object>) : Array<object>{ + let nodes = []; + for (let pnf of ptMapping){ + if (pnf["layer"] === 2){ + continue; + } + let name = pnf["pnfName"]; + let newNode = { + "id" : name, + "group": "pnf", + "radius" : 2, + "layer" : pnf["layer"] === 2? "Eth" : "Otn" + } + nodes.push(newNode); + } + return nodes; } - createPnfs(time) { - let _thiss = this; - let params = { - "-xmlns": "http://org.onap.aai.inventory/v14", - "pnf-name": this.cloudNode, - "pnf-id": this.cloudNode, - "in-maint": "true", - "relationship-list": { - "relationship": [ - { - "related-to": "ext-aai-network", - "relationship-label": "org.onap.relationships.inventory.BelongsTo", - "related-link": "/aai/v14/network/ext-aai-networks/ext-aai-network/" + time, - "relationship-data": { - "relationship-key": "ext-aai-network.aai-id", - "relationship-value": time + getLinks(logicalLinks: Array<object>, ptMapping: Array<object>) : Array<object> { + let links = []; + for (let ll of logicalLinks){ + let lkName:string = ll["link-name"]; + let topoIdIdx:number = lkName.lastIndexOf("topologyId-"); + if (topoIdIdx !== -1 && lkName.charAt(topoIdIdx + 11) === '2'){ + //Ignore + continue; + } else if (typeof ll["relationship-list"] === 'undefined' || + typeof ll["relationship-list"]["relationship"] === 'undefined'){ + continue; + } + //pnf to pnf + let endpoints = []; + for (let pi of ll["relationship-list"]["relationship"]) { + if (pi["related-to"] === "p-interface"){ + for (let rd of pi["relationship-data"]){ + if (rd["relationship-key"] === "pnf.pnf-name"){ + endpoints.push(rd["relationship-value"]); } - }, - { - "related-to": "network-resource", - "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v14/network/network-resources/network-resource/" + this.cloudNetwork } - ] - } - }; - - //Do some asynchronous operations - _thiss.myhttp.createPnf(params) - .subscribe((data) => { - if (data["status"] == "SUCCESS") { - _thiss.createCloudTp(time) } - }, (err) => { - console.log(err); - }); - } - - createCloudTp(time) { - let _thiss = this; - let params = { - "-xmlns": "http://org.onap.aai.inventory/v14", - "interface-name": this.cloudTp, - "speed-value": "1000000", - "in-maint": "true", - "network-ref": "", - "transparent": "true", - "operational-status": "up" - }; - - let cloudNodeName = this.cloudNode; - //Do some asynchronous operations - _thiss.myhttp.createTp(params, cloudNodeName) - .subscribe((data) => { - if (data["status"] == "SUCCESS") { - _thiss.createCloudLinks(time) + } + if (endpoints.length === 2){ + let newlk = { + "source": endpoints[0], + "target": endpoints[1], + "type" : 1 } - }, (err) => { - console.log(err); - }); + links.push(newlk); + } + } + return links; } - createCloudLinks(time) { - let _thiss = this; - let params = { - "-xmlns": "http://org.onap.aai.inventory/v14", - "link-name": this.linkName, - "in-maint": "false", - "link-type": "cross-link", - "speed-value": "", - "operational-status": "up", - "relationship-list": { - "relationship": [ - { - "related-to": "p-interface", - "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v14/network/pnfs/pnf/" + this.selectedNode1 + "/p-interfaces/p-interface/" + this.selecteTpName1, - "relationship-data": [ - { - "relationship-key": "pnf.pnf-name", - "relationship-value": this.selectedNode1 - }, - { - "relationship-key": "p-interface.interface-name", - "relationship-value": this.selecteTpName1 - } - ], - "related-to-property": [{ - "property-key": "p-interface.prov-status" - }] - }, - { - "related-to": "p-interface", - "relationship-label": "tosca.relationships.network.LinksTo", - "related-link": "/aai/v14/network/pnfs/pnf/" + this.cloudNode + "/p-interfaces/p-interface/" + this.cloudTp, - "relationship-data": [ - { - "relationship-key": "pnf.pnf-name", - "relationship-value": this.cloudNode - }, - { - "relationship-key": "p-interface.interface-name", - "relationship-value": this.cloudTp - } - ], - "related-to-property": [{ - "property-key": "p-interface.prov-status" - }] - }, - { - "related-to": "ext-aai-network", - "relationship-label": "org.onap.relationships.inventory.BelongsTo", - "related-link": "/aai/v14/network/ext-aai-networks/ext-aai-network/" + time, - "relationship-data": [ - { - "relationship-key": "ext-aai-network.aai-id", - "relationship-value": time - } - ] + getPnfTpMapping(logicalLinks: Array<object>) { + let pnfs = []; + let pnfVisited = {}; + let pnfIndex: number = 0; + for (let ll of logicalLinks){ + let lkName:string = ll["link-name"]; + let topoIdIdx:number = lkName.lastIndexOf("topologyId-"); + if (topoIdIdx !== -1 && lkName.charAt(topoIdIdx + 11) === '2'){ + //Ethernet layer logical-link + let lastDashIdx:number = lkName.lastIndexOf("-"); + let pnfName: string = lkName.replace("linkId", "nodeId").substr(0, lastDashIdx); + let uniName: string = lkName.substr( lastDashIdx+1); + + if (pnfVisited[pnfName]){ + let idx: number = parseInt(pnfVisited[pnfName].substr(1)); + pnfs[idx].tps[uniName] = true; + } else { + pnfVisited[pnfName] = '#' + pnfIndex; + let newPnf = { + "pnfName" : pnfName, + "tps" : { + }, + "layer" :2 } - ] - } - }; + newPnf.tps[uniName] = true; + pnfs.push(newPnf); + pnfIndex++; - //Do some asynchronous operations - _thiss.myhttp.createCloudLink(params) - .subscribe((data) => { - // resolve(data['status']); - if (data["status"] == "SUCCESS") { - _thiss.queryOutCloudLink(time); } - }, (err) => { - console.log(err); - }); - } - - createCloudUrls(time) { - let _thiss = this; - let params = { - '-xmlns': 'http://org.onap.aai.inventory/v14', - 'aai-id': time, - 'esr-system-info': { - 'esr-system-info-id': 'example-esr-system-info-id-val-0', - 'service-url': this.cloudUrl, - 'user-name': 'demo', - 'password': 'demo123456!', - 'system-type': 'ONAP' + continue; + } else if (ll["relationship-list"] === undefined || + ll["relationship-list"]["relationship"].length === 0 ){ + continue; } - }; - _thiss.myhttp.createCloudUrl(params) - .subscribe((data) => { - if (data['status'] == 'SUCCESS') { - _thiss.createCloudNetwork(time); - } - }, (err) => { - console.log(err); - }); - } + for (let pi of ll["relationship-list"]["relationship"]) { + if (pi["related-to"] === "p-interface"){ + let pnfName:string; + let tpName:string; + for (let rd of pi["relationship-data"]){ + if (rd["relationship-key"] === "pnf.pnf-name"){ + pnfName = rd["relationship-value"]; + } else if (rd["relationship-key"] === "p-interface.interface-name"){ + tpName = rd["relationship-value"]; + } + } + if (pnfVisited[pnfName]){ + let idx: number = parseInt(pnfVisited[pnfName].substr(1)); + pnfs[idx].tps[tpName] = true; + } else { + pnfVisited[pnfName] = '#' + pnfIndex; + let newPnf = { + "pnfName" : pnfName, + "tps" : { + }, + "layer" : 1 + } + newPnf.tps[tpName] = true; + pnfs.push(newPnf); + pnfIndex++; - //Local cloud TP port Delete connection Call interface deleteLink - delLink(): void { - let deltp1 = this.delTp1, - deltp2 = this.delTp2, - version = this.delVersion, - dellinkname = this.delLinkname, - delLinkIndex = this.delLinkIndex; - let params = { - 'logical-link': dellinkname, - 'resource-version': version, - }; - this.myhttp.deleteLink(params) - .subscribe((data) => { - if (data['status'] == 'SUCCESS') { - this.delLine(deltp1, deltp2); - delLinkIndex.remove(); + } } - }, (err) => { - console.log(err); - console.log('Deleting a connection interface call failed'); - }); - } - - delLine(val1, val2) { - this.delBoxisVisible = false; - for (let i = 0; i < $(".node").length; i++) { - if ($('.node').eq(i).find('text').html() == val1) { - $('.node').eq(i).hide(); - } - if ($('.node').eq(i).find('text').html() == val2) { - $('.node').eq(i).hide(); } } + return pnfs; } - - - //External cloud Delete connection Call interface deleteCloudLink - delCloudLink(): void { - let deltp1 = this.delTp1, - deltp2 = this.delTp2, - version = this.delVersion, - aaiId = this.aaiId; - let params = { - "aaiId": aaiId, - "version": version, - }; - this.myhttp.deleteCloudLink(params) - .subscribe((data) => { - if (data['status'] == 'SUCCESS') { - this.delLine(deltp1, deltp2); - $('.cloudline').remove(); - $('#out').remove(); - } - }, (err) => { - console.log(err); - console.log('Deleting a connection interface call failed'); - }); - } - } diff --git a/usecaseui-portal/src/assets/i18n/cn.json b/usecaseui-portal/src/assets/i18n/cn.json index fc02bb7b..f4086084 100644 --- a/usecaseui-portal/src/assets/i18n/cn.json +++ b/usecaseui-portal/src/assets/i18n/cn.json @@ -153,6 +153,7 @@ "i18nTextDefine_PartnerNetwork": "伙伴网络", "i18nTextDefine_HostUrl": "主机网址", "i18nTextDefine_deleteLink": "删除链接", + "i18nTextDefine_Connectivty": "L3业务实例", "sotn-component": "--:", "i18nTextDefine_subscriptionType": "订购类型", diff --git a/usecaseui-portal/src/assets/i18n/en.json b/usecaseui-portal/src/assets/i18n/en.json index 10218f47..10fd2140 100644 --- a/usecaseui-portal/src/assets/i18n/en.json +++ b/usecaseui-portal/src/assets/i18n/en.json @@ -147,6 +147,7 @@ "i18nTextDefine_PartnerNetwork": "Partner Network", "i18nTextDefine_HostUrl": "Host Url", "i18nTextDefine_DeleteLink": "Delete Link", + "i18nTextDefine_Connectivity": "Connectivity", "sotn-component": "--:", "i18nTextDefine_subscriptionType": "Service Type", |