/*******************************************************************************
 * Copyright (c) 2003, 2016 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * IBM - Initial API and implementation
 *******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.propertypages;

import org.eclipse.osgi.util.NLS;

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

	public static String BreakpointConditionEditor_1;
	public static String ExceptionBreakpointEditor_1;
	public static String ExceptionBreakpointEditor_2;
	public static String ExceptionBreakpointEditor_3;

	public static String ExceptionFilterEditor_5;
	public static String ExceptionFilterEditor_6;
	public static String ExceptionFilterEditor_7;
	public static String ExceptionFilterEditor_8;
	public static String ExceptionFilterEditor_9;
	public static String ExceptionFilterEditor_10;
	public static String ExceptionFilterEditor_11;
	public static String ExceptionFilterEditor_12;
	public static String ExceptionFilterEditor_13;
	public static String ExceptionFilterEditor_14;
	public static String ExceptionFilterEditor_15;
	public static String ExceptionFilterEditor_16;
	public static String ExceptionFilterEditor_18;
	public static String ExceptionFilterEditor_19;
	public static String ExceptionFilterEditor_20;
	public static String ExceptionFilterEditor_22;

	public static String JavaBreakpointConditionEditor_0;
	public static String JavaBreakpointConditionEditor_1;
	public static String JavaBreakpointConditionEditor_2;
	public static String JavaBreakpointConditionEditor_choosePreviousCondition;
	public static String JavaBreakpointConditionEditor_historySeparator;

	public static String JavaBreakpointPage_0;
	public static String JavaBreakpointPage_10;

	public static String JavaBreakpointPage_11;
	public static String JavaBreakpointPage_12;
	public static String JavaBreakpointPage_13;
	public static String JavaBreakpointPage_3;
	public static String JavaBreakpointPage_4;
	public static String JavaBreakpointPage_5;
	public static String JavaBreakpointPage_7;
	public static String JavaBreakpointPage_8;
	public static String JavaBreakpointPage_9;
	public static String JavaExceptionBreakpointPage_5;

	public static String JavaLineBreakpointPage_18;

	public static String JavaLineBreakpointPage_19;

	public static String JavaLineBreakpointPage_2;
	public static String JavaLineBreakpointPage_3;
	public static String JavaLineBreakpointPage_4;
	public static String JavaLineBreakpointPage_5;
	public static String JavaLineBreakpointPage_20;
	public static String JavaLineBreakpointPage_7;
	public static String JavaLineBreakpointPage_8;
	public static String JavaLineBreakpointPage_10;
	public static String JavaLineBreakpointPage_11;
	public static String ThreadFilterEditor_1;
	public static String ThreadFilterEditor_2;
	public static String InstanceFilterEditor_0;

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

	public static String VMCapabilitiesPropertyPage_0;
	public static String VMCapabilitiesPropertyPage_1;
	public static String VMCapabilitiesPropertyPage_10;
	public static String VMCapabilitiesPropertyPage_12;
	public static String VMCapabilitiesPropertyPage_14;
	public static String VMCapabilitiesPropertyPage_15;
	public static String VMCapabilitiesPropertyPage_16;
	public static String VMCapabilitiesPropertyPage_18;
	public static String VMCapabilitiesPropertyPage_21;
	public static String VMCapabilitiesPropertyPage_24;
	public static String VMCapabilitiesPropertyPage_25;
	public static String VMCapabilitiesPropertyPage_26;

    public static String VMCapabilitiesPropertyPage_27;

    public static String VMCapabilitiesPropertyPage_28;

    public static String VMCapabilitiesPropertyPage_29;
	public static String VMCapabilitiesPropertyPage_3;

    public static String VMCapabilitiesPropertyPage_30;

    public static String VMCapabilitiesPropertyPage_31;
	public static String VMCapabilitiesPropertyPage_4;
	public static String VMCapabilitiesPropertyPage_6;
	public static String VMCapabilitiesPropertyPage_9;
}
