<?xml version="1.0" encoding="iso-8859-1"?>
<!--
  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.
-->
<!-- $Id$ -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN" "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd">
<svg xml:space="preserve" x="-1.70458in" y="0.198315in" width="2.6622in" height="1.89672in" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality"
     viewBox="-4330 0 6762 4818">
  <rect style="fill:none;stroke:#009BE1;stroke-width:35" x="-4312" y="18" width="6727" height="4782"/>
  <text x="-3653" y="841" style="fill:#1F1A17;font-weight:normal;font-size:639;font-family:Helvetica">Hello World!</text>
  <ellipse style="fill:#E77919" cx="-2697" cy="2934" rx="925" ry="925"/>
  <path style="fill:none;stroke:#A3D01C;stroke-width:35" d="M209 1102l799 239 798 239 191 811 192 811 -606 572 -607 571 -798 -239 -798 -240 -192 -810 -192 -811 607 -572 606 -571z"/>
</svg>
