<?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" viewHeight="23" viewWidth="250" ai:appVersion="15.0.0.399" ATE:version="1.0.0" flm:version="1.0.0" d:id="1" d:using="" xmlns="http://ns.adobe.com/fxg/2008" xmlns:ATE="http://ns.adobe.com/ate/2009" xmlns:ai="http://ns.adobe.com/ai/2009" xmlns:d="http://ns.adobe.com/fxg/2008/dt" xmlns:flm="http://ns.adobe.com/flame/2008">
  <Library/>
  <Group ai:artboardActive="1" ai:artboardIndex="0" ai:seqID="1" d:layerType="page" d:pageHeight="23" d:pageWidth="250" d:type="layer" d:userLabel="Artboard 1">
    <Group ai:objID="bdee380" ai:seqID="2" d:id="2" d:type="layer" d:userLabel="Layer 1">
      <Path winding="nonZero" ai:objID="ca47d80" ai:seqID="3" data="M0 0 238.003 0C244.63 0 250.003 5.37256 250.003 12L250.003 23 0 23 0 0Z">
        <fill>
          <SolidColor color="#686868"/>
        </fill>
      </Path>
    </Group>
  </Group>
  <Private>
      <ai:PrivateElement d:ref="#1">
        <ai:SaveOptions>
          <ai:Dict data="B writeImages 1 B includeXMP 0 B includeSymbol 0 B aiEditCap 1 I versionKey 2 B includeObjectOutsideArtboard 0 I expandBlendsOption 5 B downsampleLinkedImages 0 I rasterizeResolution 72 I preserveGradientPolicy 4 I preserveFilterPolicy 3 I preserveTextPolicy 4 "/>
        </ai:SaveOptions>
        <ai:DocData base="TopSkin_2.assets/images" rulerCanvasDiffH="400.5" rulerCanvasDiffV="40.5">
          <ai:DocRasterSettings>
            <ai:Dict data="R padd 36 B mask 0 B spot 1 B alis 0 I dpi. 300 I colr 5 "/>
          </ai:DocRasterSettings>
        </ai:DocData>
        <ai:AutoGenImageList>
          <ai:Dict/>
        </ai:AutoGenImageList>
      </ai:PrivateElement>
      <ai:PrivateElement flm:hashcode="1F0E5FDD26634E676DFC12E078DD05E2" d:ref="#2">
        <ai:LayerOptions color="5 79.31 257 128.502"/>
      </ai:PrivateElement>
    </Private>
  </Graphic>