##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#
#  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:
#      Thales Corporate Services S.A.S - initial API and implementation
##

# NLS_MESSAGEFORMAT_VAR
bin.includes = fc32.gif,\
               about.*,\
               plugin.*,\
               src/,\
               META-INF/
sourcePlugin=true
src.includes = about.html
