<?xml version="1.0" standalone="no"?>
<!--
 * 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.
-->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="1" height="1">
	<defs>
        <marker 
            id="FilledArrow"
            viewBox="0 0 10 10" refX="0" refY="5" 
            markerUnits="strokeWidth"
            markerWidth="5" markerHeight="14"
            orient="auto"
            >
            <path 
                d="M 10 0 L 0 5 L 10 10 L 10 0 Z" 
                fill="rgb(0,0,0)"
                />
        </marker>
        <marker 
            id="HollowArrow"
            markerUnits="userSpaceOnUse"
            rexX="10" refY="5"
            markerWidth="20" markerHeight="20"
            orient="auto"
            >
            <path 
                d="M 10 5 L 1 0 L 1 10 L 10 5 " 
                fill="rgb(255,255,255)"
                stroke="rgb(0,0,0)"
                />
        </marker>
	</defs>	
</svg>