<?xml version="1.0" encoding="UTF-8"?>
<install4j version="12.0.2" transformSequenceNumber="12">
  <directoryPresets config="./images" />
  <application name="${compiler:APP_NAME}" applicationId="${compiler:APPLICATION_ID}" mediaDir="../../target/distributions" mediaFilePattern="${compiler:FILE_PREFIX}_${compiler:sys.version}" compression="9" lzmaCompression="true" shortName="${compiler:APP_SHORT_NAME}" publisher="${compiler:PUBLISHER}" publisherWeb="${compiler:PUBLISHER_URL}" version="${compiler:sys.version}" allPathsRelative="true" autoSave="true" macVolumeId="419a18ebe125f2bf" javaMinVersion="17" allowBetaVM="true">
    <languages>
      <additionalLanguages>
        <language id="zh_CN" />
        <language id="cs" />
        <language id="nl" />
        <language id="fr" />
        <language id="de" />
        <language id="pl" />
        <language id="pt" />
        <language id="es" />
      </additionalLanguages>
    </languages>
    <variables>
      <variable name="APP_NAME" value="Openfire" />
      <variable name="APP_SHORT_NAME" value="openfire" />
      <variable name="PRODUCT_NAME" value="openfire" />
      <variable name="PUBLISHER" value="Ignite Realtime RTC Community" />
      <variable name="PUBLISHER_URL" value="www.igniterealtime.org" />
      <variable name="RELEASE_DIR" value="distribution-base" />
      <variable name="RELEASE_ROOT_PATH" value="..${compiler:sys.fileSeparator}..${compiler:sys.fileSeparator}target" />
      <variable name="RELEASE_FULL_PATH" value="${compiler:RELEASE_ROOT_PATH}${compiler:sys.fileSeparator}${compiler:RELEASE_DIR}" />
      <variable name="FILE_PREFIX" value="${compiler:APP_SHORT_NAME}" />
      <variable name="APPLICATION_ID" value="6886-9911-0474-3571" />
      <variable name="UNIX_INSTALL_DIR" value="openfire" />
      <variable name="WINDOWS_INSTALL_DIR" value="Openfire" />
    </variables>
  </application>
  <files keepModificationTimes="true">
    <mountPoints>
      <mountPoint id="33" location="resources" />
      <mountPoint id="34" location="resources/security" />
      <mountPoint id="46" location="conf" />
      <mountPoint id="47" location="lib" />
      <mountPoint id="1" />
    </mountPoints>
    <entries>
      <fileEntry mountPoint="34" file="${compiler:RELEASE_FULL_PATH}/resources/security/truststore" overwriteMode="0" uninstallMode="1" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="34" file="${compiler:RELEASE_FULL_PATH}/resources/security/keystore" overwriteMode="0" uninstallMode="1" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="46" file="${compiler:RELEASE_FULL_PATH}/conf/openfire.xml" overwriteMode="0" uninstallMode="1" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="46" file="${compiler:RELEASE_FULL_PATH}/conf/security.xml" overwriteMode="0" uninstallMode="1" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="47" file="${compiler:RELEASE_FULL_PATH}/lib/log4j2.xml" overwriteMode="0" uninstallMode="1" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <dirEntry mountPoint="1" file="${compiler:RELEASE_FULL_PATH}" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" overrideDirMode="true">
        <exclude>
          <entry location="conf/openfire.xml" />
          <entry location="conf/security.xml" />
          <entry location="lib/log4j2.xml" />
          <entry location="resources/security/keystore" />
          <entry location="resources/security/truststore" />
        </exclude>
      </dirEntry>
    </entries>
  </files>
  <launchers>
    <launcher name="Openfire" id="2" excludeFromMenu="true">
      <executable name="${compiler:PRODUCT_NAME}-service" iconSet="true" executableDir="bin" stderrFile="../logs/stderror.log" redirectStdout="true" stdoutFile="../logs/stdout.log" executableMode="service" singleInstance="true" serviceDescription="${compiler:APP_NAME}" dpiAware="false">
        <versionInfo include="true" fileDescription="${compiler:APP_NAME}" legalCopyright="${compiler:PUBLISHER}" internalName="${compiler:APP_NAME}" />
      </executable>
      <java mainClass="org.jivesoftware.openfire.starter.ServerStarter" vmParameters="-Dlog4j.configurationFile=&quot;${launcher:sys.launcherDirectory}/../lib/log4j2.xml&quot; -Dlog4j2.formatMsgNoLookups=true -Djdk.tls.ephemeralDHKeySize=matched -Djsse.SSLEngine.acceptLargeFragments=true -Djava.net.preferIPv6Addresses=system -DopenfireHome=&quot;${launcher:sys.launcherDirectory}../&quot;" preferredVM="server">
        <classPath>
          <scanDirectory location="lib" failOnError="false" />
        </classPath>
      </java>
      <vmOptionsFile mode="none" />
      <iconImageFiles>
        <file path="./images/openfire-16.png" />
        <file path="./images/openfire-32.png" />
        <file path="./images/openfire-48.png" />
        <file path="./images/openfire-128.png" />
        <file path="./images/openfire-256.png" />
        <file path="./images/openfire-512.png" />
      </iconImageFiles>
    </launcher>
    <launcher name="GUI Launcher" id="12" menuName="${compiler:APP_NAME} Server">
      <executable name="${compiler:PRODUCT_NAME}" iconSet="true" executableDir="bin" stderrFile="../logs/stderr.log" redirectStdout="true" stdoutFile="../logs/stdout.log" executableMode="gui" singleInstance="true" executionLevel="highestAvailable" dpiAware="false">
        <versionInfo include="true" fileDescription="${compiler:APP_NAME} Launcher" legalCopyright="${compiler:PUBLISHER}" internalName="${compiler:APP_NAME}" />
      </executable>
      <java mainClass="org.jivesoftware.openfire.launcher.Launcher" vmParameters="-Dlog4j.configurationFile=&quot;${launcher:sys.launcherDirectory}/../lib/log4j2.xml&quot; -Dlog4j2.formatMsgNoLookups=true -Djdk.tls.ephemeralDHKeySize=matched -Djsse.SSLEngine.acceptLargeFragments=true -Djava.net.preferIPv6Addresses=system -DopenfireHome=&quot;${launcher:sys.launcherDirectory}../&quot;">
        <classPath>
          <scanDirectory location="lib" failOnError="false" />
        </classPath>
      </java>
      <vmOptionsFile mode="none" />
      <iconImageFiles>
        <file path="./images/openfire-16.png" />
        <file path="./images/openfire-32.png" />
        <file path="./images/openfire-48.png" />
        <file path="./images/openfire-128.png" />
        <file path="./images/openfire-256.png" />
        <file path="./images/openfire-512.png" />
      </iconImageFiles>
    </launcher>
    <launcher name="openfired" id="15" excludeFromMenu="true">
      <executable name="${compiler:PRODUCT_NAME}d" iconSet="true" executableDir="bin" redirectStderr="false" executableMode="console" singleInstance="true" executionLevel="highestAvailable" dpiAware="false">
        <versionInfo include="true" fileDescription="${compiler:APP_NAME} Server" legalCopyright="${compiler:PUBLISHER}" internalName="${compiler:APP_NAME}" />
      </executable>
      <java mainClass="org.jivesoftware.openfire.starter.ServerStarter" vmParameters="-Dlog4j.configurationFile=&quot;${launcher:sys.launcherDirectory}/../lib/log4j2.xml&quot; -Dlog4j2.formatMsgNoLookups=true -Djdk.tls.ephemeralDHKeySize=matched -Djsse.SSLEngine.acceptLargeFragments=true -Djava.net.preferIPv6Addresses=system -DopenfireHome=&quot;${launcher:sys.launcherDirectory}../&quot;" preferredVM="server">
        <classPath>
          <scanDirectory location="lib" failOnError="false" />
        </classPath>
      </java>
      <vmOptionsFile mode="none" />
      <iconImageFiles>
        <file path="./images/openfire-16.png" />
        <file path="./images/openfire-32.png" />
        <file path="./images/openfire-48.png" />
        <file path="./images/openfire-128.png" />
        <file path="./images/openfire-256.png" />
        <file path="./images/openfire-512.png" />
      </iconImageFiles>
    </launcher>
  </launchers>
  <installerGui>
    <customCode>
      <archive location="${compiler:RELEASE_FULL_PATH}/lib/startup.jar" />
    </customCode>
    <applications>
      <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" actionElevationType="elevated" styleId="1406" launchInNewProcess="false">
        <serializedBean>
          <property name="frameSizeClientArea" type="boolean" value="false" />
        </serializedBean>
        <styleOverrides>
          <styleOverride name="Customize title bar" enabled="true">
            <group id="1420" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
              <serializedBean>
                <property name="backgroundColor">
                  <object class="com.install4j.runtime.beans.LightOrDarkColor">
                    <object class="java.awt.Color">
                      <int>255</int>
                      <int>255</int>
                      <int>255</int>
                      <int>255</int>
                    </object>
                    <object class="java.awt.Color">
                      <int>49</int>
                      <int>52</int>
                      <int>53</int>
                      <int>255</int>
                    </object>
                  </object>
                </property>
                <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
                <property name="imageFile">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>./images/openfire-32.png</string>
                  </object>
                </property>
              </serializedBean>
            </group>
          </styleOverride>
        </styleOverrides>
        <startup>
          <screen id="15" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
            <actions>
              <action id="1294" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none">
                <serializedBean>
                  <property name="failIfNotRootUnix" type="boolean" value="true" />
                  <property name="linuxPrivilegeRequirement" type="enum" class="com.install4j.runtime.beans.actions.misc.PrivilegeRequirement" value="ROOT" />
                  <property name="obtainIfAdminMac" type="boolean" value="true" />
                  <property name="obtainIfNormalMac" type="boolean" value="true" />
                  <property name="obtainIfNormalWin" type="boolean" value="true" />
                </serializedBean>
              </action>
              <action id="1430" beanClass="com.install4j.runtime.beans.actions.control.SetInstallationDirectoryAction" actionElevationType="none" />
            </actions>
          </screen>
        </startup>
        <screens>
          <screen id="54" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" styleId="1412">
            <actions>
              <action id="1295" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" multiExec="true">
                <condition>context.getBooleanVariable("sys.streamlinedInstallation")</condition>
              </action>
            </actions>
            <formComponents>
              <formComponent id="1298" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                <serializedBean>
                  <property name="labelText" type="string">${form:welcomeMessage}</property>
                </serializedBean>
                <visibilityScript>!context.isConsole()</visibilityScript>
              </formComponent>
              <formComponent id="1299" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
                <serializedBean>
                  <property name="consoleScript">
                    <object class="com.install4j.api.beans.ScriptProperty">
                      <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
