diff --git a/build/bes/bin/digest b/build/bes/bin/digest
new file mode 100644
index 0000000000000000000000000000000000000000..296ba37c4aa41ab6603cf518a569995526630468
--- /dev/null
+++ b/build/bes/bin/digest
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+CLASSPATH=$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-util.jar
+CLASSPATH=$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-core.jar
+CLASSPATH=$CLASSPATH:$BES_HOME/lib/bootstrap/bes-config-provider.jar
+CLASSPATH=$CLASSPATH:$BES_HOME/lib/bootstrap/bes-gmssl.jar
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+$JAVA -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" $JAVA_OPTS -cp "$CLASSPATH" com.bes.enterprise.config.digest.DigestMain "$@"
\ No newline at end of file
diff --git a/build/bes/bin/digest.bat b/build/bes/bin/digest.bat
new file mode 100644
index 0000000000000000000000000000000000000000..4e40d92e6372d3abf110daf4bf3e0b3f125bfb1e
--- /dev/null
+++ b/build/bes/bin/digest.bat
@@ -0,0 +1,77 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-util.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-core.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-config-provider.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-gmssl.jar
+
+if "%PATCH_CLASSPATH%" == "" goto digest
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:digest
+%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" -Dcom.bes.installRoot="%BES_HOME%" com.bes.enterprise.config.digest.DigestMain %*
+
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
diff --git a/build/bes/bin/gmkeytool b/build/bes/bin/gmkeytool
new file mode 100644
index 0000000000000000000000000000000000000000..d529195d1106ee3c47399ca657b19bad9da45dd0
--- /dev/null
+++ b/build/bes/bin/gmkeytool
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+if [ ! -f "$BES_HOME/lib/bes-gmcert.jar" ];then
+ echo The non-gm version does not support gmkeytool!
+ exit 0;
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-gmssl.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-gmcert.jar"
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+$JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -cp "$CLASSPATH" com.bes.enterprise.cert.BESKeyStoreInitializer "${@}"
diff --git a/build/bes/bin/gmkeytool.bat b/build/bes/bin/gmkeytool.bat
new file mode 100644
index 0000000000000000000000000000000000000000..b56c2f4f838438d6756fb438279576ee7507633c
--- /dev/null
+++ b/build/bes/bin/gmkeytool.bat
@@ -0,0 +1,78 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" patch
+
+if not exist "%BES_HOME%\lib\bes-gmcert.jar" (
+ echo The non-gm version does not support gmkeytool!
+ goto end
+)
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-gmssl.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-gmcert.jar
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+%JAVA% -Dcom.bes.installRoot="%BES_HOME%" %JAVA_OPTS% -cp "%CLASSPATH%" com.bes.enterprise.cert.BESKeyStoreInitializer %*
+
+:error
+endlocal
+exit /b 1
+
+:end
+endlocal
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/jspc b/build/bes/bin/jspc
new file mode 100644
index 0000000000000000000000000000000000000000..100967b7d1622bd9cacf378810d8411ee72a5a93
--- /dev/null
+++ b/build/bes/bin/jspc
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-jasper.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-api.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-el.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-bootstrap.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-core.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-webapp-compressor.jar"
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+$JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.enterprise.webtier.util.jsp.BESASJspC "${@}"
\ No newline at end of file
diff --git a/build/bes/bin/jspc.bat b/build/bes/bin/jspc.bat
new file mode 100644
index 0000000000000000000000000000000000000000..28731fd855a6770713ab5451ce0f875882e26059
--- /dev/null
+++ b/build/bes/bin/jspc.bat
@@ -0,0 +1,80 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-jasper.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-api.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-el.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-bootstrap.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-core.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-webapp-compressor.jar
+
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" com.bes.enterprise.webtier.util.jsp.BESASJspC %*
+
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/killprocess b/build/bes/bin/killprocess
new file mode 100644
index 0000000000000000000000000000000000000000..17498317914dbde4e236d904dfb9bf0af50dc113
--- /dev/null
+++ b/build/bes/bin/killprocess
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+
+for pids in $*
+ do
+ for process in `ps -ef | grep $pids | awk '{if($3== '$pids'|| $2=='$pids'){ print $2}}'`
+ do
+ kill -9 $process
+ done
+ done
\ No newline at end of file
diff --git a/build/bes/bin/killprocess.bat b/build/bes/bin/killprocess.bat
new file mode 100644
index 0000000000000000000000000000000000000000..6e96882952f697eed1ea200c2723c14bad97c7b0
--- /dev/null
+++ b/build/bes/bin/killprocess.bat
@@ -0,0 +1,14 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+:nextpid
+if "%1"=="" goto doexit
+ taskkill /t /f /pid %1
+ shift
+ goto nextpid
+:doexit
\ No newline at end of file
diff --git a/build/bes/bin/lmadm b/build/bes/bin/lmadm
new file mode 100644
index 0000000000000000000000000000000000000000..a97e52b7e6165cd5b339504e92dd7c9d3f6710d5
--- /dev/null
+++ b/build/bes/bin/lmadm
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-license.jar"
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+JAVA_OPTS="$JAVA_OPTS -Dcom.bes.patchEnv=Lite"
+cleanup()
+{
+ stty echo
+ exit 1;
+}
+trap '' 1 2 3 9 15
+"$JAVA" $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.appserv.lic.RegistrationTool "$@"
diff --git a/build/bes/bin/lmadm.bat b/build/bes/bin/lmadm.bat
new file mode 100644
index 0000000000000000000000000000000000000000..9d2aa72b61e90f72d8872a87c4d04facdb2dbb1d
--- /dev/null
+++ b/build/bes/bin/lmadm.bat
@@ -0,0 +1,74 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-license.jar
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+SET "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true -Dcom.bes.patchEnv=Lite"
+%JAVA% %JAVA_OPTS% -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" com.bes.appserv.lic.RegistrationTool %*
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/patch b/build/bes/bin/patch
new file mode 100644
index 0000000000000000000000000000000000000000..c106e7a6764e9ae7db84e741222f3515690259c9
--- /dev/null
+++ b/build/bes/bin/patch
@@ -0,0 +1,98 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-patch.jar"
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Dcom.bes.patchRoot=${BES_HOME}"
+{ $JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.patch.cli.PatchLauncher "${@}"
+exit; }
diff --git a/build/bes/bin/patch.bat b/build/bes/bin/patch.bat
new file mode 100644
index 0000000000000000000000000000000000000000..196c14e6ee84a8549381bf2f47d0afa6c2e5fdfe
--- /dev/null
+++ b/build/bes/bin/patch.bat
@@ -0,0 +1,74 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" patch
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-patch.jar
+
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+SET "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true -Dcom.bes.patchRoot=%BES_HOME%"
+%JAVA% %JAVA_OPTS% -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" -cp "%CLASSPATH%" com.bes.patch.cli.PatchLauncher %* & goto end
+
+:error
+endlocal
+exit /b 1
+
+:end
+endlocal
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/setenv.bat b/build/bes/bin/setenv.bat
new file mode 100644
index 0000000000000000000000000000000000000000..9d3deb87695701443bfc8dfcf73816fb1613e594
--- /dev/null
+++ b/build/bes/bin/setenv.bat
@@ -0,0 +1,97 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+rem Otherwise either JAVA_BASE or JAVA_HOME are fine
+if not "%JAVA_BASE%" == "" goto validateJavaBase
+if not "%JAVA_HOME%" == "" goto validateJavaHome
+echo Neither the JAVA_HOME nor the JAVA_BASE environment variable is defined
+echo At least one of these environment variable is needed to run this program
+goto error
+
+:validateJavaBase
+rem Check if we have a usable JAVA_BASE
+if not exist "%JAVA_BASE%\bin\java.exe" goto errorJavaBase
+if not exist "%JAVA_BASE%\bin\javaw.exe" goto errorJavaBase
+goto rightJavaBase
+
+:validateJavaHome
+rem Check if we have a usable JAVA_HOME
+if not exist "%JAVA_HOME%\bin\java.exe" goto errorJavaHome
+if not exist "%JAVA_HOME%\bin\javaw.exe" goto errorJavaHome
+set JAVA_BASE=%JAVA_HOME%
+goto rightJavaBase
+
+:errorJavaBase
+echo The JAVA_BASE environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:errorJavaHome
+echo The JAVA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightJavaBase
+rem Don't override the endorsed dir if the user has set it previously
+if not "%JAVA_ENDORSED_DIRS%" == "" goto gotEndorseddir
+rem Java 9 no longer supports the java.endorsed.dirs
+rem system property. Only try to use it if
+rem BES_HOME/endorsed exists.
+if not exist "%BES_HOME%\endorsed" goto gotEndorseddir
+set "JAVA_ENDORSED_DIRS=%BES_HOME%\endorsed"
+:gotEndorseddir
+
+set JAVA="%JAVA_BASE%\bin\java.exe"
+
+for /F tokens^=2^ delims^=^" %%i in ('%%JAVA%% -version 2^>^&1 ^| findstr [\"].*[\"]') do (set result=%%i)
+
+@echo %result% | findstr "^1.[2|3|4|5|6]" > nul
+if "%errorlevel%" == "0" (echo Please use JDK 1.7 or higher.
+exit /b 1)
+
+@echo %result% | findstr "^1.[7|8]" > nul
+if "%errorlevel%" == "1" goto overAddInJdk78
+set JAVA_OPTS=%JAVA_OPTS% -Djava.endorsed.dirs="%BES_HOME%\lib\endorsed"
+set JAVA_OPTS=%JAVA_OPTS% -Djava.ext.dirs="%JAVA_BASE%\lib\ext;%JAVA_BASE%\jre\lib\ext;%BES_ROOT%\lib\ext"
+:overAddInJdk78
+
+@echo %result% | findstr "^1.7" > nul
+if "%errorlevel%" == "0" (
+ set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256m -XX:PermSize=128m
+) else (
+ @echo %result% | findstr "^[9|10|11|12|13|14|15|16|17|18]" > nul
+ if "%errorlevel%" == "0" (
+ set java_add_opens="--add-opens=java.base/java.io=ALL-UNNAMED"
+ set java_add_opens=%java_add_opens% --add-opens=java.base/java.lang=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/java.net=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/java.nio=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
+ @REM Support gmssl when using jdk10+.
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/javax.crypto=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
+ @REM Avoid ClassNotFoundException when viewing classloader and using jdk9+.
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/jdk.internal.module=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
+ set java_add_opens=%$java_add_opens% --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
+ set JAVA_OPTS=%$java_add_opens% %JAVA_OPTS%
+ )
+ set JAVA_OPTS=%JAVA_OPTS% -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=128m
+)
+
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/setenv.conf b/build/bes/bin/setenv.conf
new file mode 100644
index 0000000000000000000000000000000000000000..9482391f83dde8c6fb5528ac3002854e12d5d0b2
--- /dev/null
+++ b/build/bes/bin/setenv.conf
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+# Make sure prerequisite environment variables are set
+if [ -z "$JAVA_HOME" -a -z "$JAVA_BASE" ]; then
+ if $darwin; then
+ # Bugzilla 54390
+ if [ -x '/usr/libexec/java_home' ] ; then
+ export JAVA_HOME=`/usr/libexec/java_home`
+ # Bugzilla 37284 (reviewed).
+ elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
+ export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
+ fi
+ else
+ JAVA_PATH=`which java 2>/dev/null`
+ if [ "x$JAVA_PATH" != "x" ]; then
+ JAVA_PATH=`dirname $JAVA_PATH 2>/dev/null`
+ JAVA_BASE=`dirname $JAVA_PATH 2>/dev/null`
+ fi
+ if [ "x$JAVA_BASE" = "x" ]; then
+ # XXX: Should we try other locations?
+ if [ -x /usr/bin/java ]; then
+ JAVA_BASE=/usr
+ fi
+ fi
+ fi
+ if [ -z "$JAVA_HOME" -a -z "$JAVA_BASE" ]; then
+ echo "Neither the JAVA_HOME nor the JAVA_BASE environment variable is defined"
+ echo "At least one of these environment variable is needed to run this program"
+ exit 1
+ fi
+fi
+
+if [ -z "$JAVA_BASE" ]; then
+ JAVA_BASE="${JAVA_HOME}"
+fi
+
+# Don't override the endorsed dir if the user has set it previously
+if [ -z "$JAVA_ENDORSED_DIRS" ]; then
+ # Java 9 no longer supports the java.endorsed.dirs
+ # system property. Only try to use it if
+ # BES_HOME/endorsed exists.
+ if [ -d "$BES_HOME"/endorsed ]; then
+ JAVA_ENDORSED_DIRS="$BES_HOME"/endorsed
+ fi
+fi
+# Set standard commands for invoking Java, if not already set.
+JAVA="$JAVA_BASE"/bin/java
+
+java_version=`${JAVA} -version 2>&1 | head -n 1 | cut -d '"' -f2 | cut -d '.' -f1-2`
+java_version_prefix=${java_version%.*}
+java_version_suffix=${java_version##*.}
+if [ $java_version_prefix -eq 1 ] && [ $java_version_suffix -lt 7 ]; then
+ echo "Please use JDK 1.7 or higher."
+ exit
+fi
+
+if [ $java_version_prefix -eq 1 ] && [ $java_version_suffix -le 8 ]; then
+ JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$BES_HOME/lib/endorsed"
+ JAVA_OPTS="$JAVA_OPTS -Djava.ext.dirs=$JAVA_BASE/lib/ext:$JAVA_BASE/jre/lib/ext:$BES_ROOT/lib/ext"
+fi
+
+if [ $java_version_prefix -gt 1 ] || [ $java_version_suffix -ge 8 ]; then
+ if [ $java_version_prefix -gt 1 ]; then
+ java_add_opens="--add-opens=java.base/java.io=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/java.lang=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/java.net=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/java.nio=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
+ # Support gmssl when using jdk10+.
+ java_add_opens="$java_add_opens --add-opens=java.base/java.security=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/javax.crypto=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED"
+ # Avoid ClassNotFoundException when viewing classloader and using jdk9+.
+ java_add_opens="$java_add_opens --add-opens=java.base/jdk.internal.module=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED"
+ java_add_opens="$java_add_opens --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
+ JAVA_OPTS="$java_add_opens $JAVA_OPTS"
+ fi
+ JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=128m"
+else
+ JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256m -XX:PermSize=128m"
+fi
\ No newline at end of file
diff --git a/build/bes/bin/setjavaconfig.bat b/build/bes/bin/setjavaconfig.bat
new file mode 100644
index 0000000000000000000000000000000000000000..198c6f36a71f54b46cc9a7ddc9856a3b6b21277c
--- /dev/null
+++ b/build/bes/bin/setjavaconfig.bat
@@ -0,0 +1,37 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+set DEBUG_OPTIONS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=0.0.0.0:9009
+set SECURE_OPTIONS=-Djava.security.manager -Djava.security.policy="%BES_ROOT%\conf\security\server.policy"
+
+set JAVA_OPTS=%JAVA_OPTS% -server
+set JAVA_OPTS=%JAVA_OPTS% -Xmx512m
+set JAVA_OPTS=%JAVA_OPTS% -Xms256m
+set JAVA_OPTS=%JAVA_OPTS% -XX:+UnlockDiagnosticVMOptions
+set JAVA_OPTS=%JAVA_OPTS% -XX:+LogVMOutput
+set JAVA_OPTS=%JAVA_OPTS% -XX:LogFile="%BES_ROOT%\logs\jvm.log"
+set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError
+set JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath="%BES_ROOT%\logs\dump\\"
+set JAVA_OPTS=%JAVA_OPTS% -DANTLR_USE_DIRECT_CLASS_LOADING=true
+set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=com.bes.enterprise.logging.BESLogManager
+
+if not ""%1"" == ""--debug"" goto overAddDebugOptions
+shift
+set JAVA_OPTS=%DEBUG_OPTIONS% %JAVA_OPTS%
+:overAddDebugOptions
+if not ""%1"" == ""--secure"" goto overAddSecureOptions
+shift
+set JAVA_OPTS=%JAVA_OPTS% %SECURE_OPTIONS%
+:overAddSecureOptions
+if not ""%1"" == ""--verbose"" goto overAddVerboseOptions
+shift
+if not "%1" == "false" goto overAddVerboseOptions
+set JAVA_OPTS=%JAVA_OPTS% -Dcom.bes.enterprise.log.verbose=false
+:overAddVerboseOptions
+set JAVA_OPTS=%JAVA_OPTS% %JVM_SUFFIX_OPTIONS%
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/setjavaconfig.conf b/build/bes/bin/setjavaconfig.conf
new file mode 100644
index 0000000000000000000000000000000000000000..11b40604f5abd5685e1498dbdce87f635287ace0
--- /dev/null
+++ b/build/bes/bin/setjavaconfig.conf
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+
+DEBUG_OPTIONS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=0.0.0.0:9009"
+SECURE_OPTIONS="-Djava.security.manager -Djava.security.policy=$BES_ROOT/conf/security/server.policy"
+
+JAVA_OPTS="$JAVA_OPTS -server"
+JAVA_OPTS="$JAVA_OPTS -Xmx512m"
+JAVA_OPTS="$JAVA_OPTS -Xms256m"
+JAVA_OPTS="$JAVA_OPTS -XX:+UnlockDiagnosticVMOptions"
+JAVA_OPTS="$JAVA_OPTS -XX:+LogVMOutput"
+JAVA_OPTS="$JAVA_OPTS -XX:LogFile=$BES_ROOT/logs/jvm.log"
+JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
+JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$BES_ROOT/logs/dump/"
+JAVA_OPTS="$JAVA_OPTS -DANTLR_USE_DIRECT_CLASS_LOADING=true"
+JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
+JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=com.bes.enterprise.logging.BESLogManager"
+
+if [ "$1" = "--debug" ] ; then
+ shift
+ JAVA_OPTS="$JAVA_OPTS $DEBUG_OPTIONS"
+fi
+
+if [ "$1" = "--secure" ] ; then
+ shift
+ JAVA_OPTS="$JAVA_OPTS $SECURE_OPTIONS"
+fi
+
+if [ "$1" = "--verbose=false" ] ; then
+ shift
+ JAVA_OPTS="$JAVA_OPTS -Dcom.bes.enterprise.log.verbose=false"
+fi
+JAVA_OPTS="$JAVA_OPTS $JVM_SUFFIX_OPTIONS"
+
diff --git a/build/bes/bin/setpatchenv.bat b/build/bes/bin/setpatchenv.bat
new file mode 100644
index 0000000000000000000000000000000000000000..eef75c2d9d960e8988f06eab735b078c17b0999a
--- /dev/null
+++ b/build/bes/bin/setpatchenv.bat
@@ -0,0 +1,19 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+set PATCH_ROOT=%BES_HOME%\patch
+
+:conflict
+set suffix=%random%
+if exist %BIN_HOME%setpatchenvtmp%suffix% goto conflict
+
+"%JAVA_BASE%\bin\java" %JAVA_OPTS% -cp "%BES_HOME%\lib\bootstrap\bes-patch.jar" -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" com.bes.patch.cli.PatchEnv %* > "%BIN_HOME%setpatchenvtmp%suffix%"
+for /f "usebackq delims==" %%p in ("%BIN_HOME%setpatchenvtmp%suffix%") do (
+ set PATCH_CLASSPATH=%%p
+)
+del "%BIN_HOME%setpatchenvtmp%suffix%"
\ No newline at end of file
diff --git a/build/bes/bin/setpatchenv.conf b/build/bes/bin/setpatchenv.conf
new file mode 100644
index 0000000000000000000000000000000000000000..f2d6c57a7affb9c8e35d959fb65a67070ef96efa
--- /dev/null
+++ b/build/bes/bin/setpatchenv.conf
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+PATCH_ROOT="${BES_HOME}/patch"
+PATCH_CLASSPATH=`"$JAVA" $JAVA_OPTS -cp "$BES_HOME/lib/bootstrap/bes-patch.jar" "-Dcom.bes.installRoot=$BES_HOME" "-Dcom.bes.instanceRoot=$BES_ROOT" com.bes.patch.cli.PatchEnv $PATCH_ENV_TYPE`
\ No newline at end of file
diff --git a/build/bes/bin/startserver b/build/bes/bin/startserver
new file mode 100644
index 0000000000000000000000000000000000000000..91fb334284f4589891ccc738d05faf4b897bcb7e
--- /dev/null
+++ b/build/bes/bin/startserver
@@ -0,0 +1,108 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+. "$BES_HOME/bin/setjavaconfig.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_OPTS" ] && JAVA_OPTS=`cygpath --path --unix "$JAVA_OPTS"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+ JAVA_OPTS=`cygpath --path --windows "$JAVA_OPTS"`
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-util.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-core.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-config-provider.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-patch.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-bootstrap.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-license.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-gmssl.jar"
+
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
+$JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.enterprise.server.bootstrap.ASMain start
diff --git a/build/bes/bin/startserver.bat b/build/bes/bin/startserver.bat
new file mode 100644
index 0000000000000000000000000000000000000000..a7ad837cb8f10ef8aef484fdec1ab453fa5ed533
--- /dev/null
+++ b/build/bes/bin/startserver.bat
@@ -0,0 +1,89 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setjavaconfig.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+if "%errorlevel%" == "1" goto error
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+call "%BES_HOME%\bin\setjavaconfig.bat" %*
+
+rem Configure JAVA 9 specific start-up parameters
+set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.lang=ALL-UNNAMED"
+set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.io=ALL-UNNAMED"
+set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-util.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-core.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-config-provider.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-patch.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-bootstrap.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-license.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-gmssl.jar
+
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+%JAVA% %JAVA_OPTS% -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" -cp "%CLASSPATH%" com.bes.enterprise.server.bootstrap.ASMain start
+
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/bin/stopserver b/build/bes/bin/stopserver
new file mode 100644
index 0000000000000000000000000000000000000000..d5ec5c547bd1c3e667cbb2451984f6a178e93c0b
--- /dev/null
+++ b/build/bes/bin/stopserver
@@ -0,0 +1,234 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+SLEEP=5
+if [ ! -z "$1" ]; then
+ echo $1 | grep "[^0-9]" >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ SLEEP=$1
+ shift
+ fi
+fi
+
+FORCE=0
+if [ "$1" = "--force" ]; then
+ shift
+ FORCE=1
+fi
+
+PID_FILE=$BES_ROOT/conf/.pid
+PID=0
+if [ ! -z "$PID_FILE" ]; then
+ if [ -f "$PID_FILE" ]; then
+ if [ -s "$PID_FILE" ]; then
+ PID=`cat "$PID_FILE"`
+ kill -0 $PID >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ echo "PID file found but either no matching process was found or the current user does not have permission to stop the process. Stop aborted."
+ exit 1
+ fi
+ fi
+ fi
+fi
+
+if [ $PID -eq 0 ]; then
+ PS=ps
+ PS_OPTS=-ef
+ OS=`uname -sr`
+
+ case $OS in
+ SunOS*) PS=/usr/ucb/ps
+ PS_OPTS=-auxw
+ ;;
+ *)
+ ;;
+ esac
+
+ PID=`$PS $PS_OPTS | grep java | grep BESMain| grep $BES_ROOT| awk '{print $2}'`
+fi
+
+if [ -z "$PID" ] || [ $PID -eq 0 ]; then
+ echo "\$PID_FILE was empty and the server is not running. Stop aborted."
+ exit 1
+fi
+
+if [ -f $JAVA_BASE/lib/tools.jar ]; then
+ CLASSPATH="$CLASSPATH:$JAVA_BASE/lib/tools.jar"
+ CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-util.jar"
+ CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-core.jar"
+ CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-config-provider.jar"
+ CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-server-assembler.jar"
+ CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-patch.jar"
+
+ if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+ fi
+
+ command=`$JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.enterprise.server.StopServerMain $PID`
+ eval $command
+ if [ $? != 0 ]; then
+ if [ ! -z "$PID" ]; then
+ echo "The stop command failed. Attempting to signal the process to stop through OS signal."
+ kill -15 $PID >/dev/null 2>&1
+ fi
+ fi
+else
+ echo "Waiting for the server to stop ... "
+ kill -15 $PID >/dev/null 2>&1
+fi
+
+if [ ! -z "$PID" ]; then
+ while [ $SLEEP -ge 0 ]; do
+ kill -0 $PID >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ if [ -f "$PID_FILE" ]; then
+ rm -f "$PID_FILE" >/dev/null 2>&1
+ if [ $? != 0 ]; then
+ if [ -w "$PID_FILE" ]; then
+ cat /dev/null > "$PID_FILE"
+ # If BES has stopped don't try and force a stop with an empty PID file
+ FORCE=0
+ else
+ echo "The PID file could not be removed or cleared."
+ fi
+ fi
+ fi
+ echo "Stop server successfully."
+ break
+ fi
+ if [ $SLEEP -gt 0 ]; then
+ sleep 1
+ fi
+ if [ $SLEEP -eq 0 ]; then
+ echo "BES did not stop in time."
+ if [ $FORCE -eq 0 ]; then
+ echo "PID file was not removed."
+ fi
+ echo "To aid diagnostics a thread dump has been written to standard out."
+ kill -3 $PID
+ fi
+ SLEEP=`expr $SLEEP - 1 `
+ done
+fi
+
+KILL_SLEEP_INTERVAL=5
+if [ $FORCE -eq 1 ]; then
+ if [ -z "$PID" ]; then
+ echo "Kill failed: \$PID_FILE was empty and the server is not running."
+ else
+ if [ $PID -gt 0 ]; then
+ echo "Killing BES with the PID: $PID"
+ kill -9 $PID
+ while [ $KILL_SLEEP_INTERVAL -ge 0 ]; do
+ kill -0 $PID >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ if [ -f "$PID_FILE" ]; then
+ rm -f "$PID_FILE" >/dev/null 2>&1
+ if [ $? != 0 ]; then
+ if [ -w "$PID_FILE" ]; then
+ cat /dev/null > "$PID_FILE"
+ else
+ echo "The PID file could not be removed."
+ fi
+ fi
+ fi
+ echo "The BES process has been killed."
+ break
+ fi
+ if [ $KILL_SLEEP_INTERVAL -gt 0 ]; then
+ sleep 1
+ fi
+ KILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `
+ done
+ if [ $KILL_SLEEP_INTERVAL -lt 0 ]; then
+ echo "BES has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE."
+ fi
+ fi
+ fi
+fi
\ No newline at end of file
diff --git a/build/bes/bin/stopserver.bat b/build/bes/bin/stopserver.bat
new file mode 100644
index 0000000000000000000000000000000000000000..7e90f7ba2bb22746ccb5fdf7cdc6e793d12d7533
--- /dev/null
+++ b/build/bes/bin/stopserver.bat
@@ -0,0 +1,151 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+
+set FORCE=0
+
+if ""%1"" == ""--force"" goto setForce
+goto overSetForce
+
+:setForce
+shift
+set FORCE=1
+
+:overSetForce
+
+set PID_FILE=%BES_ROOT%\conf\.pid
+if exist "%PID_FILE%" goto getPid
+goto emptyPid
+
+:getPid
+for /f "usebackq delims==" %%p in ("%PID_FILE%") do (
+set PID=%%p
+)
+
+if ""%PID%"" == """" goto emptyPid
+goto validateServerStart
+
+:emptyPid
+set JPS="%JAVA_BASE%\bin\jps.exe"
+if not exist %JPS% (
+ echo "PID file does not exist, the server maybe not started."
+ goto error
+)
+
+for /f %%a in ('%JPS% -v ^| findstr BESMain ^| findstr /L /C:%BES_ROOT%') do set PID=%%a
+if not defined PID (
+ echo "The server is not started."
+ goto error
+)
+
+if not %PID% GTR 0 (
+ echo "The server pid from jps was not greater than zero."
+ goto error
+)
+
+:validateServerStart
+tasklist /fo list | findstr %PID%
+if "%errorlevel%" == "0" goto stopServer
+echo "PID file found but either no matching process was found or the current user does not have permission to stop the process. Stop aborted."
+goto error
+
+:stopServer
+
+if not exist "%JAVA_BASE%\lib\tools.jar" (
+ set FORCE=1
+ goto killServerByPid
+)
+
+set CLASSPATH=%CLASSPATH%;%JAVA_BASE%\lib\tools.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-util.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-core.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-config-provider.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-server-assembler.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-patch.jar
+
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+%JAVA% %JAVA_OPTS% -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" -cp "%CLASSPATH%" com.bes.enterprise.server.StopServerMain %PID%
+
+@REM stop failed. Shutdown port disabled? Try a normal taskkill.
+if "%errorlevel%" == "0" goto end
+
+:killServerByPid
+if ""%PID%"" == """" goto error
+if "%FORCE%" == "0" goto error
+
+TASKKILL /F /FI "PID eq %PID%"
+timeout /t 1 /nobreak > nul
+tasklist /fo list | findstr %PID%
+if "%errorlevel%" == "1" (
+ del /q %PID_FILE%
+ goto end
+)
+echo "BES has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE."
+goto error
+
+endlocal
+
+:error
+echo "Stop server failed."
+exit /b 1
+
+:end
+echo "Stop server successfully."
+exit /b 0
diff --git a/build/bes/bin/version b/build/bes/bin/version
new file mode 100644
index 0000000000000000000000000000000000000000..9795ff2fea3e24600fca4c2152636d9f40c6a68f
--- /dev/null
+++ b/build/bes/bin/version
@@ -0,0 +1,97 @@
+#!/bin/sh
+#
+# Copyright (c) 2018-2022
+# Beijing Baolande Software Corporation
+#
+# All Rights Reserved
+#
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set BES_HOME if not already set
+[ -z "$BES_HOME" ] && BES_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+# Copy BES_ROOT from BES_HOME if not already set
+[ -z "$BES_ROOT" ] && BES_ROOT="$BES_HOME"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.conf, in rare case when it is needed.
+CLASSPATH=
+
+. "$BES_HOME/bin/setenv.conf"
+
+PATCH_ENV_TYPE=bootstrap
+. "$BES_HOME/bin/setpatchenv.conf"
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVA_BASE" ] && JAVA_BASE=`cygpath --unix "$JAVA_BASE"`
+ [ -n "$BES_HOME" ] && BES_HOME=`cygpath --unix "$BES_HOME"`
+ [ -n "$BES_ROOT" ] && BES_ROOT=`cygpath --unix "$BES_ROOT"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$PATCH_CLASSPATH" ] && PATCH_CLASSPATH=`cygpath --path --unix "$PATCH_CLASSPATH"`
+fi
+
+# Ensure that neither BES_HOME nor BES_ROOT contains a colon
+# as this is used as the separator in the classpath and Java provides no
+# mechanism for escaping if the same character appears in the path.
+case $BES_HOME in
+ *:*) echo "Unable to start as BES_HOME contains a colon (:) character";
+ exit 1;
+esac
+case $BES_ROOT in
+ *:*) echo "Unable to start as BES_ROOT contains a colon (:) character";
+ exit 1;
+esac
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JAVA_BASE=`cygpath --absolute --windows "$JAVA_BASE"`
+ BES_HOME=`cygpath --absolute --windows "$BES_HOME"`
+ BES_ROOT=`cygpath --absolute --windows "$BES_ROOT"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ PATCH_CLASSPATH=`cygpath --path --windows "$PATCH_CLASSPATH"`
+ [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bes-core.jar"
+CLASSPATH="$CLASSPATH:$BES_HOME/lib/bootstrap/bes-common-util.jar"
+
+if [ -n "$PATCH_CLASSPATH" ] ; then
+ CLASSPATH="$PATCH_CLASSPATH:$CLASSPATH"
+fi
+
+$JAVA $JAVA_OPTS -Dcom.bes.installRoot="$BES_HOME" -Dcom.bes.instanceRoot="$BES_ROOT" -cp "$CLASSPATH" com.bes.enterprise.webtier.util.ServerInfo "${@}"
\ No newline at end of file
diff --git a/build/bes/bin/version.bat b/build/bes/bin/version.bat
new file mode 100644
index 0000000000000000000000000000000000000000..79504fc62e0c2fa4fe205a202c8e3f1c0ffe76c6
--- /dev/null
+++ b/build/bes/bin/version.bat
@@ -0,0 +1,77 @@
+@echo off
+@REM
+@REM Copyright (c) 2018-2022
+@REM Beijing Baolande Software Corporation
+@REM
+@REM All Rights Reserved
+@REM
+
+setlocal
+
+rem Guess BES_HOME if not defined
+set "CURRENT_DIR=%cd%"
+if not "%BES_HOME%" == "" goto validateBesHome
+set "BES_HOME=%CURRENT_DIR%"
+if exist "%BES_HOME%\bin\startserver.bat" goto rightBesHome
+cd ..
+set "BES_HOME=%cd%"
+cd "%CURRENT_DIR%"
+
+:validateBesHome
+if not exist "%BES_HOME%\bin\setenv.bat" goto errorBesHome
+if not exist "%BES_HOME%\bin\setpatchenv.bat" goto errorBesHome
+goto rightBesHome
+
+:errorBesHome
+echo The BES_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto error
+
+:rightBesHome
+
+rem Copy BES_ROOT from BES_HOME if not defined
+if not "%BES_ROOT%" == "" goto setBesRoot
+set "BES_ROOT=%BES_HOME%"
+:setBesRoot
+
+rem Ensure that neither BES_HOME nor BES_ROOT contains a semi-colon
+rem as this is used as the separator in the classpath and Java provides no
+rem mechanism for escaping if the same character appears in the path. Check this
+rem by replacing all occurrences of ';' with '' and checking that neither
+rem BES_HOME nor BES_ROOT have changed
+if "%BES_HOME%" == "%BES_HOME:;=%" goto besHomeNoSemicolon
+echo Unable to start as BES_HOME contains a semicolon (;) character
+goto error
+
+:besHomeNoSemicolon
+
+if "%BES_ROOT%" == "%BES_ROOT:;=%" goto besRootNoSemicolon
+echo Unable to start as BES_ROOT contains a semicolon (;) character
+goto error
+:besRootNoSemicolon
+
+set CLASSPATH=
+
+call "%BES_HOME%\bin\setenv.bat"
+call "%BES_HOME%\bin\setpatchenv.bat" bootstrap
+
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bes-core.jar
+set CLASSPATH=%CLASSPATH%;%BES_HOME%\lib\bootstrap\bes-common-util.jar
+
+if "%PATCH_CLASSPATH%" == "" goto overSetPatchClassPath
+set CLASSPATH=%PATCH_CLASSPATH%;%CLASSPATH%
+
+:overSetPatchClassPath
+
+SET "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true"
+%JAVA% %JAVA_OPTS% -Dcom.bes.installRoot="%BES_HOME%" -Dcom.bes.instanceRoot="%BES_ROOT%" -cp "%CLASSPATH%" com.bes.enterprise.webtier.util.ServerInfo %*
+
+endlocal
+
+goto end
+
+:error
+exit /b 1
+
+:end
+exit /b 0
\ No newline at end of file
diff --git a/build/bes/conf/bes.lic.manager.properties b/build/bes/conf/bes.lic.manager.properties
new file mode 100644
index 0000000000000000000000000000000000000000..53b0b095a6d20c351e47f3fa6462bf035a8afc7a
--- /dev/null
+++ b/build/bes/conf/bes.lic.manager.properties
@@ -0,0 +1,3 @@
+#license.manager.server=http://192.168.29.103:8888
+#license.namespace=\u6d4b\u8bd5\u516c\u53f8
+#license.group=N/A
\ No newline at end of file
diff --git a/build/bes/conf/default-web.xml b/build/bes/conf/default-web.xml
new file mode 100644
index 0000000000000000000000000000000000000000..40e670c0c66f503a73225aaea738c12206a9e157
--- /dev/null
+++ b/build/bes/conf/default-web.xml
@@ -0,0 +1,4708 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+ com.bes.enterprise.webtier.servlets.DefaultServlet
+
+ debug
+ 0
+
+
+ listings
+ false
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jsp
+ com.bes.enterprise.web.jasper.servlet.JspServlet
+
+ fork
+ false
+
+
+ development
+ false
+
+
+ enablePooling
+ false
+
+
+ xpoweredBy
+ false
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+ /
+
+
+
+
+ jsp
+ *.jsp
+ *.jspx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+ 123
+ application/vnd.lotus-1-2-3
+
+
+ 3dml
+ text/vnd.in3d.3dml
+
+
+ 3ds
+ image/x-3ds
+
+
+ 3g2
+ video/3gpp2
+
+
+ 3gp
+ video/3gpp
+
+
+ 7z
+ application/x-7z-compressed
+
+
+ aab
+ application/x-authorware-bin
+
+
+ aac
+ audio/x-aac
+
+
+ aam
+ application/x-authorware-map
+
+
+ aas
+ application/x-authorware-seg
+
+
+ abs
+ audio/x-mpeg
+
+
+ abw
+ application/x-abiword
+
+
+ ac
+ application/pkix-attr-cert
+
+
+ acc
+ application/vnd.americandynamics.acc
+
+
+ ace
+ application/x-ace-compressed
+
+
+ acu
+ application/vnd.acucobol
+
+
+ acutc
+ application/vnd.acucorp
+
+
+ adp
+ audio/adpcm
+
+
+ aep
+ application/vnd.audiograph
+
+
+ afm
+ application/x-font-type1
+
+
+ afp
+ application/vnd.ibm.modcap
+
+
+ ahead
+ application/vnd.ahead.space
+
+
+ ai
+ application/postscript
+
+
+ aif
+ audio/x-aiff
+
+
+ aifc
+ audio/x-aiff
+
+
+ aiff
+ audio/x-aiff
+
+
+ aim
+ application/x-aim
+
+
+ air
+ application/vnd.adobe.air-application-installer-package+zip
+
+
+ ait
+ application/vnd.dvb.ait
+
+
+ ami
+ application/vnd.amiga.ami
+
+
+ anx
+ application/annodex
+
+
+ apk
+ application/vnd.android.package-archive
+
+
+ appcache
+ text/cache-manifest
+
+
+ application
+ application/x-ms-application
+
+
+ apr
+ application/vnd.lotus-approach
+
+
+ arc
+ application/x-freearc
+
+
+ art
+ image/x-jg
+
+
+ asc
+ application/pgp-signature
+
+
+ asf
+ video/x-ms-asf
+
+
+ asm
+ text/x-asm
+
+
+ aso
+ application/vnd.accpac.simply.aso
+
+
+ asx
+ video/x-ms-asf
+
+
+ atc
+ application/vnd.acucorp
+
+
+ atom
+ application/atom+xml
+
+
+ atomcat
+ application/atomcat+xml
+
+
+ atomsvc
+ application/atomsvc+xml
+
+
+ atx
+ application/vnd.antix.game-component
+
+
+ au
+ audio/basic
+
+
+ avi
+ video/x-msvideo
+
+
+ avx
+ video/x-rad-screenplay
+
+
+ aw
+ application/applixware
+
+
+ axa
+ audio/annodex
+
+
+ axv
+ video/annodex
+
+
+ azf
+ application/vnd.airzip.filesecure.azf
+
+
+ azs
+ application/vnd.airzip.filesecure.azs
+
+
+ azw
+ application/vnd.amazon.ebook
+
+
+ bat
+ application/x-msdownload
+
+
+ bcpio
+ application/x-bcpio
+
+
+ bdf
+ application/x-font-bdf
+
+
+ bdm
+ application/vnd.syncml.dm+wbxml
+
+
+ bed
+ application/vnd.realvnc.bed
+
+
+ bh2
+ application/vnd.fujitsu.oasysprs
+
+
+ bin
+ application/octet-stream
+
+
+ blb
+ application/x-blorb
+
+
+ blorb
+ application/x-blorb
+
+
+ bmi
+ application/vnd.bmi
+
+
+ bmp
+ image/bmp
+
+
+ body
+ text/html
+
+
+ book
+ application/vnd.framemaker
+
+
+ box
+ application/vnd.previewsystems.box
+
+
+ boz
+ application/x-bzip2
+
+
+ bpk
+ application/octet-stream
+
+
+ btif
+ image/prs.btif
+
+
+ bz
+ application/x-bzip
+
+
+ bz2
+ application/x-bzip2
+
+
+ c
+ text/x-c
+
+
+ c11amc
+ application/vnd.cluetrust.cartomobile-config
+
+
+ c11amz
+ application/vnd.cluetrust.cartomobile-config-pkg
+
+
+ c4d
+ application/vnd.clonk.c4group
+
+
+ c4f
+ application/vnd.clonk.c4group
+
+
+ c4g
+ application/vnd.clonk.c4group
+
+
+ c4p
+ application/vnd.clonk.c4group
+
+
+ c4u
+ application/vnd.clonk.c4group
+
+
+ cab
+ application/vnd.ms-cab-compressed
+
+
+ caf
+ audio/x-caf
+
+
+ cap
+ application/vnd.tcpdump.pcap
+
+
+ car
+ application/vnd.curl.car
+
+
+ cat
+ application/vnd.ms-pki.seccat
+
+
+ cb7
+ application/x-cbr
+
+
+ cba
+ application/x-cbr
+
+
+ cbr
+ application/x-cbr
+
+
+ cbt
+ application/x-cbr
+
+
+ cbz
+ application/x-cbr
+
+
+ cc
+ text/x-c
+
+
+ cct
+ application/x-director
+
+
+ ccxml
+ application/ccxml+xml
+
+
+ cdbcmsg
+ application/vnd.contact.cmsg
+
+
+ cdf
+ application/x-cdf
+
+
+ cdkey
+ application/vnd.mediastation.cdkey
+
+
+ cdmia
+ application/cdmi-capability
+
+
+ cdmic
+ application/cdmi-container
+
+
+ cdmid
+ application/cdmi-domain
+
+
+ cdmio
+ application/cdmi-object
+
+
+ cdmiq
+ application/cdmi-queue
+
+
+ cdx
+ chemical/x-cdx
+
+
+ cdxml
+ application/vnd.chemdraw+xml
+
+
+ cdy
+ application/vnd.cinderella
+
+
+ cer
+ application/pkix-cert
+
+
+ cfs
+ application/x-cfs-compressed
+
+
+ cgm
+ image/cgm
+
+
+ chat
+ application/x-chat
+
+
+ chm
+ application/vnd.ms-htmlhelp
+
+
+ chrt
+ application/vnd.kde.kchart
+
+
+ cif
+ chemical/x-cif
+
+
+ cii
+ application/vnd.anser-web-certificate-issue-initiation
+
+
+ cil
+ application/vnd.ms-artgalry
+
+
+ cla
+ application/vnd.claymore
+
+
+ class
+ application/java
+
+
+ clkk
+ application/vnd.crick.clicker.keyboard
+
+
+ clkp
+ application/vnd.crick.clicker.palette
+
+
+ clkt
+ application/vnd.crick.clicker.template
+
+
+ clkw
+ application/vnd.crick.clicker.wordbank
+
+
+ clkx
+ application/vnd.crick.clicker
+
+
+ clp
+ application/x-msclip
+
+
+ cmc
+ application/vnd.cosmocaller
+
+
+ cmdf
+ chemical/x-cmdf
+
+
+ cml
+ chemical/x-cml
+
+
+ cmp
+ application/vnd.yellowriver-custom-menu
+
+
+ cmx
+ image/x-cmx
+
+
+ cod
+ application/vnd.rim.cod
+
+
+ com
+ application/x-msdownload
+
+
+ conf
+ text/plain
+
+
+ cpio
+ application/x-cpio
+
+
+ cpp
+ text/x-c
+
+
+ cpt
+ application/mac-compactpro
+
+
+ crd
+ application/x-mscardfile
+
+
+ crl
+ application/pkix-crl
+
+
+ crt
+ application/x-x509-ca-cert
+
+
+ cryptonote
+ application/vnd.rig.cryptonote
+
+
+ csh
+ application/x-csh
+
+
+ csml
+ chemical/x-csml
+
+
+ csp
+ application/vnd.commonspace
+
+
+ css
+ text/css
+
+
+ cst
+ application/x-director
+
+
+ csv
+ text/csv
+
+
+ cu
+ application/cu-seeme
+
+
+ curl
+ text/vnd.curl
+
+
+ cww
+ application/prs.cww
+
+
+ cxt
+ application/x-director
+
+
+ cxx
+ text/x-c
+
+
+ dae
+ model/vnd.collada+xml
+
+
+ daf
+ application/vnd.mobius.daf
+
+
+ dart
+ application/vnd.dart
+
+
+ dataless
+ application/vnd.fdsn.seed
+
+
+ davmount
+ application/davmount+xml
+
+
+ dbk
+ application/docbook+xml
+
+
+ dcr
+ application/x-director
+
+
+ dcurl
+ text/vnd.curl.dcurl
+
+
+ dd2
+ application/vnd.oma.dd2+xml
+
+
+ ddd
+ application/vnd.fujixerox.ddd
+
+
+ deb
+ application/x-debian-package
+
+
+ def
+ text/plain
+
+
+ deploy
+ application/octet-stream
+
+
+ der
+ application/x-x509-ca-cert
+
+
+ dfac
+ application/vnd.dreamfactory
+
+
+ dgc
+ application/x-dgc-compressed
+
+
+ dib
+ image/bmp
+
+
+ dic
+ text/x-c
+
+
+ dir
+ application/x-director
+
+
+ dis
+ application/vnd.mobius.dis
+
+
+ dist
+ application/octet-stream
+
+
+ distz
+ application/octet-stream
+
+
+ djv
+ image/vnd.djvu
+
+
+ djvu
+ image/vnd.djvu
+
+
+ dll
+ application/x-msdownload
+
+
+ dmg
+ application/x-apple-diskimage
+
+
+ dmp
+ application/vnd.tcpdump.pcap
+
+
+ dms
+ application/octet-stream
+
+
+ dna
+ application/vnd.dna
+
+
+ doc
+ application/msword
+
+
+ docm
+ application/vnd.ms-word.document.macroenabled.12
+
+
+ docx
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document
+
+
+ dot
+ application/msword
+
+
+ dotm
+ application/vnd.ms-word.template.macroenabled.12
+
+
+ dotx
+ application/vnd.openxmlformats-officedocument.wordprocessingml.template
+
+
+ dp
+ application/vnd.osgi.dp
+
+
+ dpg
+ application/vnd.dpgraph
+
+
+ dra
+ audio/vnd.dra
+
+
+ dsc
+ text/prs.lines.tag
+
+
+ dssc
+ application/dssc+der
+
+
+ dtb
+ application/x-dtbook+xml
+
+
+ dtd
+ application/xml-dtd
+
+
+ dts
+ audio/vnd.dts
+
+
+ dtshd
+ audio/vnd.dts.hd
+
+
+ dump
+ application/octet-stream
+
+
+ dv
+ video/x-dv
+
+
+ dvb
+ video/vnd.dvb.file
+
+
+ dvi
+ application/x-dvi
+
+
+ dwf
+ model/vnd.dwf
+
+
+ dwg
+ image/vnd.dwg
+
+
+ dxf
+ image/vnd.dxf
+
+
+ dxp
+ application/vnd.spotfire.dxp
+
+
+ dxr
+ application/x-director
+
+
+ ecelp4800
+ audio/vnd.nuera.ecelp4800
+
+
+ ecelp7470
+ audio/vnd.nuera.ecelp7470
+
+
+ ecelp9600
+ audio/vnd.nuera.ecelp9600
+
+
+ ecma
+ application/ecmascript
+
+
+ edm
+ application/vnd.novadigm.edm
+
+
+ edx
+ application/vnd.novadigm.edx
+
+
+ efif
+ application/vnd.picsel
+
+
+ ei6
+ application/vnd.pg.osasli
+
+
+ elc
+ application/octet-stream
+
+
+ emf
+ application/x-msmetafile
+
+
+ eml
+ message/rfc822
+
+
+ emma
+ application/emma+xml
+
+
+ emz
+ application/x-msmetafile
+
+
+ eol
+ audio/vnd.digital-winds
+
+
+ eot
+ application/vnd.ms-fontobject
+
+
+ eps
+ application/postscript
+
+
+ epub
+ application/epub+zip
+
+
+ es3
+ application/vnd.eszigno3+xml
+
+
+ esa
+ application/vnd.osgi.subsystem
+
+
+ esf
+ application/vnd.epson.esf
+
+
+ et3
+ application/vnd.eszigno3+xml
+
+
+ etx
+ text/x-setext
+
+
+ eva
+ application/x-eva
+
+
+ evy
+ application/x-envoy
+
+
+ exe
+ application/octet-stream
+
+
+ exi
+ application/exi
+
+
+ ext
+ application/vnd.novadigm.ext
+
+
+ ez
+ application/andrew-inset
+
+
+ ez2
+ application/vnd.ezpix-album
+
+
+ ez3
+ application/vnd.ezpix-package
+
+
+ f
+ text/x-fortran
+
+
+ f4v
+ video/x-f4v
+
+
+ f77
+ text/x-fortran
+
+
+ f90
+ text/x-fortran
+
+
+ fbs
+ image/vnd.fastbidsheet
+
+
+ fcdt
+ application/vnd.adobe.formscentral.fcdt
+
+
+ fcs
+ application/vnd.isac.fcs
+
+
+ fdf
+ application/vnd.fdf
+
+
+ fe_launch
+ application/vnd.denovo.fcselayout-link
+
+
+ fg5
+ application/vnd.fujitsu.oasysgp
+
+
+ fgd
+ application/x-director
+
+
+ fh
+ image/x-freehand
+
+
+ fh4
+ image/x-freehand
+
+
+ fh5
+ image/x-freehand
+
+
+ fh7
+ image/x-freehand
+
+
+ fhc
+ image/x-freehand
+
+
+ fig
+ application/x-xfig
+
+
+ flac
+ audio/flac
+
+
+ fli
+ video/x-fli
+
+
+ flo
+ application/vnd.micrografx.flo
+
+
+ flv
+ video/x-flv
+
+
+ flw
+ application/vnd.kde.kivio
+
+
+ flx
+ text/vnd.fmi.flexstor
+
+
+ fly
+ text/vnd.fly
+
+
+ fm
+ application/vnd.framemaker
+
+
+ fnc
+ application/vnd.frogans.fnc
+
+
+ for
+ text/x-fortran
+
+
+ fpx
+ image/vnd.fpx
+
+
+ frame
+ application/vnd.framemaker
+
+
+ fsc
+ application/vnd.fsc.weblaunch
+
+
+ fst
+ image/vnd.fst
+
+
+ ftc
+ application/vnd.fluxtime.clip
+
+
+ fti
+ application/vnd.anser-web-funds-transfer-initiation
+
+
+ fvt
+ video/vnd.fvt
+
+
+ fxp
+ application/vnd.adobe.fxp
+
+
+ fxpl
+ application/vnd.adobe.fxp
+
+
+ fzs
+ application/vnd.fuzzysheet
+
+
+ g2w
+ application/vnd.geoplan
+
+
+ g3
+ image/g3fax
+
+
+ g3w
+ application/vnd.geospace
+
+
+ gac
+ application/vnd.groove-account
+
+
+ gam
+ application/x-tads
+
+
+ gbr
+ application/rpki-ghostbusters
+
+
+ gca
+ application/x-gca-compressed
+
+
+ gdl
+ model/vnd.gdl
+
+
+ geo
+ application/vnd.dynageo
+
+
+ gex
+ application/vnd.geometry-explorer
+
+
+ ggb
+ application/vnd.geogebra.file
+
+
+ ggt
+ application/vnd.geogebra.tool
+
+
+ ghf
+ application/vnd.groove-help
+
+
+ gif
+ image/gif
+
+
+ gim
+ application/vnd.groove-identity-message
+
+
+ gml
+ application/gml+xml
+
+
+ gmx
+ application/vnd.gmx
+
+
+ gnumeric
+ application/x-gnumeric
+
+
+ gph
+ application/vnd.flographit
+
+
+ gpx
+ application/gpx+xml
+
+
+ gqf
+ application/vnd.grafeq
+
+
+ gqs
+ application/vnd.grafeq
+
+
+ gram
+ application/srgs
+
+
+ gramps
+ application/x-gramps-xml
+
+
+ gre
+ application/vnd.geometry-explorer
+
+
+ grv
+ application/vnd.groove-injector
+
+
+ grxml
+ application/srgs+xml
+
+
+ gsf
+ application/x-font-ghostscript
+
+
+ gtar
+ application/x-gtar
+
+
+ gtm
+ application/vnd.groove-tool-message
+
+
+ gtw
+ model/vnd.gtw
+
+
+ gv
+ text/vnd.graphviz
+
+
+ gxf
+ application/gxf
+
+
+ gxt
+ application/vnd.geonext
+
+
+ gz
+ application/x-gzip
+
+
+ h
+ text/x-c
+
+
+ h261
+ video/h261
+
+
+ h263
+ video/h263
+
+
+ h264
+ video/h264
+
+
+ hal
+ application/vnd.hal+xml
+
+
+ hbci
+ application/vnd.hbci
+
+
+ hdf
+ application/x-hdf
+
+
+ hh
+ text/x-c
+
+
+ hlp
+ application/winhlp
+
+
+ hpgl
+ application/vnd.hp-hpgl
+
+
+ hpid
+ application/vnd.hp-hpid
+
+
+ hps
+ application/vnd.hp-hps
+
+
+ hqx
+ application/mac-binhex40
+
+
+ htc
+ text/x-component
+
+
+ htke
+ application/vnd.kenameaapp
+
+
+ htm
+ text/html
+
+
+ html
+ text/html
+
+
+ hvd
+ application/vnd.yamaha.hv-dic
+
+
+ hvp
+ application/vnd.yamaha.hv-voice
+
+
+ hvs
+ application/vnd.yamaha.hv-script
+
+
+ i2g
+ application/vnd.intergeo
+
+
+ icc
+ application/vnd.iccprofile
+
+
+ ice
+ x-conference/x-cooltalk
+
+
+ icm
+ application/vnd.iccprofile
+
+
+ ico
+ image/x-icon
+
+
+ ics
+ text/calendar
+
+
+ ief
+ image/ief
+
+
+ ifb
+ text/calendar
+
+
+ ifm
+ application/vnd.shana.informed.formdata
+
+
+ iges
+ model/iges
+
+
+ igl
+ application/vnd.igloader
+
+
+ igm
+ application/vnd.insors.igm
+
+
+ igs
+ model/iges
+
+
+ igx
+ application/vnd.micrografx.igx
+
+
+ iif
+ application/vnd.shana.informed.interchange
+
+
+ imp
+ application/vnd.accpac.simply.imp
+
+
+ ims
+ application/vnd.ms-ims
+
+
+ in
+ text/plain
+
+
+ ink
+ application/inkml+xml
+
+
+ inkml
+ application/inkml+xml
+
+
+ install
+ application/x-install-instructions
+
+
+ iota
+ application/vnd.astraea-software.iota
+
+
+ ipfix
+ application/ipfix
+
+
+ ipk
+ application/vnd.shana.informed.package
+
+
+ irm
+ application/vnd.ibm.rights-management
+
+
+ irp
+ application/vnd.irepository.package+xml
+
+
+ iso
+ application/x-iso9660-image
+
+
+ itp
+ application/vnd.shana.informed.formtemplate
+
+
+ ivp
+ application/vnd.immervision-ivp
+
+
+ ivu
+ application/vnd.immervision-ivu
+
+
+ jad
+ text/vnd.sun.j2me.app-descriptor
+
+
+ jam
+ application/vnd.jam
+
+
+ jar
+ application/java-archive
+
+
+ java
+ text/x-java-source
+
+
+ jisp
+ application/vnd.jisp
+
+
+ jlt
+ application/vnd.hp-jlyt
+
+
+ jnlp
+ application/x-java-jnlp-file
+
+
+ joda
+ application/vnd.joost.joda-archive
+
+
+ jpe
+ image/jpeg
+
+
+ jpeg
+ image/jpeg
+
+
+ jpg
+ image/jpeg
+
+
+ jpgm
+ video/jpm
+
+
+ jpgv
+ video/jpeg
+
+
+ jpm
+ video/jpm
+
+
+ js
+ application/javascript
+
+
+ jsf
+ text/plain
+
+
+ json
+ application/json
+
+
+ jsonml
+ application/jsonml+json
+
+
+ jspf
+ text/plain
+
+
+ kar
+ audio/midi
+
+
+ karbon
+ application/vnd.kde.karbon
+
+
+ kfo
+ application/vnd.kde.kformula
+
+
+ kia
+ application/vnd.kidspiration
+
+
+ kml
+ application/vnd.google-earth.kml+xml
+
+
+ kmz
+ application/vnd.google-earth.kmz
+
+
+ kne
+ application/vnd.kinar
+
+
+ knp
+ application/vnd.kinar
+
+
+ kon
+ application/vnd.kde.kontour
+
+
+ kpr
+ application/vnd.kde.kpresenter
+
+
+ kpt
+ application/vnd.kde.kpresenter
+
+
+ kpxx
+ application/vnd.ds-keypoint
+
+
+ ksp
+ application/vnd.kde.kspread
+
+
+ ktr
+ application/vnd.kahootz
+
+
+ ktx
+ image/ktx
+
+
+ ktz
+ application/vnd.kahootz
+
+
+ kwd
+ application/vnd.kde.kword
+
+
+ kwt
+ application/vnd.kde.kword
+
+
+ lasxml
+ application/vnd.las.las+xml
+
+
+ latex
+ application/x-latex
+
+
+ lbd
+ application/vnd.llamagraphics.life-balance.desktop
+
+
+ lbe
+ application/vnd.llamagraphics.life-balance.exchange+xml
+
+
+ les
+ application/vnd.hhe.lesson-player
+
+
+ lha
+ application/x-lzh-compressed
+
+
+ link66
+ application/vnd.route66.link66+xml
+
+
+ list
+ text/plain
+
+
+ list3820
+ application/vnd.ibm.modcap
+
+
+ listafp
+ application/vnd.ibm.modcap
+
+
+ lnk
+ application/x-ms-shortcut
+
+
+ log
+ text/plain
+
+
+ lostxml
+ application/lost+xml
+
+
+ lrf
+ application/octet-stream
+
+
+ lrm
+ application/vnd.ms-lrm
+
+
+ ltf
+ application/vnd.frogans.ltf
+
+
+ lvp
+ audio/vnd.lucent.voice
+
+
+ lwp
+ application/vnd.lotus-wordpro
+
+
+ lzh
+ application/x-lzh-compressed
+
+
+ m13
+ application/x-msmediaview
+
+
+ m14
+ application/x-msmediaview
+
+
+ m1v
+ video/mpeg
+
+
+ m21
+ application/mp21
+
+
+ m2a
+ audio/mpeg
+
+
+ m2v
+ video/mpeg
+
+
+ m3a
+ audio/mpeg
+
+
+ m3u
+ audio/x-mpegurl
+
+
+ m3u8
+ application/vnd.apple.mpegurl
+
+
+ m4a
+ audio/mp4
+
+
+ m4b
+ audio/mp4
+
+
+ m4r
+ audio/mp4
+
+
+ m4u
+ video/vnd.mpegurl
+
+
+ m4v
+ video/mp4
+
+
+ ma
+ application/mathematica
+
+
+ mac
+ image/x-macpaint
+
+
+ mads
+ application/mads+xml
+
+
+ mag
+ application/vnd.ecowin.chart
+
+
+ maker
+ application/vnd.framemaker
+
+
+ man
+ text/troff
+
+
+ mar
+ application/octet-stream
+
+
+ mathml
+ application/mathml+xml
+
+
+ mb
+ application/mathematica
+
+
+ mbk
+ application/vnd.mobius.mbk
+
+
+ mbox
+ application/mbox
+
+
+ mc1
+ application/vnd.medcalcdata
+
+
+ mcd
+ application/vnd.mcd
+
+
+ mcurl
+ text/vnd.curl.mcurl
+
+
+ mdb
+ application/x-msaccess
+
+
+ mdi
+ image/vnd.ms-modi
+
+
+ me
+ text/troff
+
+
+ mesh
+ model/mesh
+
+
+ meta4
+ application/metalink4+xml
+
+
+ metalink
+ application/metalink+xml
+
+
+ mets
+ application/mets+xml
+
+
+ mfm
+ application/vnd.mfmp
+
+
+ mft
+ application/rpki-manifest
+
+
+ mgp
+ application/vnd.osgeo.mapguide.package
+
+
+ mgz
+ application/vnd.proteus.magazine
+
+
+ mid
+ audio/midi
+
+
+ midi
+ audio/midi
+
+
+ mie
+ application/x-mie
+
+
+ mif
+ application/x-mif
+
+
+ mime
+ message/rfc822
+
+
+ mj2
+ video/mj2
+
+
+ mjp2
+ video/mj2
+
+
+ mk3d
+ video/x-matroska
+
+
+ mka
+ audio/x-matroska
+
+
+ mks
+ video/x-matroska
+
+
+ mkv
+ video/x-matroska
+
+
+ mlp
+ application/vnd.dolby.mlp
+
+
+ mmd
+ application/vnd.chipnuts.karaoke-mmd
+
+
+ mmf
+ application/vnd.smaf
+
+
+ mmr
+ image/vnd.fujixerox.edmics-mmr
+
+
+ mng
+ video/x-mng
+
+
+ mny
+ application/x-msmoney
+
+
+ mobi
+ application/x-mobipocket-ebook
+
+
+ mods
+ application/mods+xml
+
+
+ mov
+ video/quicktime
+
+
+ movie
+ video/x-sgi-movie
+
+
+ mp1
+ audio/mpeg
+
+
+ mp2
+ audio/mpeg
+
+
+ mp21
+ application/mp21
+
+
+ mp2a
+ audio/mpeg
+
+
+ mp3
+ audio/mpeg
+
+
+ mp4
+ video/mp4
+
+
+ mp4a
+ audio/mp4
+
+
+ mp4s
+ application/mp4
+
+
+ mp4v
+ video/mp4
+
+
+ mpa
+ audio/mpeg
+
+
+ mpc
+ application/vnd.mophun.certificate
+
+
+ mpe
+ video/mpeg
+
+
+ mpeg
+ video/mpeg
+
+
+ mpega
+ audio/x-mpeg
+
+
+ mpg
+ video/mpeg
+
+
+ mpg4
+ video/mp4
+
+
+ mpga
+ audio/mpeg
+
+
+ mpkg
+ application/vnd.apple.installer+xml
+
+
+ mpm
+ application/vnd.blueice.multipass
+
+
+ mpn
+ application/vnd.mophun.application
+
+
+ mpp
+ application/vnd.ms-project
+
+
+ mpt
+ application/vnd.ms-project
+
+
+ mpv2
+ video/mpeg2
+
+
+ mpy
+ application/vnd.ibm.minipay
+
+
+ mqy
+ application/vnd.mobius.mqy
+
+
+ mrc
+ application/marc
+
+
+ mrcx
+ application/marcxml+xml
+
+
+ ms
+ text/troff
+
+
+ mscml
+ application/mediaservercontrol+xml
+
+
+ mseed
+ application/vnd.fdsn.mseed
+
+
+ mseq
+ application/vnd.mseq
+
+
+ msf
+ application/vnd.epson.msf
+
+
+ msh
+ model/mesh
+
+
+ msi
+ application/x-msdownload
+
+
+ msl
+ application/vnd.mobius.msl
+
+
+ msty
+ application/vnd.muvee.style
+
+
+ mts
+ model/vnd.mts
+
+
+ mus
+ application/vnd.musician
+
+
+ musicxml
+ application/vnd.recordare.musicxml+xml
+
+
+ mvb
+ application/x-msmediaview
+
+
+ mwf
+ application/vnd.mfer
+
+
+ mxf
+ application/mxf
+
+
+ mxl
+ application/vnd.recordare.musicxml
+
+
+ mxml
+ application/xv+xml
+
+
+ mxs
+ application/vnd.triscape.mxs
+
+
+ mxu
+ video/vnd.mpegurl
+
+
+ n-gage
+ application/vnd.nokia.n-gage.symbian.install
+
+
+ n3
+ text/n3
+
+
+ nb
+ application/mathematica
+
+
+ nbp
+ application/vnd.wolfram.player
+
+
+ nc
+ application/x-netcdf
+
+
+ ncx
+ application/x-dtbncx+xml
+
+
+ nfo
+ text/x-nfo
+
+
+ ngdat
+ application/vnd.nokia.n-gage.data
+
+
+ nitf
+ application/vnd.nitf
+
+
+ nlu
+ application/vnd.neurolanguage.nlu
+
+
+ nml
+ application/vnd.enliven
+
+
+ nnd
+ application/vnd.noblenet-directory
+
+
+ nns
+ application/vnd.noblenet-sealer
+
+
+ nnw
+ application/vnd.noblenet-web
+
+
+ npx
+ image/vnd.net-fpx
+
+
+ nsc
+ application/x-conference
+
+
+ nsf
+ application/vnd.lotus-notes
+
+
+ ntf
+ application/vnd.nitf
+
+
+ nzb
+ application/x-nzb
+
+
+ oa2
+ application/vnd.fujitsu.oasys2
+
+
+ oa3
+ application/vnd.fujitsu.oasys3
+
+
+ oas
+ application/vnd.fujitsu.oasys
+
+
+ obd
+ application/x-msbinder
+
+
+ obj
+ application/x-tgif
+
+
+ oda
+ application/oda
+
+
+
+ odb
+ application/vnd.oasis.opendocument.database
+
+
+
+ odc
+ application/vnd.oasis.opendocument.chart
+
+
+
+ odf
+ application/vnd.oasis.opendocument.formula
+
+
+ odft
+ application/vnd.oasis.opendocument.formula-template
+
+
+
+ odg
+ application/vnd.oasis.opendocument.graphics
+
+
+
+ odi
+ application/vnd.oasis.opendocument.image
+
+
+
+ odm
+ application/vnd.oasis.opendocument.text-master
+
+
+
+ odp
+ application/vnd.oasis.opendocument.presentation
+
+
+
+ ods
+ application/vnd.oasis.opendocument.spreadsheet
+
+
+
+ odt
+ application/vnd.oasis.opendocument.text
+
+
+ oga
+ audio/ogg
+
+
+ ogg
+ audio/ogg
+
+
+ ogv
+ video/ogg
+
+
+
+ ogx
+ application/ogg
+
+
+ omdoc
+ application/omdoc+xml
+
+
+ onepkg
+ application/onenote
+
+
+ onetmp
+ application/onenote
+
+
+ onetoc
+ application/onenote
+
+
+ onetoc2
+ application/onenote
+
+
+ opf
+ application/oebps-package+xml
+
+
+ opml
+ text/x-opml
+
+
+ oprc
+ application/vnd.palm
+
+
+ org
+ application/vnd.lotus-organizer
+
+
+ osf
+ application/vnd.yamaha.openscoreformat
+
+
+ osfpvg
+ application/vnd.yamaha.openscoreformat.osfpvg+xml
+
+
+ otc
+ application/vnd.oasis.opendocument.chart-template
+
+
+ otf
+ application/x-font-otf
+
+
+
+ otg
+ application/vnd.oasis.opendocument.graphics-template
+
+
+
+ oth
+ application/vnd.oasis.opendocument.text-web
+
+
+ oti
+ application/vnd.oasis.opendocument.image-template
+
+
+
+ otp
+ application/vnd.oasis.opendocument.presentation-template
+
+
+
+ ots
+ application/vnd.oasis.opendocument.spreadsheet-template
+
+
+
+ ott
+ application/vnd.oasis.opendocument.text-template
+
+
+ oxps
+ application/oxps
+
+
+ oxt
+ application/vnd.openofficeorg.extension
+
+
+ p
+ text/x-pascal
+
+
+ p10
+ application/pkcs10
+
+
+ p12
+ application/x-pkcs12
+
+
+ p7b
+ application/x-pkcs7-certificates
+
+
+ p7c
+ application/pkcs7-mime
+
+
+ p7m
+ application/pkcs7-mime
+
+
+ p7r
+ application/x-pkcs7-certreqresp
+
+
+ p7s
+ application/pkcs7-signature
+
+
+ p8
+ application/pkcs8
+
+
+ pas
+ text/x-pascal
+
+
+ paw
+ application/vnd.pawaafile
+
+
+ pbd
+ application/vnd.powerbuilder6
+
+
+ pbm
+ image/x-portable-bitmap
+
+
+ pcap
+ application/vnd.tcpdump.pcap
+
+
+ pcf
+ application/x-font-pcf
+
+
+ pcl
+ application/vnd.hp-pcl
+
+
+ pclxl
+ application/vnd.hp-pclxl
+
+
+ pct
+ image/pict
+
+
+ pcurl
+ application/vnd.curl.pcurl
+
+
+ pcx
+ image/x-pcx
+
+
+ pdb
+ application/vnd.palm
+
+
+ pdf
+ application/pdf
+
+
+ pfa
+ application/x-font-type1
+
+
+ pfb
+ application/x-font-type1
+
+
+ pfm
+ application/x-font-type1
+
+
+ pfr
+ application/font-tdpfr
+
+
+ pfx
+ application/x-pkcs12
+
+
+ pgm
+ image/x-portable-graymap
+
+
+ pgn
+ application/x-chess-pgn
+
+
+ pgp
+ application/pgp-encrypted
+
+
+ pic
+ image/pict
+
+
+ pict
+ image/pict
+
+
+ pkg
+ application/octet-stream
+
+
+ pki
+ application/pkixcmp
+
+
+ pkipath
+ application/pkix-pkipath
+
+
+ plb
+ application/vnd.3gpp.pic-bw-large
+
+
+ plc
+ application/vnd.mobius.plc
+
+
+ plf
+ application/vnd.pocketlearn
+
+
+ pls
+ audio/x-scpls
+
+
+ pml
+ application/vnd.ctc-posml
+
+
+ png
+ image/png
+
+
+ pnm
+ image/x-portable-anymap
+
+
+ pnt
+ image/x-macpaint
+
+
+ portpkg
+ application/vnd.macports.portpkg
+
+
+ pot
+ application/vnd.ms-powerpoint
+
+
+ potm
+ application/vnd.ms-powerpoint.template.macroenabled.12
+
+
+ potx
+ application/vnd.openxmlformats-officedocument.presentationml.template
+
+
+ ppam
+ application/vnd.ms-powerpoint.addin.macroenabled.12
+
+
+ ppd
+ application/vnd.cups-ppd
+
+
+ ppm
+ image/x-portable-pixmap
+
+
+ pps
+ application/vnd.ms-powerpoint
+
+
+ ppsm
+ application/vnd.ms-powerpoint.slideshow.macroenabled.12
+
+
+ ppsx
+ application/vnd.openxmlformats-officedocument.presentationml.slideshow
+
+
+ ppt
+ application/vnd.ms-powerpoint
+
+
+ pptm
+ application/vnd.ms-powerpoint.presentation.macroenabled.12
+
+
+ pptx
+ application/vnd.openxmlformats-officedocument.presentationml.presentation
+
+
+ pqa
+ application/vnd.palm
+
+
+ prc
+ application/x-mobipocket-ebook
+
+
+ pre
+ application/vnd.lotus-freelance
+
+
+ prf
+ application/pics-rules
+
+
+ ps
+ application/postscript
+
+
+ psb
+ application/vnd.3gpp.pic-bw-small
+
+
+ psd
+ image/vnd.adobe.photoshop
+
+
+ psf
+ application/x-font-linux-psf
+
+
+ pskcxml
+ application/pskc+xml
+
+
+ ptid
+ application/vnd.pvi.ptid1
+
+
+ pub
+ application/x-mspublisher
+
+
+ pvb
+ application/vnd.3gpp.pic-bw-var
+
+
+ pwn
+ application/vnd.3m.post-it-notes
+
+
+ pya
+ audio/vnd.ms-playready.media.pya
+
+
+ pyv
+ video/vnd.ms-playready.media.pyv
+
+
+ qam
+ application/vnd.epson.quickanime
+
+
+ qbo
+ application/vnd.intu.qbo
+
+
+ qfx
+ application/vnd.intu.qfx
+
+
+ qps
+ application/vnd.publishare-delta-tree
+
+
+ qt
+ video/quicktime
+
+
+ qti
+ image/x-quicktime
+
+
+ qtif
+ image/x-quicktime
+
+
+ qwd
+ application/vnd.quark.quarkxpress
+
+
+ qwt
+ application/vnd.quark.quarkxpress
+
+
+ qxb
+ application/vnd.quark.quarkxpress
+
+
+ qxd
+ application/vnd.quark.quarkxpress
+
+
+ qxl
+ application/vnd.quark.quarkxpress
+
+
+ qxt
+ application/vnd.quark.quarkxpress
+
+
+ ra
+ audio/x-pn-realaudio
+
+
+ ram
+ audio/x-pn-realaudio
+
+
+ rar
+ application/x-rar-compressed
+
+
+ ras
+ image/x-cmu-raster
+
+
+ rcprofile
+ application/vnd.ipunplugged.rcprofile
+
+
+ rdf
+ application/rdf+xml
+
+
+ rdz
+ application/vnd.data-vision.rdz
+
+
+ rep
+ application/vnd.businessobjects
+
+
+ res
+ application/x-dtbresource+xml
+
+
+ rgb
+ image/x-rgb
+
+
+ rif
+ application/reginfo+xml
+
+
+ rip
+ audio/vnd.rip
+
+
+ ris
+ application/x-research-info-systems
+
+
+ rl
+ application/resource-lists+xml
+
+
+ rlc
+ image/vnd.fujixerox.edmics-rlc
+
+
+ rld
+ application/resource-lists-diff+xml
+
+
+ rm
+ application/vnd.rn-realmedia
+
+
+ rmi
+ audio/midi
+
+
+ rmp
+ audio/x-pn-realaudio-plugin
+
+
+ rms
+ application/vnd.jcp.javame.midlet-rms
+
+
+ rmvb
+ application/vnd.rn-realmedia-vbr
+
+
+ rnc
+ application/relax-ng-compact-syntax
+
+
+ roa
+ application/rpki-roa
+
+
+ roff
+ text/troff
+
+
+ rp9
+ application/vnd.cloanto.rp9
+
+
+ rpss
+ application/vnd.nokia.radio-presets
+
+
+ rpst
+ application/vnd.nokia.radio-preset
+
+
+ rq
+ application/sparql-query
+
+
+ rs
+ application/rls-services+xml
+
+
+ rsd
+ application/rsd+xml
+
+
+ rss
+ application/rss+xml
+
+
+ rtf
+ application/rtf
+
+
+ rtx
+ text/richtext
+
+
+ s
+ text/x-asm
+
+
+ s3m
+ audio/s3m
+
+
+ saf
+ application/vnd.yamaha.smaf-audio
+
+
+ sbml
+ application/sbml+xml
+
+
+ sc
+ application/vnd.ibm.secure-container
+
+
+ scd
+ application/x-msschedule
+
+
+ scm
+ application/vnd.lotus-screencam
+
+
+ scq
+ application/scvp-cv-request
+
+
+ scs
+ application/scvp-cv-response
+
+
+ scurl
+ text/vnd.curl.scurl
+
+
+ sda
+ application/vnd.stardivision.draw
+
+
+ sdc
+ application/vnd.stardivision.calc
+
+
+ sdd
+ application/vnd.stardivision.impress
+
+
+ sdkd
+ application/vnd.solent.sdkm+xml
+
+
+ sdkm
+ application/vnd.solent.sdkm+xml
+
+
+ sdp
+ application/sdp
+
+
+ sdw
+ application/vnd.stardivision.writer
+
+
+ see
+ application/vnd.seemail
+
+
+ seed
+ application/vnd.fdsn.seed
+
+
+ sema
+ application/vnd.sema
+
+
+ semd
+ application/vnd.semd
+
+
+ semf
+ application/vnd.semf
+
+
+ ser
+ application/java-serialized-object
+
+
+ setpay
+ application/set-payment-initiation
+
+
+ setreg
+ application/set-registration-initiation
+
+
+ sfd-hdstx
+ application/vnd.hydrostatix.sof-data
+
+
+ sfs
+ application/vnd.spotfire.sfs
+
+
+ sfv
+ text/x-sfv
+
+
+ sgi
+ image/sgi
+
+
+ sgl
+ application/vnd.stardivision.writer-global
+
+
+ sgm
+ text/sgml
+
+
+ sgml
+ text/sgml
+
+
+ sh
+ application/x-sh
+
+
+ shar
+ application/x-shar
+
+
+ shf
+ application/shf+xml
+
+
+
+ sid
+ image/x-mrsid-image
+
+
+ sig
+ application/pgp-signature
+
+
+ sil
+ audio/silk
+
+
+ silo
+ model/mesh
+
+
+ sis
+ application/vnd.symbian.install
+
+
+ sisx
+ application/vnd.symbian.install
+
+
+ sit
+ application/x-stuffit
+
+
+ sitx
+ application/x-stuffitx
+
+
+ skd
+ application/vnd.koan
+
+
+ skm
+ application/vnd.koan
+
+
+ skp
+ application/vnd.koan
+
+
+ skt
+ application/vnd.koan
+
+
+ sldm
+ application/vnd.ms-powerpoint.slide.macroenabled.12
+
+
+ sldx
+ application/vnd.openxmlformats-officedocument.presentationml.slide
+
+
+ slt
+ application/vnd.epson.salt
+
+
+ sm
+ application/vnd.stepmania.stepchart
+
+
+ smf
+ application/vnd.stardivision.math
+
+
+ smi
+ application/smil+xml
+
+
+ smil
+ application/smil+xml
+
+
+ smv
+ video/x-smv
+
+
+ smzip
+ application/vnd.stepmania.package
+
+
+ snd
+ audio/basic
+
+
+ snf
+ application/x-font-snf
+
+
+ so
+ application/octet-stream
+
+
+ spc
+ application/x-pkcs7-certificates
+
+
+ spf
+ application/vnd.yamaha.smaf-phrase
+
+
+ spl
+ application/x-futuresplash
+
+
+ spot
+ text/vnd.in3d.spot
+
+
+ spp
+ application/scvp-vp-response
+
+
+ spq
+ application/scvp-vp-request
+
+
+ spx
+ audio/ogg
+
+
+ sql
+ application/x-sql
+
+
+ src
+ application/x-wais-source
+
+
+ srt
+ application/x-subrip
+
+
+ sru
+ application/sru+xml
+
+
+ srx
+ application/sparql-results+xml
+
+
+ ssdl
+ application/ssdl+xml
+
+
+ sse
+ application/vnd.kodak-descriptor
+
+
+ ssf
+ application/vnd.epson.ssf
+
+
+ ssml
+ application/ssml+xml
+
+
+ st
+ application/vnd.sailingtracker.track
+
+
+ stc
+ application/vnd.sun.xml.calc.template
+
+
+ std
+ application/vnd.sun.xml.draw.template
+
+
+ stf
+ application/vnd.wt.stf
+
+
+ sti
+ application/vnd.sun.xml.impress.template
+
+
+ stk
+ application/hyperstudio
+
+
+ stl
+ application/vnd.ms-pki.stl
+
+
+ str
+ application/vnd.pg.format
+
+
+ stw
+ application/vnd.sun.xml.writer.template
+
+
+ sub
+ text/vnd.dvb.subtitle
+
+
+ sus
+ application/vnd.sus-calendar
+
+
+ susp
+ application/vnd.sus-calendar
+
+
+ sv4cpio
+ application/x-sv4cpio
+
+
+ sv4crc
+ application/x-sv4crc
+
+
+ svc
+ application/vnd.dvb.service
+
+
+ svd
+ application/vnd.svd
+
+
+ svg
+ image/svg+xml
+
+
+ svgz
+ image/svg+xml
+
+
+ swa
+ application/x-director
+
+
+ swf
+ application/x-shockwave-flash
+
+
+ swi
+ application/vnd.aristanetworks.swi
+
+
+ sxc
+ application/vnd.sun.xml.calc
+
+
+ sxd
+ application/vnd.sun.xml.draw
+
+
+ sxg
+ application/vnd.sun.xml.writer.global
+
+
+ sxi
+ application/vnd.sun.xml.impress
+
+
+ sxm
+ application/vnd.sun.xml.math
+
+
+ sxw
+ application/vnd.sun.xml.writer
+
+
+ t
+ text/troff
+
+
+ t3
+ application/x-t3vm-image
+
+
+ taglet
+ application/vnd.mynfc
+
+
+ tao
+ application/vnd.tao.intent-module-archive
+
+
+ tar
+ application/x-tar
+
+
+ tcap
+ application/vnd.3gpp2.tcap
+
+
+ tcl
+ application/x-tcl
+
+
+ teacher
+ application/vnd.smart.teacher
+
+
+ tei
+ application/tei+xml
+
+
+ teicorpus
+ application/tei+xml
+
+
+ tex
+ application/x-tex
+
+
+ texi
+ application/x-texinfo
+
+
+ texinfo
+ application/x-texinfo
+
+
+ text
+ text/plain
+
+
+ tfi
+ application/thraud+xml
+
+
+ tfm
+ application/x-tex-tfm
+
+
+ tga
+ image/x-tga
+
+
+ thmx
+ application/vnd.ms-officetheme
+
+
+ tif
+ image/tiff
+
+
+ tiff
+ image/tiff
+
+
+ tmo
+ application/vnd.tmobile-livetv
+
+
+ torrent
+ application/x-bittorrent
+
+
+ tpl
+ application/vnd.groove-tool-template
+
+
+ tpt
+ application/vnd.trid.tpt
+
+
+ tr
+ text/troff
+
+
+ tra
+ application/vnd.trueapp
+
+
+ trm
+ application/x-msterminal
+
+
+ tsd
+ application/timestamped-data
+
+
+ tsv
+ text/tab-separated-values
+
+
+ ttc
+ application/x-font-ttf
+
+
+ ttf
+ application/x-font-ttf
+
+
+ ttl
+ text/turtle
+
+
+ twd
+ application/vnd.simtech-mindmapper
+
+
+ twds
+ application/vnd.simtech-mindmapper
+
+
+ txd
+ application/vnd.genomatix.tuxedo
+
+
+ txf
+ application/vnd.mobius.txf
+
+
+ txt
+ text/plain
+
+
+ u32
+ application/x-authorware-bin
+
+
+ udeb
+ application/x-debian-package
+
+
+ ufd
+ application/vnd.ufdl
+
+
+ ufdl
+ application/vnd.ufdl
+
+
+ ulw
+ audio/basic
+
+
+ ulx
+ application/x-glulx
+
+
+ umj
+ application/vnd.umajin
+
+
+ unityweb
+ application/vnd.unity
+
+
+ uoml
+ application/vnd.uoml+xml
+
+
+ uri
+ text/uri-list
+
+
+ uris
+ text/uri-list
+
+
+ urls
+ text/uri-list
+
+
+ ustar
+ application/x-ustar
+
+
+ utz
+ application/vnd.uiq.theme
+
+
+ uu
+ text/x-uuencode
+
+
+ uva
+ audio/vnd.dece.audio
+
+
+ uvd
+ application/vnd.dece.data
+
+
+ uvf
+ application/vnd.dece.data
+
+
+ uvg
+ image/vnd.dece.graphic
+
+
+ uvh
+ video/vnd.dece.hd
+
+
+ uvi
+ image/vnd.dece.graphic
+
+
+ uvm
+ video/vnd.dece.mobile
+
+
+ uvp
+ video/vnd.dece.pd
+
+
+ uvs
+ video/vnd.dece.sd
+
+
+ uvt
+ application/vnd.dece.ttml+xml
+
+
+ uvu
+ video/vnd.uvvu.mp4
+
+
+ uvv
+ video/vnd.dece.video
+
+
+ uvva
+ audio/vnd.dece.audio
+
+
+ uvvd
+ application/vnd.dece.data
+
+
+ uvvf
+ application/vnd.dece.data
+
+
+ uvvg
+ image/vnd.dece.graphic
+
+
+ uvvh
+ video/vnd.dece.hd
+
+
+ uvvi
+ image/vnd.dece.graphic
+
+
+ uvvm
+ video/vnd.dece.mobile
+
+
+ uvvp
+ video/vnd.dece.pd
+
+
+ uvvs
+ video/vnd.dece.sd
+
+
+ uvvt
+ application/vnd.dece.ttml+xml
+
+
+ uvvu
+ video/vnd.uvvu.mp4
+
+
+ uvvv
+ video/vnd.dece.video
+
+
+ uvvx
+ application/vnd.dece.unspecified
+
+
+ uvvz
+ application/vnd.dece.zip
+
+
+ uvx
+ application/vnd.dece.unspecified
+
+
+ uvz
+ application/vnd.dece.zip
+
+
+ vcard
+ text/vcard
+
+
+ vcd
+ application/x-cdlink
+
+
+ vcf
+ text/x-vcard
+
+
+ vcg
+ application/vnd.groove-vcard
+
+
+ vcs
+ text/x-vcalendar
+
+
+ vcx
+ application/vnd.vcx
+
+
+ vis
+ application/vnd.visionary
+
+
+ viv
+ video/vnd.vivo
+
+
+ vob
+ video/x-ms-vob
+
+
+ vor
+ application/vnd.stardivision.writer
+
+
+ vox
+ application/x-authorware-bin
+
+
+ vrml
+ model/vrml
+
+
+ vsd
+ application/vnd.visio
+
+
+ vsf
+ application/vnd.vsf
+
+
+ vss
+ application/vnd.visio
+
+
+ vst
+ application/vnd.visio
+
+
+ vsw
+ application/vnd.visio
+
+
+ vtu
+ model/vnd.vtu
+
+
+ vxml
+ application/voicexml+xml
+
+
+ w3d
+ application/x-director
+
+
+ wad
+ application/x-doom
+
+
+ wav
+ audio/x-wav
+
+
+ wax
+ audio/x-ms-wax
+
+
+
+ wbmp
+ image/vnd.wap.wbmp
+
+
+ wbs
+ application/vnd.criticaltools.wbs+xml
+
+
+ wbxml
+ application/vnd.wap.wbxml
+
+
+ wcm
+ application/vnd.ms-works
+
+
+ wdb
+ application/vnd.ms-works
+
+
+ wdp
+ image/vnd.ms-photo
+
+
+ weba
+ audio/webm
+
+
+ webm
+ video/webm
+
+
+ webp
+ image/webp
+
+
+ wg
+ application/vnd.pmi.widget
+
+
+ wgt
+ application/widget
+
+
+ wks
+ application/vnd.ms-works
+
+
+ wm
+ video/x-ms-wm
+
+
+ wma
+ audio/x-ms-wma
+
+
+ wmd
+ application/x-ms-wmd
+
+
+ wmf
+ application/x-msmetafile
+
+
+
+ wml
+ text/vnd.wap.wml
+
+
+
+ wmlc
+ application/vnd.wap.wmlc
+
+
+
+ wmls
+ text/vnd.wap.wmlscript
+
+
+
+ wmlsc
+ application/vnd.wap.wmlscriptc
+
+
+ wmv
+ video/x-ms-wmv
+
+
+ wmx
+ video/x-ms-wmx
+
+
+ wmz
+ application/x-msmetafile
+
+
+ woff
+ application/x-font-woff
+
+
+ woff2
+ font/woff2
+
+
+ wpd
+ application/vnd.wordperfect
+
+
+ wpl
+ application/vnd.ms-wpl
+
+
+ wps
+ application/vnd.ms-works
+
+
+ wqd
+ application/vnd.wqd
+
+
+ wri
+ application/x-mswrite
+
+
+ wrl
+ model/vrml
+
+
+ wsdl
+ application/wsdl+xml
+
+
+ wspolicy
+ application/wspolicy+xml
+
+
+ wtb
+ application/vnd.webturbo
+
+
+ wvx
+ video/x-ms-wvx
+
+
+ x32
+ application/x-authorware-bin
+
+
+ x3d
+ model/x3d+xml
+
+
+ x3db
+ model/x3d+binary
+
+
+ x3dbz
+ model/x3d+binary
+
+
+ x3dv
+ model/x3d+vrml
+
+
+ x3dvz
+ model/x3d+vrml
+
+
+ x3dz
+ model/x3d+xml
+
+
+ xaml
+ application/xaml+xml
+
+
+ xap
+ application/x-silverlight-app
+
+
+ xar
+ application/vnd.xara
+
+
+ xbap
+ application/x-ms-xbap
+
+
+ xbd
+ application/vnd.fujixerox.docuworks.binder
+
+
+ xbm
+ image/x-xbitmap
+
+
+ xdf
+ application/xcap-diff+xml
+
+
+ xdm
+ application/vnd.syncml.dm+xml
+
+
+ xdp
+ application/vnd.adobe.xdp+xml
+
+
+ xdssc
+ application/dssc+xml
+
+
+ xdw
+ application/vnd.fujixerox.docuworks
+
+
+ xenc
+ application/xenc+xml
+
+
+ xer
+ application/patch-ops-error+xml
+
+
+ xfdf
+ application/vnd.adobe.xfdf
+
+
+ xfdl
+ application/vnd.xfdl
+
+
+ xht
+ application/xhtml+xml
+
+
+ xhtml
+ application/xhtml+xml
+
+
+ xhvml
+ application/xv+xml
+
+
+ xif
+ image/vnd.xiff
+
+
+ xla
+ application/vnd.ms-excel
+
+
+ xlam
+ application/vnd.ms-excel.addin.macroenabled.12
+
+
+ xlc
+ application/vnd.ms-excel
+
+
+ xlf
+ application/x-xliff+xml
+
+
+ xlm
+ application/vnd.ms-excel
+
+
+ xls
+ application/vnd.ms-excel
+
+
+ xlsb
+ application/vnd.ms-excel.sheet.binary.macroenabled.12
+
+
+ xlsm
+ application/vnd.ms-excel.sheet.macroenabled.12
+
+
+ xlsx
+ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
+
+
+ xlt
+ application/vnd.ms-excel
+
+
+ xltm
+ application/vnd.ms-excel.template.macroenabled.12
+
+
+ xltx
+ application/vnd.openxmlformats-officedocument.spreadsheetml.template
+
+
+ xlw
+ application/vnd.ms-excel
+
+
+ xm
+ audio/xm
+
+
+ xml
+ application/xml
+
+
+ xo
+ application/vnd.olpc-sugar
+
+
+ xop
+ application/xop+xml
+
+
+ xpi
+ application/x-xpinstall
+
+
+ xpl
+ application/xproc+xml
+
+
+ xpm
+ image/x-xpixmap
+
+
+ xpr
+ application/vnd.is-xpr
+
+
+ xps
+ application/vnd.ms-xpsdocument
+
+
+ xpw
+ application/vnd.intercon.formnet
+
+
+ xpx
+ application/vnd.intercon.formnet
+
+
+ xsl
+ application/xml
+
+
+ xslt
+ application/xslt+xml
+
+
+ xsm
+ application/vnd.syncml+xml
+
+
+ xspf
+ application/xspf+xml
+
+
+ xul
+ application/vnd.mozilla.xul+xml
+
+
+ xvm
+ application/xv+xml
+
+
+ xvml
+ application/xv+xml
+
+
+ xwd
+ image/x-xwindowdump
+
+
+ xyz
+ chemical/x-xyz
+
+
+ xz
+ application/x-xz
+
+
+ yang
+ application/yang
+
+
+ yin
+ application/yin+xml
+
+
+ z
+ application/x-compress
+
+
+ Z
+ application/x-compress
+
+
+ wasm
+ application/wasm
+
+
+ z1
+ application/x-zmachine
+
+
+ z2
+ application/x-zmachine
+
+
+ z3
+ application/x-zmachine
+
+
+ z4
+ application/x-zmachine
+
+
+ z5
+ application/x-zmachine
+
+
+ z6
+ application/x-zmachine
+
+
+ z7
+ application/x-zmachine
+
+
+ z8
+ application/x-zmachine
+
+
+ zaz
+ application/vnd.zzazz.deck+xml
+
+
+ zip
+ application/zip
+
+
+ zir
+ application/vnd.zul
+
+
+ zirz
+ application/vnd.zul
+
+
+ zmm
+ application/vnd.handheld-entertainment+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ index.html
+ index.htm
+ index.jsp
+
+
+
diff --git a/build/bes/conf/patch-logging.properties b/build/bes/conf/patch-logging.properties
new file mode 100644
index 0000000000000000000000000000000000000000..8035b4762a839a6a2c9e13222733fd3e03f8876d
--- /dev/null
+++ b/build/bes/conf/patch-logging.properties
@@ -0,0 +1,4 @@
+java.util.logging.FileHandler.pattern = %h/java%u.log
+java.util.logging.FileHandler.limit = 50000
+java.util.logging.FileHandler.count = 1
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
\ No newline at end of file
diff --git a/build/bes/conf/security/cacerts.jks b/build/bes/conf/security/cacerts.jks
new file mode 100644
index 0000000000000000000000000000000000000000..02401c801cecf9342b9c4e25635c395f19ad42f4
Binary files /dev/null and b/build/bes/conf/security/cacerts.jks differ
diff --git a/build/bes/conf/security/dsa_private_key_pkcs8.pem b/build/bes/conf/security/dsa_private_key_pkcs8.pem
new file mode 100644
index 0000000000000000000000000000000000000000..c8c926025caae78289040f30b1c72d0de2cb3242
--- /dev/null
+++ b/build/bes/conf/security/dsa_private_key_pkcs8.pem
@@ -0,0 +1,10 @@
+
+-----BEGIN DSA PRIVATE KEY-----
+MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdS
+PO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVCl
+pJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith
+1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7L
+vKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3
+zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImo
+g9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoEFgIUY1XYW5BbouTN+EhNCirmRJw3e5Q=
+-----END DSA PRIVATE KEY-----
diff --git a/build/bes/conf/security/dsa_public_key.pem b/build/bes/conf/security/dsa_public_key.pem
new file mode 100644
index 0000000000000000000000000000000000000000..72f51940d1dd3115f50ce48dd0a371c5d8cfc6a3
--- /dev/null
+++ b/build/bes/conf/security/dsa_public_key.pem
@@ -0,0 +1,13 @@
+
+-----BEGIN DSA PUBLIC KEY-----
+MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E
+AMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f
+6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv
+8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtc
+NrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
+jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/h
+WuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAMzqdRxMxNSwQqSh3cAht0VcrO2K
+mD4DK7LhIDd28CPjybAPGovOXU/VWbvkOuVXRUNfR8mChjQY7rUoTxQYe55udCUf
+5NmeDkiVH3pZlWpP8h25I8Mv8t7X8+hjVV0VYWGcYRPkYm6I2bszMrIG5YvqoD/+
+hG47J3qIpWev1OE6
+-----END DSA PUBLIC KEY-----
diff --git a/build/bes/conf/security/keyfile b/build/bes/conf/security/keyfile
new file mode 100644
index 0000000000000000000000000000000000000000..4c36f150387f5e42a0cfd17203ead9c533869a38
--- /dev/null
+++ b/build/bes/conf/security/keyfile
@@ -0,0 +1 @@
+admin;{SSHA256}+f8HEDkuj7o4S+vOXXVX7ZR84zB8DJHNoyXQeT0Dk4tZ4W0Jnt4ryg==;besadmin
\ No newline at end of file
diff --git a/build/bes/conf/security/keystore.bks b/build/bes/conf/security/keystore.bks
new file mode 100644
index 0000000000000000000000000000000000000000..2a9e9885c402ca2eee99c9e5d36baca55e49e697
Binary files /dev/null and b/build/bes/conf/security/keystore.bks differ
diff --git a/build/bes/conf/security/keystore.jks b/build/bes/conf/security/keystore.jks
new file mode 100644
index 0000000000000000000000000000000000000000..980eb044c1e1b31a1f3b70e5537d2e90226cf2f1
Binary files /dev/null and b/build/bes/conf/security/keystore.jks differ
diff --git a/build/bes/conf/security/server.policy b/build/bes/conf/security/server.policy
new file mode 100644
index 0000000000000000000000000000000000000000..8d571f542ab97a57cf7a9ce4f43e70544352a42f
--- /dev/null
+++ b/build/bes/conf/security/server.policy
@@ -0,0 +1,117 @@
+// ========== SYSTEM CODE PERMISSIONS =========================================
+
+
+// These permissions apply to javac
+grant codeBase "file:${java.home}/lib/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions
+grant codeBase "file:${java.home}/jre/lib/ext/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/../lib/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions when
+// ${java.home} points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/lib/ext/-" {
+ permission java.security.AllPermission;
+};
+
+
+// ========== CODE PERMISSIONS =======================================
+
+
+// These permissions apply to the servlet API classes
+// and those that are shared across all class loaders
+// located in the "lib" directory
+grant codeBase "file:${com.bes.installRoot}/lib/-" {
+ permission java.security.AllPermission;
+};
+
+
+// If using a per instance lib directory, i.e. ${com.bes.instanceRoot}/lib,
+// then the following permission will need to be uncommented
+// grant codeBase "file:${com.bes.instanceRoot}/lib/-" {
+// permission java.security.AllPermission;
+// };
+
+
+// ========== WEB APPLICATION PERMISSIONS =====================================
+
+
+// These permissions are granted by default to all web applications
+// In addition, a web application will be given a read FilePermission
+// for all files and directories in its document root.
+grant {
+ // Required for JNDI lookup of named JDBC DataSource's and
+ // javamail named MimePart DataSource used to send mail
+ permission java.util.PropertyPermission "java.home", "read";
+ permission java.util.PropertyPermission "java.naming.*", "read";
+ permission java.util.PropertyPermission "javax.sql.*", "read";
+
+ // OS Specific properties to allow read access
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.version", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "path.separator", "read";
+ permission java.util.PropertyPermission "line.separator", "read";
+
+ // JVM properties to allow read access
+ permission java.util.PropertyPermission "java.version", "read";
+ permission java.util.PropertyPermission "java.vendor", "read";
+ permission java.util.PropertyPermission "java.vendor.url", "read";
+ permission java.util.PropertyPermission "java.class.version", "read";
+ permission java.util.PropertyPermission "java.specification.version", "read";
+ permission java.util.PropertyPermission "java.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.specification.name", "read";
+
+ permission java.util.PropertyPermission "java.vm.specification.version", "read";
+ permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.specification.name", "read";
+ permission java.util.PropertyPermission "java.vm.version", "read";
+ permission java.util.PropertyPermission "java.vm.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.name", "read";
+
+ // Required for OpenJMX
+ permission java.lang.RuntimePermission "getAttribute";
+
+ // Allow read of JAXP compliant XML parser debug
+ permission java.util.PropertyPermission "jaxp.debug", "read";
+
+ // All JSPs need to be able to read this package
+ permission java.lang.RuntimePermission "accessClassInPackage.com.bes.enterprise.web";
+
+ // Precompiled JSPs need access to these packages.
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.el";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.org.apache.jasper.runtime.*";
+
+ // Precompiled JSPs need access to these system properties.
+ permission java.util.PropertyPermission
+ "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
+ permission java.util.PropertyPermission
+ "org.apache.el.parser.COERCE_TO_ZERO", "read";
+
+ // The cookie code needs these.
+ permission java.util.PropertyPermission
+ "com.bes.enterprise.webtier.STRICT_SERVLET_COMPLIANCE", "read";
+ permission java.util.PropertyPermission
+ "com.bes.enterprise.util.http.ServerCookie.STRICT_NAMING", "read";
+ permission java.util.PropertyPermission
+ "com.bes.enterprise.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR", "read";
+
+ // Applications using WebSocket need to be able to access these packages
+ permission java.lang.RuntimePermission "accessClassInPackage.com.bes.enterprise.web.websocket";
+ permission java.lang.RuntimePermission "accessClassInPackage.com.bes.enterprise.web.websocket.server";
+
+ // Applications need to access these packages to use the Servlet 4.0 Preview
+ permission java.lang.RuntimePermission "accessClassInPackage.com.bes.enterprise.webtier.servlet4preview";
+ permission java.lang.RuntimePermission "accessClassInPackage.com.bes.enterprise.webtier.servlet4preview.http";
+};
diff --git a/build/bes/conf/server.config b/build/bes/conf/server.config
new file mode 100644
index 0000000000000000000000000000000000000000..0a8b7ed720ae8ad38f44469fb63f2aa4956ac158
--- /dev/null
+++ b/build/bes/conf/server.config
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/bes/lib/bes-api.jar b/build/bes/lib/bes-api.jar
new file mode 100644
index 0000000000000000000000000000000000000000..4141e81aa7f2a8880579d82273164dc7b73c105d
Binary files /dev/null and b/build/bes/lib/bes-api.jar differ
diff --git a/build/bes/lib/bes-core.jar b/build/bes/lib/bes-core.jar
new file mode 100644
index 0000000000000000000000000000000000000000..b2f0fff1516a70bc504cb289507c3d3c96e2cd68
Binary files /dev/null and b/build/bes/lib/bes-core.jar differ
diff --git a/build/bes/lib/bes-el.jar b/build/bes/lib/bes-el.jar
new file mode 100644
index 0000000000000000000000000000000000000000..55ac767f7e76f6354318411283f047b33fb61b43
Binary files /dev/null and b/build/bes/lib/bes-el.jar differ
diff --git a/build/bes/lib/bes-gmcert.jar b/build/bes/lib/bes-gmcert.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f6601c75cb877c29e8a7ce966988d7f1001d0b0f
Binary files /dev/null and b/build/bes/lib/bes-gmcert.jar differ
diff --git a/build/bes/lib/bes-jasper.jar b/build/bes/lib/bes-jasper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..3b0244c85a582e2785d26767487a314c83eeb3fb
Binary files /dev/null and b/build/bes/lib/bes-jasper.jar differ
diff --git a/build/bes/lib/bes-jdbcra.jar b/build/bes/lib/bes-jdbcra.jar
new file mode 100644
index 0000000000000000000000000000000000000000..ec6f3c267fcdddfc62954fcb4ab91c07779b239a
Binary files /dev/null and b/build/bes/lib/bes-jdbcra.jar differ
diff --git a/build/bes/lib/bes-server-assembler.jar b/build/bes/lib/bes-server-assembler.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d3468f6a9e6c7a3df50cab8a6e5dbbc1ccefb1f2
Binary files /dev/null and b/build/bes/lib/bes-server-assembler.jar differ
diff --git a/build/bes/lib/bes-webapp-compressor.jar b/build/bes/lib/bes-webapp-compressor.jar
new file mode 100644
index 0000000000000000000000000000000000000000..fce94de1dc2d61155367ce381b76f2d584f65d34
Binary files /dev/null and b/build/bes/lib/bes-webapp-compressor.jar differ
diff --git a/build/bes/lib/bes-websocket.jar b/build/bes/lib/bes-websocket.jar
new file mode 100644
index 0000000000000000000000000000000000000000..dabe3c2c1aedab7659d8cc6248641f80557682e0
Binary files /dev/null and b/build/bes/lib/bes-websocket.jar differ
diff --git a/build/bes/lib/bootstrap/bes-bootstrap.jar b/build/bes/lib/bootstrap/bes-bootstrap.jar
new file mode 100644
index 0000000000000000000000000000000000000000..b5a5b1c1a97a0f71836afa01d16c0b038d867f66
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-bootstrap.jar differ
diff --git a/build/bes/lib/bootstrap/bes-common-core.jar b/build/bes/lib/bootstrap/bes-common-core.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f4cf7c5e12a7fe0f85e4f42c2b3156348de54de1
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-common-core.jar differ
diff --git a/build/bes/lib/bootstrap/bes-common-util.jar b/build/bes/lib/bootstrap/bes-common-util.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d140821d3b11d475684315dfcac43216b02683b6
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-common-util.jar differ
diff --git a/build/bes/lib/bootstrap/bes-config-provider.jar b/build/bes/lib/bootstrap/bes-config-provider.jar
new file mode 100644
index 0000000000000000000000000000000000000000..9e514f0c2b86554116ac0b2a70d9ef14c9e7226e
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-config-provider.jar differ
diff --git a/build/bes/lib/bootstrap/bes-gmssl.jar b/build/bes/lib/bootstrap/bes-gmssl.jar
new file mode 100644
index 0000000000000000000000000000000000000000..df47400b09771f99d66bba075cf4db8e3f193dea
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-gmssl.jar differ
diff --git a/build/bes/lib/bootstrap/bes-license.jar b/build/bes/lib/bootstrap/bes-license.jar
new file mode 100644
index 0000000000000000000000000000000000000000..867bcbe20f0205625cf81296d70a1f7fe63cc6a3
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-license.jar differ
diff --git a/build/bes/lib/bootstrap/bes-patch.jar b/build/bes/lib/bootstrap/bes-patch.jar
new file mode 100644
index 0000000000000000000000000000000000000000..a8c9df7e063b17dfc63fafb29205bb4484fbd0c0
Binary files /dev/null and b/build/bes/lib/bootstrap/bes-patch.jar differ
diff --git a/build/bes/license/bes.lic.txt b/build/bes/license/bes.lic.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8e31840ba7944ef2ff5292250122f832c7846f92
--- /dev/null
+++ b/build/bes/license/bes.lic.txt
@@ -0,0 +1,20 @@
+#######################################################################
+#
+# Copyright (c) 2021
+# Beijing Baolande Software Corporation
+# All Rights Reserved.
+#
+# Please contact BES technical support in the following ways:
+# Website: www.bessystem.com
+# Email: support@bessystem.com
+# Tel: 400 650 1976
+#
+#######################################################################
+
+# The BES software license information:
+# Version: 9.5.5
+# Customer Name: BES TRIAL
+# Serial Number: 0DP4-FDHMDG-77AKM6-NAW2
+# Description: DEVELOPMENT admin_001
+
+5133567A644739745A584975626D46745A54314352564D6756464A4A5155774B55484A765A48566A64433530615852735A54314352564D4B55484A765A48566A644335325A584A7A615739750A50546B754E533431436C4279623252315933517564486C775A54314D6158526C436B7870593256756332557564486C775A54314552565A46544539515455564F5641704665484270636E6B750A615735305A584A32595777394D54677A436C526C636D307564486C775A543077436B563463476C796553356B5958526C5051704665476C304C6D6C7564475679646D467350546379436C4A6C0A5A326C7A644756794C6D5A6C59585231636D553956305643436C4E6C636D6C6862433575645731695A5849394D4552514E4331475245684E524563744E7A6442533030324C553542567A494B0A54574634564768795A57466B4C6D4E76645735305054554B556D566E61584E305A5849755A47567A59334A706348527062323439524556575255785055453146546C514B51557339526A64450A5154417851555A475244637752546C444D454A464D444E424E7A41314D554A424E305A474F444D34524445314E30457852417051636D39715A574E304C6D35686257553954693942436B4E770A6453356A623356756444307843673D3D
\ No newline at end of file