<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<!--
   Copyright (c) 2015, 2021 Contributors to the Eclipse Foundation

   This program and the accompanying materials
   are made available under the terms of the Eclipse Public License 2.0
   which accompanies this distribution, and is available at
   https://www.eclipse.org/legal/epl-2.0/

   SPDX-License-Identifier: EPL-2.0
-->
<product name="Stand-alone C/C++ GDB Debugger" uid="org.eclipse.cdt.debug.application.product" id="org.eclipse.cdt.debug.application.product" application="org.eclipse.cdt.debug.application.app" version="10.6.0.qualifier" useFeatures="false" includeLaunchers="true">

   <aboutInfo>
      <image path="/org.eclipse.cdt.debug.application/icons/about.png"/>
      <text>
         %aboutText
      </text>
   </aboutInfo>

   <configIni use="default">
   </configIni>

   <launcherArgs>
      <programArgs>-data @noDefault
      </programArgs>
      <vmArgsLin>-Xms100m -Xmx512m  -Dosgi.requiredJavaVersion=11
      </vmArgsLin>
      <vmArgsMac>-Xms100m -Xmx512m  -XstartOnFirstThread -Dosgi.requiredJavaVersion=11 -Dorg.eclipse.swt.internal.carbon.smallFonts
      </vmArgsMac>
      <vmArgsWin>-Xms100m -Xmx512m   -Dosgi.requiredJavaVersion=11
      </vmArgsWin>
   </launcherArgs>

   <windowImages i16="/org.eclipse.cdt.debug.application/icons/cc16.png" i32="/org.eclipse.cdt.debug.application/icons/cc32.png" i48="/org.eclipse.cdt.debug.application/icons/cc48.png" i64="/org.eclipse.cdt.debug.application/icons/cc64.png" i128="/org.eclipse.cdt.debug.application/icons/cc128.png" i256="/org.eclipse.cdt.debug.application/icons/cc.png"/>

   <launcher name="cdtdebug">
      <linux icon="../org.eclipse.cdt.debug.application/icons/cc.xpm"/>
      <macosx icon="../org.eclipse.cdt.debug.application/icons/cc.icns"/>
      <win useIco="true">
         <ico path="../org.eclipse.cdt.debug.application/icons/cc.ico"/>
         <bmp/>
      </win>
   </launcher>

   <vm>
      <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11</linux>
      <macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11</macos>
      <solaris include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11</solaris>
      <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11</windows>
   </vm>

   <license>
        <url>http://eclipse.org/legal/epl/notice.php</url>
        <text>
   Eclipse Foundation Software User Agreement
April 9, 2014

Usage Of Content

THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR
OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;).
USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS
AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR
NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU
AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT
AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS
OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE
TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS
OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
BELOW, THEN YOU MAY NOT USE THE CONTENT.

Applicable Licenses

Unless otherwise indicated, all Content made available by the
Eclipse Foundation is provided to you under the terms and conditions of
the Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is
provided with this Content and is also available at https://www.eclipse.org/legal/epl-2.0/.
For purposes of the EPL, &quot;Program&quot; will mean the Content.

Content includes, but is not limited to, source code, object code,
documentation and other files maintained in the Eclipse Foundation source code
repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available
as downloadable archives (&quot;Downloads&quot;).

    - Content may be structured and packaged into modules to facilitate delivering,
      extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;),
      plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
    - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)
      in a directory named &quot;plugins&quot;.
    - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.
      Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.
      Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version
      numbers of the Plug-ins and/or Fragments associated with that Feature.
    - Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files
      named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.

The terms and conditions governing Plug-ins and Fragments should be
contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and
conditions governing Features and Included Features should be contained
in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature
Licenses may be located in any directory of a Download or Module
including, but not limited to the following locations:

    - The top-level (root) directory
    - Plug-in and Fragment directories
    - Inside Plug-ins and Fragments packaged as JARs
    - Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
    - Feature directories

