# This is the global list of words to be blocked. unblocked_terms.txt has
# terms that are too commonly used still and are in the process of being
# cleaned from the codebase. Copy unblocked_terms.txt to your project and
# start commenting out terms to enable the repo hook to block the words.

black.?hat
black.?list
build.?cop
crazy
cripple
dummy
first.?class.?citizen
grandfathered
gr[ae]y.?hat
gr[ae]y.?list
\bhe\b
\bshe\b
\bhim\b
\bher\b
\bhis\b
\bhers\b
man.?in.?the.?middle
master
\bmitm(\b|\d)
\bnative
\bred.?line
rtfm
\b(in)?sane(\b|\d)
sanity
slave
white.?glove
white.?hat
white.?label
white.?list
\bwtf
