# C/C++ build outputs
.build/
bins
gens
libs
objs

# Python items
cython_debug/
python_build/
yapf_virtual_environment/
python_pylint_venv/
.coverage*
.eggs
htmlcov/
dist/
*.egg
py27/
py3[0-9]*/

# Node installation output
node_modules
src/node/extension_binary/

# gcov coverage data
reports
coverage
*.gcno

# profiler output
*.prof

# python compiled objects
*.pyc

# eclipse project files
.cproject
.project
.settings

# cache for run_tests.py
.run_tests_cache
.preprocessed_build

# emacs temp files
*~

# vim temp files
.*.swp

# Makefile's cache
cache.mk

# Ruby's local gem information
Gemfile.lock

# Temporary test reports
report.xml
latency_trace.txt
latency_trace.*.txt

# port server log
portlog.txt

# gyp generated make files
*-gyp.mk
out

# YCM config files
.ycm_extra_conf.py

# XCode
^build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
*.DS_Store

# Objective-C generated files
*.pbobjc.*
*.pbrpc.*

# Cocoapods artifacts
# Podfile.lock and the workspace file are tracked, to ease deleting them. That's
# needed to trigger "pod install" to rerun the preinstall commands.
Pods/

# Artifacts directory
/artifacts/

# Git generated files for conflicting
*.orig

# IDE specific folder for JetBrains IDEs
.idea/

# Blaze files
bazel-bin
bazel-genfiles
bazel-grpc
bazel-out
bazel-testlogs

# Debug output
gdb.txt

# ctags file
tags

# perf data
perf.data
perf.data.old

# bm_diff
bm_diff_new/
bm_diff_old/
bm_*.json

