<!--

  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.

-->
<!-- this file normally should not be edited.  Use the command-line
     parameters for ASDoc instead -->
<asDocConfig>
  <options buildNum="asd3_0_final_1" verbose="false" livedocs="false" standalone="true" eclipse="false" docversion="3" includePrivate="false" splitIndex="true" showVersions="true" showConventions="false" showReview="true" />

  <keywords show="false" num="500" />
<!--
  <feedback show="false" type="livedocs">
    <feedbackEmail>
        <label>Submit Feedback</label>
        <address>foo@foo.com</address>
    </feedbackEmail>
  </feedback>
-->
  <warnings langversion="false" playerversion="false" xref="true" />
	<!-- <includeExamplesDirectory></includeExamplesDirectory> -->

  <xmlInputFile>toplevel.xml</xmlInputFile>
  <title>API Documentation</title>
  <windowTitle>API Documentation</windowTitle>

  <languageElements show="false" constants="true" functions="true" operators="false" statements="false" specialTypes="false" />
	<footer></footer>
  <namespaces hideAll="false">
    <namespace hide="false" summaryDisplay="public">AS3</namespace>
    <namespace hide="true">mx_internal</namespace>
    <namespace hide="false" summaryDisplay="protected">flash_proxy</namespace>
    <namespace hide="false" summaryDisplay="protected">object_proxy</namespace>
    <namespace hide="false">mx_inner</namespace>
    <namespace hide="false" summaryDisplay="public">flash10</namespace>
  </namespaces>
<!--
  <packages hideAll="false">
    <asPackage hide="false">adobe.utils</asPackage>
    <asPackage hide="true">flash.debugger</asPackage>
    <asPackage hide="true">macromedia.util</asPackage>
  </packages>
-->
<!--
  <annotate>
    <item type="package" name="mx.charts">
        <annotation type="text">(Flex Data Visualization components only)</annotation>
    </item>
  </annotate>
-->
</asDocConfig>