/*******************************************************************************
 *  Copyright (c) 2000, 2017 IBM Corporation and others.
 *
 *  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
 *
 *  Contributors:
 *  IBM - Initial API and implementation
 *  Wind River Systems - Ted Williams - [Memory View] Memory View: Workflow Enhancements (Bug 215432)
 *  Remy Chi Jian Suen - Make WorkingDirectoryBlock from JDT a Debug API class (Bug 221973)
 *  Obeo - Axel Richard - Launch configurations prototypes (Bug 41353)
 *******************************************************************************/
package org.eclipse.debug.internal.ui;

import org.eclipse.osgi.util.NLS;

public class DebugUIMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.debug.internal.ui.DebugUIMessages";//$NON-NLS-1$

	public static String AbstractAsyncTableRendering_2;

	public static String AbstractDebugCheckboxSelectionDialog_0;

	public static String AbstractDebugCheckboxSelectionDialog_1;

	public static String DebugUIPlugin_23;
	public static String DebugUIPlugin_24;
	public static String DebugUIPlugin_0;

	public static String DebugUIPlugin_25;
	public static String DebugUIPlugin_Build_error__Check_log_for_details__2;
	public static String DebugUIPlugin_Run_Debug_1;

	public static String DefaultLabelProvider__disconnected__1;

	public static String DefaultLabelProvider_0;
	public static String DefaultLabelProvider_1;
	public static String DefaultLabelProvider__unknown__1;
	public static String DefaultLabelProvider_Breakpoint_1;
	public static String DefaultLabelProvider_12;
	public static String DefaultLabelProvider_13;
	public static String DefaultLabelProvider_15;
	public static String DefaultLabelProvider_16;
	public static String MultipleInputDialog_6;
	public static String MultipleInputDialog_7;
	public static String MultipleInputDialog_8;

	public static String SwitchMemoryBlockAction_4;

	public static String WorkingDirectoryStatusHandler_0;
	public static String WorkingDirectoryStatusHandler_Eclipse_Runtime_1;

	public static String DebugUITools_3;
	public static String DebugUITools_Error_1;
	public static String DebugUITools_Exception_occurred_during_launch_2;

	public static String InstructionPointerAnnotation_0;
	public static String InstructionPointerAnnotation_1;

	public static String DefaultLabelProvider_17;

	//
	// Action
	//
	public static String AddMemoryBlockAction_title;
	public static String AddMemoryBlockAction_tooltip;
	public static String AddMemoryBlockAction_failed;
	public static String AddMemoryBlockAction_input_invalid;
	public static String AddMemoryRenderingDialog_Memory_Monitor;
	public static String AddMemoryRenderingAction_Add_renderings;
	public static String AddMemoryRenderingDialog_Memory_renderings;
	public static String AddMemoryRenderingDialog_Add_memory_rendering;
	public static String AddMemoryBlockAction_noMemoryBlock;
	public static String AddMemoryRenderingDialog_Add_New;
	public static String AddMemoryRenderingDialog_Unknown;
	public static String RemoveMemoryBlockAction_title;
	public static String RemoveMemoryBlockAction_tooltip;
	public static String MemoryViewCellModifier_failure_title;
	public static String MemoryViewCellModifier_failed;
	public static String MemoryViewCellModifier_data_is_invalid;
	public static String ResetMemoryBlockAction_title;
	public static String ResetMemoryBlockAction_tootip;
	public static String GoToAddressAction_title;
	public static String GoToAddressAction_Go_to_address_failed;
	public static String GoToAddressAction_Address_is_invalid;
	public static String CopyViewToClipboardAction_title;
	public static String CopyViewToClipboardAction_tooltip;
	public static String PrintViewTabAction_title;
	public static String PrintViewTabAction_tooltip;
	public static String PrintViewTabAction_jobtitle;
	public static String ReformatAction_title;

	//
	// Dialog
	//
	public static String MonitorMemoryBlockDialog_EnterExpressionToMonitor;
	public static String MonitorMemoryBlockDialog_MonitorMemory;
	public static String MonitorMemoryBlockDialog_NumberOfBytes;
	public static String GoToAddressDialog_Address;
	public static String GoToAddressDialog_GoToAddress;
	public static String CodePagesPrefDialog_1;
	public static String CodePagesPrefDialog_2;
	public static String CodePagesPrefDialog_4;
	public static String CodePagesPrefDialog_6;
	public static String CodePagesPrefDialog_7;
	public static String CodePagesPrefDialog_8;
	public static String CodePagesPrefDialog_9;
	public static String CodePagesPrefDialog_0;

	//
	// View Tab
	//
	public static String MemoryView_Memory_monitors;
	public static String MemoryBlocksTreeViewPane_0;
	public static String MemoryBlocksTreeViewPane_1;
	public static String MemoryBlocksTreeViewPane_2;
	public static String MemoryView_Memory_renderings;
	public static String MemoryViewContentProvider_Unable_to_retrieve_content;

	//
	// Views
	//
	public static String RemoveMemoryRenderingAction_Remove_rendering;
	public static String EmptyViewTab_Unable_to_create;
	public static String CreateRenderingTab_Memory_monitor;
	public static String CreateRenderingTab_Select_renderings_to_create;
	public static String CreateRenderingTab_Add_renderings;
	public static String CreateRenderingTab_0;
	public static String CreateRenderingTab_1;
	public static String CreateRenderingTab_2;

	public static String CreateRenderingTab_label;

	public static String CreateRendering_0;
	public static String CreateRendering_1;

	//
	// Managers
	//
	public static String ShowAddressColumnAction_0;
	public static String ShowAddressColumnAction_1;
	public static String ImageDescriptorRegistry_0;
	public static String ErrorRendering_0;
	public static String AbstractTableRendering_1;
	public static String AbstractTableRendering_2;
	public static String AbstractTableRendering_3;
	public static String AbstractTableRendering_4;
	public static String AbstractTableRendering_6;
	public static String AbstractTableRendering_8;
	public static String AbstractTableRendering_10;
	public static String AbstractTableRendering_11;
	public static String AbstractTableRendering_12;
	public static String AbstractTableRendering_13;
	public static String AbstractTableRendering_16;
	public static String AbstractTableRendering_18;
	public static String AbstractTableRendering_20;
	public static String SetPaddedStringDialog_0;
	public static String SetPaddedStringDialog_1;


	public static String TableRenderingPropertiesPage_1;
	public static String TableRenderingPropertiesPage_2;
	public static String TableRenderingPropertiesPage_3;
	public static String TableRenderingPropertiesPage_4;
	public static String TableRenderingPropertiesPage_5;
	public static String TableRenderingPropertiesPage_6;
	public static String TableRenderingPropertiesPage_8;
	public static String TableRenderingPropertiesPage_9;
	public static String TableRenderingPropertiesPage_10;
	public static String TableRenderingPropertiesPage_11;
	public static String TableRenderingPropertiesPage_12;
	public static String TableRenderingPropertiesPage_13;
	public static String TableRenderingPropertiesPage_14;
	public static String TableRenderingPropertiesPage_15;
	public static String TableRenderingPropertiesPage_16;
	public static String TableRenderingPropertiesPage_17;
	public static String TableRenderingPropertiesPage_18;
	public static String TableRenderingPropertiesPage_19;
	public static String TableRenderingPropertiesPage_20;
	public static String TableRenderingPropertiesPage_21;
	public static String TableRenderingPropertiesPage_22;
	public static String TableRenderingPropertiesPage_23;
	public static String TableRenderingPropertiesPage_25;
	public static String TableRenderingPropertiesPage_26;
	public static String TableRenderingPrefAction_0;
	public static String TableRenderingPreferencePage_0;
	public static String TableRenderingPreferencePage_2;
	public static String TableRenderingPreferencePage_3;
	public static String TableRenderingPreferencePage_4;
	public static String TableRenderingPreferencePage_5;
	public static String TableRenderingPreferencePage_6;
	public static String TableRenderingPreferencePage_7;
	public static String TableRenderingPreferencePage_8;
	public static String TableRenderingPreferencePage_9;
	public static String TableRenderingPreferencePage_10;
	public static String TableRenderingContentProvider_0;
	public static String TableRenderingContentProvider_1;
	public static String TableRenderingContentProvider_2;
	public static String SwitchMemoryBlockAction_0;
	public static String ResetMemoryBlockPreferencePage_0;
	public static String ResetMemoryBlockPreferencePage_1;
	public static String ResetMemoryBlockPreferencePage_2;
	public static String ResetMemoryBlockPreferencePage_3;
	public static String FormatTableRenderingAction_0;
	public static String FormatTableRenderingAction_1;
	public static String FormatTableRenderingAction_2;
	public static String FormatTableRenderingAction_3;
	public static String FormatTableRenderingAction_4;
	public static String FormatTableRenderingAction_5;
	public static String FormatTableRenderingAction_6;
	public static String FormatTableRenderingAction_7;
	public static String FormatTableRenderingAction_8;
	public static String FormatTableRenderingAction_9;
	public static String FormatTableRenderingAction_11;
	public static String FormatTableRenderingAction_13;
	public static String FormatTableRenderingAction_15;
	public static String FormatTableRenderingAction_16;
	public static String FormatTableRenderingDialog_0;
	public static String FormatTableRenderingDialog_1;
	public static String FormatTableRenderingDialog_2;
	public static String FormatTableRenderingDialog_3;
	public static String FormatTableRenderingDialog_4;
	public static String FormatTableRenderingDialog_5;
	public static String AbstractAsyncTableRendering_1;
	public static String CreateRendering_2;
	public static String SetPaddedStringPreferencePage_0;
	public static String ViewPaneOrientationAction_0;
	public static String ViewPaneOrientationAction_1;
	public static String ViewPaneOrientationAction_2;
	public static String ViewPaneOrientationAction_3;
	public static String GoToAddressComposite_0;
	public static String GoToAddressComposite_1;
	public static String GoToAddressComposite_2;
	public static String GoToAddressComposite_4;
	public static String GoToAddressComposite_5;
	public static String GoToAddressComposite_6;
	public static String GoToAddressComposite_7;

	//
	// Launch Groups
	//
	public static String GroupLaunch_Cannot_launch;
	public static String GroupLaunch_Cycle;
	public static String GroupLaunch_Error;
	public static String GroupLaunchConfigurationSelectionDialog_0;
	public static String GroupLaunchConfigurationSelectionDialog_1;
	public static String GroupLaunchConfigurationSelectionDialog_2;
	public static String GroupLaunchConfigurationSelectionDialog_10;
	public static String GroupLaunchConfigurationSelectionDialog_11;
	public static String GroupLaunchConfigurationSelectionDialog_12;
	public static String GroupLaunchConfigurationSelectionDialog_13;
	public static String GroupLaunchConfigurationSelectionDialog_14;
	public static String GroupLaunchConfigurationSelectionDialog_15;
	public static String GroupLaunchConfigurationSelectionDialog_4;
	public static String GroupLaunchConfigurationSelectionDialog_5;
	public static String GroupLaunchConfigurationSelectionDialog_7;
	public static String GroupLaunchConfigurationSelectionDialog_8;
	public static String GroupLaunchConfigurationSelectionDialog_9;
	public static String GroupLaunchConfigurationSelectionDialog_adoptText;
	public static String GroupLaunchConfigurationSelectionDialog_adoptTooltip;
	public static String GroupLaunchConfigurationSelectionDialog_errorNoRegexp;
	public static String GroupLaunchConfigurationSelectionDialog_regexp;
	public static String GroupLaunchConfigurationTabGroup_0;
	public static String GroupLaunchConfigurationTabGroup_1;
	public static String GroupLaunchConfigurationTabGroup_10;
	public static String GroupLaunchConfigurationTabGroup_12;
	public static String GroupLaunchConfigurationTabGroup_13;
	public static String GroupLaunchConfigurationTabGroup_14;
	public static String GroupLaunchConfigurationTabGroup_15;
	public static String GroupLaunchConfigurationTabGroup_16;
	public static String GroupLaunchConfigurationTabGroup_2;
	public static String GroupLaunchConfigurationTabGroup_3;
	public static String GroupLaunchConfigurationTabGroup_4;
	public static String GroupLaunchConfigurationTabGroup_5;
	public static String GroupLaunchConfigurationTabGroup_6;
	public static String GroupLaunchConfigurationTabGroup_7;
	public static String GroupLaunchConfigurationTabGroup_lblAdopt;

	//
	// Blocks
	//
	public static String WorkingDirectoryBlock_4;
	public static String WorkingDirectoryBlock_7;
	public static String WorkingDirectoryBlock_0;
	public static String WorkingDirectoryBlock_Working_Directory_8;
	public static String WorkingDirectoryBlock_10;
	public static String WorkingDirectoryBlock_12;
	public static String WorkingDirectoryBlock_17;
	public static String WorkingDirectoryBlock_18;
	public static String WorkingDirectoryBlock_19;
	public static String WorkingDirectoryBlock_20;
	public static String WorkingDirectoryBlock_1;
	public static String WorkingDirectoryBlock_Exception_occurred_reading_configuration___15;

	//
	// Elements
	//
	public static String ExpressionManagerContentProvider_1;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, DebugUIMessages.class);
	}
}