Note: if a Feature made available by the Eclipse Foundation is installed using the
Provisioning Technology (as defined below), you must agree to a license (&quot;Feature
Update License&quot;) during the installation process. If the Feature contains
Included Features, the Feature Update License should either provide you
with the terms and conditions governing the Included Features or inform
you where you can locate them. Feature Update Licenses may be found in
the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
Such Abouts, Feature Licenses, and Feature Update Licenses contain the
terms and conditions (or references to such terms and conditions) that
govern your use of the associated Content in that directory.

THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER
TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):

    - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)
    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)

IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR
TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License
is provided, please contact the Eclipse Foundation to determine what terms and conditions
govern that particular Content.


Use of Provisioning Technology

The Eclipse Foundation makes available provisioning software, examples of which include,
but are not limited to, p2 and the Eclipse Update Manager (&quot;Provisioning Technology&quot;) for
the purpose of allowing users to install software, documentation, information and/or
other materials (collectively &quot;Installable Software&quot;). This capability is provided with
the intent of allowing such users to install, extend and update Eclipse-based products.
Information about packaging Installable Software is available at
http://eclipse.org/equinox/p2/repository_packaging.html (&quot;Specification&quot;).

You may use Provisioning Technology to allow other parties to install Installable Software.
You shall be responsible for enabling the applicable license agreements relating to the
Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
in accordance with the Specification. By using Provisioning Technology in such a manner and
making it available in accordance with the Specification, you further acknowledge your
agreement to, and the acquisition of all necessary rights to permit the following:

    1. A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute
       the Provisioning Technology on a machine (&quot;Target Machine&quot;) with the intent of installing,
       extending or updating the functionality of an Eclipse-based product.
    2. During the Provisioning Process, the Provisioning Technology may cause third party
       Installable Software or a portion thereof to be accessed and copied to the Target Machine.
    3. Pursuant to the Specification, you will provide to the user the terms and conditions that
       govern the use of the Installable Software (&quot;Installable Software Agreement&quot;) and such
       Installable Software Agreement shall be accessed from the Target Machine in accordance
       with the Specification. Such Installable Software Agreement must inform the user of the
       terms and conditions that govern the Installable Software and must solicit acceptance by
       the end user in the manner prescribed in such Installable Software Agreement. Upon such
       indication of agreement by the user, the provisioning Technology will complete installation
       of the Installable Software.

Cryptography

