// Copyright 2015 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_
#define CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_

#include <stdint.h>

#include <array>

extern const std::array<uint8_t, 18746> kFoxitFixedItalicFontData;
extern const std::array<uint8_t, 17597> kFoxitFixedFontData;
extern const std::array<uint8_t, 16339> kFoxitSansItalicFontData;
extern const std::array<uint8_t, 15025> kFoxitSansFontData;
extern const std::array<uint8_t, 21227> kFoxitSerifItalicFontData;
extern const std::array<uint8_t, 19469> kFoxitSerifFontData;
extern const std::array<uint8_t, 19151> kFoxitFixedBoldItalicFontData;
extern const std::array<uint8_t, 18055> kFoxitFixedBoldFontData;
extern const std::array<uint8_t, 16418> kFoxitSansBoldItalicFontData;
extern const std::array<uint8_t, 16344> kFoxitSansBoldFontData;
extern const std::array<uint8_t, 20733> kFoxitSerifBoldItalicFontData;
extern const std::array<uint8_t, 19395> kFoxitSerifBoldFontData;
extern const std::array<uint8_t, 16729> kFoxitSymbolFontData;
extern const std::array<uint8_t, 29513> kFoxitDingbatsFontData;
extern const std::array<uint8_t, 113417> kFoxitSerifMMFontData;
extern const std::array<uint8_t, 66919> kFoxitSansMMFontData;

#endif  // CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_