return console.askOkCancel(message, true);
</property>
                    </object>
                  </property>
                </serializedBean>
              </formComponent>
              <formComponent id="1300" beanClass="com.install4j.runtime.beans.formcomponents.StreamlinedInstallationChooserComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
                <serializedBean>
                  <property name="streamlinedInstallationStrategy" type="enum" class="com.install4j.runtime.beans.formcomponents.StreamlinedInstallationStrategy" value="UPDATE_ONLY" />
                </serializedBean>
                <externalParametrizationPropertyNames>
                  <propertyName>streamlinedInstallationStrategy</propertyName>
                </externalParametrizationPropertyNames>
              </formComponent>
              <formComponent id="1301" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
                <serializedBean>
                  <property name="labelText" type="string">${i18n:ClickNext}</property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="55" beanClass="com.install4j.runtime.beans.screens.LicenseScreen">
            <formComponents>
              <formComponent id="1304" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                <serializedBean>
                  <property name="labelText" type="string">${i18n:LicenseLabel3}</property>
                </serializedBean>
              </formComponent>
              <formComponent id="1305" beanClass="com.install4j.runtime.beans.formcomponents.LicenseComponent" useExternalParametrization="true" externalParametrizationName="License Agreement" externalParametrizationMode="include">
                <serializedBean>
                  <property name="displayedTextFile" id="LocalizedExternalFile0">
                    <property name="languageIdToExternalFile">
                      <entry>
                        <string>en</string>
                        <object class="com.install4j.api.beans.ExternalFile">
                          <string>${compiler:RELEASE_FULL_PATH}/LICENSE.html</string>
                        </object>
                      </entry>
                    </property>
                  </property>
                  <property name="fillVertical" type="boolean" value="true" />
                </serializedBean>
                <externalParametrizationPropertyNames>
                  <propertyName>textSource</propertyName>
                  <propertyName>displayedText</propertyName>
                  <propertyName>displayedTextFile</propertyName>
                  <propertyName>variableName</propertyName>
                  <propertyName>acceptInitiallySelected</propertyName>
                  <propertyName>readAllRequired</propertyName>
                </externalParametrizationPropertyNames>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="56" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen">
            <condition>!context.getBooleanVariable("sys.streamlinedInstallation")</condition>
            <formComponents>
              <formComponent id="1308" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
                <serializedBean>
                  <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
                </serializedBean>
              </formComponent>
              <formComponent id="1309" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
                <serializedBean>
                  <property name="requestFocus" type="boolean" value="true" />
                  <property name="showRequiredDiskSpace" type="boolean" value="false" />
                </serializedBean>
                <externalParametrizationPropertyNames>
                  <propertyName>suggestAppDir</propertyName>
                  <propertyName>validateApplicationId</propertyName>
                  <propertyName>existingDirWarning</propertyName>
                  <propertyName>checkWritable</propertyName>
                  <propertyName>manualEntryAllowed</propertyName>
                  <propertyName>checkFreeSpace</propertyName>
                  <propertyName>showRequiredDiskSpace</propertyName>
                  <propertyName>showFreeDiskSpace</propertyName>
                  <propertyName>allowSpacesOnUnix</propertyName>
                  <propertyName>validationScript</propertyName>
                  <propertyName>standardValidation</propertyName>
                </externalParametrizationPropertyNames>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="57" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen">
            <formComponents>
              <formComponent id="1312" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                <serializedBean>
                  <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
                </serializedBean>
                <visibilityScript>!context.isConsole()</visibilityScript>
              </formComponent>
              <formComponent id="1313" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
                <serializedBean>
                  <property name="fillVertical" type="boolean" value="true" />
                </serializedBean>
                <externalParametrizationPropertyNames>
                  <propertyName>selectionChangedScript</propertyName>
                </externalParametrizationPropertyNames>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="58" beanClass="com.install4j.runtime.beans.screens.StandardProgramGroupScreen">
            <serializedBean>
              <property name="programGroupName" type="string">${compiler:sys.fullName}</property>
            </serializedBean>
            <condition>!context.getBooleanVariable("sys.streamlinedInstallation")</condition>
          </screen>
          <screen id="59" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen">
            <formComponents>
              <formComponent id="1317" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                <serializedBean>
                  <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
                </serializedBean>
              </formComponent>
              <formComponent id="1318" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
                <serializedBean>
                  <property name="fillVertical" type="boolean" value="true" />
                </serializedBean>
                <externalParametrizationPropertyNames>
                  <propertyName>showSelectionButtons</propertyName>
                  <propertyName>selectionButtonPosition</propertyName>
                </externalParametrizationPropertyNames>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="60" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true">
            <actions>
              <action id="61" beanClass="com.install4j.runtime.beans.actions.UninstallPreviousAction" />
              <action id="62" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
              <action id="1264" beanClass="com.install4j.runtime.beans.actions.files.SetModeAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="files" type="array" class="java.io.File" length="1">
                    <element index="0">
                      <object class="java.io.File">
                        <string>bin/openfire.sh</string>
                      </object>
                    </element>
                  </property>
                  <property name="mode" type="string">755</property>
                </serializedBean>
              </action>
              <action id="63" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDefaultStartMenuEntriesAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="folderName" type="string">${installer:sys.programGroupName}</property>
                  <property name="linkDirectory" type="string">${installer:sys.symlinkDir}</property>
                </serializedBean>
                <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
              </action>
              <action id="64" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
                </serializedBean>
              </action>
              <action id="1346" beanClass="com.install4j.runtime.beans.actions.services.InstallServiceAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="description" type="string">Openfire Service</property>
                  <property name="launcherId" type="string">2</property>
                </serializedBean>
              </action>
            </actions>
            <formComponents>
              <formComponent id="1348" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
                <serializedBean>
                  <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="1280" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" styleId="1412" finishScreen="true">
            <actions>
              <action id="1347" beanClass="com.install4j.runtime.beans.actions.services.StartServiceAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="autostartOnly" type="boolean" value="true" />
                  <property name="launcherId" type="string">2</property>
                </serializedBean>
                <condition>context.getBooleanVariable("executeLauncherAction") &amp;&amp; (!context.isUnattended())</condition>
              </action>
              <action id="1348" beanClass="com.install4j.runtime.beans.actions.finish.ShowURLAction" actionElevationType="none">
                <serializedBean>
                  <property name="urlSpec" type="string">http://localhost:9090</property>
                </serializedBean>
                <condition>context.getBooleanVariable("executeLauncherAction") &amp;&amp; (!context.isUnattended())</condition>
              </action>
            </actions>
            <formComponents>
              <formComponent id="1353" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
                <serializedBean>
                  <property name="labelText" type="string">${form:finishedMessage}</property>
                </serializedBean>
              </formComponent>
              <formComponent name="Execute launcher" id="1293" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                <serializedBean>
                  <property name="checkboxText" type="string">Start Openfire Service</property>
                  <property name="initiallySelected" type="boolean" value="true" />
                  <property name="variableName" type="string">executeLauncherAction</property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
        </screens>
      </application>
      <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" actionElevationType="elevated" styleId="1406" launchInNewProcess="false">
        <serializedBean>
          <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
          <property name="frameSizeClientArea" type="boolean" value="false" />
          <property name="useCustomMacosExecutableName" type="boolean" value="true" />
        </serializedBean>
        <styleOverrides>
          <styleOverride name="Customize title bar" enabled="true">
            <group id="1420" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
              <serializedBean>
                <property name="backgroundColor">
                  <object class="com.install4j.runtime.beans.LightOrDarkColor">
                    <object class="java.awt.Color">
                      <int>255</int>
                      <int>255</int>
                      <int>255</int>
                      <int>255</int>
                    </object>
                    <object class="java.awt.Color">
                      <int>49</int>
                      <int>52</int>
                      <int>53</int>
                      <int>255</int>
                    </object>
                  </object>
                </property>
                <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
                <property name="imageFile">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>./images/openfire-32.png</string>
                  </object>
                </property>
              </serializedBean>
            </group>
          </styleOverride>
        </styleOverrides>
        <startup>
          <screen id="16" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
            <actions>
              <action id="1296" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" />
              <action id="1297" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" />
              <action id="1350" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none">
                <serializedBean>
                  <property name="failIfNotRootUnix" type="boolean" value="true" />
                  <property name="linuxPrivilegeRequirement" type="enum" class="com.install4j.runtime.beans.actions.misc.PrivilegeRequirement" value="ROOT" />
                  <property name="obtainIfAdminMac" type="boolean" value="true" />
                  <property name="obtainIfNormalMac" type="boolean" value="true" />
                  <property name="obtainIfNormalWin" type="boolean" value="true" />
                </serializedBean>
              </action>
            </actions>
          </screen>
        </startup>
        <screens>
          <screen id="70" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" styleId="1412">
            <formComponents>
              <formComponent id="1361" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
                <serializedBean>
                  <property name="labelText" type="string">${form:welcomeMessage}</property>
                </serializedBean>
                <visibilityScript>!context.isConsole()</visibilityScript>
              </formComponent>
              <formComponent id="1362" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
                <serializedBean>
                  <property name="consoleScript">
                    <object class="com.install4j.api.beans.ScriptProperty">
                      <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
