Apache Chukwa
Copyright 2008-2012 The Apache Software Foundation

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

This product includes Script.aculo.us
Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)

This product includes YUI
Copyright Yahoo inc, 2009

This product includes iUI
Copyright (c) 2007-2009, iUI Project Members

This product includes jChronic
Copyright (c) 2009 Mike Schrag, Sam Tingleff

This product includes Perfuse
Copyright (c) 2004-2006 Regents of the University of California.

This product includes Timeline
(c) Copyright The SIMILE Project 2003-2005.

This product includes jQuery
Copyright (c) 2011 John Resig, http://jquery.com/

This product includes Ajax.Tree
Copyright (c) Colin Mollenhour, http://colin.mollenhour.com/ajaxtree/files/ajaxtree-js.html

This product includes Jersey
Copyright (c) 2012 Oracle, http://jersey.java.net/

This product includes json
Copyright (c) 2002 JSON.org

This product includes xmlenc
Copyright 2003-2005, Ernst de Haan <wfe.dehaan@gmail.com> All rights reserved.

This product includes flexigrid
Copyright (c) 2011 Paulo P. Marinas, http://flexigrid.info/

This product includes GSV
Copyright (c) 2005 Michal Migurski <mike-gsv@teczno.com>

This product includes ToolMan
Copyright (c) 2005 Tim Taylor, http://blog.tool-man.org/2005/04/27/toolman-dhtml-02-released/

This product includes Timeframe
Copyright (c) 2008-2009 Stephen Celis, http://stephencelis.github.com/timeframe/

This product includes flot
Copyright (c) 2008-2012 Ole Laursen, http://code.google.com/p/flot/

This product includes conf_spellchecker
Copyright (c) 2008-2010, Ariel Rabkin

This product includes JUnit
Copyright (c) 2006 JUnit.org

This product includes formalize
Copyright (c) 2012 Nathan Smith, http://formalize.me/

This product includes heatmap.js
Copyright (c) 2011-2013 Patrick Wied, http://www.patrick-wied.at/static/heatmapjs/

This product includes jsoup
Copyright (c) 2009 - 2014 Jonathan Hedley (jonathan@hedley.net)

This product includes esapi
Copyright (c) 2015 OWASP Project, https://www.owasp.org

This product includes js-cookie.js
Copyright (c) 2006, 2015 Klaus Hartl, https://github.com/js-cookie/js-cookie

This product includes Bootstrap
Copyright (c) 2011-2015 Twitter, Inc.

This product includes typeahead.js
Copyright (c) 2011-2015 Twitter, Inc.

This product includes gridster.js
Copyright (c) 2014 ducksboard, http://gridster.net/

This product includes Modernizr
Copyright (c) 2009-2015 modernizr.com

This product includes bonzo
Copyright (c) 2012 Dustin Diaz, https://github.com/ded/bonzo

This product includes select2
Copyright (c) 2012-2015, https://github.com/select2/select2/

This product includes ajax-solr
Copyright (c) 2011-2015, https://github.com/evolvingweb/ajax-solr

This product includes jquery-ui
Copyright (c) 2008-2015, https://jqueryui.com

This product includes jquery-circliful
Copyright (c) 2014-2015, https://github.com/pguso/jquery-plugin-circliful

This product includes chartist.js
Copyright (c) 2014-2015, https://gionkunz.github.io/chartist-js/
