   Apache Metron
   Copyright 2015-2016 The Apache Software Foundation

   This product includes software developed at
   The Apache Software Foundation (http://www.apache.org/).

   This product includes software developed by Cisco Systems (http://www.cisco.com)
   Copyright (c) 2014 Cisco Systems.

   This product includes software developed by Chef Software (https://www.chef.io)
   Copyright (c) 2012-2015, Chef Software, Inc.

   This includes derived works from the Apache Storm (ASLv2 licensed) project (https://github.com/apache/storm):
   Copyright 2015 The Apache Software Foundation
   The derived work is adapted from
     org/apache/storm/kafka/spout/KafkaSpoutRetryExponentialBackoff.java
     org/apache/storm/kafka/spout/internal/Timer.java
   and can be found in the org.apache.storm.kafka package
