<?xml version="1.0" encoding="UTF-8" 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.
-->
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="1052.3622"
   height="744.09448"
   id="svg2"
   sodipodi:version="0.32"
   inkscape:version="0.45.1"
   sodipodi:docbase="C:\simon\tuscany\java-head\sca\samples\helloworld-ws-service"
   sodipodi:docname="helloworld-ws-service.svg"
   version="1.0"
   inkscape:export-filename="C:\simon\tuscany\java-head\sca\samples\helloworld-ws-service\helloworld-ws-service.png"
   inkscape:export-xdpi="52.84"
   inkscape:export-ydpi="52.84"
   inkscape:output_extension="org.inkscape.output.svg.inkscape">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     gridtolerance="10000"
     guidetolerance="10"
     objecttolerance="10"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="1.4"
     inkscape:cx="519.38407"
     inkscape:cy="414.63224"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     inkscape:window-width="1054"
     inkscape:window-height="573"
     inkscape:window-x="117"
     inkscape:window-y="316" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <g
       id="g2997"
       transform="matrix(0.991389,0,0,1,2.215655,0)">
      <rect
         rx="13.79423"
         ry="12.692303"
         y="192.00233"
         x="258.3114"
         height="299.99988"
         width="446.72086"
         id="rect2067"
         style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:2.00866628;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
      <flowRoot
         id="flowRoot2954"
         xml:space="preserve"><flowRegion
           id="flowRegion2956"><rect
             y="212.66591"
             x="281.42856"
             height="61.42857"
             width="170"
             id="rect2958" /></flowRegion><flowPara
           id="flowPara2960">helloworldws</flowPara></flowRoot>    </g>
    <rect
       style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
       id="rect2988"
       width="115.66247"
       height="85.862968"
       x="432.05917"
       y="307.1676"
       rx="6.9961648"
       ry="7.1230249" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot2966"
       transform="translate(172.4684,115.2291)"><flowRegion
         id="flowRegion2968"><rect
           id="rect2970"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591" /></flowRegion><flowPara
         id="flowPara2972">HelloWorld</flowPara><flowPara
         id="flowPara1883">Service</flowPara><flowPara
         id="flowPara1885">Component</flowPara></flowRoot>    <path
       style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 414.90867,339.0146 L 448.24371,339.0146 L 454.30462,352.14658 L 447.23356,364.26842 L 414.90867,364.26842 L 422.48482,352.14658 L 414.90867,339.0146 z "
       id="path3017" />
    <path
       style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 226.73064,320.75315 L 293.91185,320.75315 L 306.1266,352.82797 L 291.87606,382.43553 L 226.73064,382.43553 L 241.99911,352.82797 L 226.73064,320.75315 z "
       id="path1892" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot1894"
       transform="translate(-37.47944,122.8324)"
       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans"><flowRegion
         id="flowRegion1896"><rect
           id="rect1898"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591"
           style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" /></flowRegion><flowPara
         id="flowPara1900">HelloWorld</flowPara><flowPara
         id="flowPara1906">Web</flowPara><flowPara
         id="flowPara1904">Service</flowPara></flowRoot>    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 305.71429,353.3802 L 422.85714,351.95163"
       id="path1910"
       inkscape:export-filename="C:\simon\Projects\Tuscany\java\java-head\sca\samples\helloworld-ws-service\helloworld-ws-service.png"
       inkscape:export-xdpi="52.84"
       inkscape:export-ydpi="52.84" />
  </g>
</svg>