Content may contain encryption software. The country in which you are
currently may have restrictions on the import, possession, and use,
and/or re-export to another country, of encryption software. BEFORE
using any encryption software, please check the country&apos;s laws,
regulations and policies concerning the import, possession, or use, and
re-export of encryption software, to see if this is permitted.

Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.
         </text>
   </license>

   <plugins>
      <plugin id="com.google.gson"/>
      <plugin id="com.ibm.icu"/>
      <plugin id="com.sun.jna"/>
      <plugin id="com.sun.jna.platform"/>
      <plugin id="com.sun.xml.bind"/>
      <plugin id="jakarta.servlet-api"/>
      <plugin id="jakarta.xml.bind"/>
      <plugin id="javax.activation" version="1.2.2.v20201119-1642"/>
      <plugin id="javax.activation" version="2.0.0.v20201118-1818"/>
      <plugin id="javax.annotation"/>
      <plugin id="javax.el"/>
      <plugin id="javax.inject"/>
      <plugin id="javax.servlet.jsp"/>
      <plugin id="javax.xml"/>
      <plugin id="javax.xml.stream"/>
      <plugin id="org.apache.batik.constants"/>
      <plugin id="org.apache.batik.css"/>
      <plugin id="org.apache.batik.i18n"/>
      <plugin id="org.apache.batik.util"/>
      <plugin id="org.apache.commons.codec"/>
      <plugin id="org.apache.commons.io"/>
      <plugin id="org.apache.commons.jxpath"/>
      <plugin id="org.apache.commons.logging"/>
      <plugin id="org.apache.felix.scr"/>
      <plugin id="org.apache.httpcomponents.client5.httpclient5"/>
      <plugin id="org.apache.httpcomponents.core5.httpcore5"/>
      <plugin id="org.apache.httpcomponents.core5.httpcore5-h2"/>
      <plugin id="org.apache.httpcomponents.httpclient"/>
      <plugin id="org.apache.httpcomponents.httpcore"/>
      <plugin id="org.apache.jasper.glassfish"/>
      <plugin id="org.apache.lucene.analyzers-common"/>
      <plugin id="org.apache.lucene.analyzers-smartcn"/>
      <plugin id="org.apache.lucene.core"/>
      <plugin id="org.apache.xmlgraphics"/>
      <plugin id="org.bouncycastle.bcpg"/>
      <plugin id="org.bouncycastle.bcprov"/>
      <plugin id="org.eclipse.cdt.core"/>
      <plugin id="org.eclipse.cdt.core.linux" fragment="true"/>
      <plugin id="org.eclipse.cdt.core.linux.aarch64" fragment="true"/>
      <plugin id="org.eclipse.cdt.core.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.cdt.core.macosx" fragment="true"/>
      <plugin id="org.eclipse.cdt.core.native"/>
      <plugin id="org.eclipse.cdt.core.win32" fragment="true"/>
      <plugin id="org.eclipse.cdt.core.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.cdt.debug.application"/>
      <plugin id="org.eclipse.cdt.debug.application.doc"/>
      <plugin id="org.eclipse.cdt.debug.core"/>
      <plugin id="org.eclipse.cdt.debug.core.memory"/>
      <plugin id="org.eclipse.cdt.debug.ui"/>
      <plugin id="org.eclipse.cdt.debug.ui.memory.floatingpoint"/>
      <plugin id="org.eclipse.cdt.debug.ui.memory.memorybrowser"/>
      <plugin id="org.eclipse.cdt.debug.ui.memory.search"/>
      <plugin id="org.eclipse.cdt.debug.ui.memory.traditional"/>
      <plugin id="org.eclipse.cdt.debug.ui.memory.transport"/>
      <plugin id="org.eclipse.cdt.dsf"/>
      <plugin id="org.eclipse.cdt.dsf.gdb"/>
      <plugin id="org.eclipse.cdt.dsf.gdb.ui"/>
      <plugin id="org.eclipse.cdt.dsf.ui"/>
      <plugin id="org.eclipse.cdt.gdb"/>
      <plugin id="org.eclipse.cdt.gdb.ui"/>
      <plugin id="org.eclipse.cdt.launch"/>
      <plugin id="org.eclipse.cdt.make.core"/>
      <plugin id="org.eclipse.cdt.managedbuilder.core"/>
      <plugin id="org.eclipse.cdt.managedbuilder.gnu.ui"/>
      <plugin id="org.eclipse.cdt.native.serial"/>
      <plugin id="org.eclipse.cdt.ui"/>
      <plugin id="org.eclipse.compare"/>
      <plugin id="org.eclipse.compare.core"/>
      <plugin id="org.eclipse.core.commands"/>
      <plugin id="org.eclipse.core.contenttype"/>
      <plugin id="org.eclipse.core.databinding"/>
      <plugin id="org.eclipse.core.databinding.observable"/>
      <plugin id="org.eclipse.core.databinding.property"/>
      <plugin id="org.eclipse.core.expressions"/>
      <plugin id="org.eclipse.core.filebuffers"/>
      <plugin id="org.eclipse.core.filesystem"/>
      <plugin id="org.eclipse.core.filesystem.linux.aarch64" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.jobs"/>
      <plugin id="org.eclipse.core.net"/>
      <plugin id="org.eclipse.core.net.linux" fragment="true"/>
      <plugin id="org.eclipse.core.net.win32" fragment="true"/>
      <plugin id="org.eclipse.core.net.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.resources"/>
      <plugin id="org.eclipse.core.runtime"/>
      <plugin id="org.eclipse.core.variables"/>
      <plugin id="org.eclipse.debug.core"/>
      <plugin id="org.eclipse.debug.ui"/>
      <plugin id="org.eclipse.e4.core.commands"/>
      <plugin id="org.eclipse.e4.core.contexts"/>
      <plugin id="org.eclipse.e4.core.di"/>
      <plugin id="org.eclipse.e4.core.di.annotations"/>
      <plugin id="org.eclipse.e4.core.di.extensions"/>
      <plugin id="org.eclipse.e4.core.di.extensions.supplier"/>
      <plugin id="org.eclipse.e4.core.services"/>
      <plugin id="org.eclipse.e4.emf.xpath"/>
      <plugin id="org.eclipse.e4.ui.bindings"/>
      <plugin id="org.eclipse.e4.ui.css.core"/>
      <plugin id="org.eclipse.e4.ui.css.swt"/>
      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
      <plugin id="org.eclipse.e4.ui.di"/>
      <plugin id="org.eclipse.e4.ui.dialogs"/>
      <plugin id="org.eclipse.e4.ui.ide"/>
      <plugin id="org.eclipse.e4.ui.model.workbench"/>
      <plugin id="org.eclipse.e4.ui.services"/>
      <plugin id="org.eclipse.e4.ui.swt.gtk" fragment="true"/>
      <plugin id="org.eclipse.e4.ui.widgets"/>
      <plugin id="org.eclipse.e4.ui.workbench"/>
      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench3"/>
      <plugin id="org.eclipse.ecf"/>
      <plugin id="org.eclipse.ecf.filetransfer"/>
      <plugin id="org.eclipse.ecf.identity"/>
      <plugin id="org.eclipse.ecf.provider.filetransfer"/>
      <plugin id="org.eclipse.ecf.provider.filetransfer.httpclient5"/>
      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
      <plugin id="org.eclipse.emf.common"/>
      <plugin id="org.eclipse.emf.ecore"/>
      <plugin id="org.eclipse.emf.ecore.change"/>
      <plugin id="org.eclipse.emf.ecore.xmi"/>
      <plugin id="org.eclipse.equinox.app"/>
      <plugin id="org.eclipse.equinox.bidi"/>
      <plugin id="org.eclipse.equinox.common"/>
      <plugin id="org.eclipse.equinox.concurrent"/>
      <plugin id="org.eclipse.equinox.event"/>
      <plugin id="org.eclipse.equinox.frameworkadmin"/>
      <plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
      <plugin id="org.eclipse.equinox.http.jetty"/>
      <plugin id="org.eclipse.equinox.http.registry"/>
      <plugin id="org.eclipse.equinox.http.servlet"/>
      <plugin id="org.eclipse.equinox.jsp.jasper"/>
      <plugin id="org.eclipse.equinox.jsp.jasper.registry"/>
      <plugin id="org.eclipse.equinox.launcher"/>
      <plugin id="org.eclipse.equinox.launcher.cocoa.macosx.x86_64" fragment="true"/>
      <plugin id="org.eclipse.equinox.launcher.gtk.linux.aarch64" fragment="true"/>
      <plugin id="org.eclipse.equinox.launcher.gtk.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.equinox.launcher.win32.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
      <plugin id="org.eclipse.equinox.p2.core"/>
      <plugin id="org.eclipse.equinox.p2.director"/>
      <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
      <plugin id="org.eclipse.equinox.p2.engine"/>
      <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
      <plugin id="org.eclipse.equinox.p2.metadata"/>
      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
      <plugin id="org.eclipse.equinox.p2.operations"/>
      <plugin id="org.eclipse.equinox.p2.publisher"/>
      <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
      <plugin id="org.eclipse.equinox.p2.repository"/>
      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
      <plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
      <plugin id="org.eclipse.equinox.p2.transport.ecf"/>
      <plugin id="org.eclipse.equinox.p2.ui"/>
      <plugin id="org.eclipse.equinox.p2.ui.sdk"/>
      <plugin id="org.eclipse.equinox.preferences"/>
      <plugin id="org.eclipse.equinox.registry"/>
      <plugin id="org.eclipse.equinox.security"/>
      <plugin id="org.eclipse.equinox.security.linux" fragment="true"/>
      <plugin id="org.eclipse.equinox.security.macosx" fragment="true"/>
      <plugin id="org.eclipse.equinox.security.ui"/>
      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
      <plugin id="org.eclipse.help"/>
      <plugin id="org.eclipse.help.base"/>
      <plugin id="org.eclipse.help.ui"/>
      <plugin id="org.eclipse.help.webapp"/>
      <plugin id="org.eclipse.jetty.http"/>
      <plugin id="org.eclipse.jetty.io"/>
      <plugin id="org.eclipse.jetty.security"/>
      <plugin id="org.eclipse.jetty.server"/>
      <plugin id="org.eclipse.jetty.servlet"/>
      <plugin id="org.eclipse.jetty.util"/>
      <plugin id="org.eclipse.jetty.util.ajax"/>
      <plugin id="org.eclipse.jface"/>
      <plugin id="org.eclipse.jface.databinding"/>
      <plugin id="org.eclipse.jface.notifications"/>
      <plugin id="org.eclipse.jface.text"/>
      <plugin id="org.eclipse.launchbar.core"/>
      <plugin id="org.eclipse.launchbar.ui"/>
      <plugin id="org.eclipse.ltk.core.refactoring"/>
      <plugin id="org.eclipse.ltk.ui.refactoring"/>
      <plugin id="org.eclipse.osgi"/>
      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
      <plugin id="org.eclipse.osgi.services"/>
      <plugin id="org.eclipse.osgi.util"/>
      <plugin id="org.eclipse.pde.ds.lib"/>
      <plugin id="org.eclipse.search"/>
      <plugin id="org.eclipse.swt"/>
      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.aarch64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.team.core"/>
      <plugin id="org.eclipse.team.ui"/>
      <plugin id="org.eclipse.text"/>
      <plugin id="org.eclipse.tm.terminal.control"/>
      <plugin id="org.eclipse.tools.templates.core"/>
      <plugin id="org.eclipse.tools.templates.freemarker"/>
      <plugin id="org.eclipse.tools.templates.ui"/>
      <plugin id="org.eclipse.ui"/>
      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
      <plugin id="org.eclipse.ui.console"/>
      <plugin id="org.eclipse.ui.editors"/>
      <plugin id="org.eclipse.ui.forms"/>
      <plugin id="org.eclipse.ui.ide"/>
      <plugin id="org.eclipse.ui.navigator"/>
      <plugin id="org.eclipse.ui.navigator.resources"/>
      <plugin id="org.eclipse.ui.net"/>
      <plugin id="org.eclipse.ui.themes"/>
      <plugin id="org.eclipse.ui.views"/>
      <plugin id="org.eclipse.ui.views.log"/>
      <plugin id="org.eclipse.ui.views.properties.tabbed"/>
      <plugin id="org.eclipse.ui.workbench"/>
      <plugin id="org.eclipse.ui.workbench.texteditor"/>
      <plugin id="org.eclipse.urischeme"/>
      <plugin id="org.freemarker"/>
      <plugin id="org.sat4j.core"/>
      <plugin id="org.sat4j.pb"/>
      <plugin id="org.slf4j.api"/>
      <plugin id="org.tukaani.xz"/>
      <plugin id="org.w3c.css.sac"/>
      <plugin id="org.w3c.dom.events"/>
      <plugin id="org.w3c.dom.smil"/>
      <plugin id="org.w3c.dom.svg"/>
   </plugins>

   <configurations>
      <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
      <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
   </configurations>

   <repositories>
      <repository location="http://download.eclipse.org/tools/cdt/builds/master/nightly/rcp-repository" enabled="true" />
      <repository location="http://download.eclipse.org/tools/cdt/builds/master/nightly/rcp-repository" enabled="true" />
      <repository location="http://download.eclipse.org/tools/cdt/builds/master/nightly/rcp-repository" enabled="true" />
      <repository location="http://download.eclipse.org/tools/cdt/builds/master/nightly/rcp-repository" enabled="true" />
      <repository location="http://download.eclipse.org/tools/cdt/builds/master/nightly/rcp-repository" enabled="true" />
   </repositories>

   <preferencesInfo>
      <targetfile overwrite="false"/>
   </preferencesInfo>

   <cssInfo>
   </cssInfo>

</product>