return console.askYesNo(message, true);
</property>
                    </object>
                  </property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="71" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen">
            <actions>
              <action id="1349" beanClass="com.install4j.runtime.beans.actions.services.StopServiceAction" actionElevationType="elevated">
                <serializedBean>
                  <property name="launcherId" type="string">2</property>
                </serializedBean>
              </action>
              <action id="72" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" />
              <action name="Delete lib directory" id="1263" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction">
                <serializedBean>
                  <property name="files" type="array" class="java.io.File" length="1">
                    <element index="0">
                      <object class="java.io.File">
                        <string>lib</string>
                      </object>
                    </element>
                  </property>
                  <property name="recursive" type="boolean" value="true" />
                </serializedBean>
              </action>
            </actions>
            <formComponents>
              <formComponent id="1368" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
                <serializedBean>
                  <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
          <screen id="73" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" finishScreen="true" />
          <screen id="74" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="1412" finishScreen="true">
            <formComponents>
              <formComponent id="1371" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
                <serializedBean>
                  <property name="labelText" type="string">${form:successMessage}</property>
                </serializedBean>
              </formComponent>
            </formComponents>
          </screen>
        </screens>
      </application>
    </applications>
    <styles defaultStyleId="1406">
      <style name="Standard" id="1406" beanClass="com.install4j.runtime.beans.styles.FormStyle">
        <formComponents>
          <formComponent name="Header" id="1407" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
            <serializedBean>
              <property name="styleId" type="string">1419</property>
            </serializedBean>
          </formComponent>
          <group name="Main" id="1408" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
            <beans>
              <formComponent id="1409" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
              <formComponent name="Watermark" id="1410" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0">
                <serializedBean>
                  <property name="enabledTitleText" type="boolean" value="false" />
                  <property name="labelText" type="string">install4j</property>
                </serializedBean>
              </formComponent>
              <formComponent name="Footer" id="1411" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
                <serializedBean>
                  <property name="styleId" type="string">1423</property>
                </serializedBean>
              </formComponent>
            </beans>
          </group>
        </formComponents>
      </style>
      <style name="Banner" id="1412" beanClass="com.install4j.runtime.beans.styles.FormStyle">
        <formComponents>
          <group id="1413" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
            <serializedBean>
              <property name="backgroundColor">
                <object class="com.install4j.runtime.beans.LightOrDarkColor">
                  <object class="java.awt.Color">
                    <int>255</int>
                    <int>255</int>
                    <int>255</int>
                    <int>255</int>
                  </object>
                  <object class="java.awt.Color">
                    <int>49</int>
                    <int>52</int>
                    <int>53</int>
                    <int>255</int>
                  </object>
                </object>
              </property>
              <property name="borderSides">
                <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
                  <property name="bottom" type="boolean" value="true" />
                </object>
              </property>
              <property name="imageEdgeBackgroundColor">
                <object class="com.install4j.runtime.beans.LightOrDarkColor">
                  <object class="java.awt.Color">
                    <int>27</int>
                    <int>143</int>
                    <int>220</int>
                    <int>255</int>
                  </object>
                  <object class="java.awt.Color">
                    <int>0</int>
                    <int>73</int>
                    <int>150</int>
                    <int>255</int>
                  </object>
                </object>
              </property>
              <property name="imageFile">
                <object class="com.install4j.api.beans.ExternalFile">
                  <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
                </object>
              </property>
              <property name="insets">
                <object class="java.awt.Insets">
                  <int>5</int>
                  <int>10</int>
                  <int>10</int>
                  <int>10</int>
                </object>
              </property>
            </serializedBean>
            <beans>
              <formComponent id="1414" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
                <serializedBean>
                  <property name="labelWidgetStyle" id="LabelWidgetStyle0">
                    <property name="fontDescriptor">
                      <property name="fontSizePercent" type="int" value="130" />
                      <property name="fontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
                      <property name="fontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
                    </property>
                  </property>
                  <property name="labelWidgetStyleId" type="null" />
                </serializedBean>
              </formComponent>
              <formComponent id="1415" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
              <formComponent id="1416" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
            </beans>
            <externalParametrizationPropertyNames>
              <propertyName>imageAnchor</propertyName>
              <propertyName>imageEdgeBackgroundColor</propertyName>
              <propertyName>imageFile</propertyName>
            </externalParametrizationPropertyNames>
          </group>
          <formComponent id="1417" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
            <serializedBean>
              <property name="styleId" type="string">1423</property>
            </serializedBean>
          </formComponent>
        </formComponents>
      </style>
      <group name="Style components" id="1418" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
        <beans>
          <style name="Standard header" id="1419" beanClass="com.install4j.runtime.beans.styles.FormStyle">
            <serializedBean>
              <property name="fillVertical" type="boolean" value="false" />
              <property name="standalone" type="boolean" value="false" />
              <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
            </serializedBean>
            <formComponents>
              <group id="1420" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
                <serializedBean>
                  <property name="backgroundColor">
                    <object class="com.install4j.runtime.beans.LightOrDarkColor">
                      <object class="java.awt.Color">
                        <int>255</int>
                        <int>255</int>
                        <int>255</int>
                        <int>255</int>
                      </object>
                      <object class="java.awt.Color">
                        <int>49</int>
                        <int>52</int>
                        <int>53</int>
                        <int>255</int>
                      </object>
                    </object>
                  </property>
                  <property name="borderSides">
                    <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
                      <property name="bottom" type="boolean" value="true" />
                    </object>
                  </property>
                  <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
                  <property name="imageEdgeBorderWidth" type="int" value="2" />
                  <property name="imageFile">
                    <object class="com.install4j.api.beans.ExternalFile">
                      <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
                    </object>
                  </property>
                  <property name="imageInsets">
                    <object class="java.awt.Insets">
                      <int>0</int>
                      <int>5</int>
                      <int>1</int>
                      <int>1</int>
                    </object>
                  </property>
                  <property name="insets">
                    <object class="java.awt.Insets">
                      <int>0</int>
                      <int>20</int>
                      <int>0</int>
                      <int>10</int>
                    </object>
                  </property>
                </serializedBean>
                <beans>
                  <formComponent name="Title" id="1421" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
                    <serializedBean>
                      <property name="labelWidgetStyle" id="LabelWidgetStyle0">
                        <property name="fontDescriptor">
                          <property name="fontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
                          <property name="fontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
                        </property>
                      </property>
                      <property name="labelWidgetStyleId" type="null" />
                    </serializedBean>
                  </formComponent>
                  <formComponent name="Subtitle" id="1422" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
                    <serializedBean>
                      <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
                    </serializedBean>
                  </formComponent>
                </beans>
                <externalParametrizationPropertyNames>
                  <propertyName>backgroundColor</propertyName>
                  <propertyName>foregroundColor</propertyName>
                  <propertyName>imageAnchor</propertyName>
                  <propertyName>imageFile</propertyName>
                  <propertyName>imageOverlap</propertyName>
                </externalParametrizationPropertyNames>
              </group>
            </formComponents>
          </style>
          <style name="Standard footer" id="1423" beanClass="com.install4j.runtime.beans.styles.FormStyle">
            <serializedBean>
              <property name="fillVertical" type="boolean" value="false" />
              <property name="standalone" type="boolean" value="false" />
              <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
            </serializedBean>
            <formComponents>
              <group id="1424" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
                <serializedBean>
                  <property name="alignFirstLabel" type="boolean" value="false" />
                  <property name="insets">
                    <object class="java.awt.Insets">
                      <int>3</int>
                      <int>5</int>
                      <int>8</int>
                      <int>5</int>
                    </object>
                  </property>
                </serializedBean>
                <beans>
                  <formComponent id="1425" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
                  <formComponent name="Back button" id="1426" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
                    <serializedBean>
                      <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
                    </serializedBean>
                  </formComponent>
                  <formComponent name="Next button" id="1427" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
                    <serializedBean>
                      <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
                    </serializedBean>
                  </formComponent>
                  <formComponent name="Cancel button" id="1428" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
                    <serializedBean>
                      <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
                    </serializedBean>
                  </formComponent>
                </beans>
              </group>
            </formComponents>
          </style>
        </beans>
      </group>
    </styles>
    <widgetStyles defaultWidgetStyleId="121">
      <widgetStyle name="Standard" id="121" beanClass="com.install4j.runtime.beans.widgets.WidgetStyleCollection" />
    </widgetStyles>
  </installerGui>
  <mediaSets>
    <windows name="Windows x86" id="3" installDir="${compiler:WINDOWS_INSTALL_DIR}" overridePrincipalLanguage="true" architecture="32">
      <exclude>
        <entry location="bin/openfirectl" />
        <entry location="bin/extra/redhat-postinstall.sh" />
        <entry location="bin/extra/openfired" />
        <entry location="bin/extra/openfire-launchd-wrapper.sh" />
        <entry location="bin/extra/embedded-db-viewer.sh" />
        <entry location="bin/extra/redhat" />
        <entry location="bin/openfire.sh" />
      </exclude>
      <jreBundle jreBundleSource="none" />
    </windows>
    <unixArchive name="Unix Archive" id="30" installDir="${compiler:PRODUCT_NAME}" overridePrincipalLanguage="true">
      <excludedLaunchers>
        <launcher id="2" />
        <launcher id="12" />
        <launcher id="15" />
      </excludedLaunchers>
      <exclude>
        <entry location="bin/openfire.bat" />
        <entry location="bin/extra/embedded-db-viewer.bat" />
      </exclude>
      <jreBundle jreBundleSource="none" />
    </unixArchive>
    <windowsArchive name="Windows Archive" id="31" installDir="${compiler:APP_SHORT_NAME}" overridePrincipalLanguage="true" architecture="32">
      <exclude>
        <entry location="bin/openfirectl" />
        <entry location="bin/extra/redhat-postinstall.sh" />
        <entry location="bin/extra/openfired" />
        <entry location="bin/extra/openfire-launchd-wrapper.sh" />
        <entry location="bin/extra/embedded-db-viewer.sh" />
        <entry location="bin/extra/redhat" />
        <entry location="bin/openfire.sh" />
      </exclude>
      <jreBundle jreBundleSource="none" />
    </windowsArchive>
    <windows name="Windows x64" id="1354" mediaFileName="${compiler:FILE_PREFIX}_${compiler:sys.version}_x64" installDir="${compiler:WINDOWS_INSTALL_DIR}" overridePrincipalLanguage="true" architecture="64">
      <exclude>
        <entry location="bin/openfirectl" />
        <entry location="bin/extra/redhat-postinstall.sh" />
        <entry location="bin/extra/openfired" />
        <entry location="bin/extra/openfire-launchd-wrapper.sh" />
        <entry location="bin/extra/embedded-db-viewer.sh" />
        <entry location="bin/extra/redhat" />
        <entry location="bin/openfire.sh" />
      </exclude>
      <jreBundle jreBundleSource="none" />
    </windows>
    <macosFolder name="macOS Folder" id="1429" architecture="universal">
      <exclude>
        <entry location="bin/openfire.bat" />
        <entry location="bin/extra/redhat-postinstall.sh" />
        <entry location="bin/extra/openfired" />
        <entry location="bin/extra/embedded-db-viewer.bat" />
        <entry location="bin/extra/openfire-launchd-wrapper.sh" />
        <entry location="bin/extra/redhat" />
      </exclude>
      <jreBundle jreBundleSource="none" />
    </macosFolder>
  </mediaSets>
</install4j>
