/*****************************************************************************
 * Copyright (c) 2010, 2018 CEA LIST
 * 
 * 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:
 *   Florian Noyrit florian.noyrit@cea.fr - Initial API and implementation
 *
 *****************************************************************************/
package org.eclipse.papyrus.diagramtemplate.utils;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.papyrus.diagramtemplate.utils.messages"; //$NON-NLS-1$

	public static String DiagramTemplateEditor_0;

	public static String DiagramTemplateEditor_1;

	public static String DiagramTemplateEditor_100;

	public static String DiagramTemplateEditor_105;

	public static String DiagramTemplateEditor_108;

	public static String DiagramTemplateEditor_109;

	public static String DiagramTemplateEditor_112;

	public static String DiagramTemplateEditor_15;

	public static String DiagramTemplateEditor_18;

	public static String DiagramTemplateEditor_19;

	public static String DiagramTemplateEditor_2;

	public static String DiagramTemplateEditor_20;

	public static String DiagramTemplateEditor_21;

	public static String DiagramTemplateEditor_23;

	public static String DiagramTemplateEditor_24;

	public static String DiagramTemplateEditor_26;

	public static String DiagramTemplateEditor_27;

	public static String DiagramTemplateEditor_28;

	public static String DiagramTemplateEditor_3;

	public static String DiagramTemplateEditor_34;

	public static String DiagramTemplateEditor_35;

	public static String DiagramTemplateEditor_4;

	public static String DiagramTemplateEditor_47;

	public static String DiagramTemplateEditor_49;

	public static String DiagramTemplateEditor_5;

	public static String DiagramTemplateEditor_51;

	public static String DiagramTemplateEditor_53;

	public static String DiagramTemplateEditor_55;

	public static String DiagramTemplateEditor_56;

	public static String DiagramTemplateEditor_57;

	public static String DiagramTemplateEditor_58;

	public static String DiagramTemplateEditor_60;

	public static String DiagramTemplateEditor_62;

	public static String DiagramTemplateEditor_64;

	public static String DiagramTemplateEditor_67;

	public static String DiagramTemplateEditor_68;

	public static String DiagramTemplateEditor_71;

	public static String DiagramTemplateEditor_74;

	public static String DiagramTemplateEditor_77;

	public static String DiagramTemplateEditor_90;

	public static String DiagramTemplateEditor_91;

	public static String DiagramTemplateEditor_93;

	public static String DiagramTemplateEditor_95;

	public static String DiagramTemplateEditor_98;

	public static String DiagramTemplateEditor_99;

	public static String DiagramTemplateLauncher_3;

	public static String DiagramTemplateLauncher_4;

	public static String DiagramTemplateLauncher_6;

	public static String DiagramTemplateLauncher_7;

	public static String DiagramTemplateLauncherReport_6;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
