# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache

# idea conf files
.idea
*.iml
*.ipr
*.iws

# building
target
null
tmp
temp
dist
test-output
build.log
release
out
gen
local.properties

#Apache Flex Projects
lib/
libs/
in/
swfobject/
flex2/
thirdparty/
META-INF/
tempDoc/
air/

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
env.properties
local.properties
packages.dita
rat.report
airsdk.xml

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Dd]ebug*/
!debugger/
modules/debugger/classes/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#CVS files
.svn
.git

# Office Temp Files
~$*

#Binaries
*.dll
*.bin
*.com
*.exe
*.class
*.jar
*.swf
*.swc

#Compressed Files
*.zip
*.rar
*.tar

/asdoc-output/

#mustellarunner
*.patch
*.reply
mailbody.txt
gitstatus.txt

#AIR SDK
frameworks/projects/air/
runtimes/
templates/air/
samples/badge/
samples/icons/
templates/air/
templates/extensions/
templates/sdk/
install/android
AIR SDK Readme.txt
AIR SDK license.pdf
air-sdk-description.xml
samples/descriptor-sample.xml
include/FlashRuntimeExtensions.h
visualcomps

#FlexUnit tests
test-reports
FlexUnitCompilerApplication.mxml