<?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.

-->
<Graphic flm:originalName="LinkButton/LinkButton_upSkin" version="2.0" afx:className="LinkButton_upSkin" afx:baseClassName="flash.display.Sprite" xmlns:afx="http://ns.apache.org/flex/2012" xmlns:flm="http://ns.adobe.com/flame/2008" xmlns="http://ns.adobe.com/fxg/2008">
  <Library>
    <Definition name="LinkButton_LinkButton_downSkin" flm:originalName="LinkButton/LinkButton_downSkin">
      <Group scaleGridLeft="4" scaleGridRight="78" scaleGridTop="4" scaleGridBottom="18">
        <Path data="M81.975 4 81.975 18Q81.976172 22 77.975 22L3.975 22Q-0.026171875 22 -0.025 18L-0.025 4Q-0.026171875 0 3.975 0L77.975 0Q81.976172 0 81.975 4">
          <fill>
            <SolidColor color="#9AD8FF"/>
          </fill>
        </Path>
      </Group>
    </Definition>
  </Library>
  <Group>
    <Group aaa:type="layer" aaa:userLabel="Layer 1" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <LinkButton_LinkButton_downSkin alpha="0"/>
    </Group>
  </Group>
</Graphic>