Gunman wearing mask and body armor opens fire outside federal courthouse