<?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 version="2.0" ATE:version="1.0.0" flm:version="1.0.0" d:using="" 
	xmlns="http://ns.adobe.com/fxg/2008" xmlns:ATE="http://ns.adobe.com/ate/2009" xmlns:d="http://ns.adobe.com/fxg/2008/dt" 
	xmlns:flm="http://ns.adobe.com/flame/2008"
	xmlns:afx="http://ns.apache.org/flex/2012" afx:className="ComboBoxArrow_editableDisabledSkin" afx:baseClassName="flash.display.Sprite" >
        <Group d:type="layer" d:userLabel="Layer 1">
          <Group>
            <Path x="-160" y="-586" data="M180 590 180 604Q180 606.93672 177.125 607L160.05 607 160.05 587 177.125 587Q180 587.06328 180 590">
              <fill>
                <LinearGradient x="170" y="608" scaleX="22" rotation="270">
                  <GradientEntry ratio="0" color="#E6E6E6" alpha="0.2"/>
                  <GradientEntry ratio="1" color="#FFFFFF" alpha="0.30196078"/>
                </LinearGradient>
              </fill>
            </Path>
          </Group>
          <Group>
            <Path x="-0.5" y="-0.5" data="M13.5 10.5 12.5 10.5 12.5 11.5 11.5 11.5 11.5 12.5 10.5 12.5 10.5 13.5 9.5 13.5 9.5 12.5 8.5 12.5 8.5 11.5 7.5 11.5 7.5 10.5 6.5 10.5 6.5 9.5 13.5 9.5 13.5 10.5">
              <fill>
                <SolidColor alpha="0.3019608"/>
              </fill>
            </Path>
          </Group>
          <Group>
            <Path x="-160" y="-586" data="M177 586Q181 586 181 590L181 604Q181 608 177 608L160 608 160 607 177.125 607Q180 606.93672 180 604L180 590Q180 587.06328 177.125 587L160 587 160 586 177 586">
              <fill>
                <LinearGradient x="170" y="608" scaleX="22" rotation="270">
                  <GradientEntry ratio="0" color="#585F63" alpha="0.30196078"/>
                  <GradientEntry ratio="1" color="#B7BABC" alpha="0.30196078"/>
                </LinearGradient>
              </fill>
            </Path>
          </Group>
        </Group>
  <Private/>
</Graphic>