# 
# Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
# All rights reserved. This program and the accompanying material
# are made available under the terms of the Eclipse Public License 2.0 
# which accompanies this distribution, and is available
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributor
#  Florian Pirchner - Initial implementation
# 

# NLS_MESSAGEFORMAT_VAR

featureName=org.eclipse.osbp.dsl.common.xtext.edit

################ blurb property ####################################
featureText=\
\n\
Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\n\
All rights reserved. This program and the accompanying material\n\
are made available under the terms of the Eclipse Public License 2.0 \n\
which accompanies this distribution, and is available \n\
https://www.eclipse.org/legal/epl-2.0/\n\
\n\
SPDX-License-Identifier: EPL-2.0\n\
\n\
Contributor\n\
        Florian Pirchner - Initial implementation\n\
\n\

################ end of blurb property ####################################
