<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->

<properties>
<!--
    # codename: Dispatcher
    # Dispatcher is using a fallback mechanism for theming.
    # You can configure the theme name and its extension here
    -->
  <property name="dispatcher.theme" value="pelt"/>
  <property name="dispatcher.theme-ext" value=".fv"/>
<!--SVG example for project/group logo-->
  <property name="group-name" value="group"/>
  <property name="project-name" value="project"/>
</properties>
