// Copyright 2016 The Fuchsia Authors
// Copyright (c) 2016, Google Inc. All rights reserved.
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

// Note: Currently this module is a header only library.  This file exists only
// to give the compiler something to build in order to create a library.  It can
// be removed if/when the module contains something which needs to be compiled
// and linked later.
