diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3fd675c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+windows/headers/
+windows/wix
+windows_deliv/headers/
+windows_deliv/install/bin/
+windows_deliv/install/binaries/
+windows_deliv/wix
diff --git a/windows_deliv/bin/7z.dll b/windows_deliv/bin/7z.dll
new file mode 100644
index 0000000..a83bdca
Binary files /dev/null and b/windows_deliv/bin/7z.dll differ
diff --git a/windows_deliv/bin/7z.exe b/windows_deliv/bin/7z.exe
new file mode 100644
index 0000000..d3fe532
Binary files /dev/null and b/windows_deliv/bin/7z.exe differ
diff --git a/windows_deliv/call_make_installations.btm b/windows_deliv/call_make_installations.btm
new file mode 100644
index 0000000..04805d1
--- /dev/null
+++ b/windows_deliv/call_make_installations.btm
@@ -0,0 +1,18 @@
+call %~dp0init.btm
+
+cdd %INIT_DIR
+
+iff not defined NO_INSTALL then
+ iff defined ISE_C_COMPILER_VER then
+ call %INIT_DIR\inc\set_has_c_compiler HAS_C_COMP_VER %ISE_C_COMPILER_VER
+ else
+ set "HAS_C_COMP_VER=False"
+ endiff
+ iff defined ISE_C_COMPILER_VER .and. %HAS_C_COMP_VER% == "True" then
+ espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c make_installations.btm"
+ else
+ espawn "%COMSPEC% /c make_installations.btm"
+ endiff
+ cdd %INIT_DIR
+endiff
+
diff --git a/windows_deliv/check_environment.btm b/windows_deliv/check_environment.btm
new file mode 100644
index 0000000..e0f68fc
--- /dev/null
+++ b/windows_deliv/check_environment.btm
@@ -0,0 +1,40 @@
+iff not defined ISE_EIFFEL then
+ echo ISE_EIFFEL not defined. Cannot continue
+ CANCEL
+endiff
+iff not defined ISE_PLATFORM then
+ echo ISE_PLATFORM not defined. Cannot continue
+ CANCEL
+endiff
+iff not defined NO_COMPILE then
+ iff not defined EIFFEL_SRC then
+ echo EIFFEL_SRC not defined. Cannot continue
+ CANCEL
+ endiff
+ iff not defined FINALIZATION_DIR then
+ echo FINALIZATION_DIR not defined. Cannot continue
+ CANCEL
+ endiff
+ iff not exist %ISE_EIFFEL\gcc\%ISE_PLATFORM\mingw\bin\gcc.exe then
+ echo Cannot find a version of MinGW under ISE_EIFFEL. Cannot continue
+ CANCEL
+ endiff
+ iff not exist %ISE_EIFFEL\studio\spec\%ISE_PLATFORM\bin\ecb.exe then
+ endiff
+ iff isdir %EIFFEL_SRC then
+ echo Warning: %EIFFEL_SRC will be erased by the script!
+ endiff
+endiff
+rem An alternative to find a program is the following two lines
+rem set MyProgramPresent=0
+rem for %%x in (program.exe) do if not [%%~$PATH:x]==[] set MyProgramPresent=1
+tar --version 2>NUL 1>NUL || (echo "Cannot find a version of tar. Cannot continue" && CANCEL)
+iff not defined INSTALL_LOG then
+ echo Error: No file specified for the log
+ CANCEL
+endiff
+iff not defined INSTALL_DIR then
+ echo Error: No path specified for the generated delivery
+ CANCEL
+endiff
+
diff --git a/windows_deliv/compile_c_libraries.btm b/windows_deliv/compile_c_libraries.btm
new file mode 100644
index 0000000..e60622a
--- /dev/null
+++ b/windows_deliv/compile_c_libraries.btm
@@ -0,0 +1,67 @@
+@echo off
+
+call %INIT_DIR%\set_simple_aliases.btm
+
+remtrace Compiling C code of libraries for C compiler %2
+
+rem arg1 = Root of EiffelStudio installation
+rem arg2 = Name of C compiler used
+
+iff not defined NO_COMPILE then
+ remtrace Retrieve the header files
+ cdd %EIFFEL_SRC
+ safe_md headers
+ REM "We keep a copy of vendors specific header files at EiffelSoftware as they cannot be"
+ REM "redistributed freely."
+ exprtfile %DEFAULT_ISE_SVN/Src/library/headers.tar.gz > headers\headers.tar.gz
+ cd headers
+ tar xvfz headers.tar.gz
+ iff not isdir apps then
+ remtrace Couldnt retrieve the header files.
+ endiff
+ set JDK_HOME=%EIFFEL_SRC\headers\apps\jdk1.1.8
+ set ORACLE_HOME=%EIFFEL_SRC\headers\apps\oracle
+
+ cdd %1
+ remtrace Compile the C code, and remove extra clib's
+ iff isdir %1\library\com then
+ remtrace com
+ cd %1\library\com\Clib
+ specific_make %2
+ cd %1\library\com\Clib_runtime
+ specific_make %2
+ cd %1\library\com
+ endiff
+ remtrace cURL
+ cd %1\library\cURL\Clib
+ specific_make %2
+ remtrace net
+ cd %1\library\net\Clib
+ specific_make %2
+ remtrace store
+ cd %1\library\store\dbms\rdbms\odbc\clib
+ specific_make %2
+ cd %1\library\store\dbms\rdbms\mysql\clib
+ specific_make %2
+ cd %1\library\store\dbms\rdbms\oracle\clib
+ specific_make %2
+ remtrace vision2
+ cd %1\library\vision2\Clib
+ specific_make %2
+ remtrace web_browser
+ cd %1\library\web_browser\Clib
+ specific_make %2
+ remtrace wel
+ cd %1\library\wel\clib
+ specific_make %2
+ fullrf %1\library\wel\clib\make.log
+else
+ cdd %1
+ quick_move /s library\com\spec
+ fullrd %1\library\com\Clib
+ fullrd %1\library\com\Clib_runtime
+ quick_move /s library\net\spec
+ quick_move /s library\store\spec
+ quick_move /s library\vision2\spec
+ quick_move /s library\wel\spec
+endiff
diff --git a/windows_deliv/compile_other_c_libraries.btm b/windows_deliv/compile_other_c_libraries.btm
new file mode 100644
index 0000000..c9f4e32
--- /dev/null
+++ b/windows_deliv/compile_other_c_libraries.btm
@@ -0,0 +1,28 @@
+@echo off
+
+call %INIT_DIR%\set_simple_aliases.btm
+
+remtrace Compiling C code of other libraries for C compiler %2
+
+rem arg1 = Root of EiffelStudio installation
+rem arg2 = Name of C compiler used
+
+iff not defined NO_COMPILE then
+ cdd %1
+
+ remtrace SQLite3
+ cdd %1\unstable\library\persistency\database\sqlite3\Clib
+ specific_make %2
+ fullrf %1\unstable\library\persistency\database\sqlite3\Clib\make.log
+
+ remtrace Compile examples
+ iff exist %1\examples\base\beep\Clib then
+ cd %1\examples\base\beep\Clib
+ specific_make %2
+ endiff
+
+ cd %1\C_library\zlib
+ specific_make %2
+ cd %1\C_library\libpng
+ specific_make %2
+endiff
diff --git a/windows_deliv/display_logs.btm b/windows_deliv/display_logs.btm
new file mode 100644
index 0000000..89a05bb
--- /dev/null
+++ b/windows_deliv/display_logs.btm
@@ -0,0 +1,19 @@
+@echo off
+setlocal
+
+REM Save previous environment
+REM FIXME: is it still needed with use of setlocal?
+set OLD_PATH=%PATH
+set OLD_EIFFEL_SRC=%EIFFEL_SRC
+set OLD_ISE_LIBRARY=%ISE_LIBRARY
+set OLD_ISE_SRC=%ISE_SRC
+set TMP_ISE_EIFFEL=%ISE_EIFFEL
+
+call %~dp0init.btm
+
+tail -f %INSTALL_LOG%
+goto EOF
+
+:broken
+CANCEL
+
diff --git a/windows_deliv/etc/config.btm b/windows_deliv/etc/config.btm
new file mode 100644
index 0000000..ebfed75
--- /dev/null
+++ b/windows_deliv/etc/config.btm
@@ -0,0 +1,68 @@
+REM Check local file
+iff defined ISE_BUILD_NAME .and. exist %~dp0local-%ISE_BUILD_NAME%.btm then
+ call %~dp0local-%ISE_BUILD_NAME%.btm
+elseiff exist %~dp0local-%COMPUTERNAME%.btm then
+ call %~dp0local-%COMPUTERNAME%.btm
+elseiff exist %~dp0local.btm then
+ call %~dp0local.btm
+endiff
+
+REM Backward compatibility
+iff defined DEFAULT_ORIGO_SVN then
+ set DEFAULT_PUBLIC_SVN=%DEFAULT_ORIGO_SVN%
+endiff
+iff defined ORIGO_SVN_REVISION then
+ set PUBLIC_SVN_REVISION=%ORIGO_SVN_REVISION%
+endiff
+
+REM General configuration
+iff not defined STUDIO_VERSION_MAJOR_MINOR then
+ set STUDIO_VERSION_MAJOR_MINOR=18.05
+endiff
+
+iff not defined WORK_DIR then
+ set WORK_DIR=C:\work
+endiff
+
+REM Tag to export files from public SVN repository
+iff not defined DEFAULT_PUBLIC_SVN then
+ set DEFAULT_PUBLIC_SVN=https://svn.eiffel.com/eiffelstudio/trunk
+endiff
+iff not defined PUBLIC_SVN_REVISION then
+ set PUBLIC_SVN_REVISION=HEAD
+endiff
+
+REM Tag to export files in SVN at ISE
+iff not defined DEFAULT_ISE_SVN then
+ set DEFAULT_ISE_SVN=svn://%USERNAME%@svn.ise/ise_svn/trunk
+endiff
+
+iff not defined ISE_C_COMPILER then
+REM set ISE_C_COMPILER=msc
+ set ISE_C_COMPILER=msc_vc140
+endiff
+
+iff not defined ISE_C_COMPILER_VER then
+REM set ISE_C_COMPILER_VER=WSDK71
+REM set ISE_C_COMPILER_VER=VC140
+ set ISE_C_COMPILER_VER=VC100
+endiff
+
+iff not defined ISE_NIGHTLY_SCP_HOST then
+ set ISE_NIGHTLY_SCP_HOST=eiffel.com
+endiff
+iff not defined ISE_NIGHTLY_SCP_PATH then
+ set ISE_NIGHTLY_SCP_PATH=builds/nightly/
+endiff
+iff not defined ISE_NIGHTLY_SCP_USER then
+ set ISE_NIGHTLY_SCP_USER=manus
+endiff
+iff not defined ISE_NIGHTLY_SCP_LOCATION then
+ set ISE_NIGHTLY_SCP_LOCATION=%ISE_NIGHTLY_SCP_USER%@%ISE_NIGHTLY_SCP_HOST%:%ISE_NIGHTLY_SCP_PATH%
+endiff
+
+set PATH=%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin;%PATH%
+set PATH=%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin;%PATH%
+set PATH=%PATH%;%ISE_EIFFEL%\gcc\%ISE_PLATFORM%\msys\1.0\bin
+
+set PATH=%PATH%;%~dp0..\bin
diff --git a/windows_deliv/etc/local-JFIATPC.btm b/windows_deliv/etc/local-JFIATPC.btm
new file mode 100644
index 0000000..bd34cab
--- /dev/null
+++ b/windows_deliv/etc/local-JFIATPC.btm
@@ -0,0 +1,57 @@
+echo Load local settings
+
+REM set ISE_PLATFORM=windows
+iff not defined ISE_PLATFORM then
+ set ISE_PLATFORM=win64
+endiff
+
+iff not defined ISE_EIFFEL then
+ set ISE_EIFFEL=C:\DEV\Eiffel\18.05_%ISE_PLATFORM%
+endiff
+
+rem set ISE_EC_FLAGS=-full
+
+set ISE_C_COMPILER=msc_vc140
+set ISE_C_COMPILER_VER=VC140
+rem set ISE_C_COMPILER_VER=VC150
+
+rem set ISE_C_COMPILER=msc
+rem set ISE_C_COMPILER_VER=WSDK71
+rem set ISE_C_COMPILER_VER=VC100x
+rem set ISE_C_COMPILER_VER=VC100
+
+iff "%ISE_PLATFORM%" == "win64" then
+ rem set MYSQL=C:\Program Files (x86)\MySQL\MySQL Connector.C 6.1
+ rem set MYSQL=C:\DEV\mysql\winx64\
+ rem set MYSQL=C:\apps\mysql-5.6.22-winx64\
+ rem set MYSQL=C:\DEV\3rd\mysql\mysql-5.6.38-winx64
+ set MYSQL=C:\DEV\include\mysql-connector-c-6.1.11-winx64
+else
+ rem set MYSQL=C:\Program Files (x86)\MySQL\MySQL Connector.C 6.1
+ rem set MYSQL=C:\DEV\3rd\mysql\mysql-5.6.38-win32
+ set MYSQL=C:\DEV\include\mysql-connector-c-6.1.11-win32
+endiff
+
+iff not defined WORK_DIR then
+ set WORK_DIR=C:\DEV\deliv
+ set WORK_DIR=M:\deliv
+endiff
+iff not defined DEFAULT_PUBLIC_SVN then
+ set DEFAULT_PUBLIC_SVN=file:///C:/DEV/ise/repos/mirrors/svn/eiffelstudio/trunk
+rem set DEFAULT_PUBLIC_SVN=svn://192.168.1.11:3699/trunk
+endiff
+iff not defined DEFAULT_ISE_SVN then
+ set DEFAULT_ISE_SVN=svn://jfiat@svn.ise:3691/ise_svn/trunk
+ set DEFAULT_ISE_SVN=file:///C:/DEV/ise/repos/mirrors/svn/ise/trunk
+rem set DEFAULT_ISE_SVN=svn://192.168.1.11:3698/trunk
+endiff
+
+rem set PATH=%PATH%;C:\cygwin64\bin
+set PATH=%PATH%;C:\apps\files\7-Zip
+
+set DELIV_SKIP_ERROR="True"
+rem set DELIV_SKIP_ERROR="False"
+
+
+set ISE_LITE_DELIV="False"
+
diff --git a/windows_deliv/etc/local-win64-vc140.btm b/windows_deliv/etc/local-win64-vc140.btm
new file mode 100644
index 0000000..bb748e3
--- /dev/null
+++ b/windows_deliv/etc/local-win64-vc140.btm
@@ -0,0 +1,12 @@
+REM Check ISE_BUILD_NAME=win64-vc140
+echo Use build "win64-vc140"
+set ISE_PLATFORM=win64
+
+iff exist %~dp0local-%COMPUTERNAME%.btm then
+ call %~dp0local-%COMPUTERNAME%.btm
+elseiff exist %~dp0local.btm then
+ call %~dp0local.btm
+endiff
+
+set ISE_C_COMPILER=msc_vc140
+set ISE_C_COMPILER_VER=VC140
diff --git a/windows_deliv/etc/local-win64-vc150.btm b/windows_deliv/etc/local-win64-vc150.btm
new file mode 100644
index 0000000..a642159
--- /dev/null
+++ b/windows_deliv/etc/local-win64-vc150.btm
@@ -0,0 +1,12 @@
+REM Check ISE_BUILD_NAME=win64-vc150
+echo Use build "win64-vc150"
+set ISE_PLATFORM=win64
+
+iff exist %~dp0local-%COMPUTERNAME%.btm then
+ call %~dp0local-%COMPUTERNAME%.btm
+elseiff exist %~dp0local.btm then
+ call %~dp0local.btm
+endiff
+
+set ISE_C_COMPILER=msc_vc140
+set ISE_C_COMPILER_VER=VC150
diff --git a/windows_deliv/etc/local-windows-vc150.btm b/windows_deliv/etc/local-windows-vc150.btm
new file mode 100644
index 0000000..a15689e
--- /dev/null
+++ b/windows_deliv/etc/local-windows-vc150.btm
@@ -0,0 +1,12 @@
+REM Check ISE_BUILD_NAME=windows-vc150
+echo Use build "windows-vc150"
+set ISE_PLATFORM=windows
+
+iff exist %~dp0local-%COMPUTERNAME%.btm then
+ call %~dp0local-%COMPUTERNAME%.btm
+elseiff exist %~dp0local.btm then
+ call %~dp0local.btm
+endiff
+
+set ISE_C_COMPILER=msc_vc140
+set ISE_C_COMPILER_VER=VC150
diff --git a/windows_deliv/inc/display_environment.btm b/windows_deliv/inc/display_environment.btm
new file mode 100644
index 0000000..f0244bd
--- /dev/null
+++ b/windows_deliv/inc/display_environment.btm
@@ -0,0 +1,42 @@
+echo Current configuration:
+echo ----------------------
+echo INIT_DIR=%INIT_DIR (script root directory)
+echo ISE_EIFFEL=%ISE_EIFFEL
+echo ISE_PLATFORM=%ISE_PLATFORM
+echo DELIV_DIR=%DELIV_DIR
+echo INSTALL_DIR=%INSTALL_DIR
+echo STUDIO_DIR=%STUDIO_DIR
+echo Log file location: %INSTALL_LOG
+echo The private ISE svn repository: %DEFAULT_ISE_SVN
+echo The public svn repository: %DEFAULT_PUBLIC_SVN
+echo The revision that will be generated: %PUBLIC_SVN_REVISION
+echo ecb version:
+ecb -version
+echo The C environment: ISE_C_COMPILER=%ISE_C_COMPILER% (ISE_C_COMPILER_VER=%ISE_C_COMPILER_VER%)
+echo MYSQL lib location: %MYSQL%
+echo -----------------------------
+iff exist %INSTALL_DIR .or. isdir %INSTALL_DIR then
+ echo Warning: %INSTALL_DIR will be replaced by the installation script, you will lose everything in it
+endiff
+
+iff defined NO_COMPILE then
+ echo No compilation will be performed (including EiffelStudio's compilation)
+endiff
+iff defined NO_NEW_EC then
+ echo No new version of EiffelStudio will be compiled
+endiff
+iff defined BUILD_ENTERPRISE_ONLY then
+ echo Only EiffelStudio Enterprise will be build
+endiff
+iff defined NO_WIZARDS then
+ echo No wizards will be compiled.
+endiff
+iff defined NO_INSTALL then
+ echo The delivery will be generated, but not the final installation executable
+endiff
+
+
+iff not defined NO_INSTALL .and. not defined NO_COMPILE then
+ echo All components will be recompiled
+endiff
+
diff --git a/windows_deliv/inc/get_environment_confirmation.btm b/windows_deliv/inc/get_environment_confirmation.btm
new file mode 100644
index 0000000..5e14b7d
--- /dev/null
+++ b/windows_deliv/inc/get_environment_confirmation.btm
@@ -0,0 +1,12 @@
+echo You have 60s to cancel this build
+choice /T 60 /C cyn /N /D y /M "Press [C] to cancel, Press [Y] to continue now, or wait 60s ..."
+if %ERRORLEVEL% == 2 goto CONTINUE
+goto ABORT
+
+:ABORT
+echo Operation cancelled!
+CANCEL
+goto eof
+
+:CONTINUE
+goto eof
diff --git a/windows_deliv/inc/set_has_c_compiler.btm b/windows_deliv/inc/set_has_c_compiler.btm
new file mode 100644
index 0000000..30fc278
--- /dev/null
+++ b/windows_deliv/inc/set_has_c_compiler.btm
@@ -0,0 +1,3 @@
+espawn --list > %INSTALL_LOG%.tmp.c_compiler
+for /f "usebackq delims=" %%a in (`findstr /n "\<%2\>" %INSTALL_LOG%.tmp.c_compiler`) do set "%1=True"
+fullrf %INSTALL_LOG%.tmp.c_compiler
diff --git a/windows_deliv/init.btm b/windows_deliv/init.btm
new file mode 100644
index 0000000..3006088
--- /dev/null
+++ b/windows_deliv/init.btm
@@ -0,0 +1,11 @@
+iff not defined INIT_DIR then
+ set INIT_DIR=%@EXECSTR[cd]
+endiff
+call %INIT_DIR\set_aliases.btm
+
+REM Adding Wix to the path.
+set PATH=%PATH;%@EXECSTR[cd]\wix
+
+set EIFFEL_SRC=%TMP_EIFFEL_SRC
+set ISE_LIBRARY=%TMP_EIFFEL_SRC
+set ISE_SRC=%TMP_EIFFEL_SRC
diff --git a/windows_deliv/install/Admin.txt b/windows_deliv/install/Admin.txt
new file mode 100644
index 0000000..15612d5
--- /dev/null
+++ b/windows_deliv/install/Admin.txt
@@ -0,0 +1,38 @@
+1.0 ADMIN/NON INTERACTIVE INSTALLATIONS:
+----------------------------------------
+
+If you want to install EiffelStudio/EiffelEnvision in admin mode without any interactions, such
+the case of multiple installations please read the following:
+
+1.1 Installer Properties
+------------------------
+
+1.1.1 Require Properties
+
+There are a number of variables that *have* to be set to install successfully. These are detailed below:
+
+ - C_CONFIG_NAME : Either "msc" or "msc_vc140", for using a preinstalled Microsoft C/C++ compiler or "mingw" to install and use GCC.
+
+ - PID : For Enterprise editions of any installer a personal identifier is require, which is in the form of a CD-KEY for the
+ installing application. For GPL/Free Trial installations this information is not required.
+
+1.1.2 Optional Properties
+
+There are also a number of properties that can be optionally defined, but should be defined for they sake of sanity:
+
+ - INSTALLDIR : This is the installed location of the application being installed by the installer and should end in a directory
+ separator character '\'
+
+2.0 ADVANCED USER INTERACTION:
+------------------------------
+
+For special purposes it may be necessary to access installer pages that may not be visible during an installation. Below outlines the install
+
+2.1 C/C++ Compiler Configuration
+--------------------------------
+* Setting the property C_CONFIG_CHOOSE=1 via a command line installation will show the C/C++ compiler configuration page.
+
+3.0 END NOTE:
+-------------
+
+All those properties marked with an asterix '*' indicate that the property is only effective for EiffelStudio installations.
diff --git a/windows_deliv/install/CustomActions.wxs b/windows_deliv/install/CustomActions.wxs
new file mode 100644
index 0000000..08609db
--- /dev/null
+++ b/windows_deliv/install/CustomActions.wxs
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/Package.wxs b/windows_deliv/install/Package.wxs
new file mode 100644
index 0000000..4ee8328
--- /dev/null
+++ b/windows_deliv/install/Package.wxs
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Eiffel User
+ @@@@@]]>
+
+ 00000-00000-00000-00000-00000-00000
+
+ 91169-08119-81772-37111-92871-67979
+
+
+ 0
+
+
+
+
+
+
+
+
+ info@eiffel.com
+ http://support.eiffel.com
+ http://www.eiffel.com
+ app.ico
+ 1
+
+
+
+ Complete
+ Remove
+
+
+
+
+ 1
+ win64windows
+
+
+
+ 0
+
+ 0
+
+
+ 0
+
+ 0
+
+ http://dev.eiffel.com/Installing_Microsoft_C_compiler
+
+ mingwmsc
+
+ Unused
+
+ 0
+
+ 0
+
+ Unknown Reason
+
+ Unknown Reason
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Bin64.wxs b/windows_deliv/install/content/eiffelenvision/Bin64.wxs
new file mode 100644
index 0000000..86c7bbb
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Bin64.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Bin86.wxs b/windows_deliv/install/content/eiffelenvision/Bin86.wxs
new file mode 100644
index 0000000..a52b1d1
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Bin86.wxs
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Compiler.wxs b/windows_deliv/install/content/eiffelenvision/Compiler.wxs
new file mode 100644
index 0000000..38dfec6
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Compiler.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Compiler64.wxs b/windows_deliv/install/content/eiffelenvision/Compiler64.wxs
new file mode 100644
index 0000000..20f7030
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Compiler64.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Compiler86.wxs b/windows_deliv/install/content/eiffelenvision/Compiler86.wxs
new file mode 100644
index 0000000..a52b1d1
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Compiler86.wxs
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Documentation.wxs b/windows_deliv/install/content/eiffelenvision/Documentation.wxs
new file mode 100644
index 0000000..ec9ea30
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Documentation.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/EiffelEnvisionPackage.wxs b/windows_deliv/install/content/eiffelenvision/EiffelEnvisionPackage.wxs
new file mode 100644
index 0000000..18ee9be
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/EiffelEnvisionPackage.wxs
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+ "0"]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows_deliv/install/content/eiffelenvision/EiffelPackages.wxs b/windows_deliv/install/content/eiffelenvision/EiffelPackages.wxs
new file mode 100644
index 0000000..cef777f
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/EiffelPackages.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/EiffelProjectItems.wxs b/windows_deliv/install/content/eiffelenvision/EiffelProjectItems.wxs
new file mode 100644
index 0000000..340bc49
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/EiffelProjectItems.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/EiffelProjects.wxs b/windows_deliv/install/content/eiffelenvision/EiffelProjects.wxs
new file mode 100644
index 0000000..3f8d019
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/EiffelProjects.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Examples.wxs b/windows_deliv/install/content/eiffelenvision/Examples.wxs
new file mode 100644
index 0000000..1e899b5
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Examples.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Libraries.wxs b/windows_deliv/install/content/eiffelenvision/Libraries.wxs
new file mode 100644
index 0000000..9f0bb3a
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Libraries.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Libraries64.wxs b/windows_deliv/install/content/eiffelenvision/Libraries64.wxs
new file mode 100644
index 0000000..a52b1d1
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Libraries64.wxs
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Redist.wxs b/windows_deliv/install/content/eiffelenvision/Redist.wxs
new file mode 100644
index 0000000..969680b
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Redist.wxs
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/RegCompiler64.wxi b/windows_deliv/install/content/eiffelenvision/RegCompiler64.wxi
new file mode 100644
index 0000000..e5756aa
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/RegCompiler64.wxi
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/windows_deliv/install/content/eiffelenvision/RegCompiler86.wxi b/windows_deliv/install/content/eiffelenvision/RegCompiler86.wxi
new file mode 100644
index 0000000..e5756aa
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/RegCompiler86.wxi
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/windows_deliv/install/content/eiffelenvision/RegEiffelPackages.wxi b/windows_deliv/install/content/eiffelenvision/RegEiffelPackages.wxi
new file mode 100644
index 0000000..e5756aa
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/RegEiffelPackages.wxi
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/windows_deliv/install/content/eiffelenvision/Schema.wxs b/windows_deliv/install/content/eiffelenvision/Schema.wxs
new file mode 100644
index 0000000..6e4a967
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Schema.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Snippets.wxs b/windows_deliv/install/content/eiffelenvision/Snippets.wxs
new file mode 100644
index 0000000..b04491a
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Snippets.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelenvision/Specifications.wxs b/windows_deliv/install/content/eiffelenvision/Specifications.wxs
new file mode 100644
index 0000000..5ea4436
--- /dev/null
+++ b/windows_deliv/install/content/eiffelenvision/Specifications.wxs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/EiffelStudioPackage.wxs b/windows_deliv/install/content/eiffelstudio/EiffelStudioPackage.wxs
new file mode 100644
index 0000000..746d4a8
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/EiffelStudioPackage.wxs
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+ 1
+
+ en_US
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = "1"]]>
+ = "1"]]>
+
+
+ = "1"]]>
+ = "1"]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/makefile b/windows_deliv/install/content/eiffelstudio/makefile
new file mode 100644
index 0000000..420d326
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/makefile
@@ -0,0 +1,118 @@
+HALLOW = %INIT_DIR%\install\bin\hallow.exe
+HALLOW_FLAGS = -nologo -de:"\.svn$$" -x64 -c:"EiffelStudio"
+HALLOW_FLAGS_X86 = $(HALLOW_FLAGS) -c:"x86"
+HALLOW_FLAGS_X64 = $(HALLOW_FLAGS) -c:"x64"
+MSBUILD = C:\Windows\Microsoft.NET\Framework\v2.0.50727\msbuild.exe
+MSBUILD_FLAGS = /nologo /verbosity:quiet
+
+###################################################################
+#
+# Package targets
+#
+###################################################################
+
+all:: build
+
+###################################################################
+#
+# Build targets
+#
+###################################################################
+
+WXS = \
+ studio_gcc.wxs \
+ studio_core.wxs \
+ studio_examples.wxs \
+ studio_libraries.wxs \
+ studio_gobo.wxs \
+ studio_experimental.wxs \
+ studio_gobo_experimental.wxs \
+ studio_gdiplus.wxs \
+ studio_ent_ec.wxs \
+ studio_gpl_ec.wxs
+
+
+build: $(WXS)
+
+studio_gcc.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\gcc" -dr:"Dir.gcc" -g:"gcc" -r -n:"gcc." > $@.tmp
+ move $@.tmp $@
+
+studio_core.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio" -dr:"INSTALLDIR" \
+ -de:"\\EiffelStudio\\library$$" -de:"\\EiffelStudio\\examples$$" \
+ -de:"\\EiffelStudio\\compatible$$" -de:"\\EiffelStudio\\gcc$$" \
+ -de:"\\EiffelStudio\\experimental$$" \
+ -fe:"\\EiffelStudio\\studio\\spec\\w.*\\estudio.exe$$" \
+ -fe:"\\EiffelStudio\\esbuilder\\spec\\w.*\\esbuilder.exe$$" \
+ -g:"Core" -r -n:"Core." > $@.tmp
+ move $@.tmp $@
+
+studio_examples.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\examples" \
+ -dr:"Dir.Core.examples" -g:"Core.examples" -r -n:"Core.examples." > $@.tmp
+ move $@.tmp $@
+
+studio_libraries.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\library" \
+ -dr:"Dir.Core.library" -de:"\\EiffelStudio\\library\\gobo$$" \
+ -g:"Core.library" -r -n:"Core.library." > $@.tmp
+ move $@.tmp $@
+
+studio_gobo.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\library\gobo" \
+ -dr:"Dir.Core.library.gobo" -g:"Core.library.gobo" -r -n:"Core.library.gobo." > $@.tmp
+ move $@.tmp $@
+
+studio_experimental.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\experimental\library" -dr:"Dir.Core.experimental.library" -de:"\\EiffelStudio\\experimental\\library\\gobo$$" -g:"Core.experimental.library" -r -n:"Core.experimental." > $@.tmp
+ move $@.tmp $@
+
+studio_gobo_experimental.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\EiffelStudio\experimental\library\gobo" -dr:"Dir.Core.experimental.library.gobo" -g:"Core.experimental.library.gobo" -r -n:"Core.experimental.library.gobo." > $@.tmp
+ move $@.tmp $@
+
+studio_gdiplus.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\releases" \
+ -dr:"Dir.Core.studio.spec.$$(var.IsePlatform).bin" -g:"gdiplus" -n:"gdiplus" \
+ -fi:gdiplus.dll -de:"\*" > $@.tmp
+ move $@.tmp $@
+
+studio_ent_ec.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\releases\enterprise_version" \
+ -dr:"Dir.Core.studio.spec.$$(var.IsePlatform).bin" -g:"enterprise_ec" -n:"Core." > $@.tmp
+ move $@.tmp $@
+
+studio_gpl_ec.wxs:
+ $(HALLOW) $(HALLOW_FLAGS) "$(INSTALL_DIR)\releases\gpl_version" \
+ -dr:"Dir.Core.studio.spec.$$(var.IsePlatform).bin" -g:"gpl_ec" -n:"Core." > $@.tmp
+ move $@.tmp $@
+
+###################################################################
+#
+# MSIs
+#
+###################################################################
+
+enterprise_x86: $(WXS)
+ $(MSBUILD) $(MSBUILD_FLAGS) /p:Configuration=studio_ent_x86 /p:Platform=x86 ..\..\package.sln
+
+gpl_x86: $(WXS)
+ $(MSBUILD) $(MSBUILD_FLAGS) /p:Configuration=studio_gpl_x86 /p:Platform=x86 ..\..\package.sln
+
+enterprise_x64: $(WXS)
+ $(MSBUILD) $(MSBUILD_FLAGS) /p:Configuration=studio_ent_x64 /p:Platform=x64 ..\..\package.sln
+
+gpl_x64: $(WXS)
+ $(MSBUILD) $(MSBUILD_FLAGS) /p:Configuration=studio_gpl_x64 /p:Platform=x64 ..\..\package.sln
+
+
+###################################################################
+#
+# Clean builds
+#
+###################################################################
+
+clean:
+ for %i in ($(WXS)) do if exist %i del %i
+ if exist *.msi del *.msi
diff --git a/windows_deliv/install/content/eiffelstudio/studio_core.wxs b/windows_deliv/install/content/eiffelstudio/studio_core.wxs
new file mode 100644
index 0000000..7f74da1
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_core.wxs
@@ -0,0 +1,20400 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_ent_ec.wxs b/windows_deliv/install/content/eiffelstudio/studio_ent_ec.wxs
new file mode 100644
index 0000000..c2a73b4
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_ent_ec.wxs
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_examples.wxs b/windows_deliv/install/content/eiffelstudio/studio_examples.wxs
new file mode 100644
index 0000000..137ce6e
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_examples.wxs
@@ -0,0 +1,3543 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_experimental.wxs b/windows_deliv/install/content/eiffelstudio/studio_experimental.wxs
new file mode 100644
index 0000000..0637633
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_experimental.wxs
@@ -0,0 +1,8162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_gcc.wxs b/windows_deliv/install/content/eiffelstudio/studio_gcc.wxs
new file mode 100644
index 0000000..42ce3e8
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_gcc.wxs
@@ -0,0 +1,4663 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_gdiplus.wxs b/windows_deliv/install/content/eiffelstudio/studio_gdiplus.wxs
new file mode 100644
index 0000000..430f902
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_gdiplus.wxs
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_gobo.wxs b/windows_deliv/install/content/eiffelstudio/studio_gobo.wxs
new file mode 100644
index 0000000..0f8cd06
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_gobo.wxs
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_gobo_experimental.wxs b/windows_deliv/install/content/eiffelstudio/studio_gobo_experimental.wxs
new file mode 100644
index 0000000..a4b456b
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_gobo_experimental.wxs
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_gpl_ec.wxs b/windows_deliv/install/content/eiffelstudio/studio_gpl_ec.wxs
new file mode 100644
index 0000000..3bc5108
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_gpl_ec.wxs
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/content/eiffelstudio/studio_libraries.wxs b/windows_deliv/install/content/eiffelstudio/studio_libraries.wxs
new file mode 100644
index 0000000..b007533
--- /dev/null
+++ b/windows_deliv/install/content/eiffelstudio/studio_libraries.wxs
@@ -0,0 +1,8333 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/images/app.ico b/windows_deliv/install/images/app.ico
new file mode 100644
index 0000000..9b38dc4
Binary files /dev/null and b/windows_deliv/install/images/app.ico differ
diff --git a/windows_deliv/install/images/eiffelenvision/backdrop.bmp b/windows_deliv/install/images/eiffelenvision/backdrop.bmp
new file mode 100644
index 0000000..b60997f
Binary files /dev/null and b/windows_deliv/install/images/eiffelenvision/backdrop.bmp differ
diff --git a/windows_deliv/install/images/eiffelenvision/backdrop_error.bmp b/windows_deliv/install/images/eiffelenvision/backdrop_error.bmp
new file mode 100644
index 0000000..be3846c
Binary files /dev/null and b/windows_deliv/install/images/eiffelenvision/backdrop_error.bmp differ
diff --git a/windows_deliv/install/images/eiffelenvision/backdrop_info.bmp b/windows_deliv/install/images/eiffelenvision/backdrop_info.bmp
new file mode 100644
index 0000000..feae3eb
Binary files /dev/null and b/windows_deliv/install/images/eiffelenvision/backdrop_info.bmp differ
diff --git a/windows_deliv/install/images/eiffelenvision/backdrop_remove.bmp b/windows_deliv/install/images/eiffelenvision/backdrop_remove.bmp
new file mode 100644
index 0000000..8d77f21
Binary files /dev/null and b/windows_deliv/install/images/eiffelenvision/backdrop_remove.bmp differ
diff --git a/windows_deliv/install/images/eiffelenvision/backdrop_warning.bmp b/windows_deliv/install/images/eiffelenvision/backdrop_warning.bmp
new file mode 100644
index 0000000..79c5929
Binary files /dev/null and b/windows_deliv/install/images/eiffelenvision/backdrop_warning.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop.bmp b/windows_deliv/install/images/eiffelstudio/backdrop.bmp
new file mode 100644
index 0000000..0b0f22e
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop_c_compiler.bmp b/windows_deliv/install/images/eiffelstudio/backdrop_c_compiler.bmp
new file mode 100644
index 0000000..b6c0498
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop_c_compiler.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop_error.bmp b/windows_deliv/install/images/eiffelstudio/backdrop_error.bmp
new file mode 100644
index 0000000..3ec28fe
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop_error.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop_info.bmp b/windows_deliv/install/images/eiffelstudio/backdrop_info.bmp
new file mode 100644
index 0000000..ea1577a
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop_info.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop_remove.bmp b/windows_deliv/install/images/eiffelstudio/backdrop_remove.bmp
new file mode 100644
index 0000000..b5eea9c
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop_remove.bmp differ
diff --git a/windows_deliv/install/images/eiffelstudio/backdrop_warning.bmp b/windows_deliv/install/images/eiffelstudio/backdrop_warning.bmp
new file mode 100644
index 0000000..339a4ee
Binary files /dev/null and b/windows_deliv/install/images/eiffelstudio/backdrop_warning.bmp differ
diff --git a/windows_deliv/install/images/error.ico b/windows_deliv/install/images/error.ico
new file mode 100644
index 0000000..ed8330f
Binary files /dev/null and b/windows_deliv/install/images/error.ico differ
diff --git a/windows_deliv/install/images/folder.ico b/windows_deliv/install/images/folder.ico
new file mode 100644
index 0000000..f862ffb
Binary files /dev/null and b/windows_deliv/install/images/folder.ico differ
diff --git a/windows_deliv/install/images/icon.ico b/windows_deliv/install/images/icon.ico
new file mode 100644
index 0000000..5d9ffec
Binary files /dev/null and b/windows_deliv/install/images/icon.ico differ
diff --git a/windows_deliv/install/images/info.ico b/windows_deliv/install/images/info.ico
new file mode 100644
index 0000000..ed46f2c
Binary files /dev/null and b/windows_deliv/install/images/info.ico differ
diff --git a/windows_deliv/install/images/new.bmp b/windows_deliv/install/images/new.bmp
new file mode 100644
index 0000000..27881df
Binary files /dev/null and b/windows_deliv/install/images/new.bmp differ
diff --git a/windows_deliv/install/images/question.ico b/windows_deliv/install/images/question.ico
new file mode 100644
index 0000000..a4df4ba
Binary files /dev/null and b/windows_deliv/install/images/question.ico differ
diff --git a/windows_deliv/install/images/up.bmp b/windows_deliv/install/images/up.bmp
new file mode 100644
index 0000000..86f6b5a
Binary files /dev/null and b/windows_deliv/install/images/up.bmp differ
diff --git a/windows_deliv/install/images/warning.ico b/windows_deliv/install/images/warning.ico
new file mode 100644
index 0000000..c09dfdc
Binary files /dev/null and b/windows_deliv/install/images/warning.ico differ
diff --git a/windows_deliv/install/includes/Preprocessors.wxi b/windows_deliv/install/includes/Preprocessors.wxi
new file mode 100644
index 0000000..a758600
--- /dev/null
+++ b/windows_deliv/install/includes/Preprocessors.wxi
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/Configuration.wxs b/windows_deliv/install/interface/Configuration.wxs
new file mode 100644
index 0000000..a201fbe
--- /dev/null
+++ b/windows_deliv/install/interface/Configuration.wxs
@@ -0,0 +1,407 @@
+
+
+
+
+
+ < &Back
+ &Next >
+ &Finish
+ &Abort
+
+ OK
+ Cancel
+
+ Br&owse...
+ E&xit
+ &Ignore
+ &Install
+ &Remove
+ &Repair
+ &Reset
+ &Resume
+ &Retry
+ &Return
+ &Restart
+
+ &Yes
+ &No
+ &Agree
+ &Disagree
+ &Back
+ &View
+ &Close
+ &Download
+ &View How To...
+ &View Full Error...
+ &View Full Warning...
+ Chec&k for an Installed C Compiler
+
+
+
+
+ {&DlgFontBold8}
+ {&DlgFontBold8Red}
+ {&DlgFont8}
+ {&VerdanaBold13}
+ DlgFont8
+ PromptError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "0") AND NOT Installed]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "0") AND NOT Installed]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bytes
+ GB
+ KB
+ MB
+
+
+
+
+
+
+
+
+ Gathering required information...
+ This feature will remain uninstalled
+ This feature will be set to be installed when required
+ This feature will be installed to run from CD
+ This feature will be installed on the local hard drive
+ This feature will be installed to run from the network
+ This feature will become unavailable
+ Will be installed when required
+ This feature will be available to run from CD
+ This feature will be installed on your local hard drive
+ This feature will be available to run from the network
+ This feature will be uninstalled completely, you won't be able to run it from CD
+ This feature will change from run from CD state to set to be installed when required
+ This feature will remain to be run from CD
+ This feature will change from run from CD state to be installed on the local hard drive
+ This feature frees up [1] on your hard drive.
+ This feature requires [1] on your hard drive.
+ Compiling cost for this feature...
+ This feature will be completely removed
+ This feature will be removed from your local hard drive, but will be set to be installed when required
+ This feature will be removed from your local hard drive, but will be still available to run from CD
+ This feature will remain on you local hard drive
+ This feature will be removed from your local hard drive, but will be still available to run from the network
+ This feature will be uninstalled completely, you won't be able to run it from the network
+ This feature will change from run from network state to set to be installed when required
+ This feature will change from run from network state to be installed on the local hard drive
+ This feature will remain to be run from the network
+ This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive.
+ This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive.
+ This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive.
+ This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive.
+ Time remaining: {[1] minutes }{[2] seconds}
+ Available
+ Difference
+ Required
+ Disk Size
+ Volume
+
+ Installing
+ installed
+ installation
+ Installation
+
+
+
+ Computing space requirements
+ Computing space requirements
+ Computing space requirements
+ Validating install
+ Copying new files
+ Copying network install files
+ Creating shortcuts
+ Publishing Qualified Components
+ Publishing Product Features
+ Publishing product information
+ Registering Class servers
+ Registering extension servers
+ Registering MIME info
+ Registering program identifiers
+ Allocating registry space
+ Searching for installed applications
+ Binding executables
+ Searching for qualifying products
+ Creating folders
+ Deleting services
+ Creating duplicate files
+ Searching for related applications
+ Installing ODBC components
+ Installing new services
+ Evaluating launch conditions
+ Migrating feature states from related applications
+ Moving files
+ Patching files
+ Updating component registration
+ Registering COM+ Applications and Components
+ Registering fonts
+ Registering product
+ Registering type libraries
+ Registering user
+ Removing duplicated files
+ Updating environment strings
+ Removing applications
+ Removing files
+ Removing folders
+ Removing INI files entries
+ Removing ODBC components
+ Removing system registry values
+ Removing shortcuts
+ Searching for qualifying products
+ Registering modules
+ Unregistering modules
+ Initializing ODBC directories
+ Starting services
+ Stopping services
+ Unpublishing Qualified Components
+ Unpublishing Product Features
+ Unregister Class servers
+ Unregistering COM+ Applications and Components
+ Unregistering extension servers
+ Unregistering fonts
+ Unregistering MIME info
+ Unregistering program identifiers
+ Unregistering type libraries
+ Updating environment strings
+ Writing INI files values
+ Writing system registry values
+ Advertising application
+ Generating script operations for action:
+ Installing system catalog
+ Publishing assembly information
+ Unpublishing assembly information
+ Rolling back action:
+ Removing backup files
+ Removing moved files
+ Unpublishing product information
+
+ {{Fatal error: }}
+ {{Error [1]. }}
+ Warning [1].
+
+ Info [1].
+ The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}
+
+ {{Disk full: }}
+ Action [Time]: [1]. [2]
+ [ProductName]
+ {[2]}{, [3]}{, [4]}
+ Message type: [1], Argument: [2]
+ === Logging started: [Date] [Time] ===
+ === Logging stopped: [Date] [Time] ===
+ Action start [Time]: [1].
+ Action ended [Time]: [1]. Return value [2].
+ Time remaining: {[1] minutes }{[2] seconds}
+ Out of memory. Shut down other applications before retrying.
+ Installer is no longer responding.
+ Installer stopped prematurely.
+ Please wait while Windows configures [ProductName]
+ Gathering required information...
+ Removing older versions of this application...
+ Preparing to remove older versions of this application...
+ {[ProductName]}Setup completed successfully.
+ {[ProductName]}Setup failed.
+ Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it.
+ Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location.
+ Please insert the disk: [2]
+ The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator.
+ Error writing to file: [2]. Verify that you have access to that directory.
+ Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it.
+ Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry.
+ There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit.
+ Source file not found: [2]. Verify that the file exists and that you can access it.
+ Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it.
+ Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory.
+ Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it.
+ Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit.
+ The volume [2] is currently unavailable. Please select another.
+ The specified path '[2]' is unavailable.
+ Unable to write to the specified folder: [2].
+ A network error occurred while attempting to read from the file: [2]
+ An error occurred while attempting to create the directory: [2]
+ A network error occurred while attempting to create the directory: [2]
+ A network error occurred while attempting to open the source file cabinet: [2]
+ The specified path is too long: [2]
+ The Installer has insufficient privileges to modify this file: [2].
+ A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system.
+ The folder path '[2]' contains words that are not valid in folder paths.
+ The folder path '[2]' contains an invalid character.
+ '[2]' is not a valid short file name.
+ Error getting file security: [3] GetLastError: [2]
+ Invalid Drive: [2]
+ Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}}
+ A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt.
+ A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}}
+ Failed to correctly copy [2] file: CRC error.
+ Failed to correctly move [2] file: CRC error.
+ Failed to correctly patch [2] file: CRC error.
+ The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.
+ The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.
+ There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}}
+ Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel.
+ Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application.
+ Another installation is in progress. You must complete that installation before continuing this one.
+ Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again.
+ User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue.
+ User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product.
+ Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry.
+ Are you sure you want to cancel?
+ The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry.
+ The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible.
+ There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation.
+ Could not access network location [2].
+ The following applications should be closed before continuing the install:
+ Could not find any previously installed compliant products on the machine for installing this product.
+ An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}}
+ The key [2] is not valid. Verify that you entered the correct key.
+ The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later.
+ You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later.
+ An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes?
+ A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes?
+ An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'.
+ Installation completed successfully.
+ Installation failed.
+ Product: [2] -- [3]
+ You may either restore your computer to its previous state or continue the install later. Would you like to restore?
+ An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install.
+ One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible.
+ [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}}
+ The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}}
+ Installed [2]
+ Configured [2]
+ Removed [2]
+ File [2] was rejected by digital signature policy.
+ The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance.
+ There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }}
+ There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }}
+ There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }}
+ There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }}
+ Removal completed successfully.
+ Removal failed.
+ Advertisement completed successfully.
+ Advertisement failed.
+ Configuration completed successfully.
+ Configuration failed.
+ You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance.
+ The path [2] is not valid. Please specify a valid path.
+ Out of memory. Shut down other applications before retrying.
+ There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume.
+ There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume.
+ The folder [2] does not exist. Please enter a path to an existing folder.
+ You have insufficient privileges to read this folder.
+ A valid destination folder for the install could not be determined.
+ Error attempting to read from the source install database: [2].
+ Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation.
+ Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation.
+ Module [2] failed to register. HRESULT [3]. Contact your support personnel.
+ Module [2] failed to unregister. HRESULT [3]. Contact your support personnel.
+ Failed to cache package [2]. Error: [3]. Contact your support personnel.
+ Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font.
+ Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts.
+ Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it.
+ Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it.
+ Could not register type library for file [2]. Contact your support personnel.
+ Could not unregister type library for file [2]. Contact your support personnel.
+ Could not update the ini file [2][3]. Verify that the file exists and that you can access it.
+ Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3].
+ Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel.
+ Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel.
+ Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers.
+ Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it.
+ Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it.
+ Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services.
+ Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services.
+ Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services.
+ Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services.
+ Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables.
+ You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation.
+ Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file.
+ Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000.
+ Error registering COM+ Application. Contact your support personnel for more information.
+ Error unregistering COM+ Application. Contact your support personnel for more information.
+ The description for service '[2]' ([3]) could not be changed.
+ The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}}
+ The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}}
+ The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}}
+ User installations are disabled via policy on the machine.
+ An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}}
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogExitSuccess.wxs b/windows_deliv/install/interface/DialogExitSuccess.wxs
new file mode 100644
index 0000000..4db1693
--- /dev/null
+++ b/windows_deliv/install/interface/DialogExitSuccess.wxs
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogFatalError.wxs b/windows_deliv/install/interface/DialogFatalError.wxs
new file mode 100644
index 0000000..2e03f88
--- /dev/null
+++ b/windows_deliv/install/interface/DialogFatalError.wxs
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogFilesInUse.wxs b/windows_deliv/install/interface/DialogFilesInUse.wxs
new file mode 100644
index 0000000..e19f895
--- /dev/null
+++ b/windows_deliv/install/interface/DialogFilesInUse.wxs
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogMaintenanceWelcome.wxs b/windows_deliv/install/interface/DialogMaintenanceWelcome.wxs
new file mode 100644
index 0000000..49d7b33
--- /dev/null
+++ b/windows_deliv/install/interface/DialogMaintenanceWelcome.wxs
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogProgress.wxs b/windows_deliv/install/interface/DialogProgress.wxs
new file mode 100644
index 0000000..22a17eb
--- /dev/null
+++ b/windows_deliv/install/interface/DialogProgress.wxs
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogRegister.wxs b/windows_deliv/install/interface/DialogRegister.wxs
new file mode 100644
index 0000000..f64f794
--- /dev/null
+++ b/windows_deliv/install/interface/DialogRegister.wxs
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogSelectFolder.wxs b/windows_deliv/install/interface/DialogSelectFolder.wxs
new file mode 100644
index 0000000..f6e0248
--- /dev/null
+++ b/windows_deliv/install/interface/DialogSelectFolder.wxs
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogUserExit.wxs b/windows_deliv/install/interface/DialogUserExit.wxs
new file mode 100644
index 0000000..6570ef6
--- /dev/null
+++ b/windows_deliv/install/interface/DialogUserExit.wxs
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogVerifyReadyInstall.wxs b/windows_deliv/install/interface/DialogVerifyReadyInstall.wxs
new file mode 100644
index 0000000..a68baa1
--- /dev/null
+++ b/windows_deliv/install/interface/DialogVerifyReadyInstall.wxs
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogVerifyReadyMaintain.wxs b/windows_deliv/install/interface/DialogVerifyReadyMaintain.wxs
new file mode 100644
index 0000000..eeccb53
--- /dev/null
+++ b/windows_deliv/install/interface/DialogVerifyReadyMaintain.wxs
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogViewLicenseAgreement.wxs b/windows_deliv/install/interface/DialogViewLicenseAgreement.wxs
new file mode 100644
index 0000000..99f907f
--- /dev/null
+++ b/windows_deliv/install/interface/DialogViewLicenseAgreement.wxs
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/DialogWelcome.wxs b/windows_deliv/install/interface/DialogWelcome.wxs
new file mode 100644
index 0000000..b749585
--- /dev/null
+++ b/windows_deliv/install/interface/DialogWelcome.wxs
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptBrowse.wxs b/windows_deliv/install/interface/PromptBrowse.wxs
new file mode 100644
index 0000000..9cceb97
--- /dev/null
+++ b/windows_deliv/install/interface/PromptBrowse.wxs
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows_deliv/install/interface/PromptCancelInstall.wxs b/windows_deliv/install/interface/PromptCancelInstall.wxs
new file mode 100644
index 0000000..82e7323
--- /dev/null
+++ b/windows_deliv/install/interface/PromptCancelInstall.wxs
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptCancelLicense.wxs b/windows_deliv/install/interface/PromptCancelLicense.wxs
new file mode 100644
index 0000000..dd4bb5a
--- /dev/null
+++ b/windows_deliv/install/interface/PromptCancelLicense.wxs
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptError.wxs b/windows_deliv/install/interface/PromptError.wxs
new file mode 100644
index 0000000..9365289
--- /dev/null
+++ b/windows_deliv/install/interface/PromptError.wxs
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptInvalidCdKey.wxs b/windows_deliv/install/interface/PromptInvalidCdKey.wxs
new file mode 100644
index 0000000..9dd6f26
--- /dev/null
+++ b/windows_deliv/install/interface/PromptInvalidCdKey.wxs
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptOutOfDiskSpace.wxs b/windows_deliv/install/interface/PromptOutOfDiskSpace.wxs
new file mode 100644
index 0000000..35fc3cf
--- /dev/null
+++ b/windows_deliv/install/interface/PromptOutOfDiskSpace.wxs
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/PromptOutOfRollbackDiskSpace.wxs b/windows_deliv/install/interface/PromptOutOfRollbackDiskSpace.wxs
new file mode 100644
index 0000000..e6b8656
--- /dev/null
+++ b/windows_deliv/install/interface/PromptOutOfRollbackDiskSpace.wxs
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/eiffelstudio/DialogMissingNetFx.wxs b/windows_deliv/install/interface/eiffelstudio/DialogMissingNetFx.wxs
new file mode 100644
index 0000000..2d14cff
--- /dev/null
+++ b/windows_deliv/install/interface/eiffelstudio/DialogMissingNetFx.wxs
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/eiffelstudio/DialogSelectCCompiler.wxs b/windows_deliv/install/interface/eiffelstudio/DialogSelectCCompiler.wxs
new file mode 100644
index 0000000..b3dc5d1
--- /dev/null
+++ b/windows_deliv/install/interface/eiffelstudio/DialogSelectCCompiler.wxs
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/interface/eiffelstudio/DialogSelectLanguage.wxs b/windows_deliv/install/interface/eiffelstudio/DialogSelectLanguage.wxs
new file mode 100644
index 0000000..104265e
--- /dev/null
+++ b/windows_deliv/install/interface/eiffelstudio/DialogSelectLanguage.wxs
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/licenses/eiffelenvision/enterprise.rtf b/windows_deliv/install/licenses/eiffelenvision/enterprise.rtf
new file mode 100644
index 0000000..8db5709
--- /dev/null
+++ b/windows_deliv/install/licenses/eiffelenvision/enterprise.rtf
@@ -0,0 +1,3 @@
+{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
+{\*\generator Msftedit 5.41.21.2500;}\viewkind4\uc1\pard\lang1033\f0\fs20 Your License goes here.\lang1031\par
+}
\ No newline at end of file
diff --git a/windows_deliv/install/licenses/eiffelenvision/free.rtf b/windows_deliv/install/licenses/eiffelenvision/free.rtf
new file mode 100644
index 0000000..8db5709
--- /dev/null
+++ b/windows_deliv/install/licenses/eiffelenvision/free.rtf
@@ -0,0 +1,3 @@
+{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
+{\*\generator Msftedit 5.41.21.2500;}\viewkind4\uc1\pard\lang1033\f0\fs20 Your License goes here.\lang1031\par
+}
\ No newline at end of file
diff --git a/windows_deliv/install/licenses/eiffelstudio/enterprise.rtf b/windows_deliv/install/licenses/eiffelstudio/enterprise.rtf
new file mode 100644
index 0000000..0995765
--- /dev/null
+++ b/windows_deliv/install/licenses/eiffelstudio/enterprise.rtf
@@ -0,0 +1,53 @@
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Trebuchet MS;}}
+{\stylesheet{ Normal;}{\s1 heading 1;}}
+{\*\generator Msftedit 5.41.21.2500;}\viewkind4\uc1\pard\qc\kerning28\b\f0\fs20 End User License Agreement\par
+\i\fs18 EiffelStudio Integrated Development Environment, Enterprise Edition\par
+\pard\kerning0\b0\i0\fs16\par
+Carefully read all of the terms and conditions of this agreement prior to opening or downloading the software package, or starting its installation procedure. Opening or downloading the software package, or starting its installation procedure, indicates your acceptance of these terms and conditions. This software agreement governs your use of EiffelStudio Integrated Development Environment, Enterprise Edition (hereinafter referred to as EiffelStudio) from Interactive Software Engineering, Inc., a California Corporation with offices in Goleta, California 93117, doing business as Eiffel Software (hereinafter Eiffel Software). By using the enclosed EiffelStudio software package, you agree to the following terms and conditions; \par
+\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 1.\tab GRANT OF LICENSE \par
+\pard\kerning0\b0\fs16 Eiffel Software grants to you a nonexclusive, nontransferable temporary license to use EiffelStudio solely on the number of computer system(s) designated on your purchase order or invoice.\par
+\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 2.\tab PERMITTED USES \par
+\pard\fi-360\li720\tx720\kerning0\b0\fs16 a.\tab You may use the EiffelStudio software solely on the number of computer system(s) for which it is purchased. In addition, if the license is for a company of which you are an employee, you may use the EiffelStudio software on one personal (home or laptop) computer for each designated company computer system, provided that personal computer is used by the same user as the company computer, and not concurrently with it.\par
+\pard\fi-360\li720 b.\tab You shall not make or distribute copies of the EiffelStudio software, or electronically transfer the EiffelStudio software from one computer to another or over a network. \par
+c.\tab You may not alter, merge, modify, adapt or translate the EiffelStudio software, or decompile, reverse engineer, disassemble, or otherwise reduce the EiffelStudio software to a human-perceivable form. \par
+d.\tab You shall not sell, rent, lease, or sublicense the EiffelStudio software. \par
+e.\tab You shall not modify the EiffelStudio software or create derivative works based upon the EiffelStudio software. \par
+\pard\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 3.\tab PROPERTY RIGHTS \par
+\pard\fi-360\li720\tx720\kerning0\b0\fs16 a.\tab EiffelStudio is copyrighted by Eiffel Software and proprietary to Eiffel Software, and Eiffel Software remains title and ownership of EiffelStudio, and all copies of EiffelStudio, including the copy of EiffelStudio recorded on delivery media. \par
+\pard\fi-360\li720 b.\tab This is not a sale of EiffelStudio or any copy. You agree to take all reasonable steps to protect EiffelStudio against unauthorized use or copy. You agree not to make copies of EiffelStudio or EiffelStudio documentation or part thereof other, except possibly as required by backup procedures compatible with industry standards and the enforcement of Eiffel Software's proprietary rights. You must reproduce and include any copyrights, trademark notices and the legends on the backup copy. You must maintain an accurate record of the location of the backup copy at all times.\par
+\pard\par
+\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 4.\tab LIMITED WARRANTY \par
+\pard\kerning0\b0\fs16 The EiffelStudio software and user manuals are provided "as is" without warranty of any kind, either express or implied, including, but not limited to the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the EiffelStudio software and user manuals is with you. \par
+\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 5.\tab EXPORT\par
+\pard\fi-360\li720\tx720\kerning0\b0\fs16 a.\tab You shall not, without the prior written consent of Eiffel Software, transmit EiffelStudio directly or indirectly to any company inside or outside the United States. \par
+\pard\fi-360\li720 b.\tab You hereby warrant to Eiffel Software that you have no intention to and will not, without prior written consent, if required, of the Office of Export Administration of the United States Department of Commerce, Washington, D.C. 20230 transmit directly or indirectly (i) EiffelStudio, or (ii) any immediate product (including services produced directly by use of EiffelStudio) to countries as prohibited by the U.S. Federal government. \par
+\pard\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 6.\tab TERM \par
+\pard\fi-360\li720\tx720\kerning0\b0\fs16 a.\tab The license is effective until terminated. You may terminate the license at any time by destroying the software and its documentation with all copies or modifications in any form. \par
+\pard\fi-360\li720 b.\tab Upon providing you with thirty (30) days written notice, Eiffel Software may terminate all rights provided under this agreement upon your failure to fulfill any one or more of the terms, conditions and/or obligations imposed by this agreement. Said notice to you shall breach this agreement and you shall have a one (1) month period in which to cure any breach to the satisfaction of Eiffel Software. In the event the breach is not cured by you, you shall deliver to Eiffel Software all software and materials provided under this agreement, shall make all licensed software that may be stored in any storage unusable, and shall certify to Eiffel Software in writing that the same has been completed within that thirty (30) days period. Eiffel Software shall have no obligation to refund any monies paid under this agreement. \par
+\pard\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 7.\tab NO OTHER RIGHTS \par
+\pard\kerning0\b0\fs16 Eiffel Software warrants solely that it grants the rights as provided herein. No license or right relevant to any patent or trademark is herein to be construed as conferred upon you by Eiffel Software by implication or estoppels or any other basis. This is regardless as to whether the rights granted hereunder utilize invention within existing patent to be issued subsequent to the date of this agreement. \par
+\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 8.\tab MISCELLANEOUS PROVISIONS \par
+\pard\fi-360\li720\tx720\kerning0\b0\fs16 a.\tab All correspondence shall be directed to Eiffel Software at the following address: \par
+\pard\par
+\pard\tx1440\tab Customer Service Department\par
+\tab Eiffel Software\par
+\tab 5949 Hollister Avenue, Goleta, CA 93117 USA\par
+\tab tel. (805) 685-1006, fax. (805) 685-6869\par
+\tab or through the world-wide Web at http://support.eiffel.com\fs12\par
+\pard\fs16\par
+\pard\fi-360\li720\tx720 b.\tab This agreement shall succeed any previous agreement relevant to the subject between the parties and shall be controlling. \par
+\pard\fi-360\li720 c.\tab The terms and conditions of this agreement shall be interpreted and enforced according to the laws of the State of California and shall be subject to the appropriate jurisdiction in and of the county of Santa Barbara, California, U.S.A. \par
+\pard\par
+\pard\keepn\s1\sb240\sa60\tx360\kerning32\b\fs20 9.\tab ACKNOWLEDGEMENT \par
+\pard\kerning0\b0\fs16 By opening the software diskette, CD or tape package, or downloading the software package or starting the installation procedure, you acknowledge that you have read this agreement, understand it, and agree to be bound by its terms and conditions. You also agree that this agreement is the complete and exclusive statement of agreement between the parties and supersedes all proposals of prior agreements, oral or written, and any other communication between the parties relating to the subject matter of this agreement.\par
+\par
+}
+
diff --git a/windows_deliv/install/licenses/eiffelstudio/gpl.rtf b/windows_deliv/install/licenses/eiffelstudio/gpl.rtf
new file mode 100644
index 0000000..a6de257
Binary files /dev/null and b/windows_deliv/install/licenses/eiffelstudio/gpl.rtf differ
diff --git a/windows_deliv/install/licenses/eiffelstudio/university.rtf b/windows_deliv/install/licenses/eiffelstudio/university.rtf
new file mode 100644
index 0000000..0ca641e
Binary files /dev/null and b/windows_deliv/install/licenses/eiffelstudio/university.rtf differ
diff --git a/windows_deliv/install/package.sln b/windows_deliv/install/package.sln
new file mode 100644
index 0000000..da73c46
--- /dev/null
+++ b/windows_deliv/install/package.sln
@@ -0,0 +1,37 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "package", "package.wixproj", "{01A951F7-BA79-4006-8629-27FFCB510FF0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ envision_x64|Any CPU = envision_x64|Any CPU
+ envision_x86|Any CPU = envision_x86|Any CPU
+ Release|Any CPU = Release|Any CPU
+ studio_ent_x64|x64 = studio_ent_x64|x64
+ studio_ent_x86|x86 = studio_ent_x86|x86
+ studio_gpl_x64|x64 = studio_gpl_x64|x64
+ studio_gpl_x86|x86 = studio_gpl_x86|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.Debug|Any CPU.ActiveCfg = studio_ent_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.Debug|Any CPU.Build.0 = studio_ent_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.envision_x64|Any CPU.ActiveCfg = envision_x64|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.envision_x64|Any CPU.Build.0 = envision_x64|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.envision_x86|Any CPU.ActiveCfg = envision_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.envision_x86|Any CPU.Build.0 = envision_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.Release|Any CPU.ActiveCfg = studio_ent_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.Release|Any CPU.Build.0 = studio_ent_x86|Any CPU
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_ent_x64|x64.ActiveCfg = studio_ent_x64|x64
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_ent_x64|x64.Build.0 = studio_ent_x64|x64
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_ent_x86|x86.ActiveCfg = studio_ent_x86|x86
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_ent_x86|x86.Build.0 = studio_ent_x86|x86
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_gpl_x64|x64.ActiveCfg = studio_gpl_x64|x64
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_gpl_x64|x64.Build.0 = studio_gpl_x64|x64
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_gpl_x86|x86.ActiveCfg = studio_gpl_x86|x86
+ {01A951F7-BA79-4006-8629-27FFCB510FF0}.studio_gpl_x86|x86.Build.0 = studio_gpl_x86|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/windows_deliv/install/package.wixproj b/windows_deliv/install/package.wixproj
new file mode 100644
index 0000000..01f009e
--- /dev/null
+++ b/windows_deliv/install/package.wixproj
@@ -0,0 +1,232 @@
+
+
+ studio_ent_x86
+ 3.0
+ 2.0
+ package
+ Package
+ C:\Program Files (x86)\Windows Installer XML v3\bin\
+ package
+ {01a951f7-ba79-4006-8629-27ffcb510ff0}
+
+
+ bin\envision_x64\
+ obj\envision_x64\
+ x64;EiffelEnvision;IsePlatform=win64
+
+
+ True
+ True
+ False
+
+
+ False
+ True
+ False
+
+
+ -1
+
+
+ False
+ True
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ False
+ False
+ False
+ False
+
+
+ False
+ False
+ True
+
+
+
+
+ bin\envision_x86\
+ obj\envision_x86\
+ x86;EiffelEnvision;IsePlatform=windows
+
+
+ True
+ True
+ False
+
+
+ False
+ True
+ False
+
+
+ -1
+
+
+ False
+ True
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ False
+ False
+ False
+ False
+
+
+ False
+ False
+ True
+
+
+
+
+ bin\studio_gpl_x64\
+ bin\studio_gpl_x64\
+ x64;EiffelStudio;IsePlatform=win64
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ -reusecab -cc bin\studio_gpl_x64\cabs
+
+
+ bin\studio_gpl_x86\
+ bin\studio_gpl_x86\
+ x86;EiffelStudio;IsePlatform=windows
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ -reusecab -cc bin\studio_gpl_x86\cabs
+
+
+ bin\studio_ent_x64\
+ bin\studio_ent_x64\
+ x64;EiffelStudio;Enterprise;IsePlatform=win64
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+
+
+ bin\studio_ent_x86\
+ bin\studio_ent_x86\
+ x86;EiffelStudio;Enterprise;IsePlatform=windows
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/redist/Redist.wxs b/windows_deliv/install/redist/Redist.wxs
new file mode 100644
index 0000000..deb52e7
--- /dev/null
+++ b/windows_deliv/install/redist/Redist.wxs
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/install/redist/redist.wixproj b/windows_deliv/install/redist/redist.wixproj
new file mode 100644
index 0000000..d888719
--- /dev/null
+++ b/windows_deliv/install/redist/redist.wixproj
@@ -0,0 +1,82 @@
+
+
+ x64
+ 3.0
+ {6dff62cf-b00e-41cd-85bc-11a80b49e2da}
+ 2.0
+ Do Not Rename
+ Module
+ C:\Program Files (x86)\Windows Installer XML v3\bin\
+
+
+ Redist64
+ obj\x64\
+ x64;EiffelEnvision;Source=c:\test_environment
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ bin\studio_gpl_64\
+
+
+ Redist
+ obj\x86\
+ Debug;x86;EiffelEnvision;Source=c:\test_environment
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ bin\studio_gpl_x86\
+
+
+ Redist64
+ obj\x64\
+ x64;EiffelEnvision;Source=c:\test_environment
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ bin\studio_ent_x64\
+
+
+ Redist
+ obj\x86\
+ Debug;x86;EiffelEnvision;Source=c:\test_environment
+
+
+ False
+ False
+ False
+
+
+ False
+ False
+ bin\studio_ent_x86\
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows_deliv/make_assembly_manager.btm b/windows_deliv/make_assembly_manager.btm
new file mode 100644
index 0000000..183aa45
--- /dev/null
+++ b/windows_deliv/make_assembly_manager.btm
@@ -0,0 +1,3 @@
+remtrace Do not know how to generate the assembly manager :(
+quick_move wizards\dotnet\*.*
+
diff --git a/windows_deliv/make_build.btm b/windows_deliv/make_build.btm
new file mode 100644
index 0000000..7af2c67
--- /dev/null
+++ b/windows_deliv/make_build.btm
@@ -0,0 +1,16 @@
+remtrace Compiling EiffelBuild
+REM Should be called by `make_exes.btm'
+cdd %EIFFEL_SRC
+cdd %EIFFEL_SRC\build\Constants
+set_version %EIFFEL_SRC 0000 gb_about_dialog_constants.e
+
+cdd %EIFFEL_SRC/build
+clean_project
+finalize esbuilder.ecf
+cleanup_eiffel esbuilder esbuilder.exe
+iff not exist esbuilder.exe then
+ remtrace Could not finalize a new EiffelBuild
+ CANCEL
+else
+ move esbuilder.exe %STUDIO_DIR\esbuilder\spec\%ISE_PLATFORM\bin\
+endiff
diff --git a/windows_deliv/make_com_wizard.btm b/windows_deliv/make_com_wizard.btm
new file mode 100644
index 0000000..bc3794a
--- /dev/null
+++ b/windows_deliv/make_com_wizard.btm
@@ -0,0 +1,26 @@
+mkdir %STUDIO_DIR\wizards\com\resources
+safe_copy %EIFFEL_SRC\tools\com_wizard\root\resources\*.* %STUDIO_DIR\wizards\com\resources
+
+remtrace Compile the COM wizard
+cdd %EIFFEL_SRC\tools\com_wizard\root
+set_version %EIFFEL_SRC 0000 argument_parser.e
+
+clean_project
+finalize com_wizard.ecf
+cleanup_eiffel com_wizard com_wizard.exe
+iff not exist com_wizard.exe then
+ echo "Couldnt generate the COM wizard"
+ CANCEL
+endiff
+move com_wizard.exe %STUDIO_DIR\wizards\com
+clean_project
+
+remtrace Compile COM wizard launcher for GUI mode.
+cdd %EIFFEL_SRC\tools\com_wizard\launcher
+finalize com_wizard_launcher.ecf
+cleanup_eiffel com_wizard_launcher com_wizard_launcher.exe
+iff not exist com_wizard_launcher.exe then
+ echo "Couldnt compile com_wizard_launcher.exe"
+ CANCEL
+endiff
+move com_wizard_launcher.exe %STUDIO_DIR\wizards\com
diff --git a/windows_deliv/make_delivery.btm b/windows_deliv/make_delivery.btm
new file mode 100644
index 0000000..ec6e9f2
--- /dev/null
+++ b/windows_deliv/make_delivery.btm
@@ -0,0 +1,397 @@
+@echo off
+setlocal
+
+REM Save previous environment
+REM FIXME: is it still needed with use of setlocal?
+set OLD_PATH=%PATH
+set OLD_EIFFEL_SRC=%EIFFEL_SRC
+set OLD_ISE_LIBRARY=%ISE_LIBRARY
+set OLD_ISE_SRC=%ISE_SRC
+set TMP_ISE_EIFFEL=%ISE_EIFFEL
+
+call %~dp0init.btm
+
+REM Create parent dir of %INSTALL_LOG if it does not exist.
+set_parent_dir_of PDIR %INSTALL_LOG%
+iff not isdir %PDIR then
+ md /S %PDIR
+ remtrace Create directory %PDIR
+endiff
+set_parent_dir_of PDIR %ERROR_LOG%
+iff not isdir %PDIR then
+ md /S %PDIR
+ remtrace Create directory %PDIR
+endiff
+iff not isdir %TMP_EIFFEL_SRC% then
+ md /S %TMP_EIFFEL_SRC%
+ remtrace Create directory %TMP_EIFFEL_SRC%
+endiff
+
+remtrace Set up the environment
+on break goto broken
+TIMER ON /1 >> NUL
+TIMER ON /2 >> NUL
+iff %@INDEX[%@LOWER[%$],h] ge 0 then
+ echo Installation for ISE Eiffel .
+ echo Parameters are
+ echo - no_compile: to discard any compilation
+ echo - no_new_ec: to avoid compiling a new version of EiffelStudio
+ echo - enterprise: to build only the enterprise version of EiffelStudio
+ echo - no_wizards: to discard wizards building
+ echo - no_install: to generare only the delivery (but not the installation executable)
+ echo (or nothing to fully regenerate the installation).
+ CANCEL
+endiff
+iff %@INDEX[%@LOWER[%$],no_compil] ge 0 then
+ set NO_COMPILE="True"
+else
+ unset /Q NO_COMPILE
+endiff
+iff %@INDEX[%@LOWER[%$],no_install] ge 0 then
+ set NO_INSTALL="True"
+else
+ unset /Q NO_INSTALL
+endiff
+iff %@INDEX[%@LOWER[%$],no_new_ec] ge 0 then
+ set NO_NEW_EC="True"
+else
+ unset /Q NO_NEW_EC
+endiff
+iff %@INDEX[%@LOWER[%$],enterprise] ge 0 then
+ set BUILD_ENTERPRISE_ONLY="True"
+else
+ unset /Q BUILD_ENTERPRISE_ONLY
+endiff
+iff %@INDEX[%@LOWER[%$],no_wizard] ge 0 then
+ set NO_WIZARDS="True"
+else
+ unset /Q NO_WIZARDS
+endiff
+
+cdd %INIT_DIR
+
+REM This is not a comment, it should create a 0-sized log file.
+REM > %INSTALL_LOG%
+REM > %ERROR_LOG%
+
+remtrace Approximative starting time:
+remtrace %_TIME
+
+call check_environment.btm
+call inc\display_environment.btm
+call inc\get_environment_confirmation.btm
+if %ERRORLEVEL% == 0 CANCEL
+
+remtrace --------------------------------
+remtrace Installation parameters are:
+remtrace - ISE_EIFFEL=%ISE_EIFFEL%
+remtrace - ISE_PLATFORM=%ISE_PLATFORM%
+remtrace - ISE_C_COMPILER=%ISE_C_COMPILER%
+remtrace - ISE_C_COMPILER_VER=%ISE_C_COMPILER_VER%
+remtrace - INSTALL_DIR=%INSTALL_DIR%
+remtrace - STUDIO_DIR=%STUDIO_DIR%
+remtrace --------------------------------
+
+cdd %INIT_DIR
+
+give_time_to warm up
+remtrace Retrieve and organize the delivery
+remtrace Remove %INSTALL_DIR
+if isdir %INSTALL_DIR nolog_fullrd %INSTALL_DIR >>& %INSTALL_LOG
+if exist %INSTALL_DIR nolog_fullrf %INSTALL_DIR >>& %INSTALL_LOG
+iff exist %INSTALL_DIR then
+ echo Cannot delete %INSTALL_DIR!
+ CANCEL
+endiff
+md %INSTALL_DIR
+md %STUDIO_DIR
+cdd %STUDIO_DIR
+remtrace studio
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/studio studio
+fullrd studio\help\defaults\unix
+fullrd studio\spec\unix
+cdd %STUDIO_DIR\studio\spec
+move windows\compile_library.bat %ISE_PLATFORM\bin\
+move windows\mkdir.bat %ISE_PLATFORM\bin\
+iff "windows"=="%ISE_PLATFORM" then
+ fullrd win64
+else
+ fullrd windows
+endiff
+cdd %STUDIO_DIR\studio\config
+if not "windows"=="%ISE_PLATFORM" ren windows %ISE_PLATFORM
+cdd %STUDIO_DIR\studio\config\%ISE_PLATFORM%\
+xcopy msc msc_vc140 /E /I
+
+safe_md %STUDIO_DIR\tools
+cdd %STUDIO_DIR\tools
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/iron/delivery/iron iron
+cdd %STUDIO_DIR\tools\iron\spec
+if not "windows"=="%ISE_PLATFORM" ren windows %ISE_PLATFORM
+fullrd unix
+
+cdd %STUDIO_DIR\studio\lang
+fullrd po_files
+fullrd script
+cdd %STUDIO_DIR
+
+remtrace esbuilder
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/esbuilder esbuilder
+remtrace vision2 tour
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/vision2_demo vision2_demo
+remtrace examples
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/examples examples
+cd examples
+fullrd obsolete
+fullrd eiffeltest
+fullrd iphone
+fullrd libevent
+fullrd math
+fullrd matisse
+fullrd store\matisse
+fullrd old_com
+fullrd old_matisse
+fullrd vision
+fullrd build
+cd dotnet
+fullrd envision
+fullrd winforms\data\simple_binding
+cd ..
+cd vision2
+fullrd Boxes
+fullrd drawing_area
+fullrd ev_list
+fullrd fake_event
+fullrd figure
+fullrd hello_world
+fullrd menu
+fullrd multicolumn_list
+fullrd pixmap
+fullrd split_area
+fullrd test_all_widgets
+fullrd test_events
+fullrd tests
+fullrd tutorial
+fullrd widget_test
+cd ..
+cd ..
+remtrace precomp
+safe_md %STUDIO_DIR\experimental
+safe_md %STUDIO_DIR\experimental\precomp
+safe_md %STUDIO_DIR\experimental\precomp\spec
+cd %STUDIO_DIR\experimental\precomp\spec
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/platform %ISE_PLATFORM
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/dotnet %ISE_PLATFORM-dotnet
+cdd %ISE_PLATFORM
+fullrf *-safe.ecf
+cdd ..\%ISE_PLATFORM-dotnet
+fullrf *-safe.ecf
+safe_md %STUDIO_DIR\precomp
+safe_md %STUDIO_DIR\precomp\spec
+cd %STUDIO_DIR\precomp\spec
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/platform %ISE_PLATFORM
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/dotnet %ISE_PLATFORM-dotnet
+cdd %STUDIO_DIR
+remtrace wizards
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/wizards wizards
+fullrf %STUDIO_DIR\studio\wizards\new_projects\wizard.dsc
+fullrd %STUDIO_DIR\studio\wizards\new_projects\wizard
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/help/wizards/ewf/rootdir %STUDIO_DIR\studio\wizards\new_projects\ewf
+move %STUDIO_DIR\studio\wizards\new_projects\ewf\ewf.dsc %STUDIO_DIR\studio\wizards\new_projects\ewf.dsc
+
+remtrace C_library
+safe_md %STUDIO_DIR\C_library
+cdd %STUDIO_DIR\C_library
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/libpng libpng
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/zlib zlib
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/curl curl
+safe_md openssl
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/openssl/clibs_openssl.ecf openssl
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/openssl/include openssl/include
+cdd %STUDIO_DIR
+remtrace root
+exprt -N -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery Delivery
+move Delivery\*.* . >>& %INSTALL_LOG
+fullrd Delivery >>& %INSTALL_LOG
+fullrf INSTALL README make_install compile_libraries
+remtrace eweasel (just the necessary)
+exprt -N -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel eweasel
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel/bin eweasel/bin
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel/control eweasel/control
+fullrf %STUDIO_DIR\eweasel\INSTALL
+
+remtrace MinGW files
+cdd %STUDIO_DIR
+safe_md gcc
+cd gcc
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/free_add_ons/gcc/%ISE_PLATFORM% %ISE_PLATFORM%
+
+remtrace Create directories
+cdd %STUDIO_DIR
+safe_md %STUDIO_DIR\studio\spec
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\esbuilder\spec
+safe_md %STUDIO_DIR\esbuilder\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\esbuilder\spec\%ISE_PLATFORM\bin
+safe_md %STUDIO_DIR\vision2_demo\spec
+safe_md %STUDIO_DIR\vision2_demo\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\vision2_demo\spec\%ISE_PLATFORM\bin
+safe_md %STUDIO_DIR\wizards
+safe_md %STUDIO_DIR\wizards\com
+safe_md %STUDIO_DIR\wizards\com\config
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\include
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\msc
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\msc_vc140
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\mingw
+safe_md %STUDIO_DIR\rb
+
+give_time_to organize the delivery and to start filling it
+
+remtrace Checkout all the libraries
+cdd %INIT_DIR
+call make_libraries.btm %STUDIO_DIR library
+cdd %INIT_DIR
+call make_libraries.btm %STUDIO_DIR\experimental experimental/library
+cdd %INIT_DIR
+call make_other_libraries.btm %STUDIO_DIR
+
+:clibs
+remtrace Compile C code of Eiffel Software C libraries
+
+call %INIT_DIR\inc\set_has_c_compiler HAS_VC140 VC140
+remtrace HAS_VC140=%HAS_VC140%
+
+iff defined ISE_C_COMPILER_VER .and. "%ISE_C_COMPILER_VER%" != "VC140" then
+ call %INIT_DIR\inc\set_has_c_compiler HAS_C_COMP_VER %ISE_C_COMPILER_VER%
+else
+ set "HAS_C_COMP_VER=False"
+endiff
+remtrace HAS_C_COMP_VER=%HAS_C_COMP_VER%
+
+iff "%HAS_VC140%" == "True" then
+ cdd %INIT_DIR
+ remtrace Build the C libraries of non-Eiffel Software C libraries for msc_vc140
+ call espawn -u:VC140 "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR msc_vc140"
+endiff
+iff "%HAS_C_COMP_VER%" == "True" then
+ remtrace Build the C libraries of non-Eiffel Software C libraries for %ISE_C_COMPILER_VER%
+ cdd %INIT_DIR
+ call espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR msc"
+endiff
+cdd %INIT_DIR
+remtrace Build the C libraries of non-Eiffel Software C libraries for mingw
+call compile_c_libraries.btm %STUDIO_DIR mingw
+
+iff "%HAS_VC140%" == "True" then
+ cdd %INIT_DIR
+ remtrace Build the Experimental C libraries of non-Eiffel Software C libraries for msc_vc140
+ call espawn -u:VC140 "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR\experimental msc_vc140"
+endiff
+
+iff "%HAS_C_COMP_VER%" == "True" then
+ remtrace Build the Experimental C libraries of non-Eiffel Software C libraries for %ISE_C_COMPILER_VER%
+ cdd %INIT_DIR
+ espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR\experimental msc"
+endiff
+cdd %INIT_DIR
+remtrace Build the Experimental C libraries of non-Eiffel Software C libraries for mingw
+call compile_c_libraries.btm %STUDIO_DIR\experimental mingw
+
+iff "%HAS_VC140%" == "True" then
+ remtrace Build the other C libraries of non-Eiffel Software C libraries for msc_vc140
+ cdd %INIT_DIR
+ espawn -u:VC140 "%COMSPEC% /c compile_other_c_libraries.btm %STUDIO_DIR msc_vc140"
+endiff
+iff "%HAS_C_COMP_VER%" == "True" then
+ remtrace Build the other C libraries of non-Eiffel Software C libraries for %ISE_C_COMPILER_VER%
+ cdd %INIT_DIR
+ espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c compile_other_c_libraries.btm %STUDIO_DIR msc"
+endiff
+remtrace Build the other C libraries of non-Eiffel Software C libraries for mingw
+cdd %INIT_DIR
+call compile_other_c_libraries.btm %STUDIO_DIR mingw
+
+cdd %INIT_DIR
+
+REM Fill directories
+iff not defined NO_COMPILE then
+ remtrace Update all libraries
+ iff isdir %EIFFEL_SRC then
+ remtrace Delete %EIFFEL_SRC
+ fullrd %EIFFEL_SRC
+ endiff
+ safe_md %EIFFEL_SRC
+
+ REM Clean up the files
+ remtrace Update all source files.
+ cdd %EIFFEL_SRC\..
+ co -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src %EIFFEL_SRC
+
+ remtrace ISE specific files
+ cdd %EIFFEL_SRC
+ co %DEFAULT_ISE_SVN/Src/library/keygen library/keygen
+ cd tools
+ co %DEFAULT_ISE_SVN/Src/tools/activation activation
+ co %DEFAULT_ISE_SVN/Src/tools/estudio_enterprise estudio_enterprise
+
+ remtrace Build the normal libraries
+ cdd %INIT_DIR
+ call update_libraries.btm %EIFFEL_SRC
+ remtrace Build the experimental libraries
+ cdd %INIT_DIR
+ call update_libraries.btm %EIFFEL_SRC\experimental
+
+ cdd %INIT_DIR
+ give_time_to update libraries
+
+ remtrace Generate needed executables of the bin directory
+ call make_exes.btm
+ cdd %INIT_DIR
+ give_time_to compile exes
+
+ iff not defined NO_WIZARDS then
+ remtrace Generate the precompilation and the "new project" wizards
+ call make_wizards.btm
+ cdd %INIT_DIR
+ give_time_to compile basic wizards
+
+ remtrace Generate the COM wizard
+ call make_com_wizard.btm
+ cdd %INIT_DIR
+ give_time_to compile the COM wizard
+ else
+ quick_move /s studio\wizards
+ quick_move /s wizards
+ endiff
+
+ cdd %INIT_DIR
+
+ remtrace Generate Resource Bench
+ call make_rb.btm
+ cdd %INIT_DIR
+ give_time_to compile Resource Bench
+else
+ remtrace Copy executable files from the old delivery
+ quick_move /s studio\spec
+ quick_move /s studio\wizards
+ quick_move /s rb
+ quick_move /s wizards
+ cdd %STUDIO_DIR
+ give_time_to copy executables from the old delivery
+endiff
+
+call %INIT_DIR%\call_make_installations.btm
+
+cdd %INIT_DIR%
+
+REM Finish
+remtrace final time:
+remtrace %_TIME
+remtrace total used time:
+remtrace %@TIMER[2]
+
+REM Error handling and normal ending
+:broken
+CANCEL
+
diff --git a/windows_deliv/make_dotnet.btm b/windows_deliv/make_dotnet.btm
new file mode 100644
index 0000000..d42e82a
--- /dev/null
+++ b/windows_deliv/make_dotnet.btm
@@ -0,0 +1,50 @@
+remtrace Compiling .NET components
+
+REM Should be called by `make_exes.btm'
+cdd %EIFFEL_SRC
+
+remtrace Compiling .NET runtime
+cd %EIFFEL_SRC\Eiffel\eiffel\com_il_generation\core\run-time
+espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c nmake msbuild_20"
+iff exist EiffelSoftware.Runtime.dll then
+ safe_copy EiffelSoftware.Runtime.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib
+ safe_copy EiffelSoftware.Runtime.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+ safe_copy EiffelSoftware.Runtime.dll %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not compile .NET runtime
+ CANCEL_ON_ERROR
+endiff
+
+remtrace Compiling Eiffel Assembly Cache
+iff exist %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\EiffelSoftware.MetadataConsumer.dll then
+ remtrace EiffelSoftware.MetadataConsumer.dll is already built
+else
+ cdd %EIFFEL_SRC\dotnet\consumer
+ finalize consumer.ecf consumer_20
+ cleanup_dotnet_eiffel consumer_20 EiffelSoftware.MetadataConsumer.dll
+ iff exist libEiffelSoftware.MetadataConsumer.dll then
+ safe_copy EiffelSoftware.MetadataConsumer.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+ safe_copy libEiffelSoftware.MetadataConsumer.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not compile EiffelSoftware.MetadataConsumer.dll
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Compiling Eiffel Metadata Cosumer Executable
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\emdc.exe then
+ remtrace emdc tool is already built
+else
+ cdd %EIFFEL_SRC\dotnet\consumer
+ finalize consumer.ecf emdc
+ cleanup_dotnet_eiffel emdc emdc.exe
+ iff exist libemdc.dll then
+ safe_copy emdc.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ safe_copy libemdc.dll %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not compile emdc.exe
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+cdd %EIFFEL_SRC
diff --git a/windows_deliv/make_exes.btm b/windows_deliv/make_exes.btm
new file mode 100644
index 0000000..180197c
--- /dev/null
+++ b/windows_deliv/make_exes.btm
@@ -0,0 +1,333 @@
+call %~dp0init.btm
+
+remtrace Compile C code of the libraries
+remtrace "A tout seigneur tout honneur", let's start with the run-time
+iff not exist %INSTALL_DIR\releases then
+ md %INSTALL_DIR\releases
+endiff
+iff not exist %INSTALL_DIR\releases\enterprise_version then
+ md %INSTALL_DIR\releases\enterprise_version
+endiff
+iff not exist %INSTALL_DIR\releases\gpl_version then
+ md %INSTALL_DIR\releases\gpl_version
+endiff
+
+remtrace Compile the run-times
+remtrace Compile a run-time for MinGW
+cdd %EIFFEL_SRC\C
+call configure.bat clean >>& %INSTALL_LOG
+iff not defined WIN64 then
+ call configure.bat win32 g >>& %INSTALL_LOG
+else
+ call configure.bat win64 g >>& %INSTALL_LOG
+endiff
+cd %EIFFEL_SRC
+safe_copy C\run-time\LIB\*.a %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\mingw
+
+remtrace Compile a dynamic run-time for MinGW
+cdd %EIFFEL_SRC\C
+call configure.bat clean >>& %INSTALL_LOG
+iff not defined WIN64 then
+ call configure.bat win32 g dll >>& %INSTALL_LOG
+else
+ call configure.bat win64 g >>& %INSTALL_LOG
+endiff
+cd %EIFFEL_SRC
+safe_copy C\run-time\LIB\*dll* %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\mingw
+
+remtrace Copy the configuration file
+iff not defined WIN64 then
+ safe_copy %EIFFEL_SRC\C\CONFIGS\windows-x86-mingw %STUDIO_DIR\studio\config\%ISE_PLATFORM\mingw\config.sh
+else
+ safe_copy %EIFFEL_SRC\C\CONFIGS\windows-x86-64-mingw %STUDIO_DIR\studio\config\%ISE_PLATFORM\mingw\config.sh
+endiff
+
+remtrace Compile the run-time for Microsoft
+espawn -u:VC140 "%COMSPEC% /c %INIT_DIR%\make_runtimes.btm msc_vc140"
+espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c %INIT_DIR%\make_runtimes.btm msc"
+
+remtrace Copy the header files
+safe_copy %EIFFEL_SRC\C\run-time\*.h %STUDIO_DIR\studio\spec\%ISE_PLATFORM\include
+safe_copy %EIFFEL_SRC\C\run-time\eif_stack.decl %STUDIO_DIR\studio\spec\%ISE_PLATFORM\include
+safe_copy %EIFFEL_SRC\C\run-time\eif_stack.interface %STUDIO_DIR\studio\spec\%ISE_PLATFORM\include
+cd %EIFFEL_SRC
+
+remtrace Copy the MSYS part
+safe_copy %EIFFEL_SRC\C\shell\bin\rt_converter.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\
+safe_copy %EIFFEL_SRC\C\shell\bin\sed.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\
+safe_copy %EIFFEL_SRC\C\shell\bin\mkdir.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\
+safe_copy %EIFFEL_SRC\C\shell\bin\*.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\etc
+echo Dummy >> %STUDIO_DIR\studio\spec\%ISE_PLATFORM\etc\dummy.txt
+
+remtrace Then the C libraries
+cd %EIFFEL_SRC\C_library
+fullrd .libs
+
+remtrace libpng
+cd %EIFFEL_SRC\C_library\libpng
+default_make
+remtrace zlib
+cd %EIFFEL_SRC\C_library\zlib
+default_make
+
+REM These directories should already have been created by make_delivery. Whatever...
+safe_md %STUDIO_DIR\studio\spec
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+
+remtrace CLI writer
+cd %EIFFEL_SRC\framework\cli_writer\Clib
+default_make
+
+remtrace CLI debugger
+cd %EIFFEL_SRC\framework\cli_debugger\Clib
+default_make
+
+REM Compiling EiffelStudio stuff
+iff defined BUILD_ENTERPRISE_ONLY then
+ remtrace BUILD_ENTERPRISE_ONLY
+ remtrace Recompile EiffelStudio
+ cdd %FINALIZATION_DIR
+ safe_copy %EIFFEL_SRC\Eiffel\Ace\*.* .
+ safe_copy %EIFFEL_SRC\tools\estudio_enterprise\ec.ecf ec.ecf
+ iff not exist ec.ecf then
+ remerror Cannot find the finalization Ace for EiffelStudio
+ CANCEL_ON_ERROR
+ endiff
+
+ remtrace Enterprise edition
+ cdd %EIFFEL_SRC\Eiffel\API\constants
+ set_version %EIFFEL_SRC 0000 system_constants.e
+ sed -e "s/Version_type_name:\ STRING\ =\ \"GPL\ Edition\"/Version_type_name:\ STRING\ =\ \"Enterprise\ Edition\"/g" system_constants.e >> new_system_constants.e
+ move new_system_constants.e system_constants.e
+ cdd %FINALIZATION_DIR
+
+ clean_project
+ finalize ec.ecf bench
+ cleanup_eiffel bench ec.exe
+ iff not exist ec.exe then
+ remerror Could not finalize a new "enterprise_version" EiffelStudio
+ CANCEL_ON_ERROR
+ endiff
+ move ec.exe %INSTALL_DIR\releases\enterprise_version
+
+ clean_project
+ finalize ec.ecf batch
+ cleanup_eiffel batch ecb.exe
+ iff not exist ecb.exe then
+ remerror Could not finalize a new batch version of the compiler
+ CANCEL_ON_ERROR
+ endiff
+ move ecb.exe %INSTALL_DIR\releases\enterprise_version
+
+ exprtfile -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/scripts/licensing/eiffelstudio/enterprise.txt > %INSTALL_DIR\releases\enterprise_version\LICENSE
+
+else
+ iff not defined NO_NEW_EC then
+ remtrace GPL edition
+ cdd %EIFFEL_SRC\Eiffel\API\constants
+ remtrace update version for system_constants.e
+ set_version %EIFFEL_SRC 0000 system_constants.e
+ cdd %FINALIZATION_DIR
+ safe_copy %EIFFEL_SRC\Eiffel\Ace\*.* .
+ clean_project
+ remtrace finalize GPL edition "bench"
+ finalize ec.ecf bench
+ cleanup_eiffel bench ec.exe
+ iff exist ec.exe then
+ move ec.exe %INSTALL_DIR\releases\gpl_version
+ else
+ remerror Could not finalize a new "gpl_edition" EiffelStudio
+ CANCEL_ON_ERROR
+ endiff
+
+ clean_project
+ remtrace finalize GPL edition "batch"
+ finalize ec.ecf batch
+ cleanup_eiffel batch ecb.exe
+ iff exist ecb.exe then
+ move ecb.exe %INSTALL_DIR\releases\gpl_version
+ else
+ remerror Could not finalize a new batch version of the compiler
+ CANCEL_ON_ERROR
+ endiff
+
+ exprtfile -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/scripts/licensing/eiffelstudio/gpl.txt > %INSTALL_DIR\releases\gpl_version\LICENSE
+
+ remtrace Enterprise edition for EiffelStudio
+ cdd %EIFFEL_SRC\Eiffel\API\constants
+ sed -e "s/Version_type_name:\ STRING\ =\ \"GPL\ Edition\"/Version_type_name:\ STRING\ =\ \"Enterprise\ Edition\"/g" system_constants.e >> new_system_constants.e
+ move new_system_constants.e system_constants.e
+ cdd %FINALIZATION_DIR
+ clean_project
+ safe_copy %EIFFEL_SRC\tools\estudio_enterprise\ec.ecf ec.ecf
+ finalize ec.ecf bench
+ cleanup_eiffel bench ec.exe
+ iff exist ec.exe then
+ move ec.exe %INSTALL_DIR\releases\enterprise_version
+ else
+ remerror Could not finalize a new "enterprise_version" EiffelStudio
+ CANCEL_ON_ERROR
+ endiff
+
+ clean_project
+ finalize ec.ecf batch
+ cleanup_eiffel batch ecb.exe
+ iff exist ecb.exe then
+ move ecb.exe %INSTALL_DIR\releases\enterprise_version
+ else
+ remerror Could not finalize a new batch version of the compiler
+ CANCEL_ON_ERROR
+ endiff
+
+ exprtfile -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/scripts/licensing/eiffelstudio/enterprise.txt > %INSTALL_DIR\releases\enterprise_version\LICENSE
+ endiff
+endiff
+
+remtrace Recompile finish_freezing
+iff not exist %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\finish_freezing.exe then
+ cdd %EIFFEL_SRC\tools\finish_freezing
+ cd Clib
+ default_make
+ cd ..
+ clean_project
+ finalize finish_freezing.ecf finish_freezing
+ cleanup_eiffel finish_freezing finish_freezing.exe
+ iff exist finish_freezing.exe then
+ move finish_freezing.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new finish_freezing
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile emake
+cdd %EIFFEL_SRC\tools\eiffel_make
+clean_project
+finalize emake.ecf
+cleanup_eiffel emake emake.exe
+iff exist emake.exe then
+ move emake.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new emake
+ CANCEL_ON_ERROR
+endiff
+
+remtrace Recompile quick_finalize
+cdd %EIFFEL_SRC\tools\quick_finalize
+clean_project
+finalize quick_finalize.ecf
+cleanup_eiffel quick_finalize quick_finalize.exe
+iff exist quick_finalize.exe then
+ move quick_finalize.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new quick_finalize
+ CANCEL_ON_ERROR
+endiff
+
+remtrace Put ecdbgd.exe in the new delivery
+REM It should already have been compiled by the configure of the run-time.
+cdd %EIFFEL_SRC\C\ipc\daemon
+iff exist ecdbgd.exe then
+ move ecdbgd.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new ecdbgd
+ CANCEL_ON_ERROR
+endiff
+
+remtrace Put x2c.exe in the new delivery
+REM It should already have been compiled by the configure of the run-time.
+cdd %EIFFEL_SRC\C\run-time
+iff exist x2c.exe then
+ move x2c.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new x2c
+ CANCEL_ON_ERROR
+endiff
+
+remtrace Recompile h2e
+cdd %EIFFEL_SRC\library\wel\extra
+clean_project
+finalize h2e.ecf
+cleanup_eiffel h2e h2e.exe
+iff exist h2e.exe then
+ move h2e.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new h2e
+ CANCEL_ON_ERROR
+endiff
+
+
+remtrace Recompile estudio.exe
+cdd %EIFFEL_SRC\tools\estudio\config
+clean_project
+finalize estudio.ecf estudio
+cleanup_eiffel estudio estudio.exe
+iff exist estudio.exe then
+ move estudio.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+else
+ remerror Could not finalize a new estudio
+ CANCEL_ON_ERROR
+endiff
+
+remtrace get GDI+ for platforms that don't have it
+cdd %EIFFEL_SRC\tools
+co %DEFAULT_ISE_SVN/Src/tools/gdiplus gdiplus
+move gdiplus\gdiplus.dll %INSTALL_DIR\releases
+
+remtrace Recompiling EiffelBuild
+cdd %INIT_DIR
+call make_build.btm
+
+remtrace Recompiling Vision2 tour
+cdd %INIT_DIR
+call make_vision2_demo.btm
+
+iff defined EIF_BUILD_LEGACY_PP then
+ remtrace Recompile Legacy++
+ cdd %EIFFEL_SRC\tools\legacy\PCCTS
+ safe_md bin
+ espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c nmake -f makefile.win"
+ cd ..
+ cd legacy
+ espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c nmake -f makefile.win"
+ iff exist legacy.exe then
+ move legacy.exe %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not generate legacy.exe
+ REM CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Getting eweasel source code
+safe_md %EIFFEL_SRC\eweasel
+co -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel/source %EIFFEL_SRC\eweasel\source
+remtrace Compiling eweasel
+safe_md %STUDIO_DIR\eweasel
+safe_md %STUDIO_DIR\eweasel\spec
+safe_md %STUDIO_DIR\eweasel\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\eweasel\spec\%ISE_PLATFORM\bin
+cdd %EIFFEL_SRC\eweasel\source
+clean_project
+set OLD_EWEASEL=%EWEASEL
+set EWEASEL=%EIFFEL_SRC\eweasel
+finalize eweasel.ecf eweasel_st
+cleanup_eiffel eweasel_st eweasel.exe
+move eweasel.exe %STUDIO_DIR\eweasel\spec\%ISE_PLATFORM\bin
+finalize eweasel.ecf eweasel_mt
+cleanup_eiffel eweasel_mt eweasel-mt.exe
+move eweasel-mt.exe %STUDIO_DIR\eweasel\spec\%ISE_PLATFORM\bin
+set EWEASEL=%OLD_EWEASEL
+set OLD_EWEASEL=
+
+cdd %INIT_DIR
+call make_tools.btm
+
+cdd %INIT_DIR
+call make_gobo_tools.btm
+
+cdd %INIT_DIR
+call make_dotnet.btm
+cdd %EIFFEL_SRC
+
diff --git a/windows_deliv/make_gobo_tools.btm b/windows_deliv/make_gobo_tools.btm
new file mode 100644
index 0000000..ccb4279
--- /dev/null
+++ b/windows_deliv/make_gobo_tools.btm
@@ -0,0 +1,90 @@
+rem Should be called by make_exes.btm
+
+remtrace Compiling Gobo tools
+safe_md %STUDIO_DIR\library\gobo\spec
+safe_md %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+cdd %EIFFEL_SRC\library\gobo\src
+clean_project
+
+remtrace geant
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\geant.exe then
+ remtrace geant is already built
+else
+ finalize geant.ecf geant
+ cleanup_eiffel geant geant.exe
+ move geant.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gelex
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gelex.exe then
+ remtrace gelex is already built
+else
+ finalize gelex.ecf gelex
+ cleanup_eiffel gelex gelex.exe
+ move gelex.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace geyacc
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\geyacc.exe then
+ remtrace geyacc is already built
+else
+ finalize geyacc.ecf geyacc
+ cleanup_eiffel geyacc geyacc.exe
+ move geyacc.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gec
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gec.exe then
+ remtrace gec is already built
+else
+ finalize gec.ecf gec
+ cleanup_eiffel gec gec.exe
+ move gec.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gelint
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gelint.exe then
+ remtrace gelint is already built
+else
+ finalize gelint.ecf gelint
+ cleanup_eiffel gelint gelint.exe
+ move gelint.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gepp
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gepp.exe then
+ remtrace gepp is already built
+else
+ finalize gepp.ecf gepp
+ cleanup_eiffel gepp gepp.exe
+ move gepp.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace getest
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\getest.exe then
+ remtrace getest is already built
+else
+ finalize getest.ecf getest
+ cleanup_eiffel getest getest.exe
+ move getest.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gexace
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gexace.exe then
+ remtrace gexace is already built
+else
+ finalize gexace.ecf gexace
+ cleanup_eiffel gexace gexace.exe
+ move gexace.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
+remtrace gexslt
+iff exist %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin\gexslt.exe then
+ remtrace gexslt is already built
+else
+ finalize gexslt.ecf gexslt
+ cleanup_eiffel gexslt gexslt.exe
+ move gexslt.exe %STUDIO_DIR\library\gobo\spec\%ISE_PLATFORM\bin
+endiff
+
diff --git a/windows_deliv/make_installations.btm b/windows_deliv/make_installations.btm
new file mode 100644
index 0000000..1e71901
--- /dev/null
+++ b/windows_deliv/make_installations.btm
@@ -0,0 +1,132 @@
+@echo off
+
+call %~dp0init.btm
+
+set EIFFEL_SRC=%TMP_EIFFEL_SRC
+set ISE_LIBRARY=%TMP_EIFFEL_SRC
+set ISE_SRC=%TMP_EIFFEL_SRC
+
+iff not defined INSTALL_DIR then
+ echo INSTALL_DIR not defined
+ CANCEL
+endiff
+
+set SVN_VERSION=%@EXECSTR[set_version %EIFFEL_SRC]
+
+remtrace Build Installation for %SVN_VERSION%
+
+cdd %INIT_DIR\install
+safe_md %INIT_DIR\install\bin
+iff .%ISE_PLATFORM%.==.win64. then
+ set IS_WIN64=yes
+ set WINNAME=x64
+else
+ set IS_WIN64=no
+ set WINNAME=x86
+endiff
+
+iff .%1.==.. then
+ remtrace ---------------------------------------------
+ remtrace Checkout and compile the hallow tool
+ remtrace ---------------------------------------------
+
+ cdd %EIFFEL_SRC\tools
+ remtrace Compile finish_freezing Clib
+ cd %EIFFEL_SRC\tools\finish_freezing\Clib
+ default_make
+
+ cdd %EIFFEL_SRC\tools
+ co -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/hallow hallow
+ cd %EIFFEL_SRC\tools\hallow
+ clean_project
+ finalize hallow.ecf
+ cleanup_dotnet_eiffel hallow hallow.exe
+ iff not exist libhallow.dll then
+ remtrace Couldnt generate hallow.exe
+ CANCEL
+ else
+ move hallow.exe %INIT_DIR\install\bin
+ move libhallow.dll %INIT_DIR\install\bin
+ move eiffelsoftware.runtime.dll %INIT_DIR\install\bin
+ endiff
+
+ remtrace --------------------------------------------------
+ remtrace Recompile Custom actions for installation program
+ remtrace --------------------------------------------------
+
+ cdd %EIFFEL_SRC
+ cd tools
+ co %DEFAULT_ISE_SVN/Src/tools/setup setup
+ cd %EIFFEL_SRC\tools\setup\studio
+ clean_project
+ finalize setup.ecf
+ cleanup_eiffel setup setup.dll
+ iff not exist setup.dll then
+ remtrace Couldnt generate setup.dll
+ QUIT
+ CANCEL
+ endiff
+ safe_md %INIT_DIR\install\binaries
+ safe_md %INIT_DIR\install\binaries\%WINNAME
+ move setup.dll %INIT_DIR\install\binaries\%WINNAME
+endiff
+
+remtrace ----------------------------------------------
+remtrace Building the MSIs
+remtrace ----------------------------------------------
+
+cdd %INIT_DIR\install\content\eiffelstudio
+safe_md %INSTALL_DIR\setups
+safe_md %INSTALL_DIR\setups\gpl
+safe_md %INSTALL_DIR\setups\enterprise
+
+remtrace Creating WIX files
+espawn "nmake /nologo clean"
+espawn "nmake /nologo"
+
+remtrace Preparing GPL edition
+espawn "nmake /nologo gpl_%WINNAME"
+safe_copy %INIT_DIR\install\bin\studio_gpl_%WINNAME\package.msi %INSTALL_DIR\setups\gpl\%STUDIO_NAME%_gpl_%SVN_VERSION-%ISE_PLATFORM%.msi
+
+remtrace Preparing Commercial edition
+espawn "nmake /nologo enterprise_%WINNAME"
+safe_copy %INIT_DIR\install\bin\studio_ent_%WINNAME\package.msi %INSTALL_DIR\setups\enterprise\%STUDIO_NAME%_ent_%SVN_VERSION-%ISE_PLATFORM%.msi
+
+remtrace ----------------------------------------------
+remtrace Building the Zips
+remtrace ----------------------------------------------
+cdd %INSTALL_DIR
+ren EiffelStudio %STUDIO_NAME%
+
+safe_copy %INSTALL_DIR\releases\gpl_version\ec.exe %INSTALL_DIR\%STUDIO_NAME%\studio\spec\%ISE_PLATFORM%\bin
+safe_copy %INSTALL_DIR\releases\gpl_version\ecb.exe %INSTALL_DIR\%STUDIO_NAME%\studio\spec\%ISE_PLATFORM%\bin
+iff exist %INSTALL_DIR\releases\gpl_version\LICENSE then
+ safe_copy %INSTALL_DIR\releases\gpl_version\LICENSE %INSTALL_DIR\%STUDIO_NAME%\LICENSE
+else
+ remtrace Missing GPL license text
+endiff
+7z a -t7z %INSTALL_DIR\setups\gpl\%STUDIO_NAME%_gpl_%SVN_VERSION-%ISE_PLATFORM%.7z %STUDIO_NAME% -mx9 >>& %INSTALL_LOG
+
+safe_copy %INSTALL_DIR\releases\enterprise_version\ec.exe %INSTALL_DIR\%STUDIO_NAME%\studio\spec\%ISE_PLATFORM%\bin
+safe_copy %INSTALL_DIR\releases\enterprise_version\ecb.exe %INSTALL_DIR\%STUDIO_NAME%\studio\spec\%ISE_PLATFORM%\bin
+iff exist %INSTALL_DIR\releases\enterprise_version\LICENSE then
+ safe_copy %INSTALL_DIR\releases\enterprise_version\LICENSE %INSTALL_DIR\%STUDIO_NAME%\LICENSE
+else
+ remtrace Missing Enterprise license text
+endiff
+7z a -t7z %INSTALL_DIR\setups\enterprise\%STUDIO_NAME%_ent_%SVN_VERSION-%ISE_PLATFORM%.7z %STUDIO_NAME% -mx9 >>& %INSTALL_LOG
+
+remtrace Restoring the layout to its original state
+cdd %INSTALL_DIR
+ren %STUDIO_NAME% EiffelStudio
+
+remtrace Uploading packages online
+cdd %INSTALL_DIR\setups\gpl
+share_delivery %STUDIO_NAME%_gpl_%SVN_VERSION%-%ISE_PLATFORM%.msi
+share_delivery %STUDIO_NAME%_gpl_%SVN_VERSION%-%ISE_PLATFORM%.7z
+
+fullrf %INSTALL_DIR\EiffelStudio\studio\spec\%ISE_PLATFORM%\bin\ec.exe
+fullrf %INSTALL_DIR\EiffelStudio\studio\spec\%ISE_PLATFORM%\bin\ecb.exe
+
+remtrace Your deliveries are now ready
+cdd %INIT_DIR
diff --git a/windows_deliv/make_libraries.btm b/windows_deliv/make_libraries.btm
new file mode 100644
index 0000000..4201bca
--- /dev/null
+++ b/windows_deliv/make_libraries.btm
@@ -0,0 +1,81 @@
+remtrace Retrieve libraries
+cdd %1
+md library
+cd library
+remtrace api_wrapper
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/api_wrapper api_wrapper
+remtrace argument_parser
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/argument_parser argument_parser
+remtrace base
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/base base
+remtrace base_extension
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/base_extension base_extension
+remtrace cocoa
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/cocoa cocoa
+remtrace com
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/com com
+remtrace cURL
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/cURL cURL
+remtrace diff
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/diff diff
+remtrace docking
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/docking docking
+remtrace Eiffel2Java
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/Eiffel2Java Eiffel2Java
+remtrace editor
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/editor editor
+remtrace encoding
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/encoding encoding
+remtrace event
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/event event
+remtrace gobo
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/gobo gobo
+fullrd gobo\svn\work
+remtrace gobo_extension
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/gobo_extension gobo_extension
+remtrace graph
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/graph graph
+remtrace i18n
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/i18n i18n
+remtrace lex
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/lex lex
+remtrace memory_analyzer
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/memory_analyzer memory_analyzer
+remtrace net
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/net net
+remtrace objc_base
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/objc_base objc_base
+remtrace parse
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/parse parse
+remtrace patterns
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/patterns patterns
+remtrace preferences
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/preferences preferences
+remtrace process
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/process process
+remtrace ribbon
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/ribbon ribbon
+remtrace runtime
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/runtime runtime
+remtrace store
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/store store
+remtrace testing
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/testing testing
+remtrace text
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/text text
+remtrace thread
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/thread thread
+remtrace time
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/time time
+remtrace uuid
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/uuid uuid
+remtrace vision2
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/vision2 vision2
+remtrace vision2_extension
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/vision2_extension vision2_extension
+remtrace web
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/web web
+remtrace web_browser
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/web_browser web_browser
+remtrace wel
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/%2/wel wel
diff --git a/windows_deliv/make_other_libraries.btm b/windows_deliv/make_other_libraries.btm
new file mode 100644
index 0000000..65527c9
--- /dev/null
+++ b/windows_deliv/make_other_libraries.btm
@@ -0,0 +1,25 @@
+remtrace Retrieve unstable libraries
+cdd %1
+md unstable
+cd unstable
+
+remtrace README.txt
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/unstable/README.txt README.txt
+
+remtrace library
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/unstable/library library
+
+remtrace Retrieve contrib libraries and examples
+cdd %1
+md contrib
+cd contrib
+
+remtrace README.txt
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/contrib/README.txt README.txt
+
+remtrace library
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/contrib/library library
+
+remtrace examples
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/contrib/examples examples
+
diff --git a/windows_deliv/make_rb.btm b/windows_deliv/make_rb.btm
new file mode 100644
index 0000000..a31eff4
--- /dev/null
+++ b/windows_deliv/make_rb.btm
@@ -0,0 +1,18 @@
+remtrace Update the source files
+REM cdd %EIFFEL_SRC
+REM co -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/resource_bench resource_bench
+
+remtrace Recompile Resource Bench
+REM cdd %EIFFEL_SRC\tools\resource_bench
+REM clean_project
+REM finalize rb.ecf
+REM cleanup_eiffel rb rb.exe
+REM if not exist rb.exe (remtrace Couldnt generate rb.exe & cancel)
+REM move rb.exe %STUDIO_DIR\rb\bin
+cdd %STUDIO_DIR\rb
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/resource_bench/bin bin
+
+remtrace Retrieve the example
+cdd %STUDIO_DIR\rb
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/resource_bench/RB_documentation/examples example
+
diff --git a/windows_deliv/make_runtimes.btm b/windows_deliv/make_runtimes.btm
new file mode 100644
index 0000000..a5144dc
--- /dev/null
+++ b/windows_deliv/make_runtimes.btm
@@ -0,0 +1,48 @@
+@echo off
+
+call %INIT_DIR%\set_simple_aliases.btm
+
+remtrace Compile the runtime for C compiler %1
+
+cd %EIFFEL_SRC\C
+call configure clean >>& %INSTALL_LOG
+iff defined WIN64 then
+ call configure win64 m dll >>& %INSTALL_LOG
+else
+ iff defined MSC6 then
+ call configure win32 m6 dll >>& %INSTALL_LOG
+ else
+ call configure win32 m dll >>& %INSTALL_LOG
+ endiff
+endiff
+cd %EIFFEL_SRC
+fullrf C\run-time\LIB\*.exp
+safe_copy C\run-time\LIB\*dll* %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\%1
+cd %EIFFEL_SRC
+
+remtrace Compile a run-time for Microsoft
+cd %EIFFEL_SRC\C
+call configure clean >>& %INSTALL_LOG
+iff defined WIN64 then
+ call configure win64 m >>& %INSTALL_LOG
+else
+ iff defined MSC6 then
+ call configure win32 m6 >>& %INSTALL_LOG
+ else
+ call configure win32 m >>& %INSTALL_LOG
+ endiff
+endiff
+cd %EIFFEL_SRC
+
+safe_copy C\run-time\LIB\*.lib %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\%1
+iff not defined WIN64 then
+ safe_copy C\desc\ise_desc.dll %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\%1
+ safe_copy C\desc\ise_desc.lib %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\%1
+endiff
+
+remtrace Copy the configuration file
+iff not defined WIN64 then
+ safe_copy %EIFFEL_SRC\C\CONFIGS\windows-x86-msc %STUDIO_DIR\studio\config\%ISE_PLATFORM\%1\config.sh
+else
+ safe_copy %EIFFEL_SRC\C\CONFIGS\windows-x86-64-msc %STUDIO_DIR\studio\config\%ISE_PLATFORM\%1\config.sh
+endiff
diff --git a/windows_deliv/make_tools.btm b/windows_deliv/make_tools.btm
new file mode 100644
index 0000000..57d5a93
--- /dev/null
+++ b/windows_deliv/make_tools.btm
@@ -0,0 +1,177 @@
+rem Should be called by make_exes.btm
+
+remtrace Compiling Eiffel Software tools
+
+remtrace Create tools directory for your platform.
+safe_md %STUDIO_DIR\tools
+safe_md %STUDIO_DIR\tools\spec
+safe_md %STUDIO_DIR\tools\spec\%ISE_PLATFORM
+safe_md %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+
+remtrace Recompile iron
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\iron.exe then
+ remtrace iron tool is already built
+else
+ cdd %EIFFEL_SRC\tools\iron\client
+ clean_project
+ finalize client.ecf es_iron
+ cleanup_eiffel es_iron iron.exe
+ iff exist iron.exe then
+ move iron.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ safe_copy %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\libcurl.dll %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\
+ safe_copy %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\libeay32.dll %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\
+ safe_copy %STUDIO_DIR\studio\spec\%ISE_PLATFORM\bin\ssleay32.dll %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\
+ else
+ remerror Could not finalize a new iron
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile syntax_updater
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\syntax_updater.exe then
+ remtrace syntax_updater tool is already built
+else
+ cdd %EIFFEL_SRC\tools\syntax_updater
+ clean_project
+ finalize syntax_updater.ecf
+ cleanup_eiffel syntax_updater syntax_updater.exe
+ iff exist syntax_updater.exe then
+ move syntax_updater.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new syntax_updater
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile espawn
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\espawn.exe then
+ remtrace espawn tool is already built
+else
+ cdd %EIFFEL_SRC\tools\espawn
+ clean_project
+ finalize espawn.ecf
+ cleanup_eiffel espawn espawn.exe
+ iff exist espawn.exe then
+ move espawn.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new espawn
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile compile_all
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\compile_all.exe then
+ remtrace compile_all tool is already built
+else
+ cdd %EIFFEL_SRC\tools\compile_all
+ clean_project
+ finalize compile_all.ecf
+ cleanup_eiffel compile_all compile_all.exe
+ iff exist compile_all.exe then
+ move compile_all.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new compile_all
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile eiffel tool
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\eiffel.exe then
+ remtrace eiffel tool is already built
+else
+ cdd %EIFFEL_SRC\tools\eiffel_script
+ clean_project
+ finalize eiffel_script.ecf
+ cleanup_eiffel eiffel_script eiffel.exe
+ iff exist eiffel.exe then
+ move eiffel.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new eiffel tool
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile eiffel_image_embedder
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\eiffel_image_embedder.exe then
+ remtrace eiffel_image_embedder tool is already built
+else
+ cdd %EIFFEL_SRC\tools\eiffel_image_embedder
+ clean_project
+ finalize eimgemb.ecf
+ cleanup_eiffel eiffel_image_embedder eimgemb.exe
+ iff exist eimgemb.exe then
+ move eimgemb.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new eiffel_image_embedder
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile eiffel_echo
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\eiffel_echo.exe then
+ remtrace eiffel_echo tool is already built
+else
+ cdd %EIFFEL_SRC\tools\eiffel_echo
+ clean_project
+ finalize eiffel_echo.ecf
+ cleanup_eiffel eiffel_echo eiffel_echo.exe
+ iff exist eiffel_echo.exe then
+ move eiffel_echo.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new eiffel_echo
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile po_generation_tool
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\po_generation_tool.exe then
+ remtrace po_generation_tool tool is already built
+else
+ cdd %EIFFEL_SRC\tools\po_generation_tool
+ clean_project
+ finalize po_generation_tool.ecf
+ cleanup_eiffel po_generation_tool po_generation_tool.exe
+ iff exist po_generation_tool.exe then
+ move po_generation_tool.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new po_generation_tool
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile eiffel_ribbon
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\eiffel_ribbon.exe then
+ remtrace eiffel_ribbon tool is already built
+else
+ safe_md %STUDIO_DIR\tools\ribbon
+ cdd %STUDIO_DIR\tools\ribbon
+ exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/eiffel_ribbon/template template
+ exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/eiffel_ribbon/images images
+ cdd %EIFFEL_SRC\tools\eiffel_ribbon
+ clean_project
+ finalize eiffel_ribbon.ecf
+ cleanup_eiffel eiffel_ribbon eiffel_ribbon.exe
+ iff exist eiffel_ribbon.exe then
+ move eiffel_ribbon.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new eiffel_ribbon
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
+remtrace Recompile ace2ecf
+iff exist %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin\ace2ecf.exe then
+ remtrace ace2ecf tool is already built
+else
+ cdd %EIFFEL_SRC\tools\ace2ecf
+ clean_project
+ finalize ace2ecf.ecf
+ cleanup_eiffel ace2ecf ace2ecf.exe
+ iff exist ace2ecf.exe then
+ move ace2ecf.exe %STUDIO_DIR\tools\spec\%ISE_PLATFORM\bin
+ else
+ remerror Could not finalize a new ace2ecf
+ CANCEL_ON_ERROR
+ endiff
+endiff
+
diff --git a/windows_deliv/make_vision2_demo.btm b/windows_deliv/make_vision2_demo.btm
new file mode 100644
index 0000000..46e719a
--- /dev/null
+++ b/windows_deliv/make_vision2_demo.btm
@@ -0,0 +1,26 @@
+remtrace Compiling Vision2_Demo
+REM Should be called by `make_exes.btm'
+cdd %EIFFEL_SRC
+exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/examples/vision2/widget_test vision2_demo
+
+REM Must now call batch files here, to generate the flatshorts and also retrieve the
+REM build files needed by the test
+
+cdd %EIFFEL_SRC\vision2_demo
+
+call retrieve_build_files.bat -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN >>& %INSTALL_LOG
+call retrieve_flat_short.bat >>& %INSTALL_LOG
+
+cdd %EIFFEL_SRC\vision2_demo
+clean_project
+finalize vision2_demo.ecf
+cleanup_eiffel vision2_demo vision2_demo.exe
+iff not exist vision2_demo.exe then
+ remtrace Could not finalize a new vision2_demo
+ CANCEL
+endiff
+move vision2_demo.exe %STUDIO_DIR\vision2_demo\spec\%ISE_PLATFORM\bin
+
+move /s %EIFFEL_SRC\vision2_demo\tests %STUDIO_DIR\vision2_demo\tests
+move /s %EIFFEL_SRC\vision2_demo\flatshort %STUDIO_DIR\vision2_demo\flatshort
+move %EIFFEL_SRC\vision2_demo\bitmaps\png\*.png %STUDIO_DIR\vision2_demo\bitmaps\png
diff --git a/windows_deliv/make_wizards.btm b/windows_deliv/make_wizards.btm
new file mode 100644
index 0000000..f457d94
--- /dev/null
+++ b/windows_deliv/make_wizards.btm
@@ -0,0 +1,4 @@
+cdd %EIFFEL_SRC\help\wizards
+set DELIVERY=%STUDIO_DIR
+remtrace Launch the actual wizard compilation
+call make_wizards.btm
diff --git a/windows_deliv/menu.bat b/windows_deliv/menu.bat
new file mode 100644
index 0000000..08835d3
--- /dev/null
+++ b/windows_deliv/menu.bat
@@ -0,0 +1,52 @@
+@echo off
+setlocal
+set TCCLECMD="C:\apps\JPSoft\TCCLE14x64\tcc.exe"
+
+@echo EiffelStudio delivery:
+
+@echo 1: make_delivery
+@echo 2: make_exes
+@echo 3: make_installations
+@echo 4: starting environment
+@echo 5: bootstrap environment
+@echo 6: display logs
+
+@echo -------------------
+@echo q: quit
+
+CHOICE /C 123456q /M " > selection:"
+if .%ERRORLEVEL%. == .1. GOTO make_delivery
+if .%ERRORLEVEL%. == .2. GOTO make_exes
+if .%ERRORLEVEL%. == .3. GOTO make_installations
+if .%ERRORLEVEL%. == .4. GOTO starting_env
+if .%ERRORLEVEL%. == .5. GOTO bootstrap_env
+if .%ERRORLEVEL%. == .6. GOTO display_logs
+if .%ERRORLEVEL%. == .4. goto end
+goto end
+
+:make_delivery
+%TCCLECMD% /C make_delivery.btm
+goto end
+
+:make_exes
+%TCCLECMD% /C make_exes.btm
+goto end
+
+:make_installations
+%TCCLECMD% /C make_installations.btm
+goto end
+
+:starting_env
+%TCCLECMD% init.btm
+goto end
+
+:bootstrap_env
+%TCCLECMD% init.btm
+goto end
+
+:display_logs
+%TCCLECMD% display_logs.btm
+echo %INSTALL_LOG%
+goto end
+
+:end
diff --git a/windows_deliv/set_aliases.btm b/windows_deliv/set_aliases.btm
new file mode 100644
index 0000000..21c88ff
--- /dev/null
+++ b/windows_deliv/set_aliases.btm
@@ -0,0 +1,49 @@
+REM Define some user parameters here if not yet defined.
+
+iff defined _SET_ALIAS_SET_ then
+ remtrace Script set_alias.btm was already called.
+ goto :eof
+endiff
+
+set _SET_ALIAS_SET_=1
+
+REM Setup environment
+REM =================
+
+iff exist %INIT_DIR\etc\config.btm then
+ call %INIT_DIR\etc\config.btm
+else
+ echo ERROR missing file %INIT_DIR\etc\config.btm
+ set _SET_ALIAS_SET_=0
+ CANCEL
+endiff
+
+set WORK_DIR=%WORK_DIR%\%STUDIO_VERSION_MAJOR_MINOR%\%ISE_PLATFORM%_%ISE_C_COMPILER_VER%
+
+set DELIV_DIR=%WORK_DIR%\build
+
+REM The file where all output is stored
+set INSTALL_LOG=%DELIV_DIR\install.log
+set ERROR_LOG=%DELIV_DIR\error.log
+REM NB: The following directory is where a new version of ec.exe will be finalized.
+set FINALIZATION_DIR=%DELIV_DIR
+
+REM NB: The following directory will be erased!
+set TMP_EIFFEL_SRC=%WORK_DIR%\tmpdev
+
+REM Where the new delivery is set up. Warning: if it exists, the directory will be erased!
+set STUDIO_NAME=Eiffel_%STUDIO_VERSION_MAJOR_MINOR
+
+set INSTALL_DIR=%WORK_DIR%\%STUDIO_NAME%
+set STUDIO_DIR=%INSTALL_DIR\EiffelStudio
+
+REM Check for Windows 64 bits.
+iff "%ISE_PLATFORM%" == "win64" then
+ set WIN64=true
+endiff
+
+REM OK The rest is private, no need for you to see it :)
+call %INIT_DIR%\set_simple_aliases.btm
+iff exist %INIT_DIR\etc\set_local_aliases.btm then
+ call %INIT_DIR\etc\set_local_aliases.btm
+endiff
diff --git a/windows_deliv/set_path.bat b/windows_deliv/set_path.bat
new file mode 100644
index 0000000..bec3ff4
--- /dev/null
+++ b/windows_deliv/set_path.bat
@@ -0,0 +1,8 @@
+set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Users\jfiat\AppData\Local\Microsoft\WindowsApps;;C:\cygwin64\bin;C:\Program Files\7-Zip;C:\DEV\Eiffel\17.11_win64\studio\spec\win64\bin;C:\DEV\Eiffel\17.11_win64\tools\spec\win64\bin;C:\DEV\Eiffel\17.11_win64\library\gobo\spec\win64\bin;C:\DEV\Eiffel\17.11_win64\gcc\win64\msys\1.0\bin
+
+REM ;C:\DEV\build_deliv\etc\..\bin
+
+REM ;C:\DEV\build_deliv\wix
+
+
+set PATH=C:\Program Files\Docker\Docker\Resources\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\Microsoft Windows Performance Toolkit\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\jfiat\AppData\Local\Microsoft\WindowsApps;;c:\DEV\eiffel\17.11_windows\studio\spec\windows\bin;c:\DEV\eiffel\17.11_windows\tools\spec\windows\bin;c:\DEV\eiffel\17.11_windows\library\gobo\spec\windows\bin
diff --git a/windows_deliv/set_simple_aliases.btm b/windows_deliv/set_simple_aliases.btm
new file mode 100644
index 0000000..235d621
--- /dev/null
+++ b/windows_deliv/set_simple_aliases.btm
@@ -0,0 +1,84 @@
+REM Define some simple aliases here if not yet defined.
+
+iff defined _SET_SIMPLE_ALIAS_SET_ then
+ goto :eof
+endiff
+
+set _SET_SIMPLE_ALIAS_SET_=1
+
+REM File management
+REM Copy also hidden files, keep attributes, overwrite automatically
+alias safe_copy `*copy /hkz >>& %INSTALL_LOG%`
+alias dirtest `dir >>& %INSTALL_LOG%`
+
+REM Remove completely a directory
+alias nolog_fullrd del /syeqxz
+alias fullrd `del /syeqxz >>& %INSTALL_LOG`
+
+REM Remove a file
+alias nolog_fullrf del /yqze
+alias fullrf `del /yqze >>& %INSTALL_LOG`
+
+REM Retrieve a file from the old delivery and put it in the new one
+alias quick_move `iff "%2" == "" then & copy %ISE_EIFFEL\%1 %STUDIO_DIR\%1 >>& %INSTALL_LOG & else & copy %1 %ISE_EIFFEL\%2 %STUDIO_DIR\%2 >>& %INSTALL_LOG & endiff`
+
+REM Create a directory if it doesn't exist already
+alias safe_md `iff not isdir %1 then & iff exist %1 then & fullrf %1 & endiff & md %1 & endiff`
+
+REM Save current path into TMP_PATH
+alias save_path `set TMP_PATH=%@EXECSTR[cd]`
+
+REM Save parent dir of %2 into %1 variable.
+alias set_parent_dir_of `for %%a in ("%2") do set "%1=%%~dpa%%"`
+
+
+REM Helpers for the script
+REM Give some info on what's happening, both in the log and on the screen
+alias remtrace `echo %$ & echo -------------------------------- & echo -------------------------------- >>& %INSTALL_LOG & echo %$ >>& %INSTALL_LOG`
+alias remerror `remtrace ERROR %$ & echo -------------------------------- >>& %ERROR_LOG% & echo %$ >>& %ERROR_LOG & set >>& %ERROR_LOG & echo ======================== >>& %ERROR_LOG `
+REM Give info concerning the elapsed time
+alias give_time_to `remtrace time used to %$: & remtrace %@TIMER[1] & TIMER ON /1 >> NUL`
+REM Clean exit
+alias cancel `echo Exiting... & echo Total time used: & echo %@TIMER[2] & set PATH=%OLD_PATH & cdd %INIT_DIR & set EIFFEL_SRC=%OLD_EIFFEL_SRC & set ISE_LIBRARY=%OLD_ISE_LIBRARY & set ISE_SRC=%OLD_ISE_SRC & iff defined TMP_ISE_EIFFEL then & set ISE_EIFFEL=%TMP_ISE_EIFFEL & set TMP_ISE_EIFFEL= & endiff & *cancel`
+alias CANCEL_ON_ERROR `iff not "%DELIV_SKIP_ERROR%" == "True" then & CANCEL & endiff`
+
+REM CVS Commands: checkout, export
+alias co `call %INIT_DIR\svn_command.bat co %$ >>& %INSTALL_LOG`
+alias exprt `call %INIT_DIR\svn_command.bat --force export %$ >>& %INSTALL_LOG`
+REM We cannot redirect the output here, since the output is redirected to a file
+alias exprtfile `call %INIT_DIR\svn_command.bat cat %$`
+
+REM C Compilation
+REM `default_make` will compile just for the value of ISE_C_COMPILER (currently defaulting to the Microsoft
+REM C compiler.
+alias default_make `finish_freezing.exe -library`
+
+REM `specific_make` will compile using the given C compiler argument. Callers are responsible to set the
+REM compiler path and environment variables properly (e.g. using espawn)
+alias specific_make `save_path & call compile_library.bat %1 >>& %INSTALL_LOG & cd %TMP_PATH`
+alias espawn `set OLD__SET_SIMPLE_ALIAS_SET_=%_SET_SIMPLE_ALIAS_SET_ & unset _SET_SIMPLE_ALIAS_SET_ & *espawn --nologo %$ & set _SET_SIMPLE_ALIAS_SET_=%OLD__SET_SIMPLE_ALIAS_SET_ & unset OLD__SET_SIMPLE_ALIAS_SET_ `
+
+
+REM Eiffel Compilation
+REM Remove a project from the current directory, if any
+alias clean_project `iff exist EIFGENs .or. isdir EIFGENs then & fullrd EIFGENs & endiff`
+REM Finalize at the Eiffel level only
+alias finalize `iff "%2" == "" then & ecb -batch -finalize -c_compile -config %$ >>& %INSTALL_LOG & else & ecb -batch -finalize -c_compile -config %1 -target %2 >>& %INSTALL_LOG & endiff`
+REM Melt at the Eiffel level only
+alias melt `ecb -config %$ >>& %INSTALL_LOG`
+alias freeze `ecb -freeze -c_compile -config %$ >>& %INSTALL_LOG`
+REM Move up the generated finalized exe (its name is the parameter) and delete the compiled files
+alias cleanup_dotnet_eiffel `if exist EIFGENs\%1\F_code\%2 move EIFGENs\%1\F_code\%2 . & if exist EIFGENs\%1\F_code\lib*.dll move EIFGENs\%1\F_code\lib*.dll . & if exist EIFGENs\%1\F_code\Assemblies move EIFGENs\%1\F_code\Assemblies\*.dll . & clean_project`
+alias cleanup_eiffel `if exist EIFGENs\%1\F_code\%2 move EIFGENs\%1\F_code\%2 . & clean_project`
+
+REM Tests....
+alias testpar `if %@INDEX[%$,no_compile] ge 0 echo true`
+
+REM /bin/bash
+alias bash `*bash -o igncr %$`
+
+alias set_version `call %INIT_DIR%\set_version.bat %1 %2 %3`
+
+REM file sharing
+alias share_delivery `scp %1 %ISE_NIGHTLY_SCP_LOCATION% & ssh %ISE_NIGHTLY_SCP_USER%@%ISE_NIGHTLY_SCP_HOST% chmod 444 %ISE_NIGHTLY_SCP_PATH%/%1 `
+
diff --git a/windows_deliv/set_version.bat b/windows_deliv/set_version.bat
new file mode 100644
index 0000000..7c14614
--- /dev/null
+++ b/windows_deliv/set_version.bat
@@ -0,0 +1,40 @@
+@echo off
+rem Set Version
+rem %1 : svn wc path
+rem %2 : 0000
+rem %3 : filename.e
+setlocal
+set SVNWCT=%1
+set REVVAL=%2
+set EFILE=%3
+set EFILE_TMP=%EFILE%.tmp
+set LC_MESSAGES=C
+
+svn info %SVNWCT% > %EFILE_TMP%
+For /f "tokens=1-4 delims=/ " %%a in ('findstr /L /B /C:"Last Changed Rev" %EFILE_TMP%') do (set LASTREV=%%d)
+del /Q %EFILE_TMP%
+if .%LASTREV%. == .. set LASTREV=%REVVAL% -- Script was unable to set this value
+
+if .%EFILE%. == .. GOTO DISPLAY_SVN_REVISION
+
+REM echo Set version: LASTREV=%LASTREV%
+svn revert -q %EFILE%
+sed -e "s/:= %REVVAL%/:= %LASTREV%/" %EFILE% > %EFILE_TMP%
+move /Y %EFILE_TMP% %EFILE% >nul
+
+REM update the version_info ...
+For /f "tokens=1-4 delims=/ " %%a in ('date /U /T') do (set CURRDATE=%%a %%b)
+For /f "tokens=1-4 delims=/ " %%a in ('time /U /T') do (set CURRTIME=%%a)
+
+sed -e "s/Version_info:\ STRING\ =\ \"[0-9a-zA-Z_\,\ \/\:()\.\=\-]*\"/Version_info:\ STRING\ =\ \"Revision:\ %LASTREV% , Compilation:\ %CURRDATE%\ %CURRTIME% , Builder:\ %USERNAME%\"/g" %EFILE% > %EFILE_TMP%
+move /Y %EFILE_TMP% %EFILE% >nul
+goto END
+
+:DISPLAY_SVN_REVISION
+echo %LASTREV%
+goto END
+
+:END
+
+endlocal
+@echo on
diff --git a/windows_deliv/set_version.sh b/windows_deliv/set_version.sh
new file mode 100644
index 0000000..2583198
--- /dev/null
+++ b/windows_deliv/set_version.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# set version number in $3 to the latest SVN repository version number.
+# $1 = SVN repository
+# $2 = pattern to transform
+# $3 = file to process if any, otherwise display version on output
+
+computed_svn_revision=`svn info $1 | grep "Last Changed Rev" | sed -e "s/Last Changed Rev: //"`
+if [[ -z "$2" || -z "$3" ]]; then
+ echo $computed_svn_revision
+else
+ sed -e "s/$2/$computed_svn_revision/" $3 > tmp
+ mv tmp $3
+fi
diff --git a/windows_deliv/svn_command.bat b/windows_deliv/svn_command.bat
new file mode 100644
index 0000000..7b5b727
--- /dev/null
+++ b/windows_deliv/svn_command.bat
@@ -0,0 +1,12 @@
+@echo off
+rem This is required to perform svn commands because they often fails, so we repeat them
+rem until they succeed.
+
+set i=0
+:start
+if not "%i%"=="0" goto finish
+
+svn --config-option config:miscellany:use-commit-times=yes %*
+if not errorlevel 1 set i=1
+goto start
+:finish
diff --git a/windows_deliv/test_examples.btm b/windows_deliv/test_examples.btm
new file mode 100644
index 0000000..7466162
--- /dev/null
+++ b/windows_deliv/test_examples.btm
@@ -0,0 +1,66 @@
+@echo off
+set OLD_PATH=%PATH
+set OLD_EIFFEL_SRC=%EIFFEL_SRC
+set INIT_DIR=%@EXECSTR[cd]
+set TMP_ISE_EIFFEL=%ISE_EIFFEL
+
+call set_aliases.btm
+remtrace Set up the environment
+on break goto broken
+TIMER ON /1 >> NUL
+TIMER ON /2 >> NUL
+if exist %INSTALL_LOG fullrf %INSTALL_LOG
+fullrf %INIT_DIR\examples_errors.log
+set ISE_EIFFEL=%STUDIO_DIR
+
+iff not defined ISE_PLATFORM then
+ set ISE_PLATFORM=windows
+endiff
+iff not defined ISE_C_COMPILER then
+ remtrace ISE_C_COMPILER not defined
+ CANCEL
+endiff
+set PATH=%PATH;%ISE_EIFFEL\studio\spec\%ISE_PLATFORM\bin
+
+alias compile_ace `^
+remtrace Compiling Ace: %@EXECSTR[cd]\%2 &^
+remtrace Melting %@EXECSTR[cd]\%2 &^
+clean_project &^
+freeze %2 &^
+wff &^
+iff not exist EIFGEN\W_code\*.exe then &^
+remtrace *****Error***** %@EXECSTR[cd]\%2 won't freeze. &^
+echo *****Error***** %@EXECSTR[cd]\%2 won't freeze. >> %INIT_DIR\examples_errors.log &^
+endiff &^
+clean_project &^
+remtrace Finalizing %@EXECSTR[cd]\%2 &^
+finalize %2 &^
+iff not exist EIFGEN\F_code\*.exe then &^
+remtrace *****Error***** %@EXECSTR[cd]\%2 won't finalize. &^
+echo *****Error***** %@EXECSTR[cd]\%2 won't finalize. >> %INIT_DIR\examples_errors.log &^
+endiff &^
+cleanup_eiffel *.exe`
+
+alias compile_aces `for %a in (*.ace) do compile_ace %1 %a`
+
+alias test_subdir `^
+echo Testing subdir %@EXECSTR[cd] &^
+iff isdir %2 then &^
+cd %2 &^
+compile_aces %1 &^
+test_subdirs %1\%2 &^
+cd .. &^
+endiff`
+
+alias test_subdirs `^
+echo Testing subdirs of %@EXECSTR[cd] &^
+if exist subdirs.txt fullrf subdirs.txt &^
+dir /AD /b >> subdirs.txt &^
+for %t in (@subdirs.txt) do test_subdir %1 %t`
+
+cdd %STUDIO_DIR\examples
+test_subdirs %STUDIO_DIR\examples
+
+:broken
+CANCEL
+
diff --git a/windows_deliv/test_precompile.btm b/windows_deliv/test_precompile.btm
new file mode 100644
index 0000000..039fd9c
--- /dev/null
+++ b/windows_deliv/test_precompile.btm
@@ -0,0 +1,35 @@
+@echo off
+set OLD_PATH=%PATH
+set OLD_EIFFEL_SRC=%EIFFEL_SRC
+set INIT_DIR=%@EXECSTR[cd]
+set TMP_ISE_EIFFEL=%ISE_EIFFEL
+
+call set_aliases.btm
+remtrace Set up the environment
+on break goto broken
+TIMER ON /1 >> NUL
+TIMER ON /2 >> NUL
+if exist %INSTALL_LOG fullrf %INSTALL_LOG
+if exist %INIT_DIR\precomp_errors.log fullrf %INIT_DIR\precomp_errors.log
+set ISE_EIFFEL=%INSTALL_DIR
+
+alias precompile `cdd %1 &^
+echo Precompile %1 &^
+clean_project &^
+ec -batch -precompile >>& %INSTALL_LOG &^
+wff &^
+iff not exist EIFGEN\W_CODE\%ISE_C_COMPILER\driver.exe .or. not exist EIFGEN\W_CODE\%ISE_C_COMPILER\precomp.lib then &^
+echo *****Error***** %1 won't precompile! >> %INIT_DIR\precomp_errors.log &^
+else &^
+del /exsq *.c *.obj big_fil* *.pch *.BAK finished Makef* Cobj* *.ilc &^
+echo %1 precompiled OK. >> %INIT_DIR\precomp_errors.log &^
+endiff &^
+cd .. `
+
+cdd %ISE_EIFFEL\precomp\spec\%ISE_PLATFORM
+if exist subdirs.txt fullrf subdirs.txt
+dir /b *. >> subdirs.txt
+for %t in (@subdirs.txt) do precompile %t
+
+:broken
+CANCEL
diff --git a/windows_deliv/update_libraries.btm b/windows_deliv/update_libraries.btm
new file mode 100644
index 0000000..aeb5830
--- /dev/null
+++ b/windows_deliv/update_libraries.btm
@@ -0,0 +1,27 @@
+remtrace Update the Eiffel libraries source
+
+remtrace Compile the Eiffel libraries C code
+remtrace com
+cdd %1\library\com\Clib
+default_make
+remtrace com run-time
+cdd %1\library\com\Clib_runtime
+default_make
+remtrace curl
+cdd %1\library\cURL\Clib
+default_make
+remtrace encryption
+cdd %1\library\encryption\Clib
+default_make
+remtrace net
+cdd %1\library\net\Clib
+default_make
+remtrace web_browser
+cdd %1\library\web_browser\clib
+default_make
+remtrace wel
+cdd %1\library\wel\clib
+default_make
+remtrace vision2
+cdd %1\library\vision2\Clib
+default_make