Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /home/nandedex/www/s.nandedexpress.com/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : /home/nandedex/www/s.nandedexpress.com/olympus-google-fonts.tar
changelog.txt000064400000024674151213254130007246 0ustar00= 3.7.8 =

* Improve typekit security

= 3.7.7 =

* Hotfix fatal error

= 3.7.6 =

* Add MemberPress Courses compatibility

= 3.7.5 =

* Fix issue with uploaded fonts not displaying on the front end

= 3.7.4 =

* Fix array offset error when custom font is used and then deleted

= 3.7.3 =

* Fix unnecessary data being written to debug.log

= 3.7.2 =

* Fix customizer bug when using custom fonts

= 3.7.1 =

* Update readme

= 3.7.0 =

* Unlock font uploads in free version

= 3.6.51 =

* Fix implicit conversion deprecation

= 3.6.42 =

* Update blueprint

= 3.6.4 =

* Improve font file upload handling

= 3.6.31 =

* Add blueprint

= 3.6.3 =

* Readme improvements

= 3.6.2 =

* Classic editor improvements

= 3.6.1 =

* Test with WP6.5

= 3.6.0 =

* Add control for lists typography (Fonts Plugin → Advanced Settings → Content → Lists)

= 3.5.1 =

* Fix error where all subsets of a font could be removed.

= 3.5.0 =

* Fix fonts not displaying correctly in the Site Editor interface.

= 3.4.9 =

* Add secondary method for dismissing welcome admin message

= 3.4.8 =

* Fix script error on new widgets interface. props @guido07111975

= 3.4.7 =

* Update fonts list

= 3.4.6 =

* Update tested value

= 3.4.5 =

* Update fonts list

= 3.4.4 =

* Tested with WP6.3

= 3.4.3 =

* Update font choices

= 3.4.2 =

* Add font stack filter

= 3.4.1 =

* Fix problem with 'Reset Fonts' button

= 3.4.0 =

* Add option to use px values in Classic Editor instead of pt. (Located in Appearance > Customize > Fonts Plugin > Debugging)
* Fix block error in new Site Editor
* Optimize Gutenberg output

= 3.3.8 =

* Expand select of font size choices in Classic Editor

= 3.3.7 =

* Fix bug with subsets

= 3.3.6 =

* Update font choices

= 3.3.4 =

* Improve translations (props @alexclassroom)

= 3.3.3 =

* Fix classic editor error when custom and typekit fonts are used
* Remove deprecated jQuery .change()

= 3.3.2 =

* Revert whitespace change that breaks editor

= 3.3.1 =

* Use WOFF2 font format by default

y= 3.3.0 =

* Cache the Google Fonts request so we can embed the @font-face CSS directly

= 3.2.6 =

* Fix Customizer error when using system fonts

= 3.2.5 =

* Update fonts list

= 3.2.4 =

* Add prefix to WooCommerce helper

= 3.2.2 =

* Fix Classic Editor error when using Typekit fonts

= 3.2.1 =

* Add prefixes to control types to prevent conflicts.

= 3.2.0 =

* Add WooCommerce support.

= 3.1.2 =

* Automatically add all custom uploaded and typekit/adobe fonts to the Classic Editor.

= 3.0.21 =

* Improve compatibility with Full Site Editing (FSE).

= 3.0.20 =

* Update fonts list.

= 3.0.19 =

* Compatibility update.

= 3.0.18 =

* Update fonts list.

= 3.0.17 =

* Add filters to font control choices.

= 3.0.16 =

* Fix footer heading selectors.

= 3.0.15 =

* Fix issue with translations in /languages loading too late.

= 3.0.14 =

* Add support for block-based themes and full site editing.

= 3.0.13 =

* Fix issue where resource hints were being loaded when using local fonts.

= 3.0.11 =

* Add compatibility pack for Edge Themes / Qode Framework

= 3.0.9 =

* Update fonts list

= 3.0.7 =

* Update fonts list

= 3.0.6 =

* Remove dependency on fontsplugin.com to show news

= 3.0.5 =

* Update and compress fonts list.

= 3.0.4 =

* Add subset=all parameter to ensure all glyphs are loaded

= 3.0.3 =

* Security hardening

= 3.0.2 =

* Update fonts list in Gutenberg

= 3.0.1 =

* Update fonts list

= 3.0.0 =

* Fix imcompatibility with Juliet theme tagline.

= 2.5.9 =

* Update fonts list.
* Fix conflict in Customizer with the Hestia theme.

= 2.5.8 =

* Fix issue where 'Font Loading' screen was not showing if any non-Google fonts were chosen.
* If 'Force Styles' is enabled, add !important to block output.
* Add compatibility pack for the Graphene theme.

= 2.5.7 =

* Add control for quotes (blockquotes)
* Improve compatibility with TwentyTwenty

= 2.5.6 =

* Code optimization for future improvements.
* Fix inefficiencies with Typekit enqueues.
* Improve output of CSS variables.

= 2.5.5 =

* Fix bug where Custom Font Files weren't being enqueued in Gutenberg.

= 2.5.4 =

* Update Google Fonts list
* Improve Adobe Fonts integration

= 2.5.3 =

* Update localization

= 2.5.1 =

* Hotfix for API error

= 2.5.0 =

* Add support for Adobe Fonts / Typekit

= 2.4.0 =

* Increase max font size in Gutenberg to 150px

= 2.3.9 =

* Improve QS Guide page

= 2.3.8 =

* Administrators can now disable the editor-level font controls

= 2.3.7 =

* Add compatibility pack for ColorLib themes

= 2.3.6 =

* Add 'none' option to text-transform in the Customizer
* Remove useless console.log in Gutenberg

= 2.3.5 =

* Fix bug in Classic Editor when base fonts are not chosen

= 2.3.4 =

* Improve CSS specificity

= 2.3.3 =

* Classic Editor bug fix

= 2.3.2 =

* Fix join() error in PHP7.4

= 2.3.1 =

* Gutenberg block fixes

= 2.3.0 =

* Add font-display option (block, swap, fallback, optional)

= 2.2.4 =

* Add failsafe to protect against fonts getting removed

= 2.2.3 =

* Update fonts list

= 2.2.2 =

* Block Editor improvements

= 2.2.1 =

* Fix broken activation redirect

= 2.2.0 =

* Performance improvements
* Add easy access links in wp-admin

= 2.1.9 =

* Fix minor javascript error

= 2.1.8 =

* Fix text-transform control not showing correctly.
* Improve color control styling.

= 2.1.7 =

* Fix italic fonts not listed correctly in fonts.json.

= 2.1.6 =

* Update fonts list.

= 2.1.5 =

* Rewrite CSS vars to use Automattic's theme format.

= 2.1.4 =

* Expand sidebar CSS selectors.

= 2.1.3 =

* Fix broken link in readme.

= 2.1.2 =

* Overwrite the Classic Editor's typography using the 'Basic Settings'.

= 2.1.1 =

* Fix issue where customizer wasn't loading correct font weights.

= 2.1.0 =

* Further optimize fonts.json.
* Update fonts list.

= 2.0.7 =

* Fix array_key_exists() error, props @rafafallo

= 2.0.6 =

* Output the 'Basic Setting' choices as CSS variables. props @helgatheviking.
* Fix issue where important wasn't being applied to some system fonts.
* Add welcome page.

= 2.0.5 =

* Fix error notice in customizer.

= 2.0.4 =

 * Update fonts list.

= 2.0.3 =

 * Hotfix for customizer weight selector control.

= 2.0.2 =

 * Remove incorrectly printed variable in customizer.

= 2.0.1 =

 * Huge optimization of the ogf_font_array function. props @bndn
 * Fix typo in file structure

= 2.0.0 =

 * Add support for LyraThemes.

= 1.9.99 =

 * Add new fonts, including Inter.

= 1.9.97 =

 * Update copyright.

= 1.9.95 =

 * Improve compatibility with themes from 'Theme Freesia'.

= 1.9.94 =

 * Fix headings in Gutenberg not inheriting font settings.

= 1.9.93 =

 * Improved TwentyTwenty compatibility
 * Update font list

= 1.9.92 =

 * Tested with WP5.3

= 1.9.91 =

 * Fix duplicates in Classic Editor

= 1.9.9 =

 * Add system fonts to Gutenberg Block
 * Fix conflict with Freemius

= 1.9.8 =

 * Add new selector for 'Advanced Settings' → 'Content Typography'

= 1.9.7 =

 * Update Google Fonts list.
 * Add dashboard news widget.

= 1.9.6 =

 * Add new fonts to Gutenberg.

= 1.9.5 =

 * Fix problem where font styles were overwriting the Gutenberg interface.

= 1.9.4 =

 * Improve i18n strings.

= 1.9.3 =

 * Add custom CSS later in wp_head.

= 1.9.2 =

 * Add system fonts to Classic Editor interface.

= 1.9.1 =

 * Fix conflict with TinyMCE Advanced plugin.

= 1.9.0 =

 * Update available fonts list.
 * Add 'Classic Editor' support.
 * Add Futura font.

= 1.8.4 =

 * Add compatibility pack for ThemeIsle themes.

= 1.8.3 =

* Move 'CSS' setting to 'Advanced' panel.
* Add 'Reset' option to 'Debugging' section.

= 1.8.2 =

* Further improve theme compatibility for basic settings.

= 1.8.1 =

* Fix for "Invalid argument supplied for foreach()" error.

= 1.8.0 =

* Add 'Load Fonts for CSS' option.
* Add first implementation of compatibility filter (ThemeGrill).

= 1.7.6 =

* Add global font choices to block editor.
* Fix error in Gutenberg block.

= 1.7.5 =

* Fix font-display: swap in Gutenberg Block.
* Improve compatibility with MailOptin.

= 1.7.4 =

* Transform core paragraph and heading blocks into "Google Fonts Blocks".
* Add color option to "Google Fonts Block".
* Add Block Type option to "Google Fonts Block".
* Allow text customization in blocks even when a font is not selected.

= 1.7.3 =

* Compatibility fix for 'Local Hosting' addon.

= 1.7.2 =

* Add system fonts to the available choices.
* Remove font_choices_for_select() to reduce the amount of code output in the customizer.
* Fix issue where line-height is always 1.

= 1.7.1 =

* Fix changelog.txt link and include file in package.

= 1.7.0 =

* Reduce the load time impact on the customizer by ~1/3rd. Credits @aristath

= 1.6.3 =

* Fix $time Undefined variable.
* Update .pot file
* Update premium messaging

= 1.6.2 =

* Remove plugin recommendation for pro users as they already have the functionality

= 1.6.1 =

* Improve notifications class

= 1.6.0 =

* Add hook to CSS output
* Optimize CSS output

= 1.5.3 =

* Update icon.
* Move changelog to changelog.txt

= 1.5.2 =

* Improve Font Style setting.

= 1.5.1 =

* Speed up load times using preconnect resource hint.

= 1.5.0 =

* Fix problem with italics not being loaded.

= 1.4.8 =

* Improve theme compatibility

* Fix previewer not showing fonts
* Add new fonts

= 1.4.0 =

* Substantial performance improvements
* Improved organization of settings

= 1.3.2 =

* Add welcome notice.

= 1.3.1 =

* Update font list.
* Add version strings to resources.
* Add deactivation survey.

= 1.3.0 =

* Add 'Force Styles' setting to the bottom of 'Advanced Settings'.

= 1.2.5 =

* Improve theme compatibility.

= 1.2.4 =

* Improve customizer CSS.
* Improve Javascript code.

= 1.2.3 =

* Improve CSS for post/page headings and content.

= 1.2.2 =

* Minor updates

= 1.2.1 =

* Remove unused code

= 1.2.0 =

* Add new fonts
* Add font-weight option
* Add font-style option
* Improve live preview
* Add settings link to plugins page
* Add searchable text field to font-family setting
* Remove 'force styles' setting

= 1.1.2 =

* Add feedback request

= 1.1.1 =

* Add new fonts

= 1.1.0 =

* Improve outputting of Google stylesheet

= 1.0.9 =

* Fix navigation font setting

= 1.0.8 =

* Fix compatibility issue with PHP 5.2

= 1.0.7 =

* Add advanced settings

= 1.0.6 =

* Minor code improvements

= 1.0.5 =

* Add force styles option

= 1.0.3 =

* Rewrite readme

= 1.0.3 =

* Rename to adhere to guidelines

= 1.0.2 =

* Refactor get_choices in class-google-url.php

= 1.0.1 =

* Fix bug in class-google-url.php
* Add missing translation
* Add .pot file for translators

= 1.0.0 =

* Initial release of Google Fonts for WordPress
compatibility/themeisle.php000064400000002662151213254130012110 0ustar00<?php
/**
 * Compatibility file for ThemeIsle themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with ThemeIsle themes.
 *
 * @param array $elements The default elements.
 */
function ogf_themeisle_elements( $elements ) {
	$elements['ogf_post_page_h1']['selectors'] = '.entry-content h1, .post-content h1, .page-content h1, #content h1, .single-post-wrap h1, .page-content-wrap h1';
	$elements['ogf_post_page_h2']['selectors'] = '.entry-content h2, .post-content h2, .page-content h2, #content h2, .single-post-wrap h2, .page-content-wrap h2';
	$elements['ogf_post_page_h3']['selectors'] = '.entry-content h3, .post-content h3, .page-content h3, #content h3, .single-post-wrap h3, .page-content-wrap h3';
	$elements['ogf_post_page_h4']['selectors'] = '.entry-content h4, .post-content h4, .page-content h4, #content h4, .single-post-wrap h4, .page-content-wrap h4';
	$elements['ogf_post_page_h5']['selectors'] = '.entry-content h5, .post-content h5, .page-content h5, #content h5, .single-post-wrap h5, .page-content-wrap h5';
	$elements['ogf_post_page_h6']['selectors'] = '.entry-content h6, .post-content h6, .page-content h6, #content h6, .single-post-wrap h6, .page-content-wrap h6';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_themeisle_elements' );
compatibility/lyrathemes.php000064400000003713151213254130012304 0ustar00<?php
/**
 * Compatibility file for LyraThemes themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with LyraThemes themes.
 *
 * @param array $elements The default elements.
 */
function ogf_lyrathemes_elements( $elements ) {
	$elements['ogf_site_description']['selectors']  = '#site-description, .site-description, .tagline';
	$elements['ogf_body']['selectors']              = 'body, #content, .single-content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer';
	$elements['ogf_headings']['selectors']          = 'b#site-title, .site-title, #site-title a, .site-title a, .entry-title, .entry-title a, .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6, .widget-title';
	$elements['ogf_post_page_content']['selectors'] = '.single-content, .single-content p, .entry-content, .entry-content p, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .excerpt, .excerpt p';
	$elements['ogf_post_page_h2']['selectors']      = '.entry-content h2, .post-content h2, .page-content h2, #content h2, .single-content h2';
	$elements['ogf_post_page_h3']['selectors']      = '.entry-content h3, .post-content h3, .page-content h3, #content h3, .single-content h3';
	$elements['ogf_post_page_h4']['selectors']      = '.entry-content h4, .post-content h4, .page-content h4, #content h4, .single-content h4';
	$elements['ogf_post_page_h5']['selectors']      = '.entry-content h5, .post-content h5, .page-content h5, #content h5, .single-content h5';
	$elements['ogf_post_page_h6']['selectors']      = '.entry-content h6, .post-content h6, .page-content h6, #content h6, .single-content h6';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_lyrathemes_elements' );
compatibility/memberpress-courses.php000064400000005237151213254140014140 0ustar00<?php
/**
 * Compatibility file for MemberPress Courses.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default allowed handles to improve compatibility with Fonts Plugin.
 *
 * @param array $allowed_handles The default elements.
 */
function ogf_mb_courses_filter( $allowed_handles ) {
	$typekit_data = get_option( 'fp-typekit-data', array() );

	if ( is_array( $typekit_data ) ) {
		foreach ( $typekit_data as $id => $values ) {

			// skip if the kit is disabled.
			if ( $values['enabled'] === false ) {
				continue;
			}
			$allowed_handles[] = 'typekit-' . $id;
		}
	}

	$allowed_handles[] = 'olympus-google-fonts';

	return $allowed_handles;
}
add_filter( 'mpcs_classroom_style_handles', 'ogf_mb_courses_filter' );

/**
 * Modify the default element selectors to improve compatibility with MemberPress Courses.
 *
 * @param array $elements The default elements.
 */
function ogf_memberpress_courses_controls( $elements ) {
	$new = array(
		'ogc_mbc_base' => array(
			'label'       => esc_html__( 'Base Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '.mpcs-classroom, .mpcs-classroom .entry-content',
		),
		'ogc_mbc_headings' => array(
			'label'       => esc_html__( 'Heading Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '.mpcs-classroom h1, .mpcs-classroom h2, .mpcs-classroom h3, .mpcs-classroom h4, .mpcs-classroom h5, .mpcs-classroom h6',
		),
		'ogc_mbc_sidebar' => array(
			'label'       => esc_html__( 'Sidebar Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '.mpcs-sidebar-content',
		),
		'ogc_mbc_section_title' => array(
			'label'       => esc_html__( 'Section Title Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '.mpcs-section-title-text',
		),
		'ogc_mbc_lesson_nav' => array(
			'label'       => esc_html__( 'Navigation Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '#mpcs-lesson-navigation, #mpcs-lesson-navigation button',
		),
		'ogc_mbc_buttons' => array(
			'label'       => esc_html__( 'Button Font', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_memberpress_courses',
			'selectors'   => '.mpcs-classroom button',
		),
	);

	return array_merge( $elements, $new );
}
add_filter( 'ogf_elements', 'ogf_memberpress_courses_controls' );
compatibility/colorlib.php000064400000001345151213254140011734 0ustar00<?php
/**
 * Compatibility file for ColorLib themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with ColorLib themes.
 *
 * @param array $elements The default elements.
 */
function ogf_colorlib_elements( $elements ) {
	$elements['ogf_inputs']['selectors'] = 'button, .button, input, select, textarea, .wp-block-button, .wp-block-button__link, .btn, .header-button-one, .header-button-two, .latest-news-button, .readmore, .submit, #submit, .more-link, .blog-post-button';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_colorlib_elements' );
compatibility/edgethemes.php000064400000004055151213254140012242 0ustar00<?php
/**
 * Compatibility file for Edge Themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with Edge Themes.
 *
 * @param array $elements The default elements.
 */
function ogf_edgethemes_elements( $elements ) {
	$elements['ogf_body']['selectors']              = '#qodef-page-wrapper, body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer';
	$elements['ogf_post_page_content']['selectors'] = '#qodef-page-content, #qodef-page-content p, .entry-content, .entry-content p, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .excerpt, .excerpt p, .type-post p, .type-page p';
	$elements['ogf_post_page_h1']['selectors']      = '#qodef-page-content h1, .entry-title, .entry-title a, .post-title, .post-title a, .page-title, .entry-content h1, #content h1, .type-post h1, .type-page h1';
	$elements['ogf_post_page_h2']['selectors']      = '#qodef-page-content h2, .entry-content h2, .post-content h2, .page-content h2, #content h2, .type-post h2, .type-page h2';
	$elements['ogf_post_page_h3']['selectors']      = '#qodef-page-content h3, .entry-content h3, .post-content h3, .page-content h3, #content h3, .type-post h3, .type-page h3';
	$elements['ogf_post_page_h4']['selectors']      = '#qodef-page-content h4, .entry-content h4, .post-content h4, .page-content h4, #content h4, .type-post h4, .type-page h4';
	$elements['ogf_post_page_h5']['selectors']      = '#qodef-page-content h5, .entry-content h5, .post-content h5, .page-content h5, #content h5, .type-post h5, .type-page h5';
	$elements['ogf_post_page_h6']['selectors']      = '#qodef-page-content h6, .entry-content h6, .post-content h6, .page-content h6, #content h6, .type-post h6, .type-page h6';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_edgethemes_elements' );
compatibility/themegrill.php000064400000001041151213254140012254 0ustar00<?php
/**
 * Compatibility file for ThemeGrill themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with ThemeGrill themes.
 *
 * @param array $elements The default elements.
 */
function ogf_themegrill_elements( $elements ) {
	$elements['ogf_body']['selectors'] = 'body, p';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_themegrill_elements' );
compatibility/graphenethemessolutions.php000064400000002137151213254140015106 0ustar00<?php
/**
 * Compatibility file for Graphene theme.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with Graphen theme.
 *
 * @param array $elements The default elements.
 */
function ogf_silverks_elements( $elements ) {
	$elements['ogf_sidebar_headings']['selectors'] = '.widget-title, .widget-area h1, .widget-area h2, .widget-area h3, .widget-area h4, .widget-area h5, .widget-area h6, #secondary h1, #secondary h2, #secondary h3, #secondary h4, #secondary h5, #secondary h6, #sidebar h1, #sidebar h2, #sidebar h3, #sidebar h4, #sidebar h5, #sidebar h6, #sidebar1 h1, #sidebar1 h2, #sidebar1 h3, #sidebar1 h4, #sidebar1 h5, #sidebar1 h6, #sidebar2 h1, #sidebar2 h2, #sidebar2 h3, #sidebar2 h4, #sidebar2 h5, #sidebar2 h6';
	$elements['ogf_sidebar_content']['selectors']  = '.widget-area, .widget, .sidebar, #sidebar, #sidebar1, #sidebar2, #secondary';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_silverks_elements' );
compatibility/woocommerce.php000064400000010213151213254140012440 0ustar00<?php
/**
 * Compatibility file for WooCommerce.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with WooCommerce.
 *
 * @param array $elements The default elements.
 */
function ogf_woocommerce_controls( $elements ) {
	$new = array(
		'ogc_wc_single_title'             => array(
			'label'       => esc_html__( 'Product Title', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.product_title',
		),
		'ogc_wc_single_short_desc'        => array(
			'label'       => esc_html__( 'Short Description', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.woocommerce-product-details__short-description',
		),
		'ogc_wc_single_price'             => array(
			'label'       => esc_html__( 'Price', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.single-product .price',
		),
		'ogc_wc_single_price_add_to_cart' => array(
			'label'       => esc_html__( 'Add to Cart Button', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.single_add_to_cart_button',
		),
		'ogc_wc_single_tab_headings'      => array(
			'label'       => esc_html__( 'Tab Headings', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.wc-tab h2',
		),
		'ogc_wc_single_tab_content'       => array(
			'label'       => esc_html__( 'Tab Content', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_single',
			'selectors'   => '.wc-tab p',
		),
		'ogf_wc_checkout_button'          => array(
			'label'       => esc_html__( 'Proceed to Checkout Button', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_cart',
			'selectors'   => '.checkout-button',
		),
		'ogf_wc_field_labels'             => array(
			'label'       => esc_html__( 'Field Labels', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_checkout',
			'selectors'   => '.woocommerce .form-row label',
		),
		'ogf_wc_order_button'             => array(
			'label'       => esc_html__( 'Place Order Button', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_checkout',
			'selectors'   => '#place_order',
		),
		'ogf_wc_block_name'               => array(
			'label'       => esc_html__( 'Product Title', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_block',
			'selectors'   => '.wc-block-grid__products .wc-block-grid__product .wc-block-components-product-name',
		),
		'ogf_wc_block_price'              => array(
			'label'       => esc_html__( 'Product Price', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_block',
			'selectors'   => '.wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-price',
		),
		'ogf_wc_block_button'             => array(
			'label'       => esc_html__( 'Add to Cart Button', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_block',
			'selectors'   => '.wc-block-grid__products .wc-block-grid__product .add_to_cart_button',
		),
		'ogf_wc_shop_name'                => array(
			'label'       => esc_html__( 'Product Title', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_shop',
			'selectors'   => 'ul.products li.product .woocommerce-loop-product__title',
		),
		'ogf_wc_shop_price'               => array(
			'label'       => esc_html__( 'Product Price', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_shop',
			'selectors'   => 'ul.products li.product .price',
		),
		'ogf_wc_shop_button'              => array(
			'label'       => esc_html__( 'Add to Cart Button', 'olympus-google-fonts' ),
			'description' => '',
			'section'     => 'ogf_wc_shop',
			'selectors'   => 'ul.products li.product .button',
		),
	);

	return array_merge( $elements, $new );
}
add_filter( 'ogf_elements', 'ogf_woocommerce_controls' );
compatibility/thewordpressteam.php000064400000002373151213254140013531 0ustar00<?php
/**
 * Compatibility file for WordPress.org themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with WordPress.org themes.
 *
 * @param array $elements The default elements.
 */
function ogf_wporg_elements( $elements ) {
	$elements['ogf_body']['selectors']            = 'body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer, #site-footer, .entry-content p, .entry-content ol, .entry-content ul, .entry-content dl, .entry-content dt, .widget_text p, .widget_text ol, .widget_text ul, .widget_text dl, .widget_text dt, .widget-content .rssSummary';
	$elements['ogf_sidebar_content']['selectors'] = '.widget-area, .widget, .sidebar, #sidebar, .widget_text p, .widget_text ol, .widget_text ul, .widget_text dl, .widget_text dt, .widget-content .rssSummary, .widget_text p, .widget_text ol, .widget_text ul, .widget_text dl, .widget_text dt, .widget-content .rssSummary';
	return $elements;
}
add_filter( 'ogf_elements', 'ogf_wporg_elements' );
compatibility/themefreesia.php000064400000001513151213254140012565 0ustar00<?php
/**
 * Compatibility file for Theme Freesia themes.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Modify the default element selectors to improve compatibility with ThemeGrill themes.
 *
 * @param array $elements The default elements.
 */
function ogf_themefreesia_elements( $elements ) {
	$elements['ogf_post_page_h2']['selectors'] = '.entry-content h2,';
	$elements['ogf_post_page_h3']['selectors'] = '.entry-content h3,';
	$elements['ogf_post_page_h4']['selectors'] = '.entry-content h4,';
	$elements['ogf_post_page_h5']['selectors'] = '.entry-content h5,';
	$elements['ogf_post_page_h6']['selectors'] = '.entry-content h6,';

	return $elements;
}
add_filter( 'ogf_elements', 'ogf_themefreesia_elements' );
blocks/package-lock.json000064400001053707151213254140011250 0ustar00{
  "name": "my-block-cgb-guten-block",
  "version": "1.13.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@babel/code-frame": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz",
      "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==",
      "requires": {
        "@babel/highlight": "7.0.0-beta.44"
      }
    },
    "@babel/generator": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz",
      "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==",
      "requires": {
        "@babel/types": "7.0.0-beta.44",
        "jsesc": "^2.5.1",
        "lodash": "^4.2.0",
        "source-map": "^0.5.0",
        "trim-right": "^1.0.1"
      },
      "dependencies": {
        "jsesc": {
          "version": "2.5.2",
          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        }
      }
    },
    "@babel/helper-function-name": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz",
      "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==",
      "requires": {
        "@babel/helper-get-function-arity": "7.0.0-beta.44",
        "@babel/template": "7.0.0-beta.44",
        "@babel/types": "7.0.0-beta.44"
      }
    },
    "@babel/helper-get-function-arity": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz",
      "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==",
      "requires": {
        "@babel/types": "7.0.0-beta.44"
      }
    },
    "@babel/helper-split-export-declaration": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz",
      "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==",
      "requires": {
        "@babel/types": "7.0.0-beta.44"
      }
    },
    "@babel/highlight": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz",
      "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==",
      "requires": {
        "chalk": "^2.0.0",
        "esutils": "^2.0.2",
        "js-tokens": "^3.0.0"
      }
    },
    "@babel/runtime": {
      "version": "7.15.4",
      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
      "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
      "requires": {
        "regenerator-runtime": "^0.13.4"
      },
      "dependencies": {
        "regenerator-runtime": {
          "version": "0.13.9",
          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
        }
      }
    },
    "@babel/runtime-corejs3": {
      "version": "7.15.4",
      "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz",
      "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==",
      "requires": {
        "core-js-pure": "^3.16.0",
        "regenerator-runtime": "^0.13.4"
      },
      "dependencies": {
        "regenerator-runtime": {
          "version": "0.13.9",
          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
          "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
        }
      }
    },
    "@babel/template": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz",
      "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==",
      "requires": {
        "@babel/code-frame": "7.0.0-beta.44",
        "@babel/types": "7.0.0-beta.44",
        "babylon": "7.0.0-beta.44",
        "lodash": "^4.2.0"
      },
      "dependencies": {
        "babylon": {
          "version": "7.0.0-beta.44",
          "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
          "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
        }
      }
    },
    "@babel/traverse": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz",
      "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==",
      "requires": {
        "@babel/code-frame": "7.0.0-beta.44",
        "@babel/generator": "7.0.0-beta.44",
        "@babel/helper-function-name": "7.0.0-beta.44",
        "@babel/helper-split-export-declaration": "7.0.0-beta.44",
        "@babel/types": "7.0.0-beta.44",
        "babylon": "7.0.0-beta.44",
        "debug": "^3.1.0",
        "globals": "^11.1.0",
        "invariant": "^2.2.0",
        "lodash": "^4.2.0"
      },
      "dependencies": {
        "babylon": {
          "version": "7.0.0-beta.44",
          "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
          "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
        },
        "debug": {
          "version": "3.2.7",
          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
          "requires": {
            "ms": "^2.1.1"
          }
        },
        "globals": {
          "version": "11.12.0",
          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
        },
        "ms": {
          "version": "2.1.3",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
          "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
        }
      }
    },
    "@babel/types": {
      "version": "7.0.0-beta.44",
      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz",
      "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==",
      "requires": {
        "esutils": "^2.0.2",
        "lodash": "^4.2.0",
        "to-fast-properties": "^2.0.0"
      },
      "dependencies": {
        "to-fast-properties": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
        }
      }
    },
    "@scarf/scarf": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz",
      "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ=="
    },
    "abbrev": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
    },
    "acorn": {
      "version": "5.7.4",
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
      "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="
    },
    "acorn-dynamic-import": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
      "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
      "requires": {
        "acorn": "^4.0.3"
      },
      "dependencies": {
        "acorn": {
          "version": "4.0.13",
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
        }
      }
    },
    "acorn-jsx": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
      "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
      "requires": {
        "acorn": "^3.0.4"
      },
      "dependencies": {
        "acorn": {
          "version": "3.3.0",
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
          "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
        }
      }
    },
    "ajv": {
      "version": "5.5.2",
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
      "requires": {
        "co": "^4.6.0",
        "fast-deep-equal": "^1.0.0",
        "fast-json-stable-stringify": "^2.0.0",
        "json-schema-traverse": "^0.3.0"
      }
    },
    "ajv-errors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
    },
    "ajv-keywords": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
      "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I="
    },
    "align-text": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
      "requires": {
        "kind-of": "^3.0.2",
        "longest": "^1.0.1",
        "repeat-string": "^1.5.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "amdefine": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
    },
    "ansi-align": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
      "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
      "requires": {
        "string-width": "^2.0.0"
      }
    },
    "ansi-escapes": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
    },
    "ansi-regex": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
    },
    "ansi-styles": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
      "requires": {
        "color-convert": "^1.9.0"
      }
    },
    "anymatch": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
      "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
      "optional": true,
      "requires": {
        "normalize-path": "^3.0.0",
        "picomatch": "^2.0.4"
      }
    },
    "aproba": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
    },
    "are-we-there-yet": {
      "version": "1.1.7",
      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
      "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
      "requires": {
        "delegates": "^1.0.0",
        "readable-stream": "^2.0.6"
      }
    },
    "argparse": {
      "version": "1.0.10",
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
      "requires": {
        "sprintf-js": "~1.0.2"
      }
    },
    "aria-query": {
      "version": "4.2.2",
      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
      "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
      "requires": {
        "@babel/runtime": "^7.10.2",
        "@babel/runtime-corejs3": "^7.10.2"
      }
    },
    "arr-diff": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
      "optional": true
    },
    "arr-flatten": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
      "optional": true
    },
    "arr-union": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
      "optional": true
    },
    "array-find-index": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
    },
    "array-includes": {
      "version": "3.1.4",
      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
      "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1",
        "get-intrinsic": "^1.1.1",
        "is-string": "^1.0.7"
      }
    },
    "array-unique": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
      "optional": true
    },
    "array.prototype.flatmap": {
      "version": "1.2.5",
      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
      "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
      "requires": {
        "call-bind": "^1.0.0",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.0"
      }
    },
    "asn1": {
      "version": "0.2.4",
      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
      "requires": {
        "safer-buffer": "~2.1.0"
      }
    },
    "asn1.js": {
      "version": "5.4.1",
      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
      "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
      "requires": {
        "bn.js": "^4.0.0",
        "inherits": "^2.0.1",
        "minimalistic-assert": "^1.0.0",
        "safer-buffer": "^2.1.0"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "assert": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
      "requires": {
        "object-assign": "^4.1.1",
        "util": "0.10.3"
      },
      "dependencies": {
        "inherits": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
        },
        "util": {
          "version": "0.10.3",
          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
          "requires": {
            "inherits": "2.0.1"
          }
        }
      }
    },
    "assert-plus": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
    },
    "assign-symbols": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
      "optional": true
    },
    "ast-types-flow": {
      "version": "0.0.7",
      "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
      "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
    },
    "async": {
      "version": "2.6.3",
      "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
      "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
      "requires": {
        "lodash": "^4.17.14"
      }
    },
    "async-each": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
      "optional": true
    },
    "async-foreach": {
      "version": "0.1.3",
      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
    },
    "asynckit": {
      "version": "0.4.0",
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
    },
    "atob": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
      "optional": true
    },
    "autoprefixer": {
      "version": "7.2.6",
      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz",
      "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==",
      "requires": {
        "browserslist": "^2.11.3",
        "caniuse-lite": "^1.0.30000805",
        "normalize-range": "^0.1.2",
        "num2fraction": "^1.2.2",
        "postcss": "^6.0.17",
        "postcss-value-parser": "^3.2.3"
      }
    },
    "aws-sign2": {
      "version": "0.7.0",
      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
    },
    "aws4": {
      "version": "1.11.0",
      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
      "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
    },
    "axe-core": {
      "version": "4.3.3",
      "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz",
      "integrity": "sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA=="
    },
    "axobject-query": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
      "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
    },
    "babel-code-frame": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
      "requires": {
        "chalk": "^1.1.3",
        "esutils": "^2.0.2",
        "js-tokens": "^3.0.2"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "requires": {
            "ansi-styles": "^2.2.1",
            "escape-string-regexp": "^1.0.2",
            "has-ansi": "^2.0.0",
            "strip-ansi": "^3.0.0",
            "supports-color": "^2.0.0"
          }
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
        }
      }
    },
    "babel-core": {
      "version": "6.26.3",
      "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
      "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
      "requires": {
        "babel-code-frame": "^6.26.0",
        "babel-generator": "^6.26.0",
        "babel-helpers": "^6.24.1",
        "babel-messages": "^6.23.0",
        "babel-register": "^6.26.0",
        "babel-runtime": "^6.26.0",
        "babel-template": "^6.26.0",
        "babel-traverse": "^6.26.0",
        "babel-types": "^6.26.0",
        "babylon": "^6.18.0",
        "convert-source-map": "^1.5.1",
        "debug": "^2.6.9",
        "json5": "^0.5.1",
        "lodash": "^4.17.4",
        "minimatch": "^3.0.4",
        "path-is-absolute": "^1.0.1",
        "private": "^0.1.8",
        "slash": "^1.0.0",
        "source-map": "^0.5.7"
      },
      "dependencies": {
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        }
      }
    },
    "babel-eslint": {
      "version": "8.2.6",
      "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz",
      "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==",
      "requires": {
        "@babel/code-frame": "7.0.0-beta.44",
        "@babel/traverse": "7.0.0-beta.44",
        "@babel/types": "7.0.0-beta.44",
        "babylon": "7.0.0-beta.44",
        "eslint-scope": "3.7.1",
        "eslint-visitor-keys": "^1.0.0"
      },
      "dependencies": {
        "babylon": {
          "version": "7.0.0-beta.44",
          "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
          "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
        }
      }
    },
    "babel-generator": {
      "version": "6.26.1",
      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
      "requires": {
        "babel-messages": "^6.23.0",
        "babel-runtime": "^6.26.0",
        "babel-types": "^6.26.0",
        "detect-indent": "^4.0.0",
        "jsesc": "^1.3.0",
        "lodash": "^4.17.4",
        "source-map": "^0.5.7",
        "trim-right": "^1.0.1"
      },
      "dependencies": {
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        }
      }
    },
    "babel-helper-builder-binary-assignment-operator-visitor": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
      "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
      "requires": {
        "babel-helper-explode-assignable-expression": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-builder-react-jsx": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
      "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
      "requires": {
        "babel-runtime": "^6.26.0",
        "babel-types": "^6.26.0",
        "esutils": "^2.0.2"
      }
    },
    "babel-helper-call-delegate": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
      "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
      "requires": {
        "babel-helper-hoist-variables": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-define-map": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
      "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
      "requires": {
        "babel-helper-function-name": "^6.24.1",
        "babel-runtime": "^6.26.0",
        "babel-types": "^6.26.0",
        "lodash": "^4.17.4"
      }
    },
    "babel-helper-explode-assignable-expression": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
      "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-function-name": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
      "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
      "requires": {
        "babel-helper-get-function-arity": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-get-function-arity": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
      "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-hoist-variables": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
      "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-optimise-call-expression": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
      "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-regex": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
      "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
      "requires": {
        "babel-runtime": "^6.26.0",
        "babel-types": "^6.26.0",
        "lodash": "^4.17.4"
      }
    },
    "babel-helper-remap-async-to-generator": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
      "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
      "requires": {
        "babel-helper-function-name": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helper-replace-supers": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
      "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
      "requires": {
        "babel-helper-optimise-call-expression": "^6.24.1",
        "babel-messages": "^6.23.0",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-helpers": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
      "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-loader": {
      "version": "7.1.5",
      "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
      "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
      "requires": {
        "find-cache-dir": "^1.0.0",
        "loader-utils": "^1.0.2",
        "mkdirp": "^0.5.1"
      }
    },
    "babel-messages": {
      "version": "6.23.0",
      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-check-es2015-constants": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
      "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-syntax-async-functions": {
      "version": "6.13.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
      "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="
    },
    "babel-plugin-syntax-class-properties": {
      "version": "6.13.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
      "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94="
    },
    "babel-plugin-syntax-exponentiation-operator": {
      "version": "6.13.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
      "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4="
    },
    "babel-plugin-syntax-jsx": {
      "version": "6.18.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
      "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
    },
    "babel-plugin-syntax-object-rest-spread": {
      "version": "6.13.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
      "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U="
    },
    "babel-plugin-syntax-trailing-function-commas": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
      "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM="
    },
    "babel-plugin-transform-async-to-generator": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
      "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
      "requires": {
        "babel-helper-remap-async-to-generator": "^6.24.1",
        "babel-plugin-syntax-async-functions": "^6.8.0",
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-class-properties": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
      "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
      "requires": {
        "babel-helper-function-name": "^6.24.1",
        "babel-plugin-syntax-class-properties": "^6.8.0",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-arrow-functions": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
      "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-block-scoped-functions": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
      "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-block-scoping": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
      "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
      "requires": {
        "babel-runtime": "^6.26.0",
        "babel-template": "^6.26.0",
        "babel-traverse": "^6.26.0",
        "babel-types": "^6.26.0",
        "lodash": "^4.17.4"
      }
    },
    "babel-plugin-transform-es2015-classes": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
      "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
      "requires": {
        "babel-helper-define-map": "^6.24.1",
        "babel-helper-function-name": "^6.24.1",
        "babel-helper-optimise-call-expression": "^6.24.1",
        "babel-helper-replace-supers": "^6.24.1",
        "babel-messages": "^6.23.0",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-computed-properties": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
      "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-destructuring": {
      "version": "6.23.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
      "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-duplicate-keys": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
      "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-for-of": {
      "version": "6.23.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
      "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-function-name": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
      "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
      "requires": {
        "babel-helper-function-name": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-literals": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
      "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-modules-amd": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
      "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
      "requires": {
        "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-modules-commonjs": {
      "version": "6.26.2",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
      "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
      "requires": {
        "babel-plugin-transform-strict-mode": "^6.24.1",
        "babel-runtime": "^6.26.0",
        "babel-template": "^6.26.0",
        "babel-types": "^6.26.0"
      }
    },
    "babel-plugin-transform-es2015-modules-systemjs": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
      "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
      "requires": {
        "babel-helper-hoist-variables": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-modules-umd": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
      "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
      "requires": {
        "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-object-super": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
      "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
      "requires": {
        "babel-helper-replace-supers": "^6.24.1",
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-parameters": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
      "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
      "requires": {
        "babel-helper-call-delegate": "^6.24.1",
        "babel-helper-get-function-arity": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-template": "^6.24.1",
        "babel-traverse": "^6.24.1",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-shorthand-properties": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
      "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-spread": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
      "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-sticky-regex": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
      "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
      "requires": {
        "babel-helper-regex": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-plugin-transform-es2015-template-literals": {
      "version": "6.22.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
      "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-typeof-symbol": {
      "version": "6.23.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
      "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-es2015-unicode-regex": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
      "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
      "requires": {
        "babel-helper-regex": "^6.24.1",
        "babel-runtime": "^6.22.0",
        "regexpu-core": "^2.0.0"
      }
    },
    "babel-plugin-transform-exponentiation-operator": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
      "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
      "requires": {
        "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
        "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-object-rest-spread": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
      "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
      "requires": {
        "babel-plugin-syntax-object-rest-spread": "^6.8.0",
        "babel-runtime": "^6.26.0"
      }
    },
    "babel-plugin-transform-react-jsx": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
      "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
      "requires": {
        "babel-helper-builder-react-jsx": "^6.24.1",
        "babel-plugin-syntax-jsx": "^6.8.0",
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-regenerator": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
      "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
      "requires": {
        "regenerator-transform": "^0.10.0"
      }
    },
    "babel-plugin-transform-runtime": {
      "version": "6.23.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
      "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
      "requires": {
        "babel-runtime": "^6.22.0"
      }
    },
    "babel-plugin-transform-strict-mode": {
      "version": "6.24.1",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
      "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
      "requires": {
        "babel-runtime": "^6.22.0",
        "babel-types": "^6.24.1"
      }
    },
    "babel-preset-cgb": {
      "version": "1.7.1",
      "resolved": "https://registry.npmjs.org/babel-preset-cgb/-/babel-preset-cgb-1.7.1.tgz",
      "integrity": "sha512-9fzPz7TSZhQrQCxOcZwqmoNCg2HFWoNyc700Z9X9oAws9quM3m52hZMW4ZV3Tq+X3nHh0upf5XBJ6apssntjHQ==",
      "requires": {
        "@scarf/scarf": "^1.0.6",
        "babel-plugin-syntax-async-functions": "^6.13.0",
        "babel-plugin-transform-class-properties": "6.24.1",
        "babel-plugin-transform-object-rest-spread": "^6.26.0",
        "babel-plugin-transform-react-jsx": "^6.24.1",
        "babel-plugin-transform-runtime": "^6.23.0",
        "babel-preset-env": "^1.6.0",
        "update-notifier": "^2.3.0"
      }
    },
    "babel-preset-env": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
      "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
      "requires": {
        "babel-plugin-check-es2015-constants": "^6.22.0",
        "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
        "babel-plugin-transform-async-to-generator": "^6.22.0",
        "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
        "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
        "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
        "babel-plugin-transform-es2015-classes": "^6.23.0",
        "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
        "babel-plugin-transform-es2015-destructuring": "^6.23.0",
        "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
        "babel-plugin-transform-es2015-for-of": "^6.23.0",
        "babel-plugin-transform-es2015-function-name": "^6.22.0",
        "babel-plugin-transform-es2015-literals": "^6.22.0",
        "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
        "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
        "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
        "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
        "babel-plugin-transform-es2015-object-super": "^6.22.0",
        "babel-plugin-transform-es2015-parameters": "^6.23.0",
        "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
        "babel-plugin-transform-es2015-spread": "^6.22.0",
        "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
        "babel-plugin-transform-es2015-template-literals": "^6.22.0",
        "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
        "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
        "babel-plugin-transform-exponentiation-operator": "^6.22.0",
        "babel-plugin-transform-regenerator": "^6.22.0",
        "browserslist": "^3.2.6",
        "invariant": "^2.2.2",
        "semver": "^5.3.0"
      },
      "dependencies": {
        "browserslist": {
          "version": "3.2.8",
          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
          "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
          "requires": {
            "caniuse-lite": "^1.0.30000844",
            "electron-to-chromium": "^1.3.47"
          }
        }
      }
    },
    "babel-register": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
      "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
      "requires": {
        "babel-core": "^6.26.0",
        "babel-runtime": "^6.26.0",
        "core-js": "^2.5.0",
        "home-or-tmp": "^2.0.0",
        "lodash": "^4.17.4",
        "mkdirp": "^0.5.1",
        "source-map-support": "^0.4.15"
      }
    },
    "babel-runtime": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
      "requires": {
        "core-js": "^2.4.0",
        "regenerator-runtime": "^0.11.0"
      }
    },
    "babel-template": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
      "requires": {
        "babel-runtime": "^6.26.0",
        "babel-traverse": "^6.26.0",
        "babel-types": "^6.26.0",
        "babylon": "^6.18.0",
        "lodash": "^4.17.4"
      }
    },
    "babel-traverse": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
      "requires": {
        "babel-code-frame": "^6.26.0",
        "babel-messages": "^6.23.0",
        "babel-runtime": "^6.26.0",
        "babel-types": "^6.26.0",
        "babylon": "^6.18.0",
        "debug": "^2.6.8",
        "globals": "^9.18.0",
        "invariant": "^2.2.2",
        "lodash": "^4.17.4"
      }
    },
    "babel-types": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
      "requires": {
        "babel-runtime": "^6.26.0",
        "esutils": "^2.0.2",
        "lodash": "^4.17.4",
        "to-fast-properties": "^1.0.3"
      }
    },
    "babylon": {
      "version": "6.18.0",
      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
    },
    "balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
    },
    "base": {
      "version": "0.11.2",
      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
      "optional": true,
      "requires": {
        "cache-base": "^1.0.1",
        "class-utils": "^0.3.5",
        "component-emitter": "^1.2.1",
        "define-property": "^1.0.0",
        "isobject": "^3.0.1",
        "mixin-deep": "^1.2.0",
        "pascalcase": "^0.1.1"
      },
      "dependencies": {
        "define-property": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^1.0.0"
          }
        },
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "optional": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "base64-js": {
      "version": "1.5.1",
      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
    },
    "bcrypt-pbkdf": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
      "requires": {
        "tweetnacl": "^0.14.3"
      }
    },
    "big.js": {
      "version": "5.2.2",
      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
    },
    "binary-extensions": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
      "optional": true
    },
    "bindings": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
      "optional": true,
      "requires": {
        "file-uri-to-path": "1.0.0"
      }
    },
    "block-stream": {
      "version": "0.0.9",
      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
      "requires": {
        "inherits": "~2.0.0"
      }
    },
    "bn.js": {
      "version": "5.2.0",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
      "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
    },
    "boxen": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
      "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
      "requires": {
        "ansi-align": "^2.0.0",
        "camelcase": "^4.0.0",
        "chalk": "^2.0.1",
        "cli-boxes": "^1.0.0",
        "string-width": "^2.0.0",
        "term-size": "^1.2.0",
        "widest-line": "^2.0.0"
      }
    },
    "brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "requires": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "braces": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
      "optional": true,
      "requires": {
        "fill-range": "^7.0.1"
      }
    },
    "brorand": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
    },
    "browserify-aes": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
      "requires": {
        "buffer-xor": "^1.0.3",
        "cipher-base": "^1.0.0",
        "create-hash": "^1.1.0",
        "evp_bytestokey": "^1.0.3",
        "inherits": "^2.0.1",
        "safe-buffer": "^5.0.1"
      }
    },
    "browserify-cipher": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
      "requires": {
        "browserify-aes": "^1.0.4",
        "browserify-des": "^1.0.0",
        "evp_bytestokey": "^1.0.0"
      }
    },
    "browserify-des": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
      "requires": {
        "cipher-base": "^1.0.1",
        "des.js": "^1.0.0",
        "inherits": "^2.0.1",
        "safe-buffer": "^5.1.2"
      }
    },
    "browserify-rsa": {
      "version": "4.1.0",
      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
      "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
      "requires": {
        "bn.js": "^5.0.0",
        "randombytes": "^2.0.1"
      }
    },
    "browserify-sign": {
      "version": "4.2.1",
      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
      "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
      "requires": {
        "bn.js": "^5.1.1",
        "browserify-rsa": "^4.0.1",
        "create-hash": "^1.2.0",
        "create-hmac": "^1.1.7",
        "elliptic": "^6.5.3",
        "inherits": "^2.0.4",
        "parse-asn1": "^5.1.5",
        "readable-stream": "^3.6.0",
        "safe-buffer": "^5.2.0"
      },
      "dependencies": {
        "readable-stream": {
          "version": "3.6.0",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
          "requires": {
            "inherits": "^2.0.3",
            "string_decoder": "^1.1.1",
            "util-deprecate": "^1.0.1"
          }
        },
        "safe-buffer": {
          "version": "5.2.1",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
        }
      }
    },
    "browserify-zlib": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
      "requires": {
        "pako": "~1.0.5"
      }
    },
    "browserslist": {
      "version": "2.11.3",
      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
      "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
      "requires": {
        "caniuse-lite": "^1.0.30000792",
        "electron-to-chromium": "^1.3.30"
      }
    },
    "buffer": {
      "version": "4.9.2",
      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
      "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
      "requires": {
        "base64-js": "^1.0.2",
        "ieee754": "^1.1.4",
        "isarray": "^1.0.0"
      }
    },
    "buffer-from": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
    },
    "buffer-xor": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
    },
    "builtin-status-codes": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
    },
    "cache-base": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
      "optional": true,
      "requires": {
        "collection-visit": "^1.0.0",
        "component-emitter": "^1.2.1",
        "get-value": "^2.0.6",
        "has-value": "^1.0.0",
        "isobject": "^3.0.1",
        "set-value": "^2.0.0",
        "to-object-path": "^0.3.0",
        "union-value": "^1.0.0",
        "unset-value": "^1.0.0"
      }
    },
    "call-bind": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
      "requires": {
        "function-bind": "^1.1.1",
        "get-intrinsic": "^1.0.2"
      }
    },
    "caller-callsite": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
      "requires": {
        "callsites": "^2.0.0"
      },
      "dependencies": {
        "callsites": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
          "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
        }
      }
    },
    "caller-path": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
      "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
      "requires": {
        "callsites": "^0.2.0"
      }
    },
    "callsites": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
      "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="
    },
    "camelcase": {
      "version": "4.1.0",
      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
      "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
    },
    "camelcase-keys": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
      "requires": {
        "camelcase": "^2.0.0",
        "map-obj": "^1.0.0"
      },
      "dependencies": {
        "camelcase": {
          "version": "2.1.1",
          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
        }
      }
    },
    "caniuse-lite": {
      "version": "1.0.30001267",
      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001267.tgz",
      "integrity": "sha512-r1mjTzAuJ9W8cPBGbbus8E0SKcUP7gn03R14Wk8FlAlqhH9hroy9nLqmpuXlfKEw/oILW+FGz47ipXV2O7x8lg=="
    },
    "capture-stack-trace": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
      "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
    },
    "caseless": {
      "version": "0.12.0",
      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
    },
    "center-align": {
      "version": "0.1.3",
      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
      "requires": {
        "align-text": "^0.1.3",
        "lazy-cache": "^1.0.3"
      }
    },
    "cgb-dev-utils": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/cgb-dev-utils/-/cgb-dev-utils-1.6.1.tgz",
      "integrity": "sha512-WJFWifyKCL+jVewgELmJ8I8H1IrTedYuOnk6IFaxRvP9ELAHEcofCKNt4HiNJorMUUrqkt8ohaRaxeaH75UPlA==",
      "requires": {
        "@scarf/scarf": "^1.0.6",
        "chalk": "2.3.0",
        "cross-spawn": "5.1.0",
        "update-notifier": "^2.3.0"
      },
      "dependencies": {
        "chalk": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
          "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
          "requires": {
            "ansi-styles": "^3.1.0",
            "escape-string-regexp": "^1.0.5",
            "supports-color": "^4.0.0"
          }
        },
        "has-flag": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
          "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
        },
        "supports-color": {
          "version": "4.5.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
          "requires": {
            "has-flag": "^2.0.0"
          }
        }
      }
    },
    "cgb-scripts": {
      "version": "1.23.1",
      "resolved": "https://registry.npmjs.org/cgb-scripts/-/cgb-scripts-1.23.1.tgz",
      "integrity": "sha512-axJTEMMgXI6kUsGQYCZ4WHGVGVFUOCBmu6SpLR/80zStmv+4dtGpWSw6G73b1t3iW/wCBmgU7HMQVenCfxp+AQ==",
      "requires": {
        "@scarf/scarf": "^1.0.6",
        "autoprefixer": "^7.2.4",
        "babel-core": "^6.25.0",
        "babel-eslint": "^8.2.1",
        "babel-loader": "^7.1.1",
        "babel-preset-cgb": "^1.7.0",
        "cgb-dev-utils": "^1.6.0",
        "chalk": "^2.3.0",
        "cross-env": "^5.0.1",
        "cross-spawn": "^5.1.0",
        "eslint": "^4.15.0",
        "eslint-config-wordpress": "^2.0.0",
        "eslint-plugin-jest": "^21.6.1",
        "eslint-plugin-jsx-a11y": "^6.0.3",
        "eslint-plugin-react": "^7.5.1",
        "eslint-plugin-wordpress": "^0.1.0",
        "extract-text-webpack-plugin": "^3.0.2",
        "filesize": "^3.5.11",
        "fs-extra": "^5.0.0",
        "gzip-size": "^4.1.0",
        "inquirer": "^5.0.0",
        "node-sass": "^4.7.2",
        "ora": "^1.3.0",
        "postcss-loader": "^2.0.10",
        "raw-loader": "^0.5.1",
        "resolve-pkg": "^1.0.0",
        "sass-loader": "^6.0.6",
        "shelljs": "^0.8.0",
        "style-loader": "^0.23.1",
        "update-notifier": "^2.3.0",
        "webpack": "^3.1.0"
      }
    },
    "chalk": {
      "version": "2.4.2",
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
      "requires": {
        "ansi-styles": "^3.2.1",
        "escape-string-regexp": "^1.0.5",
        "supports-color": "^5.3.0"
      }
    },
    "chardet": {
      "version": "0.4.2",
      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
      "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
    },
    "chokidar": {
      "version": "3.5.2",
      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
      "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
      "optional": true,
      "requires": {
        "anymatch": "~3.1.2",
        "braces": "~3.0.2",
        "fsevents": "~2.3.2",
        "glob-parent": "~5.1.2",
        "is-binary-path": "~2.1.0",
        "is-glob": "~4.0.1",
        "normalize-path": "~3.0.0",
        "readdirp": "~3.6.0"
      }
    },
    "ci-info": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A=="
    },
    "cipher-base": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
      "requires": {
        "inherits": "^2.0.1",
        "safe-buffer": "^5.0.1"
      }
    },
    "circular-json": {
      "version": "0.3.3",
      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
      "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A=="
    },
    "class-utils": {
      "version": "0.3.6",
      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
      "optional": true,
      "requires": {
        "arr-union": "^3.1.0",
        "define-property": "^0.2.5",
        "isobject": "^3.0.0",
        "static-extend": "^0.1.1"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        }
      }
    },
    "classnames": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
      "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
    },
    "cli-boxes": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
      "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM="
    },
    "cli-cursor": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
      "requires": {
        "restore-cursor": "^2.0.0"
      }
    },
    "cli-spinners": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
      "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg=="
    },
    "cli-width": {
      "version": "2.2.1",
      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
      "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
    },
    "cliui": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
      "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
      "requires": {
        "string-width": "^3.1.0",
        "strip-ansi": "^5.2.0",
        "wrap-ansi": "^5.1.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "4.1.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
        },
        "emoji-regex": {
          "version": "7.0.3",
          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
        },
        "string-width": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
          "requires": {
            "emoji-regex": "^7.0.1",
            "is-fullwidth-code-point": "^2.0.0",
            "strip-ansi": "^5.1.0"
          }
        },
        "strip-ansi": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
          "requires": {
            "ansi-regex": "^4.1.0"
          }
        }
      }
    },
    "clone-deep": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
      "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
      "requires": {
        "for-own": "^1.0.0",
        "is-plain-object": "^2.0.4",
        "kind-of": "^6.0.0",
        "shallow-clone": "^1.0.0"
      }
    },
    "co": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
    },
    "code-point-at": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
    },
    "collection-visit": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
      "optional": true,
      "requires": {
        "map-visit": "^1.0.0",
        "object-visit": "^1.0.0"
      }
    },
    "color-convert": {
      "version": "1.9.3",
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
      "requires": {
        "color-name": "1.1.3"
      }
    },
    "color-name": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
    },
    "combined-stream": {
      "version": "1.0.8",
      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
      "requires": {
        "delayed-stream": "~1.0.0"
      }
    },
    "commondir": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
    },
    "component-emitter": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
      "optional": true
    },
    "concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
    },
    "concat-stream": {
      "version": "1.6.2",
      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
      "requires": {
        "buffer-from": "^1.0.0",
        "inherits": "^2.0.3",
        "readable-stream": "^2.2.2",
        "typedarray": "^0.0.6"
      }
    },
    "configstore": {
      "version": "3.1.5",
      "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz",
      "integrity": "sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==",
      "requires": {
        "dot-prop": "^4.2.1",
        "graceful-fs": "^4.1.2",
        "make-dir": "^1.0.0",
        "unique-string": "^1.0.0",
        "write-file-atomic": "^2.0.0",
        "xdg-basedir": "^3.0.0"
      }
    },
    "console-browserify": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
      "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
    },
    "console-control-strings": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
    },
    "constants-browserify": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
    },
    "convert-source-map": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
      "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
      "requires": {
        "safe-buffer": "~5.1.1"
      }
    },
    "copy-descriptor": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
      "optional": true
    },
    "core-js": {
      "version": "2.6.12",
      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
    },
    "core-js-pure": {
      "version": "3.18.3",
      "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz",
      "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw=="
    },
    "core-util-is": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
    },
    "cosmiconfig": {
      "version": "5.2.1",
      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
      "requires": {
        "import-fresh": "^2.0.0",
        "is-directory": "^0.3.1",
        "js-yaml": "^3.13.1",
        "parse-json": "^4.0.0"
      },
      "dependencies": {
        "parse-json": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
          "requires": {
            "error-ex": "^1.3.1",
            "json-parse-better-errors": "^1.0.1"
          }
        }
      }
    },
    "create-ecdh": {
      "version": "4.0.4",
      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
      "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
      "requires": {
        "bn.js": "^4.1.0",
        "elliptic": "^6.5.3"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "create-error-class": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
      "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
      "requires": {
        "capture-stack-trace": "^1.0.0"
      }
    },
    "create-hash": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
      "requires": {
        "cipher-base": "^1.0.1",
        "inherits": "^2.0.1",
        "md5.js": "^1.3.4",
        "ripemd160": "^2.0.1",
        "sha.js": "^2.4.0"
      }
    },
    "create-hmac": {
      "version": "1.1.7",
      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
      "requires": {
        "cipher-base": "^1.0.3",
        "create-hash": "^1.1.0",
        "inherits": "^2.0.1",
        "ripemd160": "^2.0.0",
        "safe-buffer": "^5.0.1",
        "sha.js": "^2.4.8"
      }
    },
    "cross-env": {
      "version": "5.2.1",
      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz",
      "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==",
      "requires": {
        "cross-spawn": "^6.0.5"
      },
      "dependencies": {
        "cross-spawn": {
          "version": "6.0.5",
          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
          "requires": {
            "nice-try": "^1.0.4",
            "path-key": "^2.0.1",
            "semver": "^5.5.0",
            "shebang-command": "^1.2.0",
            "which": "^1.2.9"
          }
        }
      }
    },
    "cross-spawn": {
      "version": "5.1.0",
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
      "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
      "requires": {
        "lru-cache": "^4.0.1",
        "shebang-command": "^1.2.0",
        "which": "^1.2.9"
      }
    },
    "crypto-browserify": {
      "version": "3.12.0",
      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
      "requires": {
        "browserify-cipher": "^1.0.0",
        "browserify-sign": "^4.0.0",
        "create-ecdh": "^4.0.0",
        "create-hash": "^1.1.0",
        "create-hmac": "^1.1.0",
        "diffie-hellman": "^5.0.0",
        "inherits": "^2.0.1",
        "pbkdf2": "^3.0.3",
        "public-encrypt": "^4.0.0",
        "randombytes": "^2.0.0",
        "randomfill": "^1.0.3"
      }
    },
    "crypto-random-string": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
      "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
    },
    "currently-unhandled": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
      "requires": {
        "array-find-index": "^1.0.1"
      }
    },
    "d": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
      "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
      "requires": {
        "es5-ext": "^0.10.50",
        "type": "^1.0.1"
      }
    },
    "damerau-levenshtein": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz",
      "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw=="
    },
    "dashdash": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
      "requires": {
        "assert-plus": "^1.0.0"
      }
    },
    "debug": {
      "version": "2.6.9",
      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
      "requires": {
        "ms": "2.0.0"
      }
    },
    "decamelize": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
    },
    "decode-uri-component": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
      "optional": true
    },
    "deep-extend": {
      "version": "0.6.0",
      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
    },
    "deep-is": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
    },
    "define-properties": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
      "requires": {
        "object-keys": "^1.0.12"
      }
    },
    "define-property": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
      "optional": true,
      "requires": {
        "is-descriptor": "^1.0.2",
        "isobject": "^3.0.1"
      },
      "dependencies": {
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "optional": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "delayed-stream": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
    },
    "delegates": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
    },
    "des.js": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
      "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
      "requires": {
        "inherits": "^2.0.1",
        "minimalistic-assert": "^1.0.0"
      }
    },
    "detect-indent": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
      "requires": {
        "repeating": "^2.0.0"
      }
    },
    "diffie-hellman": {
      "version": "5.0.3",
      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
      "requires": {
        "bn.js": "^4.1.0",
        "miller-rabin": "^4.0.0",
        "randombytes": "^2.0.0"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "doctrine": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
      "requires": {
        "esutils": "^2.0.2"
      }
    },
    "domain-browser": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
    },
    "dot-prop": {
      "version": "4.2.1",
      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
      "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
      "requires": {
        "is-obj": "^1.0.0"
      }
    },
    "duplexer": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
      "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
    },
    "duplexer3": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
    },
    "ecc-jsbn": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
      "requires": {
        "jsbn": "~0.1.0",
        "safer-buffer": "^2.1.0"
      }
    },
    "electron-to-chromium": {
      "version": "1.3.868",
      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.868.tgz",
      "integrity": "sha512-kZYCHqwJ1ctGrYDlOcWQH+/AftAm/KD4lEnLDNwS0kKwx1x6dU4zv+GuDjsPPOGn/2TjnKBaZjDyjXaoix0q/A=="
    },
    "elliptic": {
      "version": "6.5.4",
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
      "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
      "requires": {
        "bn.js": "^4.11.9",
        "brorand": "^1.1.0",
        "hash.js": "^1.0.0",
        "hmac-drbg": "^1.0.1",
        "inherits": "^2.0.4",
        "minimalistic-assert": "^1.0.1",
        "minimalistic-crypto-utils": "^1.0.1"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "emoji-regex": {
      "version": "9.2.2",
      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
    },
    "emojis-list": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
    },
    "enhanced-resolve": {
      "version": "3.4.1",
      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
      "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
      "requires": {
        "graceful-fs": "^4.1.2",
        "memory-fs": "^0.4.0",
        "object-assign": "^4.0.1",
        "tapable": "^0.2.7"
      }
    },
    "errno": {
      "version": "0.1.8",
      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
      "requires": {
        "prr": "~1.0.1"
      }
    },
    "error-ex": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
      "requires": {
        "is-arrayish": "^0.2.1"
      }
    },
    "es-abstract": {
      "version": "1.19.1",
      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
      "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
      "requires": {
        "call-bind": "^1.0.2",
        "es-to-primitive": "^1.2.1",
        "function-bind": "^1.1.1",
        "get-intrinsic": "^1.1.1",
        "get-symbol-description": "^1.0.0",
        "has": "^1.0.3",
        "has-symbols": "^1.0.2",
        "internal-slot": "^1.0.3",
        "is-callable": "^1.2.4",
        "is-negative-zero": "^2.0.1",
        "is-regex": "^1.1.4",
        "is-shared-array-buffer": "^1.0.1",
        "is-string": "^1.0.7",
        "is-weakref": "^1.0.1",
        "object-inspect": "^1.11.0",
        "object-keys": "^1.1.1",
        "object.assign": "^4.1.2",
        "string.prototype.trimend": "^1.0.4",
        "string.prototype.trimstart": "^1.0.4",
        "unbox-primitive": "^1.0.1"
      }
    },
    "es-to-primitive": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
      "requires": {
        "is-callable": "^1.1.4",
        "is-date-object": "^1.0.1",
        "is-symbol": "^1.0.2"
      }
    },
    "es5-ext": {
      "version": "0.10.53",
      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
      "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
      "requires": {
        "es6-iterator": "~2.0.3",
        "es6-symbol": "~3.1.3",
        "next-tick": "~1.0.0"
      }
    },
    "es6-iterator": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
      "requires": {
        "d": "1",
        "es5-ext": "^0.10.35",
        "es6-symbol": "^3.1.1"
      }
    },
    "es6-map": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
      "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
      "requires": {
        "d": "1",
        "es5-ext": "~0.10.14",
        "es6-iterator": "~2.0.1",
        "es6-set": "~0.1.5",
        "es6-symbol": "~3.1.1",
        "event-emitter": "~0.3.5"
      }
    },
    "es6-set": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
      "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
      "requires": {
        "d": "1",
        "es5-ext": "~0.10.14",
        "es6-iterator": "~2.0.1",
        "es6-symbol": "3.1.1",
        "event-emitter": "~0.3.5"
      },
      "dependencies": {
        "es6-symbol": {
          "version": "3.1.1",
          "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
          "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
          "requires": {
            "d": "1",
            "es5-ext": "~0.10.14"
          }
        }
      }
    },
    "es6-symbol": {
      "version": "3.1.3",
      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
      "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
      "requires": {
        "d": "^1.0.1",
        "ext": "^1.1.2"
      }
    },
    "es6-weak-map": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
      "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
      "requires": {
        "d": "1",
        "es5-ext": "^0.10.46",
        "es6-iterator": "^2.0.3",
        "es6-symbol": "^3.1.1"
      }
    },
    "escape-string-regexp": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
    },
    "escope": {
      "version": "3.6.0",
      "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
      "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
      "requires": {
        "es6-map": "^0.1.3",
        "es6-weak-map": "^2.0.1",
        "esrecurse": "^4.1.0",
        "estraverse": "^4.1.1"
      }
    },
    "eslint": {
      "version": "4.19.1",
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
      "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
      "requires": {
        "ajv": "^5.3.0",
        "babel-code-frame": "^6.22.0",
        "chalk": "^2.1.0",
        "concat-stream": "^1.6.0",
        "cross-spawn": "^5.1.0",
        "debug": "^3.1.0",
        "doctrine": "^2.1.0",
        "eslint-scope": "^3.7.1",
        "eslint-visitor-keys": "^1.0.0",
        "espree": "^3.5.4",
        "esquery": "^1.0.0",
        "esutils": "^2.0.2",
        "file-entry-cache": "^2.0.0",
        "functional-red-black-tree": "^1.0.1",
        "glob": "^7.1.2",
        "globals": "^11.0.1",
        "ignore": "^3.3.3",
        "imurmurhash": "^0.1.4",
        "inquirer": "^3.0.6",
        "is-resolvable": "^1.0.0",
        "js-yaml": "^3.9.1",
        "json-stable-stringify-without-jsonify": "^1.0.1",
        "levn": "^0.3.0",
        "lodash": "^4.17.4",
        "minimatch": "^3.0.2",
        "mkdirp": "^0.5.1",
        "natural-compare": "^1.4.0",
        "optionator": "^0.8.2",
        "path-is-inside": "^1.0.2",
        "pluralize": "^7.0.0",
        "progress": "^2.0.0",
        "regexpp": "^1.0.1",
        "require-uncached": "^1.0.3",
        "semver": "^5.3.0",
        "strip-ansi": "^4.0.0",
        "strip-json-comments": "~2.0.1",
        "table": "4.0.2",
        "text-table": "~0.2.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
        },
        "debug": {
          "version": "3.2.7",
          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
          "requires": {
            "ms": "^2.1.1"
          }
        },
        "globals": {
          "version": "11.12.0",
          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
        },
        "inquirer": {
          "version": "3.3.0",
          "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
          "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
          "requires": {
            "ansi-escapes": "^3.0.0",
            "chalk": "^2.0.0",
            "cli-cursor": "^2.1.0",
            "cli-width": "^2.0.0",
            "external-editor": "^2.0.4",
            "figures": "^2.0.0",
            "lodash": "^4.3.0",
            "mute-stream": "0.0.7",
            "run-async": "^2.2.0",
            "rx-lite": "^4.0.8",
            "rx-lite-aggregates": "^4.0.8",
            "string-width": "^2.1.0",
            "strip-ansi": "^4.0.0",
            "through": "^2.3.6"
          }
        },
        "ms": {
          "version": "2.1.3",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
          "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
        },
        "strip-ansi": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
          "requires": {
            "ansi-regex": "^3.0.0"
          }
        }
      }
    },
    "eslint-config-wordpress": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/eslint-config-wordpress/-/eslint-config-wordpress-2.0.0.tgz",
      "integrity": "sha1-UgEgbGlk1kgxUjLt9t+9LpJeTNY="
    },
    "eslint-plugin-jest": {
      "version": "21.27.2",
      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.27.2.tgz",
      "integrity": "sha512-0E4OIgBJVlAmf1KfYFtZ3gYxgUzC5Eb3Jzmrc9ikI1OY+/cM8Kh72Ti7KfpeHNeD3HJNf9SmEfmvQLIz44Hrhw=="
    },
    "eslint-plugin-jsx-a11y": {
      "version": "6.4.1",
      "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz",
      "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==",
      "requires": {
        "@babel/runtime": "^7.11.2",
        "aria-query": "^4.2.2",
        "array-includes": "^3.1.1",
        "ast-types-flow": "^0.0.7",
        "axe-core": "^4.0.2",
        "axobject-query": "^2.2.0",
        "damerau-levenshtein": "^1.0.6",
        "emoji-regex": "^9.0.0",
        "has": "^1.0.3",
        "jsx-ast-utils": "^3.1.0",
        "language-tags": "^1.0.5"
      }
    },
    "eslint-plugin-react": {
      "version": "7.26.1",
      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz",
      "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==",
      "requires": {
        "array-includes": "^3.1.3",
        "array.prototype.flatmap": "^1.2.4",
        "doctrine": "^2.1.0",
        "estraverse": "^5.2.0",
        "jsx-ast-utils": "^2.4.1 || ^3.0.0",
        "minimatch": "^3.0.4",
        "object.entries": "^1.1.4",
        "object.fromentries": "^2.0.4",
        "object.hasown": "^1.0.0",
        "object.values": "^1.1.4",
        "prop-types": "^15.7.2",
        "resolve": "^2.0.0-next.3",
        "semver": "^6.3.0",
        "string.prototype.matchall": "^4.0.5"
      },
      "dependencies": {
        "estraverse": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
          "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
        },
        "semver": {
          "version": "6.3.0",
          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
        }
      }
    },
    "eslint-plugin-wordpress": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/eslint-plugin-wordpress/-/eslint-plugin-wordpress-0.1.0.tgz",
      "integrity": "sha1-PmlvCTJtmRXiZogasUj+0oFhF2I=",
      "requires": {
        "requireindex": "~1.1.0"
      }
    },
    "eslint-scope": {
      "version": "3.7.1",
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
      "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
      "requires": {
        "esrecurse": "^4.1.0",
        "estraverse": "^4.1.1"
      }
    },
    "eslint-visitor-keys": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
    },
    "espree": {
      "version": "3.5.4",
      "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
      "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
      "requires": {
        "acorn": "^5.5.0",
        "acorn-jsx": "^3.0.0"
      }
    },
    "esprima": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
    },
    "esquery": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
      "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
      "requires": {
        "estraverse": "^5.1.0"
      },
      "dependencies": {
        "estraverse": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
          "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
        }
      }
    },
    "esrecurse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
      "requires": {
        "estraverse": "^5.2.0"
      },
      "dependencies": {
        "estraverse": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
          "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
        }
      }
    },
    "estraverse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
    },
    "esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
    },
    "event-emitter": {
      "version": "0.3.5",
      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
      "requires": {
        "d": "1",
        "es5-ext": "~0.10.14"
      }
    },
    "events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
    },
    "evp_bytestokey": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
      "requires": {
        "md5.js": "^1.3.4",
        "safe-buffer": "^5.1.1"
      }
    },
    "execa": {
      "version": "0.7.0",
      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
      "requires": {
        "cross-spawn": "^5.0.1",
        "get-stream": "^3.0.0",
        "is-stream": "^1.1.0",
        "npm-run-path": "^2.0.0",
        "p-finally": "^1.0.0",
        "signal-exit": "^3.0.0",
        "strip-eof": "^1.0.0"
      }
    },
    "expand-brackets": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
      "optional": true,
      "requires": {
        "debug": "^2.3.3",
        "define-property": "^0.2.5",
        "extend-shallow": "^2.0.1",
        "posix-character-classes": "^0.1.0",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.1"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "optional": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        }
      }
    },
    "ext": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
      "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
      "requires": {
        "type": "^2.5.0"
      },
      "dependencies": {
        "type": {
          "version": "2.5.0",
          "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
          "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
        }
      }
    },
    "extend": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
    },
    "extend-shallow": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
      "optional": true,
      "requires": {
        "assign-symbols": "^1.0.0",
        "is-extendable": "^1.0.1"
      },
      "dependencies": {
        "is-extendable": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
          "optional": true,
          "requires": {
            "is-plain-object": "^2.0.4"
          }
        }
      }
    },
    "external-editor": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
      "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
      "requires": {
        "chardet": "^0.4.0",
        "iconv-lite": "^0.4.17",
        "tmp": "^0.0.33"
      }
    },
    "extglob": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
      "optional": true,
      "requires": {
        "array-unique": "^0.3.2",
        "define-property": "^1.0.0",
        "expand-brackets": "^2.1.4",
        "extend-shallow": "^2.0.1",
        "fragment-cache": "^0.2.1",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.1"
      },
      "dependencies": {
        "define-property": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^1.0.0"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "optional": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "optional": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "extract-text-webpack-plugin": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
      "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
      "requires": {
        "async": "^2.4.1",
        "loader-utils": "^1.1.0",
        "schema-utils": "^0.3.0",
        "webpack-sources": "^1.0.1"
      }
    },
    "extsprintf": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
    },
    "fast-deep-equal": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
      "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
    },
    "fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
    },
    "fast-levenshtein": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
    },
    "figures": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
      "requires": {
        "escape-string-regexp": "^1.0.5"
      }
    },
    "file-entry-cache": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
      "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
      "requires": {
        "flat-cache": "^1.2.1",
        "object-assign": "^4.0.1"
      }
    },
    "file-uri-to-path": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
      "optional": true
    },
    "filesize": {
      "version": "3.6.1",
      "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
      "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg=="
    },
    "fill-range": {
      "version": "7.0.1",
      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
      "optional": true,
      "requires": {
        "to-regex-range": "^5.0.1"
      }
    },
    "find-cache-dir": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
      "requires": {
        "commondir": "^1.0.1",
        "make-dir": "^1.0.0",
        "pkg-dir": "^2.0.0"
      }
    },
    "find-up": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
      "requires": {
        "locate-path": "^2.0.0"
      }
    },
    "flat-cache": {
      "version": "1.3.4",
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
      "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
      "requires": {
        "circular-json": "^0.3.1",
        "graceful-fs": "^4.1.2",
        "rimraf": "~2.6.2",
        "write": "^0.2.1"
      }
    },
    "for-in": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
    },
    "for-own": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
      "requires": {
        "for-in": "^1.0.1"
      }
    },
    "forever-agent": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
    },
    "form-data": {
      "version": "2.3.3",
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
      "requires": {
        "asynckit": "^0.4.0",
        "combined-stream": "^1.0.6",
        "mime-types": "^2.1.12"
      }
    },
    "fragment-cache": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
      "optional": true,
      "requires": {
        "map-cache": "^0.2.2"
      }
    },
    "fs-extra": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
      "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
      "requires": {
        "graceful-fs": "^4.1.2",
        "jsonfile": "^4.0.0",
        "universalify": "^0.1.0"
      }
    },
    "fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
    },
    "fsevents": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
      "optional": true
    },
    "fstream": {
      "version": "1.0.12",
      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
      "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
      "requires": {
        "graceful-fs": "^4.1.2",
        "inherits": "~2.0.0",
        "mkdirp": ">=0.5 0",
        "rimraf": "2"
      }
    },
    "function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
    },
    "functional-red-black-tree": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
    },
    "gauge": {
      "version": "2.7.4",
      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
      "requires": {
        "aproba": "^1.0.3",
        "console-control-strings": "^1.0.0",
        "has-unicode": "^2.0.0",
        "object-assign": "^4.1.0",
        "signal-exit": "^3.0.0",
        "string-width": "^1.0.1",
        "strip-ansi": "^3.0.1",
        "wide-align": "^1.1.0"
      },
      "dependencies": {
        "is-fullwidth-code-point": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
          "requires": {
            "number-is-nan": "^1.0.0"
          }
        },
        "string-width": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
          "requires": {
            "code-point-at": "^1.0.0",
            "is-fullwidth-code-point": "^1.0.0",
            "strip-ansi": "^3.0.0"
          }
        }
      }
    },
    "gaze": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
      "requires": {
        "globule": "^1.0.0"
      }
    },
    "get-caller-file": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
    },
    "get-intrinsic": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
      "requires": {
        "function-bind": "^1.1.1",
        "has": "^1.0.3",
        "has-symbols": "^1.0.1"
      }
    },
    "get-stdin": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
    },
    "get-stream": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
    },
    "get-symbol-description": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
      "requires": {
        "call-bind": "^1.0.2",
        "get-intrinsic": "^1.1.1"
      }
    },
    "get-value": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
      "optional": true
    },
    "getpass": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
      "requires": {
        "assert-plus": "^1.0.0"
      }
    },
    "glob": {
      "version": "7.2.0",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
      "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
      "requires": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.0.4",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      }
    },
    "glob-parent": {
      "version": "5.1.2",
      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
      "optional": true,
      "requires": {
        "is-glob": "^4.0.1"
      }
    },
    "global-dirs": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
      "requires": {
        "ini": "^1.3.4"
      }
    },
    "globals": {
      "version": "9.18.0",
      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
    },
    "globule": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz",
      "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==",
      "requires": {
        "glob": "~7.1.1",
        "lodash": "~4.17.10",
        "minimatch": "~3.0.2"
      },
      "dependencies": {
        "glob": {
          "version": "7.1.7",
          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
          "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
          "requires": {
            "fs.realpath": "^1.0.0",
            "inflight": "^1.0.4",
            "inherits": "2",
            "minimatch": "^3.0.4",
            "once": "^1.3.0",
            "path-is-absolute": "^1.0.0"
          }
        }
      }
    },
    "got": {
      "version": "6.7.1",
      "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
      "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
      "requires": {
        "create-error-class": "^3.0.0",
        "duplexer3": "^0.1.4",
        "get-stream": "^3.0.0",
        "is-redirect": "^1.0.0",
        "is-retry-allowed": "^1.0.0",
        "is-stream": "^1.0.0",
        "lowercase-keys": "^1.0.0",
        "safe-buffer": "^5.0.1",
        "timed-out": "^4.0.0",
        "unzip-response": "^2.0.1",
        "url-parse-lax": "^1.0.0"
      }
    },
    "graceful-fs": {
      "version": "4.2.8",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
    },
    "gzip-size": {
      "version": "4.1.0",
      "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz",
      "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=",
      "requires": {
        "duplexer": "^0.1.1",
        "pify": "^3.0.0"
      }
    },
    "har-schema": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
    },
    "har-validator": {
      "version": "5.1.5",
      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
      "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
      "requires": {
        "ajv": "^6.12.3",
        "har-schema": "^2.0.0"
      },
      "dependencies": {
        "ajv": {
          "version": "6.12.6",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
          "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
          "requires": {
            "fast-deep-equal": "^3.1.1",
            "fast-json-stable-stringify": "^2.0.0",
            "json-schema-traverse": "^0.4.1",
            "uri-js": "^4.2.2"
          }
        },
        "fast-deep-equal": {
          "version": "3.1.3",
          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
        },
        "json-schema-traverse": {
          "version": "0.4.1",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
        }
      }
    },
    "has": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
      "requires": {
        "function-bind": "^1.1.1"
      }
    },
    "has-ansi": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
      "requires": {
        "ansi-regex": "^2.0.0"
      }
    },
    "has-bigints": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
      "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
    },
    "has-flag": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
    },
    "has-symbols": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
      "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
    },
    "has-tostringtag": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
      "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
      "requires": {
        "has-symbols": "^1.0.2"
      }
    },
    "has-unicode": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
    },
    "has-value": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
      "optional": true,
      "requires": {
        "get-value": "^2.0.6",
        "has-values": "^1.0.0",
        "isobject": "^3.0.0"
      }
    },
    "has-values": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
      "optional": true,
      "requires": {
        "is-number": "^3.0.0",
        "kind-of": "^4.0.0"
      },
      "dependencies": {
        "is-number": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
          "optional": true,
          "requires": {
            "kind-of": "^3.0.2"
          },
          "dependencies": {
            "kind-of": {
              "version": "3.2.2",
              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
              "optional": true,
              "requires": {
                "is-buffer": "^1.1.5"
              }
            }
          }
        },
        "kind-of": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "hash-base": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
      "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
      "requires": {
        "inherits": "^2.0.4",
        "readable-stream": "^3.6.0",
        "safe-buffer": "^5.2.0"
      },
      "dependencies": {
        "readable-stream": {
          "version": "3.6.0",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
          "requires": {
            "inherits": "^2.0.3",
            "string_decoder": "^1.1.1",
            "util-deprecate": "^1.0.1"
          }
        },
        "safe-buffer": {
          "version": "5.2.1",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
        }
      }
    },
    "hash.js": {
      "version": "1.1.7",
      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
      "requires": {
        "inherits": "^2.0.3",
        "minimalistic-assert": "^1.0.1"
      }
    },
    "hmac-drbg": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
      "requires": {
        "hash.js": "^1.0.3",
        "minimalistic-assert": "^1.0.0",
        "minimalistic-crypto-utils": "^1.0.1"
      }
    },
    "home-or-tmp": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
      "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
      "requires": {
        "os-homedir": "^1.0.0",
        "os-tmpdir": "^1.0.1"
      }
    },
    "hosted-git-info": {
      "version": "2.8.9",
      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
      "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
    },
    "http-signature": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
      "requires": {
        "assert-plus": "^1.0.0",
        "jsprim": "^1.2.2",
        "sshpk": "^1.7.0"
      }
    },
    "https-browserify": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
    },
    "iconv-lite": {
      "version": "0.4.24",
      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
      "requires": {
        "safer-buffer": ">= 2.1.2 < 3"
      }
    },
    "ieee754": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
    },
    "ignore": {
      "version": "3.3.10",
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
      "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="
    },
    "import-cwd": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
      "requires": {
        "import-from": "^2.1.0"
      }
    },
    "import-fresh": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
      "requires": {
        "caller-path": "^2.0.0",
        "resolve-from": "^3.0.0"
      },
      "dependencies": {
        "caller-path": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
          "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
          "requires": {
            "caller-callsite": "^2.0.0"
          }
        },
        "resolve-from": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
          "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
        }
      }
    },
    "import-from": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
      "requires": {
        "resolve-from": "^3.0.0"
      },
      "dependencies": {
        "resolve-from": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
          "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
        }
      }
    },
    "import-lazy": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
      "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
    },
    "imurmurhash": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
    },
    "in-publish": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
      "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
    },
    "indent-string": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
      "requires": {
        "repeating": "^2.0.0"
      }
    },
    "inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
      "requires": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "ini": {
      "version": "1.3.8",
      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
    },
    "inquirer": {
      "version": "5.2.0",
      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz",
      "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==",
      "requires": {
        "ansi-escapes": "^3.0.0",
        "chalk": "^2.0.0",
        "cli-cursor": "^2.1.0",
        "cli-width": "^2.0.0",
        "external-editor": "^2.1.0",
        "figures": "^2.0.0",
        "lodash": "^4.3.0",
        "mute-stream": "0.0.7",
        "run-async": "^2.2.0",
        "rxjs": "^5.5.2",
        "string-width": "^2.1.0",
        "strip-ansi": "^4.0.0",
        "through": "^2.3.6"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
        },
        "strip-ansi": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
          "requires": {
            "ansi-regex": "^3.0.0"
          }
        }
      }
    },
    "internal-slot": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
      "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
      "requires": {
        "get-intrinsic": "^1.1.0",
        "has": "^1.0.3",
        "side-channel": "^1.0.4"
      }
    },
    "interpret": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
      "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA=="
    },
    "invariant": {
      "version": "2.2.4",
      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
      "requires": {
        "loose-envify": "^1.0.0"
      }
    },
    "invert-kv": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
    },
    "is-accessor-descriptor": {
      "version": "0.1.6",
      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
      "optional": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "is-arrayish": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
    },
    "is-bigint": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
      "requires": {
        "has-bigints": "^1.0.1"
      }
    },
    "is-binary-path": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
      "optional": true,
      "requires": {
        "binary-extensions": "^2.0.0"
      }
    },
    "is-boolean-object": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
      "requires": {
        "call-bind": "^1.0.2",
        "has-tostringtag": "^1.0.0"
      }
    },
    "is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
    },
    "is-callable": {
      "version": "1.2.4",
      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
      "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
    },
    "is-ci": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
      "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
      "requires": {
        "ci-info": "^1.5.0"
      }
    },
    "is-core-module": {
      "version": "2.7.0",
      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
      "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
      "requires": {
        "has": "^1.0.3"
      }
    },
    "is-data-descriptor": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
      "optional": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "is-date-object": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
      "requires": {
        "has-tostringtag": "^1.0.0"
      }
    },
    "is-descriptor": {
      "version": "0.1.6",
      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
      "optional": true,
      "requires": {
        "is-accessor-descriptor": "^0.1.6",
        "is-data-descriptor": "^0.1.4",
        "kind-of": "^5.0.0"
      },
      "dependencies": {
        "kind-of": {
          "version": "5.1.0",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
          "optional": true
        }
      }
    },
    "is-directory": {
      "version": "0.3.1",
      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
    },
    "is-extendable": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
    },
    "is-extglob": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
      "optional": true
    },
    "is-finite": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
      "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
    },
    "is-fullwidth-code-point": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
    },
    "is-glob": {
      "version": "4.0.3",
      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
      "optional": true,
      "requires": {
        "is-extglob": "^2.1.1"
      }
    },
    "is-installed-globally": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
      "requires": {
        "global-dirs": "^0.1.0",
        "is-path-inside": "^1.0.0"
      }
    },
    "is-negative-zero": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
      "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
    },
    "is-npm": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
      "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ="
    },
    "is-number": {
      "version": "7.0.0",
      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
      "optional": true
    },
    "is-number-object": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
      "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
      "requires": {
        "has-tostringtag": "^1.0.0"
      }
    },
    "is-obj": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
    },
    "is-path-inside": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
      "requires": {
        "path-is-inside": "^1.0.1"
      }
    },
    "is-plain-object": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
      "requires": {
        "isobject": "^3.0.1"
      }
    },
    "is-redirect": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
      "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
    },
    "is-regex": {
      "version": "1.1.4",
      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
      "requires": {
        "call-bind": "^1.0.2",
        "has-tostringtag": "^1.0.0"
      }
    },
    "is-resolvable": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
      "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
    },
    "is-retry-allowed": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
      "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
    },
    "is-shared-array-buffer": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
      "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA=="
    },
    "is-stream": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
    },
    "is-string": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
      "requires": {
        "has-tostringtag": "^1.0.0"
      }
    },
    "is-symbol": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
      "requires": {
        "has-symbols": "^1.0.2"
      }
    },
    "is-typedarray": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
    },
    "is-utf8": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
    },
    "is-weakref": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz",
      "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==",
      "requires": {
        "call-bind": "^1.0.0"
      }
    },
    "is-windows": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
      "optional": true
    },
    "isarray": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
    },
    "isexe": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
    },
    "isobject": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
    },
    "isstream": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
    },
    "js-base64": {
      "version": "2.6.4",
      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
      "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
    },
    "js-tokens": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
    },
    "js-yaml": {
      "version": "3.14.1",
      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
      "requires": {
        "argparse": "^1.0.7",
        "esprima": "^4.0.0"
      }
    },
    "jsbn": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
    },
    "jsesc": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
    },
    "json-loader": {
      "version": "0.5.7",
      "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
      "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
    },
    "json-parse-better-errors": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
    },
    "json-schema": {
      "version": "0.2.3",
      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
    },
    "json-schema-traverse": {
      "version": "0.3.1",
      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
    },
    "json-stable-stringify-without-jsonify": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
    },
    "json-stringify-safe": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
    },
    "json5": {
      "version": "0.5.1",
      "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
    },
    "jsonfile": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
      "requires": {
        "graceful-fs": "^4.1.6"
      }
    },
    "jsprim": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
      "requires": {
        "assert-plus": "1.0.0",
        "extsprintf": "1.3.0",
        "json-schema": "0.2.3",
        "verror": "1.10.0"
      }
    },
    "jsx-ast-utils": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
      "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
      "requires": {
        "array-includes": "^3.1.3",
        "object.assign": "^4.1.2"
      }
    },
    "kind-of": {
      "version": "6.0.3",
      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
    },
    "language-subtag-registry": {
      "version": "0.3.21",
      "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
      "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
    },
    "language-tags": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
      "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
      "requires": {
        "language-subtag-registry": "~0.3.2"
      }
    },
    "latest-version": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
      "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
      "requires": {
        "package-json": "^4.0.0"
      }
    },
    "lazy-cache": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
    },
    "lcid": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
      "requires": {
        "invert-kv": "^1.0.0"
      }
    },
    "levn": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
      "requires": {
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2"
      }
    },
    "load-json-file": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
      "requires": {
        "graceful-fs": "^4.1.2",
        "parse-json": "^2.2.0",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0",
        "strip-bom": "^2.0.0"
      },
      "dependencies": {
        "pify": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
        }
      }
    },
    "loader-runner": {
      "version": "2.4.0",
      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
    },
    "loader-utils": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
      "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
      "requires": {
        "big.js": "^5.2.2",
        "emojis-list": "^3.0.0",
        "json5": "^1.0.1"
      },
      "dependencies": {
        "json5": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
          "requires": {
            "minimist": "^1.2.0"
          }
        }
      }
    },
    "locate-path": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
      "requires": {
        "p-locate": "^2.0.0",
        "path-exists": "^3.0.0"
      }
    },
    "lodash": {
      "version": "4.17.21",
      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
    },
    "lodash.tail": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ="
    },
    "log-symbols": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
      "requires": {
        "chalk": "^2.0.1"
      }
    },
    "longest": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
    },
    "loose-envify": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
      "requires": {
        "js-tokens": "^3.0.0 || ^4.0.0"
      }
    },
    "loud-rejection": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
      "requires": {
        "currently-unhandled": "^0.4.1",
        "signal-exit": "^3.0.0"
      }
    },
    "lowercase-keys": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
    },
    "lru-cache": {
      "version": "4.1.5",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
      "requires": {
        "pseudomap": "^1.0.2",
        "yallist": "^2.1.2"
      }
    },
    "make-dir": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
      "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
      "requires": {
        "pify": "^3.0.0"
      }
    },
    "map-cache": {
      "version": "0.2.2",
      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
      "optional": true
    },
    "map-obj": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
    },
    "map-visit": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
      "optional": true,
      "requires": {
        "object-visit": "^1.0.0"
      }
    },
    "md5.js": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
      "requires": {
        "hash-base": "^3.0.0",
        "inherits": "^2.0.1",
        "safe-buffer": "^5.1.2"
      }
    },
    "mem": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
      "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
      "requires": {
        "mimic-fn": "^1.0.0"
      }
    },
    "memory-fs": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
      "requires": {
        "errno": "^0.1.3",
        "readable-stream": "^2.0.1"
      }
    },
    "meow": {
      "version": "3.7.0",
      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
      "requires": {
        "camelcase-keys": "^2.0.0",
        "decamelize": "^1.1.2",
        "loud-rejection": "^1.0.0",
        "map-obj": "^1.0.1",
        "minimist": "^1.1.3",
        "normalize-package-data": "^2.3.4",
        "object-assign": "^4.0.1",
        "read-pkg-up": "^1.0.1",
        "redent": "^1.0.0",
        "trim-newlines": "^1.0.0"
      }
    },
    "micromatch": {
      "version": "3.1.10",
      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
      "optional": true,
      "requires": {
        "arr-diff": "^4.0.0",
        "array-unique": "^0.3.2",
        "braces": "^2.3.1",
        "define-property": "^2.0.2",
        "extend-shallow": "^3.0.2",
        "extglob": "^2.0.4",
        "fragment-cache": "^0.2.1",
        "kind-of": "^6.0.2",
        "nanomatch": "^1.2.9",
        "object.pick": "^1.3.0",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.2"
      },
      "dependencies": {
        "braces": {
          "version": "2.3.2",
          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
          "optional": true,
          "requires": {
            "arr-flatten": "^1.1.0",
            "array-unique": "^0.3.2",
            "extend-shallow": "^2.0.1",
            "fill-range": "^4.0.0",
            "isobject": "^3.0.1",
            "repeat-element": "^1.1.2",
            "snapdragon": "^0.8.1",
            "snapdragon-node": "^2.0.1",
            "split-string": "^3.0.2",
            "to-regex": "^3.0.1"
          },
          "dependencies": {
            "extend-shallow": {
              "version": "2.0.1",
              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
              "optional": true,
              "requires": {
                "is-extendable": "^0.1.0"
              }
            }
          }
        },
        "fill-range": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
          "optional": true,
          "requires": {
            "extend-shallow": "^2.0.1",
            "is-number": "^3.0.0",
            "repeat-string": "^1.6.1",
            "to-regex-range": "^2.1.0"
          },
          "dependencies": {
            "extend-shallow": {
              "version": "2.0.1",
              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
              "optional": true,
              "requires": {
                "is-extendable": "^0.1.0"
              }
            }
          }
        },
        "is-number": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
          "optional": true,
          "requires": {
            "kind-of": "^3.0.2"
          },
          "dependencies": {
            "kind-of": {
              "version": "3.2.2",
              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
              "optional": true,
              "requires": {
                "is-buffer": "^1.1.5"
              }
            }
          }
        },
        "to-regex-range": {
          "version": "2.1.1",
          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
          "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
          "optional": true,
          "requires": {
            "is-number": "^3.0.0",
            "repeat-string": "^1.6.1"
          }
        }
      }
    },
    "miller-rabin": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
      "requires": {
        "bn.js": "^4.0.0",
        "brorand": "^1.0.1"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "mime-db": {
      "version": "1.50.0",
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
      "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A=="
    },
    "mime-types": {
      "version": "2.1.33",
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
      "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
      "requires": {
        "mime-db": "1.50.0"
      }
    },
    "mimic-fn": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
    },
    "minimalistic-assert": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
    },
    "minimalistic-crypto-utils": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
    },
    "minimatch": {
      "version": "3.0.4",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
      "requires": {
        "brace-expansion": "^1.1.7"
      }
    },
    "minimist": {
      "version": "1.2.5",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
    },
    "mixin-deep": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
      "optional": true,
      "requires": {
        "for-in": "^1.0.2",
        "is-extendable": "^1.0.1"
      },
      "dependencies": {
        "is-extendable": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
          "optional": true,
          "requires": {
            "is-plain-object": "^2.0.4"
          }
        }
      }
    },
    "mixin-object": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
      "requires": {
        "for-in": "^0.1.3",
        "is-extendable": "^0.1.1"
      },
      "dependencies": {
        "for-in": {
          "version": "0.1.8",
          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE="
        }
      }
    },
    "mkdirp": {
      "version": "0.5.5",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
      "requires": {
        "minimist": "^1.2.5"
      }
    },
    "ms": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
    },
    "mute-stream": {
      "version": "0.0.7",
      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
    },
    "nan": {
      "version": "2.15.0",
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
      "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ=="
    },
    "nanomatch": {
      "version": "1.2.13",
      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
      "optional": true,
      "requires": {
        "arr-diff": "^4.0.0",
        "array-unique": "^0.3.2",
        "define-property": "^2.0.2",
        "extend-shallow": "^3.0.2",
        "fragment-cache": "^0.2.1",
        "is-windows": "^1.0.2",
        "kind-of": "^6.0.2",
        "object.pick": "^1.3.0",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.1"
      }
    },
    "natural-compare": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
    },
    "neo-async": {
      "version": "2.6.2",
      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
    },
    "next-tick": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
    },
    "nice-try": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
    },
    "node-gyp": {
      "version": "3.8.0",
      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
      "requires": {
        "fstream": "^1.0.0",
        "glob": "^7.0.3",
        "graceful-fs": "^4.1.2",
        "mkdirp": "^0.5.0",
        "nopt": "2 || 3",
        "npmlog": "0 || 1 || 2 || 3 || 4",
        "osenv": "0",
        "request": "^2.87.0",
        "rimraf": "2",
        "semver": "~5.3.0",
        "tar": "^2.0.0",
        "which": "1"
      },
      "dependencies": {
        "semver": {
          "version": "5.3.0",
          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
        }
      }
    },
    "node-libs-browser": {
      "version": "2.2.1",
      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
      "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
      "requires": {
        "assert": "^1.1.1",
        "browserify-zlib": "^0.2.0",
        "buffer": "^4.3.0",
        "console-browserify": "^1.1.0",
        "constants-browserify": "^1.0.0",
        "crypto-browserify": "^3.11.0",
        "domain-browser": "^1.1.1",
        "events": "^3.0.0",
        "https-browserify": "^1.0.0",
        "os-browserify": "^0.3.0",
        "path-browserify": "0.0.1",
        "process": "^0.11.10",
        "punycode": "^1.2.4",
        "querystring-es3": "^0.2.0",
        "readable-stream": "^2.3.3",
        "stream-browserify": "^2.0.1",
        "stream-http": "^2.7.2",
        "string_decoder": "^1.0.0",
        "timers-browserify": "^2.0.4",
        "tty-browserify": "0.0.0",
        "url": "^0.11.0",
        "util": "^0.11.0",
        "vm-browserify": "^1.0.1"
      },
      "dependencies": {
        "punycode": {
          "version": "1.4.1",
          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
        }
      }
    },
    "node-sass": {
      "version": "4.14.1",
      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
      "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
      "requires": {
        "async-foreach": "^0.1.3",
        "chalk": "^1.1.1",
        "cross-spawn": "^3.0.0",
        "gaze": "^1.0.0",
        "get-stdin": "^4.0.1",
        "glob": "^7.0.3",
        "in-publish": "^2.0.0",
        "lodash": "^4.17.15",
        "meow": "^3.7.0",
        "mkdirp": "^0.5.1",
        "nan": "^2.13.2",
        "node-gyp": "^3.8.0",
        "npmlog": "^4.0.0",
        "request": "^2.88.0",
        "sass-graph": "2.2.5",
        "stdout-stream": "^1.4.0",
        "true-case-path": "^1.0.2"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "requires": {
            "ansi-styles": "^2.2.1",
            "escape-string-regexp": "^1.0.2",
            "has-ansi": "^2.0.0",
            "strip-ansi": "^3.0.0",
            "supports-color": "^2.0.0"
          }
        },
        "cross-spawn": {
          "version": "3.0.1",
          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
          "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
          "requires": {
            "lru-cache": "^4.0.1",
            "which": "^1.2.9"
          }
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
        }
      }
    },
    "nopt": {
      "version": "3.0.6",
      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
      "requires": {
        "abbrev": "1"
      }
    },
    "normalize-package-data": {
      "version": "2.5.0",
      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
      "requires": {
        "hosted-git-info": "^2.1.4",
        "resolve": "^1.10.0",
        "semver": "2 || 3 || 4 || 5",
        "validate-npm-package-license": "^3.0.1"
      },
      "dependencies": {
        "resolve": {
          "version": "1.20.0",
          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
          "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
          "requires": {
            "is-core-module": "^2.2.0",
            "path-parse": "^1.0.6"
          }
        }
      }
    },
    "normalize-path": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
      "optional": true
    },
    "normalize-range": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
    },
    "npm-run-path": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
      "requires": {
        "path-key": "^2.0.0"
      }
    },
    "npmlog": {
      "version": "4.1.2",
      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
      "requires": {
        "are-we-there-yet": "~1.1.2",
        "console-control-strings": "~1.1.0",
        "gauge": "~2.7.3",
        "set-blocking": "~2.0.0"
      }
    },
    "num2fraction": {
      "version": "1.2.2",
      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
    },
    "number-is-nan": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
    },
    "oauth-sign": {
      "version": "0.9.0",
      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
    },
    "object-assign": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
    },
    "object-copy": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
      "optional": true,
      "requires": {
        "copy-descriptor": "^0.1.0",
        "define-property": "^0.2.5",
        "kind-of": "^3.0.3"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        },
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "object-inspect": {
      "version": "1.11.0",
      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
      "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
    },
    "object-keys": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
    },
    "object-visit": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
      "optional": true,
      "requires": {
        "isobject": "^3.0.0"
      }
    },
    "object.assign": {
      "version": "4.1.2",
      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
      "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
      "requires": {
        "call-bind": "^1.0.0",
        "define-properties": "^1.1.3",
        "has-symbols": "^1.0.1",
        "object-keys": "^1.1.1"
      }
    },
    "object.entries": {
      "version": "1.1.5",
      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1"
      }
    },
    "object.fromentries": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
      "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1"
      }
    },
    "object.hasown": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
      "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
      "requires": {
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1"
      }
    },
    "object.pick": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
      "optional": true,
      "requires": {
        "isobject": "^3.0.1"
      }
    },
    "object.values": {
      "version": "1.1.5",
      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1"
      }
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
      "requires": {
        "wrappy": "1"
      }
    },
    "onetime": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
      "requires": {
        "mimic-fn": "^1.0.0"
      }
    },
    "optionator": {
      "version": "0.8.3",
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
      "requires": {
        "deep-is": "~0.1.3",
        "fast-levenshtein": "~2.0.6",
        "levn": "~0.3.0",
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2",
        "word-wrap": "~1.2.3"
      }
    },
    "ora": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
      "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
      "requires": {
        "chalk": "^2.1.0",
        "cli-cursor": "^2.1.0",
        "cli-spinners": "^1.0.1",
        "log-symbols": "^2.1.0"
      }
    },
    "os-browserify": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
    },
    "os-homedir": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
    },
    "os-locale": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
      "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
      "requires": {
        "execa": "^0.7.0",
        "lcid": "^1.0.0",
        "mem": "^1.1.0"
      }
    },
    "os-tmpdir": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
    },
    "osenv": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
      "requires": {
        "os-homedir": "^1.0.0",
        "os-tmpdir": "^1.0.0"
      }
    },
    "p-finally": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
    },
    "p-limit": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
      "requires": {
        "p-try": "^1.0.0"
      }
    },
    "p-locate": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
      "requires": {
        "p-limit": "^1.1.0"
      }
    },
    "p-try": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
    },
    "package-json": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
      "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
      "requires": {
        "got": "^6.7.1",
        "registry-auth-token": "^3.0.1",
        "registry-url": "^3.0.3",
        "semver": "^5.1.0"
      }
    },
    "pako": {
      "version": "1.0.11",
      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
    },
    "parse-asn1": {
      "version": "5.1.6",
      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
      "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
      "requires": {
        "asn1.js": "^5.2.0",
        "browserify-aes": "^1.0.0",
        "evp_bytestokey": "^1.0.0",
        "pbkdf2": "^3.0.3",
        "safe-buffer": "^5.1.1"
      }
    },
    "parse-json": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
      "requires": {
        "error-ex": "^1.2.0"
      }
    },
    "pascalcase": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
      "optional": true
    },
    "path-browserify": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
      "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
    },
    "path-dirname": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
      "optional": true
    },
    "path-exists": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
    },
    "path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
    },
    "path-is-inside": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
    },
    "path-key": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
    },
    "path-parse": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
    },
    "path-type": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
      "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
      "requires": {
        "graceful-fs": "^4.1.2",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0"
      },
      "dependencies": {
        "pify": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
        }
      }
    },
    "pbkdf2": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
      "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
      "requires": {
        "create-hash": "^1.1.2",
        "create-hmac": "^1.1.4",
        "ripemd160": "^2.0.1",
        "safe-buffer": "^5.0.1",
        "sha.js": "^2.4.8"
      }
    },
    "performance-now": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
    },
    "picomatch": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
      "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
      "optional": true
    },
    "pify": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
    },
    "pinkie": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
    },
    "pinkie-promise": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
      "requires": {
        "pinkie": "^2.0.0"
      }
    },
    "pkg-dir": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
      "requires": {
        "find-up": "^2.1.0"
      }
    },
    "pluralize": {
      "version": "7.0.0",
      "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
      "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow=="
    },
    "posix-character-classes": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
      "optional": true
    },
    "postcss": {
      "version": "6.0.23",
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
      "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
      "requires": {
        "chalk": "^2.4.1",
        "source-map": "^0.6.1",
        "supports-color": "^5.4.0"
      }
    },
    "postcss-load-config": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
      "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
      "requires": {
        "cosmiconfig": "^5.0.0",
        "import-cwd": "^2.0.0"
      }
    },
    "postcss-loader": {
      "version": "2.1.6",
      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz",
      "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==",
      "requires": {
        "loader-utils": "^1.1.0",
        "postcss": "^6.0.0",
        "postcss-load-config": "^2.0.0",
        "schema-utils": "^0.4.0"
      },
      "dependencies": {
        "ajv": {
          "version": "6.12.6",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
          "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
          "requires": {
            "fast-deep-equal": "^3.1.1",
            "fast-json-stable-stringify": "^2.0.0",
            "json-schema-traverse": "^0.4.1",
            "uri-js": "^4.2.2"
          }
        },
        "ajv-keywords": {
          "version": "3.5.2",
          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
          "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
        },
        "fast-deep-equal": {
          "version": "3.1.3",
          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
        },
        "json-schema-traverse": {
          "version": "0.4.1",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
        },
        "schema-utils": {
          "version": "0.4.7",
          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
          "requires": {
            "ajv": "^6.1.0",
            "ajv-keywords": "^3.1.0"
          }
        }
      }
    },
    "postcss-value-parser": {
      "version": "3.3.1",
      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
    },
    "prelude-ls": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
    },
    "prepend-http": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
    },
    "private": {
      "version": "0.1.8",
      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
    },
    "process": {
      "version": "0.11.10",
      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
    },
    "process-nextick-args": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
    },
    "progress": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
    },
    "prop-types": {
      "version": "15.7.2",
      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
      "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
      "requires": {
        "loose-envify": "^1.4.0",
        "object-assign": "^4.1.1",
        "react-is": "^16.8.1"
      }
    },
    "prr": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
    },
    "pseudomap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
    },
    "psl": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
    },
    "public-encrypt": {
      "version": "4.0.3",
      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
      "requires": {
        "bn.js": "^4.1.0",
        "browserify-rsa": "^4.0.0",
        "create-hash": "^1.1.0",
        "parse-asn1": "^5.0.0",
        "randombytes": "^2.0.1",
        "safe-buffer": "^5.1.2"
      },
      "dependencies": {
        "bn.js": {
          "version": "4.12.0",
          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
          "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
        }
      }
    },
    "punycode": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
    },
    "qs": {
      "version": "6.5.2",
      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
    },
    "querystring": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
    },
    "querystring-es3": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
    },
    "randombytes": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
      "requires": {
        "safe-buffer": "^5.1.0"
      }
    },
    "randomfill": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
      "requires": {
        "randombytes": "^2.0.5",
        "safe-buffer": "^5.1.0"
      }
    },
    "raw-loader": {
      "version": "0.5.1",
      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
    },
    "rc": {
      "version": "1.2.8",
      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
      "requires": {
        "deep-extend": "^0.6.0",
        "ini": "~1.3.0",
        "minimist": "^1.2.0",
        "strip-json-comments": "~2.0.1"
      }
    },
    "react-is": {
      "version": "16.13.1",
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
    },
    "read-pkg": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
      "requires": {
        "load-json-file": "^1.0.0",
        "normalize-package-data": "^2.3.2",
        "path-type": "^1.0.0"
      }
    },
    "read-pkg-up": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
      "requires": {
        "find-up": "^1.0.0",
        "read-pkg": "^1.0.0"
      },
      "dependencies": {
        "find-up": {
          "version": "1.1.2",
          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
          "requires": {
            "path-exists": "^2.0.0",
            "pinkie-promise": "^2.0.0"
          }
        },
        "path-exists": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
          "requires": {
            "pinkie-promise": "^2.0.0"
          }
        }
      }
    },
    "readable-stream": {
      "version": "2.3.7",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
      "requires": {
        "core-util-is": "~1.0.0",
        "inherits": "~2.0.3",
        "isarray": "~1.0.0",
        "process-nextick-args": "~2.0.0",
        "safe-buffer": "~5.1.1",
        "string_decoder": "~1.1.1",
        "util-deprecate": "~1.0.1"
      }
    },
    "readdirp": {
      "version": "3.6.0",
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
      "optional": true,
      "requires": {
        "picomatch": "^2.2.1"
      }
    },
    "rechoir": {
      "version": "0.6.2",
      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
      "requires": {
        "resolve": "^1.1.6"
      },
      "dependencies": {
        "resolve": {
          "version": "1.20.0",
          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
          "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
          "requires": {
            "is-core-module": "^2.2.0",
            "path-parse": "^1.0.6"
          }
        }
      }
    },
    "redent": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
      "requires": {
        "indent-string": "^2.1.0",
        "strip-indent": "^1.0.1"
      }
    },
    "regenerate": {
      "version": "1.4.2",
      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
      "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
    },
    "regenerator-runtime": {
      "version": "0.11.1",
      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
    },
    "regenerator-transform": {
      "version": "0.10.1",
      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
      "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
      "requires": {
        "babel-runtime": "^6.18.0",
        "babel-types": "^6.19.0",
        "private": "^0.1.6"
      }
    },
    "regex-not": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
      "optional": true,
      "requires": {
        "extend-shallow": "^3.0.2",
        "safe-regex": "^1.1.0"
      }
    },
    "regexp.prototype.flags": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
      "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3"
      }
    },
    "regexpp": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
      "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw=="
    },
    "regexpu-core": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
      "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
      "requires": {
        "regenerate": "^1.2.1",
        "regjsgen": "^0.2.0",
        "regjsparser": "^0.1.4"
      }
    },
    "registry-auth-token": {
      "version": "3.4.0",
      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
      "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
      "requires": {
        "rc": "^1.1.6",
        "safe-buffer": "^5.0.1"
      }
    },
    "registry-url": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
      "requires": {
        "rc": "^1.0.1"
      }
    },
    "regjsgen": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
    },
    "regjsparser": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
      "requires": {
        "jsesc": "~0.5.0"
      },
      "dependencies": {
        "jsesc": {
          "version": "0.5.0",
          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
        }
      }
    },
    "remove-trailing-separator": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
      "optional": true
    },
    "repeat-element": {
      "version": "1.1.4",
      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
      "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
      "optional": true
    },
    "repeat-string": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
    },
    "repeating": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
      "requires": {
        "is-finite": "^1.0.0"
      }
    },
    "request": {
      "version": "2.88.2",
      "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
      "requires": {
        "aws-sign2": "~0.7.0",
        "aws4": "^1.8.0",
        "caseless": "~0.12.0",
        "combined-stream": "~1.0.6",
        "extend": "~3.0.2",
        "forever-agent": "~0.6.1",
        "form-data": "~2.3.2",
        "har-validator": "~5.1.3",
        "http-signature": "~1.2.0",
        "is-typedarray": "~1.0.0",
        "isstream": "~0.1.2",
        "json-stringify-safe": "~5.0.1",
        "mime-types": "~2.1.19",
        "oauth-sign": "~0.9.0",
        "performance-now": "^2.1.0",
        "qs": "~6.5.2",
        "safe-buffer": "^5.1.2",
        "tough-cookie": "~2.5.0",
        "tunnel-agent": "^0.6.0",
        "uuid": "^3.3.2"
      }
    },
    "require-directory": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
    },
    "require-main-filename": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
    },
    "require-uncached": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
      "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
      "requires": {
        "caller-path": "^0.1.0",
        "resolve-from": "^1.0.0"
      }
    },
    "requireindex": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
      "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI="
    },
    "resolve": {
      "version": "2.0.0-next.3",
      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
      "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
      "requires": {
        "is-core-module": "^2.2.0",
        "path-parse": "^1.0.6"
      }
    },
    "resolve-from": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
      "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="
    },
    "resolve-pkg": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz",
      "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=",
      "requires": {
        "resolve-from": "^2.0.0"
      },
      "dependencies": {
        "resolve-from": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
          "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
        }
      }
    },
    "resolve-url": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
      "optional": true
    },
    "restore-cursor": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
      "requires": {
        "onetime": "^2.0.0",
        "signal-exit": "^3.0.2"
      }
    },
    "ret": {
      "version": "0.1.15",
      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
      "optional": true
    },
    "right-align": {
      "version": "0.1.3",
      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
      "requires": {
        "align-text": "^0.1.1"
      }
    },
    "rimraf": {
      "version": "2.6.3",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
      "requires": {
        "glob": "^7.1.3"
      }
    },
    "ripemd160": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
      "requires": {
        "hash-base": "^3.0.0",
        "inherits": "^2.0.1"
      }
    },
    "run-async": {
      "version": "2.4.1",
      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
    },
    "rx-lite": {
      "version": "4.0.8",
      "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
      "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
    },
    "rx-lite-aggregates": {
      "version": "4.0.8",
      "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
      "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
      "requires": {
        "rx-lite": "*"
      }
    },
    "rxjs": {
      "version": "5.5.12",
      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
      "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
      "requires": {
        "symbol-observable": "1.0.1"
      }
    },
    "safe-buffer": {
      "version": "5.1.2",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
    },
    "safe-regex": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
      "optional": true,
      "requires": {
        "ret": "~0.1.10"
      }
    },
    "safer-buffer": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
    },
    "sass-graph": {
      "version": "2.2.5",
      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
      "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
      "requires": {
        "glob": "^7.0.0",
        "lodash": "^4.0.0",
        "scss-tokenizer": "^0.2.3",
        "yargs": "^13.3.2"
      }
    },
    "sass-loader": {
      "version": "6.0.7",
      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz",
      "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==",
      "requires": {
        "clone-deep": "^2.0.1",
        "loader-utils": "^1.0.1",
        "lodash.tail": "^4.1.1",
        "neo-async": "^2.5.0",
        "pify": "^3.0.0"
      }
    },
    "schema-utils": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
      "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
      "requires": {
        "ajv": "^5.0.0"
      }
    },
    "scss-tokenizer": {
      "version": "0.2.3",
      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
      "requires": {
        "js-base64": "^2.1.8",
        "source-map": "^0.4.2"
      },
      "dependencies": {
        "source-map": {
          "version": "0.4.4",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
          "requires": {
            "amdefine": ">=0.0.4"
          }
        }
      }
    },
    "semver": {
      "version": "5.7.1",
      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
    },
    "semver-diff": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
      "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
      "requires": {
        "semver": "^5.0.3"
      }
    },
    "set-blocking": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
    },
    "set-value": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
      "optional": true,
      "requires": {
        "extend-shallow": "^2.0.1",
        "is-extendable": "^0.1.1",
        "is-plain-object": "^2.0.3",
        "split-string": "^3.0.1"
      },
      "dependencies": {
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "optional": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        }
      }
    },
    "setimmediate": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
    },
    "sha.js": {
      "version": "2.4.11",
      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
      "requires": {
        "inherits": "^2.0.1",
        "safe-buffer": "^5.0.1"
      }
    },
    "shallow-clone": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
      "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
      "requires": {
        "is-extendable": "^0.1.1",
        "kind-of": "^5.0.0",
        "mixin-object": "^2.0.1"
      },
      "dependencies": {
        "kind-of": {
          "version": "5.1.0",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
        }
      }
    },
    "shebang-command": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
      "requires": {
        "shebang-regex": "^1.0.0"
      }
    },
    "shebang-regex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
    },
    "shelljs": {
      "version": "0.8.4",
      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
      "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
      "requires": {
        "glob": "^7.0.0",
        "interpret": "^1.0.0",
        "rechoir": "^0.6.2"
      }
    },
    "side-channel": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
      "requires": {
        "call-bind": "^1.0.0",
        "get-intrinsic": "^1.0.2",
        "object-inspect": "^1.9.0"
      }
    },
    "signal-exit": {
      "version": "3.0.5",
      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
      "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
    },
    "slash": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
    },
    "slice-ansi": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
      "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
      "requires": {
        "is-fullwidth-code-point": "^2.0.0"
      }
    },
    "snapdragon": {
      "version": "0.8.2",
      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
      "optional": true,
      "requires": {
        "base": "^0.11.1",
        "debug": "^2.2.0",
        "define-property": "^0.2.5",
        "extend-shallow": "^2.0.1",
        "map-cache": "^0.2.2",
        "source-map": "^0.5.6",
        "source-map-resolve": "^0.5.0",
        "use": "^3.1.0"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "optional": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "optional": true
        }
      }
    },
    "snapdragon-node": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
      "optional": true,
      "requires": {
        "define-property": "^1.0.0",
        "isobject": "^3.0.0",
        "snapdragon-util": "^3.0.1"
      },
      "dependencies": {
        "define-property": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^1.0.0"
          }
        },
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "optional": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "optional": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "snapdragon-util": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
      "optional": true,
      "requires": {
        "kind-of": "^3.2.0"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "source-list-map": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
    },
    "source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
    },
    "source-map-resolve": {
      "version": "0.5.3",
      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
      "optional": true,
      "requires": {
        "atob": "^2.1.2",
        "decode-uri-component": "^0.2.0",
        "resolve-url": "^0.2.1",
        "source-map-url": "^0.4.0",
        "urix": "^0.1.0"
      }
    },
    "source-map-support": {
      "version": "0.4.18",
      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
      "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
      "requires": {
        "source-map": "^0.5.6"
      },
      "dependencies": {
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        }
      }
    },
    "source-map-url": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
      "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
      "optional": true
    },
    "spdx-correct": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
      "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
      "requires": {
        "spdx-expression-parse": "^3.0.0",
        "spdx-license-ids": "^3.0.0"
      }
    },
    "spdx-exceptions": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
      "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
    },
    "spdx-expression-parse": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
      "requires": {
        "spdx-exceptions": "^2.1.0",
        "spdx-license-ids": "^3.0.0"
      }
    },
    "spdx-license-ids": {
      "version": "3.0.10",
      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz",
      "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA=="
    },
    "split-string": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
      "optional": true,
      "requires": {
        "extend-shallow": "^3.0.0"
      }
    },
    "sprintf-js": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
    },
    "sshpk": {
      "version": "1.16.1",
      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
      "requires": {
        "asn1": "~0.2.3",
        "assert-plus": "^1.0.0",
        "bcrypt-pbkdf": "^1.0.0",
        "dashdash": "^1.12.0",
        "ecc-jsbn": "~0.1.1",
        "getpass": "^0.1.1",
        "jsbn": "~0.1.0",
        "safer-buffer": "^2.0.2",
        "tweetnacl": "~0.14.0"
      }
    },
    "static-extend": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
      "optional": true,
      "requires": {
        "define-property": "^0.2.5",
        "object-copy": "^0.1.0"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "optional": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        }
      }
    },
    "stdout-stream": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
      "requires": {
        "readable-stream": "^2.0.1"
      }
    },
    "stream-browserify": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
      "requires": {
        "inherits": "~2.0.1",
        "readable-stream": "^2.0.2"
      }
    },
    "stream-http": {
      "version": "2.8.3",
      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
      "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
      "requires": {
        "builtin-status-codes": "^3.0.0",
        "inherits": "^2.0.1",
        "readable-stream": "^2.3.6",
        "to-arraybuffer": "^1.0.0",
        "xtend": "^4.0.0"
      }
    },
    "string-width": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
      "requires": {
        "is-fullwidth-code-point": "^2.0.0",
        "strip-ansi": "^4.0.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
        },
        "strip-ansi": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
          "requires": {
            "ansi-regex": "^3.0.0"
          }
        }
      }
    },
    "string.prototype.matchall": {
      "version": "4.0.6",
      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
      "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3",
        "es-abstract": "^1.19.1",
        "get-intrinsic": "^1.1.1",
        "has-symbols": "^1.0.2",
        "internal-slot": "^1.0.3",
        "regexp.prototype.flags": "^1.3.1",
        "side-channel": "^1.0.4"
      }
    },
    "string.prototype.trimend": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
      "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3"
      }
    },
    "string.prototype.trimstart": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
      "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
      "requires": {
        "call-bind": "^1.0.2",
        "define-properties": "^1.1.3"
      }
    },
    "string_decoder": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
      "requires": {
        "safe-buffer": "~5.1.0"
      }
    },
    "strip-ansi": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
      "requires": {
        "ansi-regex": "^2.0.0"
      }
    },
    "strip-bom": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
      "requires": {
        "is-utf8": "^0.2.0"
      }
    },
    "strip-eof": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
    },
    "strip-indent": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
      "requires": {
        "get-stdin": "^4.0.1"
      }
    },
    "strip-json-comments": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
    },
    "style-loader": {
      "version": "0.23.1",
      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
      "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
      "requires": {
        "loader-utils": "^1.1.0",
        "schema-utils": "^1.0.0"
      },
      "dependencies": {
        "ajv": {
          "version": "6.12.6",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
          "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
          "requires": {
            "fast-deep-equal": "^3.1.1",
            "fast-json-stable-stringify": "^2.0.0",
            "json-schema-traverse": "^0.4.1",
            "uri-js": "^4.2.2"
          }
        },
        "ajv-keywords": {
          "version": "3.5.2",
          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
          "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
        },
        "fast-deep-equal": {
          "version": "3.1.3",
          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
        },
        "json-schema-traverse": {
          "version": "0.4.1",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
        },
        "schema-utils": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
          "requires": {
            "ajv": "^6.1.0",
            "ajv-errors": "^1.0.0",
            "ajv-keywords": "^3.1.0"
          }
        }
      }
    },
    "supports-color": {
      "version": "5.5.0",
      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
      "requires": {
        "has-flag": "^3.0.0"
      }
    },
    "symbol-observable": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
      "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
    },
    "table": {
      "version": "4.0.2",
      "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
      "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
      "requires": {
        "ajv": "^5.2.3",
        "ajv-keywords": "^2.1.0",
        "chalk": "^2.1.0",
        "lodash": "^4.17.4",
        "slice-ansi": "1.0.0",
        "string-width": "^2.1.1"
      }
    },
    "tapable": {
      "version": "0.2.9",
      "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
      "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A=="
    },
    "tar": {
      "version": "2.2.2",
      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
      "requires": {
        "block-stream": "*",
        "fstream": "^1.0.12",
        "inherits": "2"
      }
    },
    "term-size": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
      "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
      "requires": {
        "execa": "^0.7.0"
      }
    },
    "text-table": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
    },
    "through": {
      "version": "2.3.8",
      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
    },
    "timed-out": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
      "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
    },
    "timers-browserify": {
      "version": "2.0.12",
      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
      "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
      "requires": {
        "setimmediate": "^1.0.4"
      }
    },
    "tmp": {
      "version": "0.0.33",
      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
      "requires": {
        "os-tmpdir": "~1.0.2"
      }
    },
    "to-arraybuffer": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
    },
    "to-fast-properties": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
    },
    "to-object-path": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
      "optional": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "to-regex": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
      "optional": true,
      "requires": {
        "define-property": "^2.0.2",
        "extend-shallow": "^3.0.2",
        "regex-not": "^1.0.2",
        "safe-regex": "^1.1.0"
      }
    },
    "to-regex-range": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
      "optional": true,
      "requires": {
        "is-number": "^7.0.0"
      }
    },
    "tough-cookie": {
      "version": "2.5.0",
      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
      "requires": {
        "psl": "^1.1.28",
        "punycode": "^2.1.1"
      }
    },
    "trim-newlines": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
    },
    "trim-right": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
    },
    "true-case-path": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
      "requires": {
        "glob": "^7.1.2"
      }
    },
    "tty-browserify": {
      "version": "0.0.0",
      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
    },
    "tunnel-agent": {
      "version": "0.6.0",
      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
      "requires": {
        "safe-buffer": "^5.0.1"
      }
    },
    "tweetnacl": {
      "version": "0.14.5",
      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
    },
    "type": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
      "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
    },
    "type-check": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
      "requires": {
        "prelude-ls": "~1.1.2"
      }
    },
    "typedarray": {
      "version": "0.0.6",
      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
    },
    "uglify-js": {
      "version": "2.8.29",
      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
      "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
      "requires": {
        "source-map": "~0.5.1",
        "uglify-to-browserify": "~1.0.0",
        "yargs": "~3.10.0"
      },
      "dependencies": {
        "camelcase": {
          "version": "1.2.1",
          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
        },
        "cliui": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
          "requires": {
            "center-align": "^0.1.1",
            "right-align": "^0.1.1",
            "wordwrap": "0.0.2"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        },
        "yargs": {
          "version": "3.10.0",
          "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
          "requires": {
            "camelcase": "^1.0.2",
            "cliui": "^2.1.0",
            "decamelize": "^1.0.0",
            "window-size": "0.1.0"
          }
        }
      }
    },
    "uglify-to-browserify": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
      "optional": true
    },
    "uglifyjs-webpack-plugin": {
      "version": "0.4.6",
      "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
      "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
      "requires": {
        "source-map": "^0.5.6",
        "uglify-js": "^2.8.29",
        "webpack-sources": "^1.0.1"
      },
      "dependencies": {
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        }
      }
    },
    "unbox-primitive": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
      "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
      "requires": {
        "function-bind": "^1.1.1",
        "has-bigints": "^1.0.1",
        "has-symbols": "^1.0.2",
        "which-boxed-primitive": "^1.0.2"
      }
    },
    "union-value": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
      "optional": true,
      "requires": {
        "arr-union": "^3.1.0",
        "get-value": "^2.0.6",
        "is-extendable": "^0.1.1",
        "set-value": "^2.0.1"
      }
    },
    "unique-string": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
      "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
      "requires": {
        "crypto-random-string": "^1.0.0"
      }
    },
    "universalify": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
    },
    "unset-value": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
      "optional": true,
      "requires": {
        "has-value": "^0.3.1",
        "isobject": "^3.0.0"
      },
      "dependencies": {
        "has-value": {
          "version": "0.3.1",
          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
          "optional": true,
          "requires": {
            "get-value": "^2.0.3",
            "has-values": "^0.1.4",
            "isobject": "^2.0.0"
          },
          "dependencies": {
            "isobject": {
              "version": "2.1.0",
              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
              "optional": true,
              "requires": {
                "isarray": "1.0.0"
              }
            }
          }
        },
        "has-values": {
          "version": "0.1.4",
          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
          "optional": true
        }
      }
    },
    "unzip-response": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
      "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
    },
    "upath": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
      "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
      "optional": true
    },
    "update-notifier": {
      "version": "2.5.0",
      "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
      "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
      "requires": {
        "boxen": "^1.2.1",
        "chalk": "^2.0.1",
        "configstore": "^3.0.0",
        "import-lazy": "^2.1.0",
        "is-ci": "^1.0.10",
        "is-installed-globally": "^0.1.0",
        "is-npm": "^1.0.0",
        "latest-version": "^3.0.0",
        "semver-diff": "^2.0.0",
        "xdg-basedir": "^3.0.0"
      }
    },
    "uri-js": {
      "version": "4.4.1",
      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
      "requires": {
        "punycode": "^2.1.0"
      }
    },
    "urix": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
      "optional": true
    },
    "url": {
      "version": "0.11.0",
      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
      "requires": {
        "punycode": "1.3.2",
        "querystring": "0.2.0"
      },
      "dependencies": {
        "punycode": {
          "version": "1.3.2",
          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
        }
      }
    },
    "url-parse-lax": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
      "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
      "requires": {
        "prepend-http": "^1.0.1"
      }
    },
    "use": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
      "optional": true
    },
    "util": {
      "version": "0.11.1",
      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
      "requires": {
        "inherits": "2.0.3"
      },
      "dependencies": {
        "inherits": {
          "version": "2.0.3",
          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
        }
      }
    },
    "util-deprecate": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
    },
    "uuid": {
      "version": "3.4.0",
      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
    },
    "validate-npm-package-license": {
      "version": "3.0.4",
      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
      "requires": {
        "spdx-correct": "^3.0.0",
        "spdx-expression-parse": "^3.0.0"
      }
    },
    "verror": {
      "version": "1.10.0",
      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
      "requires": {
        "assert-plus": "^1.0.0",
        "core-util-is": "1.0.2",
        "extsprintf": "^1.2.0"
      },
      "dependencies": {
        "core-util-is": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
        }
      }
    },
    "vm-browserify": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
      "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
    },
    "watchpack": {
      "version": "1.7.5",
      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
      "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
      "requires": {
        "chokidar": "^3.4.1",
        "graceful-fs": "^4.1.2",
        "neo-async": "^2.5.0",
        "watchpack-chokidar2": "^2.0.1"
      }
    },
    "watchpack-chokidar2": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
      "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
      "optional": true,
      "requires": {
        "chokidar": "^2.1.8"
      },
      "dependencies": {
        "anymatch": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
          "optional": true,
          "requires": {
            "micromatch": "^3.1.4",
            "normalize-path": "^2.1.1"
          },
          "dependencies": {
            "normalize-path": {
              "version": "2.1.1",
              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
              "optional": true,
              "requires": {
                "remove-trailing-separator": "^1.0.1"
              }
            }
          }
        },
        "binary-extensions": {
          "version": "1.13.1",
          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
          "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
          "optional": true
        },
        "braces": {
          "version": "2.3.2",
          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
          "optional": true,
          "requires": {
            "arr-flatten": "^1.1.0",
            "array-unique": "^0.3.2",
            "extend-shallow": "^2.0.1",
            "fill-range": "^4.0.0",
            "isobject": "^3.0.1",
            "repeat-element": "^1.1.2",
            "snapdragon": "^0.8.1",
            "snapdragon-node": "^2.0.1",
            "split-string": "^3.0.2",
            "to-regex": "^3.0.1"
          }
        },
        "chokidar": {
          "version": "2.1.8",
          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
          "optional": true,
          "requires": {
            "anymatch": "^2.0.0",
            "async-each": "^1.0.1",
            "braces": "^2.3.2",
            "fsevents": "^1.2.7",
            "glob-parent": "^3.1.0",
            "inherits": "^2.0.3",
            "is-binary-path": "^1.0.0",
            "is-glob": "^4.0.0",
            "normalize-path": "^3.0.0",
            "path-is-absolute": "^1.0.0",
            "readdirp": "^2.2.1",
            "upath": "^1.1.1"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "optional": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "fill-range": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
          "optional": true,
          "requires": {
            "extend-shallow": "^2.0.1",
            "is-number": "^3.0.0",
            "repeat-string": "^1.6.1",
            "to-regex-range": "^2.1.0"
          }
        },
        "fsevents": {
          "version": "1.2.13",
          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
          "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
          "optional": true,
          "requires": {
            "bindings": "^1.5.0",
            "nan": "^2.12.1"
          }
        },
        "glob-parent": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
          "optional": true,
          "requires": {
            "is-glob": "^3.1.0",
            "path-dirname": "^1.0.0"
          },
          "dependencies": {
            "is-glob": {
              "version": "3.1.0",
              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
              "optional": true,
              "requires": {
                "is-extglob": "^2.1.0"
              }
            }
          }
        },
        "is-binary-path": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
          "optional": true,
          "requires": {
            "binary-extensions": "^1.0.0"
          }
        },
        "is-number": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
          "optional": true,
          "requires": {
            "kind-of": "^3.0.2"
          }
        },
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "optional": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        },
        "readdirp": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
          "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
          "optional": true,
          "requires": {
            "graceful-fs": "^4.1.11",
            "micromatch": "^3.1.10",
            "readable-stream": "^2.0.2"
          }
        },
        "to-regex-range": {
          "version": "2.1.1",
          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
          "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
          "optional": true,
          "requires": {
            "is-number": "^3.0.0",
            "repeat-string": "^1.6.1"
          }
        }
      }
    },
    "webpack": {
      "version": "3.12.0",
      "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
      "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
      "requires": {
        "acorn": "^5.0.0",
        "acorn-dynamic-import": "^2.0.0",
        "ajv": "^6.1.0",
        "ajv-keywords": "^3.1.0",
        "async": "^2.1.2",
        "enhanced-resolve": "^3.4.0",
        "escope": "^3.6.0",
        "interpret": "^1.0.0",
        "json-loader": "^0.5.4",
        "json5": "^0.5.1",
        "loader-runner": "^2.3.0",
        "loader-utils": "^1.1.0",
        "memory-fs": "~0.4.1",
        "mkdirp": "~0.5.0",
        "node-libs-browser": "^2.0.0",
        "source-map": "^0.5.3",
        "supports-color": "^4.2.1",
        "tapable": "^0.2.7",
        "uglifyjs-webpack-plugin": "^0.4.6",
        "watchpack": "^1.4.0",
        "webpack-sources": "^1.0.1",
        "yargs": "^8.0.2"
      },
      "dependencies": {
        "ajv": {
          "version": "6.12.6",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
          "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
          "requires": {
            "fast-deep-equal": "^3.1.1",
            "fast-json-stable-stringify": "^2.0.0",
            "json-schema-traverse": "^0.4.1",
            "uri-js": "^4.2.2"
          }
        },
        "ajv-keywords": {
          "version": "3.5.2",
          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
          "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
        },
        "cliui": {
          "version": "3.2.0",
          "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
          "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
          "requires": {
            "string-width": "^1.0.1",
            "strip-ansi": "^3.0.1",
            "wrap-ansi": "^2.0.0"
          },
          "dependencies": {
            "string-width": {
              "version": "1.0.2",
              "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
              "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
              "requires": {
                "code-point-at": "^1.0.0",
                "is-fullwidth-code-point": "^1.0.0",
                "strip-ansi": "^3.0.0"
              }
            }
          }
        },
        "fast-deep-equal": {
          "version": "3.1.3",
          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
        },
        "get-caller-file": {
          "version": "1.0.3",
          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
          "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
        },
        "has-flag": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
          "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
        },
        "is-fullwidth-code-point": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
          "requires": {
            "number-is-nan": "^1.0.0"
          }
        },
        "json-schema-traverse": {
          "version": "0.4.1",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
        },
        "load-json-file": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
          "requires": {
            "graceful-fs": "^4.1.2",
            "parse-json": "^2.2.0",
            "pify": "^2.0.0",
            "strip-bom": "^3.0.0"
          }
        },
        "path-type": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
          "requires": {
            "pify": "^2.0.0"
          }
        },
        "pify": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
        },
        "read-pkg": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
          "requires": {
            "load-json-file": "^2.0.0",
            "normalize-package-data": "^2.3.2",
            "path-type": "^2.0.0"
          }
        },
        "read-pkg-up": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
          "requires": {
            "find-up": "^2.0.0",
            "read-pkg": "^2.0.0"
          }
        },
        "require-main-filename": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
          "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
        },
        "strip-bom": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
        },
        "supports-color": {
          "version": "4.5.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
          "requires": {
            "has-flag": "^2.0.0"
          }
        },
        "wrap-ansi": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
          "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
          "requires": {
            "string-width": "^1.0.1",
            "strip-ansi": "^3.0.1"
          },
          "dependencies": {
            "string-width": {
              "version": "1.0.2",
              "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
              "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
              "requires": {
                "code-point-at": "^1.0.0",
                "is-fullwidth-code-point": "^1.0.0",
                "strip-ansi": "^3.0.0"
              }
            }
          }
        },
        "y18n": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
          "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
        },
        "yargs": {
          "version": "8.0.2",
          "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
          "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
          "requires": {
            "camelcase": "^4.1.0",
            "cliui": "^3.2.0",
            "decamelize": "^1.1.1",
            "get-caller-file": "^1.0.1",
            "os-locale": "^2.0.0",
            "read-pkg-up": "^2.0.0",
            "require-directory": "^2.1.1",
            "require-main-filename": "^1.0.1",
            "set-blocking": "^2.0.0",
            "string-width": "^2.0.0",
            "which-module": "^2.0.0",
            "y18n": "^3.2.1",
            "yargs-parser": "^7.0.0"
          }
        },
        "yargs-parser": {
          "version": "7.0.0",
          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
          "requires": {
            "camelcase": "^4.1.0"
          }
        }
      }
    },
    "webpack-sources": {
      "version": "1.4.3",
      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
      "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
      "requires": {
        "source-list-map": "^2.0.0",
        "source-map": "~0.6.1"
      }
    },
    "which": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
      "requires": {
        "isexe": "^2.0.0"
      }
    },
    "which-boxed-primitive": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
      "requires": {
        "is-bigint": "^1.0.1",
        "is-boolean-object": "^1.1.0",
        "is-number-object": "^1.0.4",
        "is-string": "^1.0.5",
        "is-symbol": "^1.0.3"
      }
    },
    "which-module": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
    },
    "wide-align": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
      "requires": {
        "string-width": "^1.0.2 || 2"
      }
    },
    "widest-line": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
      "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
      "requires": {
        "string-width": "^2.1.1"
      }
    },
    "window-size": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
    },
    "word-wrap": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
    },
    "wordwrap": {
      "version": "0.0.2",
      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
    },
    "wrap-ansi": {
      "version": "5.1.0",
      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
      "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
      "requires": {
        "ansi-styles": "^3.2.0",
        "string-width": "^3.0.0",
        "strip-ansi": "^5.0.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "4.1.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
        },
        "emoji-regex": {
          "version": "7.0.3",
          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
        },
        "string-width": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
          "requires": {
            "emoji-regex": "^7.0.1",
            "is-fullwidth-code-point": "^2.0.0",
            "strip-ansi": "^5.1.0"
          }
        },
        "strip-ansi": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
          "requires": {
            "ansi-regex": "^4.1.0"
          }
        }
      }
    },
    "wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
    },
    "write": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
      "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
      "requires": {
        "mkdirp": "^0.5.1"
      }
    },
    "write-file-atomic": {
      "version": "2.4.3",
      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
      "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
      "requires": {
        "graceful-fs": "^4.1.11",
        "imurmurhash": "^0.1.4",
        "signal-exit": "^3.0.2"
      }
    },
    "xdg-basedir": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
      "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
    },
    "xtend": {
      "version": "4.0.2",
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
    },
    "y18n": {
      "version": "4.0.3",
      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
    },
    "yallist": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
    },
    "yargs": {
      "version": "13.3.2",
      "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
      "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
      "requires": {
        "cliui": "^5.0.0",
        "find-up": "^3.0.0",
        "get-caller-file": "^2.0.1",
        "require-directory": "^2.1.1",
        "require-main-filename": "^2.0.0",
        "set-blocking": "^2.0.0",
        "string-width": "^3.0.0",
        "which-module": "^2.0.0",
        "y18n": "^4.0.0",
        "yargs-parser": "^13.1.2"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "4.1.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
        },
        "emoji-regex": {
          "version": "7.0.3",
          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
        },
        "find-up": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
          "requires": {
            "locate-path": "^3.0.0"
          }
        },
        "locate-path": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
          "requires": {
            "p-locate": "^3.0.0",
            "path-exists": "^3.0.0"
          }
        },
        "p-limit": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
          "requires": {
            "p-try": "^2.0.0"
          }
        },
        "p-locate": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
          "requires": {
            "p-limit": "^2.0.0"
          }
        },
        "p-try": {
          "version": "2.2.0",
          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
        },
        "string-width": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
          "requires": {
            "emoji-regex": "^7.0.1",
            "is-fullwidth-code-point": "^2.0.0",
            "strip-ansi": "^5.1.0"
          }
        },
        "strip-ansi": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
          "requires": {
            "ansi-regex": "^4.1.0"
          }
        }
      }
    },
    "yargs-parser": {
      "version": "13.1.2",
      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
      "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
      "requires": {
        "camelcase": "^5.0.0",
        "decamelize": "^1.2.0"
      },
      "dependencies": {
        "camelcase": {
          "version": "5.3.1",
          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
        }
      }
    }
  }
}
blocks/init.php000064400000011114151213254140007471 0ustar00<?php
/**
 * Blocks Package
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( false !== get_theme_mod( 'ogf_disable_post_level_controls', false ) ) {
	return;
}

/**
 * Enqueue Gutenberg block assets for backend editor.
 */
function olympus_google_fonts_block_js() {
	wp_enqueue_script(
		'olympus-google-fonts-block-js',
		plugins_url( '/dist/blocks.build.js', __FILE__ ),
		array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-block-editor' ),
		OGF_VERSION,
		false
	);
	wp_localize_script( 'olympus-google-fonts-block-js', 'ogf_custom_fonts_unique', ogf_custom_fonts_unique() );
	wp_localize_script( 'olympus-google-fonts-block-js', 'ogf_custom_fonts', ogf_custom_fonts() );
	wp_localize_script( 'olympus-google-fonts-block-js', 'ogf_typekit_fonts', ogf_typekit_fonts() );
}

add_action( 'enqueue_block_editor_assets', 'olympus_google_fonts_block_js' );

/**
 * Registers the 'olympus-google-fonts/google-fonts' block on server.
 */
function olympus_google_fonts_register_block() {
	// Check if the register function exists.
	if ( ! function_exists( 'register_block_type' ) ) {
		return;
	}
	register_block_type(
		'olympus-google-fonts/google-fonts',
		array(
			'attributes'      => array(
				'blockType'  => array(
					'type'    => 'string',
					'default' => 'p',
				),
				'fontID'     => array(
					'type'    => 'string',
					'default' => '',
				),
				'variant'    => array(
					'type'    => 'string',
					'default' => 'normal',
				),
				'fontSize'   => array(
					'type' => 'number',
				),
				'lineHeight' => array(
					'type' => 'number',
				),
				'align'      => array(
					'type' => 'string',
				),
				'content'    => array(
					'type' => 'string',
				),
				'color'      => array(
					'type' => 'string',
				),
			),
			'render_callback' => 'olympus_google_fonts_block_render',
		)
	);
}
add_action( 'init', 'olympus_google_fonts_register_block' );

/**
 * Front end render function for 'olympus-google-fonts/google-fonts'.
 *
 * @param array $attributes The block attributes.
 */
function olympus_google_fonts_block_render( $attributes ) {
	$block_type  = isset( $attributes['blockType'] ) ? esc_attr( $attributes['blockType'] ) : 'p';
	$font_id     = isset( $attributes['fontID'] ) ? sanitize_text_field( $attributes['fontID'] ) : '';
	$variant     = isset( $attributes['variant'] ) ? sanitize_text_field( $attributes['variant'] ) : '';
	$font_size   = isset( $attributes['fontSize'] ) ? intval( $attributes['fontSize'] ) : '';
	$line_height = isset( $attributes['lineHeight'] ) ? floatval( $attributes['lineHeight'] ) : '';
	$align       = isset( $attributes['align'] ) ? sanitize_text_field( $attributes['align'] ) : '';
	$content     = isset( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : '';
	$color       = isset( $attributes['color'] ) ? sanitize_text_field( $attributes['color'] ) : '';
	$class_name  = isset( $attributes['className'] ) ? sanitize_text_field( $attributes['className'] ) : '';
	$output      = '';
	$style       = '';
	$forced      = ogf_is_forced();

	$is_custom_font =  OGF_Fonts_Taxonomy::get_by_name($font_id);

	if ( $font_id ) {

		// standardize the format.
		$font_id_standardized = str_replace( '+', '-', strtolower( $font_id ) );

		if ( array_key_exists( $font_id_standardized, OGF_Fonts::$google_fonts ) ) {
			$variants = OGF_Fonts::$google_fonts[ $font_id_standardized ]['v'];

			$variants_for_url = join( ',', array_keys( $variants ) );

			wp_enqueue_style( 'google-font-' . $font_id_standardized, 'https://fonts.googleapis.com/css?family=' . $font_id . ':' . $variants_for_url . '&display=swap', array(), OGF_VERSION );

			$font_family = esc_attr( str_replace( '+', ' ', $font_id ) );
		} elseif ( isset( $is_custom_font['family'] ) ) {
			$font_family = $is_custom_font['family'];
		} else {
			$font_family = $font_id;
		}

		$style = "font-family: {$font_family}{$forced};";
	}

	if ( $variant && '0' !== $variant ) {
		$style .= "font-weight: {$variant}{$forced};";
	}

	if ( $font_size ) {
		$style .= "font-size: {$font_size}px{$forced};";
	}

	if ( $line_height ) {
		$style .= "line-height: {$line_height}{$forced};";
	}

	if ( $align ) {
		$style .= "text-align: {$align}{$forced};";
	}

	if ( $color ) {
		$style .= "color: {$color}{$forced};";
	}

	$output .= '<' . $block_type . ' class="fonts-plugin-block ' . $class_name . '" style="' . esc_attr( $style ) . '">';
	$output .= $content;
	$output .= '</' . $block_type . '>';

	return wp_kses_post( $output );
}
blocks/src/google-fonts/systemFonts.json000064400000003260151213254140014443 0ustar00[
   {
      "id":"arial",
      "label":"Arial",
      "stack":"Arial, Helvetica Neue, Helvetica, sans-serif"
   },
   {
      "id":"calibri",
      "label":"Calibri",
      "stack":"Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;"
   },
   {
      "id":"consolas",
      "label":"Consolas",
      "stack":"Consolas, monaco, monospace"
   },
   {
      "id":"courier-new",
      "label":"Courier New",
      "stack":"Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace"
   },
   {
      "id":"helvetica",
      "label":"Helvetica Neue",
      "stack":"Helvetica Neue, Helvetica, Arial, sans-serif"
   },
   {
      "id":"georgia",
      "label":"Georgia",
      "stack":"Georgia, Times, Times New Roman, serif"
   },
   {
      "id":"futura",
      "label":"Futura",
      "stack":"Futura, Trebuchet MS, Arial, sans-serif"
   },
   {
      "id":"lucida-grande",
      "label":"Lucida Grande",
      "stack":"Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif"
   },
   {
      "id":"tahoma",
      "label":"Tahoma",
      "stack":"Tahoma, Verdana, Segoe, sans-serif"
   },
   {
      "id":"times-new-roman",
      "label":"Times New Roman",
      "stack":"TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif"
   },
   {
      "id":"trebuchet",
      "label":"Trebuchet MS",
      "stack":"Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif"
   },
   {
      "id":"palatino",
      "label":"Palatino",
      "stack":"Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif"
   },
   {
      "id":"verdana",
      "label":"Verdana",
      "stack":"Verdana, Geneva, sans-serif;"
   }
]
blocks/src/google-fonts/index.js000064400000001436151213254140012662 0ustar00/**
 * BLOCK: Google Fonts
 */

import edit from './edit';
import transforms from './transforms';

const { __ } = wp.i18n;
const { registerBlockType } = wp.blocks;

registerBlockType( 'olympus-google-fonts/google-fonts', {
	title: __( 'Fonts Plugin', 'olympus-google-fonts' ),
	category: 'common',
	icon: <svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"/></svg>,
	keywords: [
		__( 'Fonts', 'olympus-google-fonts' ),
		__( 'Heading', 'olympus-google-fonts' ),
	],
	transforms,
	edit,

	save: function() {
		return null;
	},

} );
blocks/src/google-fonts/fonts.json000064400000423070151213254150013244 0ustar00[{"f":"ABeeZee","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"ADLaM Display","v":["400"],"s":["adlam","latin","latin-ext"]},{"f":"AR One Sans","v":["400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Abel","v":["400"],"s":["latin"]},{"f":"Abhaya Libre","v":["400","500","600","700","800"],"s":["latin","latin-ext","sinhala"]},{"f":"Aboreto","v":["400"],"s":["latin","latin-ext"]},{"f":"Abril Fatface","v":["400"],"s":["latin","latin-ext"]},{"f":"Abyssinica SIL","v":["400"],"s":["ethiopic","latin","latin-ext"]},{"f":"Aclonica","v":["400"],"s":["latin"]},{"f":"Acme","v":["400"],"s":["latin"]},{"f":"Actor","v":["400"],"s":["latin"]},{"f":"Adamina","v":["400"],"s":["latin"]},{"f":"Advent Pro","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Afacad","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Agbalumo","v":["400"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Agdasima","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Aguafina Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Akatab","v":["400","500","600","700","800","900"],"s":["latin","latin-ext","tifinagh"]},{"f":"Akaya Kanadaka","v":["400"],"s":["kannada","latin","latin-ext"]},{"f":"Akaya Telivigala","v":["400"],"s":["latin","latin-ext","telugu"]},{"f":"Akronim","v":["400"],"s":["latin","latin-ext"]},{"f":"Akshar","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Aladin","v":["400"],"s":["latin","latin-ext"]},{"f":"Alata","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Alatsi","v":["400"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Albert Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Aldrich","v":["400"],"s":["latin"]},{"f":"Alef","v":["400","700"],"s":["hebrew","latin"]},{"f":"Alegreya","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Alegreya SC","v":["400","400i","500","500i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Alegreya Sans","v":["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Alegreya Sans SC","v":["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Aleo","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Alex Brush","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Alexandria","v":["100","200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Alfa Slab One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Alice","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Alike","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Alike Angular","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Alkalami","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Alkatra","v":["400","500","600","700"],"s":["bengali","devanagari","latin","latin-ext","oriya"]},{"f":"Allan","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Allerta","v":["400"],"s":["latin"]},{"f":"Allerta Stencil","v":["400"],"s":["latin"]},{"f":"Allison","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Allura","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Almarai","v":["300","400","700","800"],"s":["arabic"]},{"f":"Almendra","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Almendra Display","v":["400"],"s":["latin","latin-ext"]},{"f":"Almendra SC","v":["400"],"s":["latin"]},{"f":"Alumni Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Alumni Sans Collegiate One","v":["400","400i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Alumni Sans Inline One","v":["400","400i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Alumni Sans Pinstripe","v":["400","400i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Amarante","v":["400"],"s":["latin","latin-ext"]},{"f":"Amaranth","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Amatic SC","v":["400","700"],"s":["cyrillic","hebrew","latin","latin-ext","vietnamese"]},{"f":"Amethysta","v":["400"],"s":["latin"]},{"f":"Amiko","v":["400","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Amiri","v":["400","400i","700","700i"],"s":["arabic","latin","latin-ext"]},{"f":"Amiri Quran","v":["400"],"s":["arabic","latin"]},{"f":"Amita","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Anaheim","v":["400"],"s":["latin","latin-ext"]},{"f":"Andada Pro","v":["400","500","600","700","800","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Andika","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Anek Bangla","v":["100","200","300","400","500","600","700","800"],"s":["bengali","latin","latin-ext"]},{"f":"Anek Devanagari","v":["100","200","300","400","500","600","700","800"],"s":["devanagari","latin","latin-ext"]},{"f":"Anek Gujarati","v":["100","200","300","400","500","600","700","800"],"s":["gujarati","latin","latin-ext"]},{"f":"Anek Gurmukhi","v":["100","200","300","400","500","600","700","800"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Anek Kannada","v":["100","200","300","400","500","600","700","800"],"s":["kannada","latin","latin-ext"]},{"f":"Anek Latin","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","vietnamese"]},{"f":"Anek Malayalam","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","malayalam"]},{"f":"Anek Odia","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","oriya"]},{"f":"Anek Tamil","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","tamil"]},{"f":"Anek Telugu","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","telugu"]},{"f":"Angkor","v":["400"],"s":["khmer","latin"]},{"f":"Annapurna SIL","v":["400","700"],"s":["devanagari","latin","latin-ext","math","symbols"]},{"f":"Annie Use Your Telescope","v":["400"],"s":["latin"]},{"f":"Anonymous Pro","v":["400","400i","700","700i"],"s":["cyrillic","greek","latin","latin-ext"]},{"f":"Anta","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Antic","v":["400"],"s":["latin"]},{"f":"Antic Didone","v":["400"],"s":["latin"]},{"f":"Antic Slab","v":["400"],"s":["latin"]},{"f":"Anton","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Antonio","v":["100","200","300","400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Anuphan","v":["100","200","300","400","500","600","700"],"s":["cyrillic-ext","latin","latin-ext","thai","vietnamese"]},{"f":"Anybody","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Aoboshi One","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Arapey","v":["400","400i"],"s":["latin"]},{"f":"Arbutus","v":["400"],"s":["latin","latin-ext"]},{"f":"Arbutus Slab","v":["400"],"s":["latin","latin-ext"]},{"f":"Architects Daughter","v":["400"],"s":["latin"]},{"f":"Archivo","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Archivo Black","v":["400"],"s":["latin","latin-ext"]},{"f":"Archivo Narrow","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Are You Serious","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Aref Ruqaa","v":["400","700"],"s":["arabic","latin","latin-ext"]},{"f":"Aref Ruqaa Ink","v":["400","700"],"s":["arabic","latin","latin-ext"]},{"f":"Arima","v":["100","200","300","400","500","600","700"],"s":["greek","greek-ext","latin","latin-ext","malayalam","tamil","vietnamese"]},{"f":"Arimo","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{"f":"Arizonia","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Armata","v":["400"],"s":["latin","latin-ext"]},{"f":"Arsenal","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Artifika","v":["400"],"s":["latin"]},{"f":"Arvo","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Arya","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Asap","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Asap Condensed","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Asar","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Asset","v":["400"],"s":["cyrillic-ext","latin","latin-ext","math","symbols"]},{"f":"Assistant","v":["200","300","400","500","600","700","800"],"s":["hebrew","latin","latin-ext"]},{"f":"Astloch","v":["400","700"],"s":["latin"]},{"f":"Asul","v":["400","700"],"s":["latin"]},{"f":"Athiti","v":["200","300","400","500","600","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Atkinson Hyperlegible","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Atma","v":["300","400","500","600","700"],"s":["bengali","latin","latin-ext"]},{"f":"Atomic Age","v":["400"],"s":["latin"]},{"f":"Aubrey","v":["400"],"s":["latin"]},{"f":"Audiowide","v":["400"],"s":["latin","latin-ext"]},{"f":"Autour One","v":["400"],"s":["latin","latin-ext"]},{"f":"Average","v":["400"],"s":["latin","latin-ext"]},{"f":"Average Sans","v":["400"],"s":["latin","latin-ext"]},{"f":"Averia Gruesa Libre","v":["400"],"s":["latin","latin-ext"]},{"f":"Averia Libre","v":["300","300i","400","400i","700","700i"],"s":["latin"]},{"f":"Averia Sans Libre","v":["300","300i","400","400i","700","700i"],"s":["latin"]},{"f":"Averia Serif Libre","v":["300","300i","400","400i","700","700i"],"s":["latin"]},{"f":"Azeret Mono","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"B612","v":["400","400i","700","700i"],"s":["latin"]},{"f":"B612 Mono","v":["400","400i","700","700i"],"s":["latin"]},{"f":"BIZ UDGothic","v":["400","700"],"s":["cyrillic","greek-ext","japanese","latin","latin-ext"]},{"f":"BIZ UDMincho","v":["400","700"],"s":["cyrillic","greek-ext","japanese","latin","latin-ext"]},{"f":"BIZ UDPGothic","v":["400","700"],"s":["cyrillic","greek-ext","japanese","latin","latin-ext"]},{"f":"BIZ UDPMincho","v":["400","700"],"s":["cyrillic","greek-ext","japanese","latin","latin-ext"]},{"f":"Babylonica","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bacasime Antique","v":["400"],"s":["latin","latin-ext"]},{"f":"Bad Script","v":["400"],"s":["cyrillic","latin"]},{"f":"Bagel Fat One","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Bahiana","v":["400"],"s":["latin","latin-ext"]},{"f":"Bahianita","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bai Jamjuree","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Bakbak One","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Ballet","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Baloo 2","v":["400","500","600","700","800"],"s":["devanagari","latin","latin-ext","vietnamese"]},{"f":"Baloo Bhai 2","v":["400","500","600","700","800"],"s":["gujarati","latin","latin-ext","vietnamese"]},{"f":"Baloo Bhaijaan 2","v":["400","500","600","700","800"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Baloo Bhaina 2","v":["400","500","600","700","800"],"s":["latin","latin-ext","oriya","vietnamese"]},{"f":"Baloo Chettan 2","v":["400","500","600","700","800"],"s":["latin","latin-ext","malayalam","vietnamese"]},{"f":"Baloo Da 2","v":["400","500","600","700","800"],"s":["bengali","latin","latin-ext","vietnamese"]},{"f":"Baloo Paaji 2","v":["400","500","600","700","800"],"s":["gurmukhi","latin","latin-ext","vietnamese"]},{"f":"Baloo Tamma 2","v":["400","500","600","700","800"],"s":["kannada","latin","latin-ext","vietnamese"]},{"f":"Baloo Tammudu 2","v":["400","500","600","700","800"],"s":["latin","latin-ext","telugu","vietnamese"]},{"f":"Baloo Thambi 2","v":["400","500","600","700","800"],"s":["latin","latin-ext","tamil","vietnamese"]},{"f":"Balsamiq Sans","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Balthazar","v":["400"],"s":["latin"]},{"f":"Bangers","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Barlow","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Barlow Condensed","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Barlow Semi Condensed","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Barriecito","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Barrio","v":["400"],"s":["latin","latin-ext"]},{"f":"Basic","v":["400"],"s":["latin","latin-ext"]},{"f":"Baskervville","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Battambang","v":["100","300","400","700","900"],"s":["khmer","latin"]},{"f":"Baumans","v":["400"],"s":["latin"]},{"f":"Bayon","v":["400"],"s":["khmer","latin"]},{"f":"Be Vietnam Pro","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Beau Rivage","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bebas Neue","v":["400"],"s":["latin","latin-ext"]},{"f":"Belanosima","v":["400","600","700"],"s":["latin","latin-ext"]},{"f":"Belgrano","v":["400"],"s":["latin"]},{"f":"Bellefair","v":["400"],"s":["hebrew","latin","latin-ext"]},{"f":"Belleza","v":["400"],"s":["latin","latin-ext"]},{"f":"Bellota","v":["300","300i","400","400i","700","700i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Bellota Text","v":["300","300i","400","400i","700","700i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"BenchNine","v":["300","400","700"],"s":["latin","latin-ext"]},{"f":"Benne","v":["400"],"s":["kannada","latin","latin-ext"]},{"f":"Bentham","v":["400"],"s":["latin"]},{"f":"Berkshire Swash","v":["400"],"s":["latin","latin-ext"]},{"f":"Besley","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Beth Ellen","v":["400"],"s":["latin"]},{"f":"Bevan","v":["400","400i"],"s":["latin","latin-ext","vietnamese"]},{"f":"BhuTuka Expanded One","v":["400"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Big Shoulders Display","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Big Shoulders Inline Display","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Big Shoulders Inline Text","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Big Shoulders Stencil Display","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Big Shoulders Stencil Text","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Big Shoulders Text","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bigelow Rules","v":["400"],"s":["latin","latin-ext"]},{"f":"Bigshot One","v":["400"],"s":["latin"]},{"f":"Bilbo","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bilbo Swash Caps","v":["400"],"s":["latin","latin-ext"]},{"f":"BioRhyme","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext"]},{"f":"BioRhyme Expanded","v":["200","300","400","700","800"],"s":["latin","latin-ext"]},{"f":"Birthstone","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Birthstone Bounce","v":["400","500"],"s":["latin","latin-ext","vietnamese"]},{"f":"Biryani","v":["200","300","400","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Bitter","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Black And White Picture","v":["400"],"s":["korean","latin"]},{"f":"Black Han Sans","v":["400"],"s":["korean","latin"]},{"f":"Black Ops One","v":["400"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Blaka","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Blaka Hollow","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Blaka Ink","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Blinker","v":["100","200","300","400","600","700","800","900"],"s":["latin","latin-ext"]},{"f":"Bodoni Moda","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","math","symbols"]},{"f":"Bokor","v":["400"],"s":["khmer","latin"]},{"f":"Bona Nova","v":["400","400i","700"],"s":["cyrillic","cyrillic-ext","greek","hebrew","latin","latin-ext","vietnamese"]},{"f":"Bonbon","v":["400"],"s":["latin"]},{"f":"Bonheur Royale","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Boogaloo","v":["400"],"s":["latin"]},{"f":"Borel","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Bowlby One","v":["400"],"s":["latin"]},{"f":"Bowlby One SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Braah One","v":["400"],"s":["gurmukhi","latin","latin-ext","vietnamese"]},{"f":"Brawler","v":["400","700"],"s":["latin"]},{"f":"Bree Serif","v":["400"],"s":["latin","latin-ext"]},{"f":"Bricolage Grotesque","v":["200","300","400","500","600","700","800"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Bruno Ace","v":["400"],"s":["latin","latin-ext"]},{"f":"Bruno Ace SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Brygada 1918","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Bubblegum Sans","v":["400"],"s":["latin","latin-ext"]},{"f":"Bubbler One","v":["400"],"s":["latin","latin-ext"]},{"f":"Buda","v":["300"],"s":["latin"]},{"f":"Buenard","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Bungee","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bungee Hairline","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bungee Inline","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bungee Outline","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bungee Shade","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Bungee Spice","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Butcherman","v":["400"],"s":["latin","latin-ext"]},{"f":"Butterfly Kids","v":["400"],"s":["latin","latin-ext"]},{"f":"Cabin","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Cabin Condensed","v":["400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Cabin Sketch","v":["400","700"],"s":["latin"]},{"f":"Caesar Dressing","v":["400"],"s":["latin"]},{"f":"Cagliostro","v":["400"],"s":["latin"]},{"f":"Cairo","v":["200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext"]},{"f":"Cairo Play","v":["200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext"]},{"f":"Caladea","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Calistoga","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Calligraffitti","v":["400"],"s":["latin"]},{"f":"Cambay","v":["400","400i","700","700i"],"s":["devanagari","latin","latin-ext"]},{"f":"Cambo","v":["400"],"s":["latin","latin-ext"]},{"f":"Candal","v":["400"],"s":["latin"]},{"f":"Cantarell","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Cantata One","v":["400"],"s":["latin","latin-ext"]},{"f":"Cantora One","v":["400"],"s":["latin","latin-ext"]},{"f":"Caprasimo","v":["400"],"s":["latin","latin-ext"]},{"f":"Capriola","v":["400"],"s":["latin","latin-ext"]},{"f":"Caramel","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Carattere","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Cardo","v":["400","400i","700"],"s":["greek","greek-ext","latin","latin-ext"]},{"f":"Carlito","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Carme","v":["400"],"s":["latin"]},{"f":"Carrois Gothic","v":["400"],"s":["latin"]},{"f":"Carrois Gothic SC","v":["400"],"s":["latin"]},{"f":"Carter One","v":["400"],"s":["latin"]},{"f":"Castoro","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Castoro Titling","v":["400"],"s":["latin","latin-ext"]},{"f":"Catamaran","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","tamil"]},{"f":"Caudex","v":["400","400i","700","700i"],"s":["greek","greek-ext","latin","latin-ext"]},{"f":"Caveat","v":["400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Caveat Brush","v":["400"],"s":["latin","latin-ext"]},{"f":"Cedarville Cursive","v":["400"],"s":["latin"]},{"f":"Ceviche One","v":["400"],"s":["latin","latin-ext"]},{"f":"Chakra Petch","v":["300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Changa","v":["200","300","400","500","600","700","800"],"s":["arabic","latin","latin-ext"]},{"f":"Changa One","v":["400","400i"],"s":["latin"]},{"f":"Chango","v":["400"],"s":["latin","latin-ext"]},{"f":"Charis SIL","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Charm","v":["400","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Charmonman","v":["400","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Chathura","v":["100","300","400","700","800"],"s":["latin","telugu"]},{"f":"Chau Philomene One","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Chela One","v":["400"],"s":["latin","latin-ext"]},{"f":"Chelsea Market","v":["400"],"s":["latin","latin-ext"]},{"f":"Chenla","v":["400"],"s":["khmer"]},{"f":"Cherish","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Cherry Bomb One","v":["400"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"Cherry Cream Soda","v":["400"],"s":["latin"]},{"f":"Cherry Swash","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Chewy","v":["400"],"s":["latin"]},{"f":"Chicle","v":["400"],"s":["latin","latin-ext"]},{"f":"Chilanka","v":["400"],"s":["latin","latin-ext","malayalam"]},{"f":"Chivo","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Chivo Mono","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Chokokutai","v":["400"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"Chonburi","v":["400"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Cinzel","v":["400","500","600","700","800","900"],"s":["latin","latin-ext"]},{"f":"Cinzel Decorative","v":["400","700","900"],"s":["latin"]},{"f":"Clicker Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Climate Crisis","v":["400"],"s":["latin","latin-ext"]},{"f":"Coda","v":["400","800"],"s":["latin","latin-ext"]},{"f":"Codystar","v":["300","400"],"s":["latin","latin-ext"]},{"f":"Coiny","v":["400"],"s":["latin","latin-ext","tamil","vietnamese"]},{"f":"Combo","v":["400"],"s":["latin","latin-ext"]},{"f":"Comfortaa","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Comforter","v":["400"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Comforter Brush","v":["400"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Comic Neue","v":["300","300i","400","400i","700","700i"],"s":["latin"]},{"f":"Coming Soon","v":["400"],"s":["latin"]},{"f":"Comme","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext"]},{"f":"Commissioner","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Concert One","v":["400"],"s":["latin","latin-ext"]},{"f":"Condiment","v":["400"],"s":["latin","latin-ext"]},{"f":"Content","v":["400","700"],"s":["khmer"]},{"f":"Contrail One","v":["400"],"s":["latin"]},{"f":"Convergence","v":["400"],"s":["latin","latin-ext"]},{"f":"Cookie","v":["400"],"s":["latin"]},{"f":"Copse","v":["400"],"s":["latin"]},{"f":"Corben","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Corinthia","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Cormorant","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cormorant Garamond","v":["300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cormorant Infant","v":["300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cormorant SC","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cormorant Unicase","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cormorant Upright","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Courgette","v":["400"],"s":["latin","latin-ext"]},{"f":"Courier Prime","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Cousine","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{"f":"Coustard","v":["400","900"],"s":["latin"]},{"f":"Covered By Your Grace","v":["400"],"s":["latin"]},{"f":"Crafty Girls","v":["400"],"s":["latin"]},{"f":"Creepster","v":["400"],"s":["latin"]},{"f":"Crete Round","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Crimson Pro","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Crimson Text","v":["400","400i","600","600i","700","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Croissant One","v":["400"],"s":["latin","latin-ext"]},{"f":"Crushed","v":["400"],"s":["latin"]},{"f":"Cuprum","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Cute Font","v":["400"],"s":["korean","latin"]},{"f":"Cutive","v":["400"],"s":["latin","latin-ext"]},{"f":"Cutive Mono","v":["400"],"s":["latin","latin-ext"]},{"f":"DM Mono","v":["300","300i","400","400i","500","500i"],"s":["latin","latin-ext"]},{"f":"DM Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"DM Serif Display","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"DM Serif Text","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Dai Banna SIL","v":["300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","new-tai-lue"]},{"f":"Damion","v":["400"],"s":["latin"]},{"f":"Dancing Script","v":["400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Danfo","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Dangrek","v":["400"],"s":["khmer","latin"]},{"f":"Darker Grotesque","v":["300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Darumadrop One","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"David Libre","v":["400","500","700"],"s":["hebrew","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Dawning of a New Day","v":["400"],"s":["latin"]},{"f":"Days One","v":["400"],"s":["latin"]},{"f":"Dekko","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Dela Gothic One","v":["400"],"s":["cyrillic","greek","japanese","latin","latin-ext","vietnamese"]},{"f":"Delicious Handrawn","v":["400"],"s":["latin","latin-ext"]},{"f":"Delius","v":["400"],"s":["latin"]},{"f":"Delius Swash Caps","v":["400"],"s":["latin"]},{"f":"Delius Unicase","v":["400","700"],"s":["latin"]},{"f":"Della Respira","v":["400"],"s":["latin"]},{"f":"Denk One","v":["400"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Devonshire","v":["400"],"s":["latin","latin-ext"]},{"f":"Dhurjati","v":["400"],"s":["latin","telugu"]},{"f":"Didact Gothic","v":["400"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Diphylleia","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Diplomata","v":["400"],"s":["latin","latin-ext"]},{"f":"Diplomata SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Do Hyeon","v":["400"],"s":["korean","latin"]},{"f":"Dokdo","v":["400"],"s":["korean","latin"]},{"f":"Domine","v":["400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Donegal One","v":["400"],"s":["latin","latin-ext"]},{"f":"Dongle","v":["300","400","700"],"s":["korean","latin","latin-ext","vietnamese"]},{"f":"Doppio One","v":["400"],"s":["latin","latin-ext"]},{"f":"Dorsa","v":["400"],"s":["latin"]},{"f":"Dosis","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","vietnamese"]},{"f":"DotGothic16","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Dr Sugiyama","v":["400"],"s":["latin","latin-ext"]},{"f":"Duru Sans","v":["400"],"s":["latin","latin-ext"]},{"f":"DynaPuff","v":["400","500","600","700"],"s":["cyrillic-ext","latin","latin-ext"]},{"f":"Dynalight","v":["400"],"s":["latin","latin-ext"]},{"f":"EB Garamond","v":["400","500","600","700","800","400i","500i","600i","700i","800i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Eagle Lake","v":["400"],"s":["latin","latin-ext"]},{"f":"East Sea Dokdo","v":["400"],"s":["korean","latin"]},{"f":"Eater","v":["400"],"s":["latin","latin-ext"]},{"f":"Economica","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Eczar","v":["400","500","600","700","800"],"s":["devanagari","greek","greek-ext","latin","latin-ext"]},{"f":"Edu NSW ACT Foundation","v":["400","500","600","700"],"s":["latin"]},{"f":"Edu QLD Beginner","v":["400","500","600","700"],"s":["latin"]},{"f":"Edu SA Beginner","v":["400","500","600","700"],"s":["latin"]},{"f":"Edu TAS Beginner","v":["400","500","600","700"],"s":["latin"]},{"f":"Edu VIC WA NT Beginner","v":["400","500","600","700"],"s":["latin"]},{"f":"El Messiri","v":["400","500","600","700"],"s":["arabic","cyrillic","latin","latin-ext"]},{"f":"Electrolize","v":["400"],"s":["latin"]},{"f":"Elsie","v":["400","900"],"s":["latin","latin-ext"]},{"f":"Elsie Swash Caps","v":["400","900"],"s":["latin","latin-ext"]},{"f":"Emblema One","v":["400"],"s":["latin","latin-ext"]},{"f":"Emilys Candy","v":["400"],"s":["latin","latin-ext"]},{"f":"Encode Sans","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Encode Sans Condensed","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Encode Sans Expanded","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Encode Sans SC","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Encode Sans Semi Condensed","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Encode Sans Semi Expanded","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Engagement","v":["400"],"s":["latin"]},{"f":"Englebert","v":["400"],"s":["latin","latin-ext"]},{"f":"Enriqueta","v":["400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Ephesis","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Epilogue","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Erica One","v":["400"],"s":["latin","latin-ext"]},{"f":"Esteban","v":["400"],"s":["latin","latin-ext"]},{"f":"Estonia","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Euphoria Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Ewert","v":["400"],"s":["latin","latin-ext"]},{"f":"Exo","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Exo 2","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Expletus Sans","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Explora","v":["400"],"s":["cherokee","latin","latin-ext","vietnamese"]},{"f":"Fahkwang","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Familjen Grotesk","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Fanwood Text","v":["400","400i"],"s":["latin"]},{"f":"Farro","v":["300","400","500","700"],"s":["latin","latin-ext"]},{"f":"Farsan","v":["400"],"s":["gujarati","latin","latin-ext","vietnamese"]},{"f":"Fascinate","v":["400"],"s":["latin"]},{"f":"Fascinate Inline","v":["400"],"s":["latin"]},{"f":"Faster One","v":["400"],"s":["latin","latin-ext"]},{"f":"Fasthand","v":["400"],"s":["khmer","latin"]},{"f":"Fauna One","v":["400"],"s":["latin","latin-ext"]},{"f":"Faustina","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Federant","v":["400"],"s":["latin"]},{"f":"Federo","v":["400"],"s":["latin"]},{"f":"Felipa","v":["400"],"s":["latin","latin-ext"]},{"f":"Fenix","v":["400"],"s":["latin","latin-ext"]},{"f":"Festive","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Figtree","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Finger Paint","v":["400"],"s":["latin"]},{"f":"Finlandica","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Fira Code","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Fira Mono","v":["400","500","700"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Fira Sans","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Fira Sans Condensed","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Fira Sans Extra Condensed","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Fjalla One","v":["400"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Fjord One","v":["400"],"s":["latin"]},{"f":"Flamenco","v":["300","400"],"s":["latin"]},{"f":"Flavors","v":["400"],"s":["latin","latin-ext"]},{"f":"Fleur De Leah","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Flow Block","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Flow Circular","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Flow Rounded","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Foldit","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Fondamento","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Fontdiner Swanky","v":["400"],"s":["latin"]},{"f":"Forum","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Fragment Mono","v":["400","400i"],"s":["cyrillic-ext","latin","latin-ext"]},{"f":"Francois One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Frank Ruhl Libre","v":["300","400","500","600","700","800","900"],"s":["hebrew","latin","latin-ext"]},{"f":"Fraunces","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Freckle Face","v":["400"],"s":["latin","latin-ext"]},{"f":"Fredericka the Great","v":["400"],"s":["latin","latin-ext"]},{"f":"Fredoka","v":["300","400","500","600","700"],"s":["hebrew","latin","latin-ext"]},{"f":"Freehand","v":["400"],"s":["khmer","latin"]},{"f":"Freeman","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Fresca","v":["400"],"s":["latin","latin-ext"]},{"f":"Frijole","v":["400"],"s":["latin"]},{"f":"Fruktur","v":["400","400i"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Fugaz One","v":["400"],"s":["latin"]},{"f":"Fuggles","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Fuzzy Bubbles","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"GFS Didot","v":["400"],"s":["greek"]},{"f":"GFS Neohellenic","v":["400","400i","700","700i"],"s":["greek"]},{"f":"Gabarito","v":["400","500","600","700","800","900"],"s":["latin","latin-ext"]},{"f":"Gabriela","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Gaegu","v":["300","400","700"],"s":["korean","latin"]},{"f":"Gafata","v":["400"],"s":["latin","latin-ext"]},{"f":"Gajraj One","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Galada","v":["400"],"s":["bengali","latin"]},{"f":"Galdeano","v":["400"],"s":["latin"]},{"f":"Galindo","v":["400"],"s":["latin","latin-ext"]},{"f":"Gamja Flower","v":["400"],"s":["korean","latin"]},{"f":"Gantari","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Gasoek One","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Gayathri","v":["100","400","700"],"s":["latin","malayalam"]},{"f":"Gelasio","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Gemunu Libre","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","sinhala"]},{"f":"Genos","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cherokee","latin","latin-ext","vietnamese"]},{"f":"Gentium Book Plus","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Gentium Plus","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Geo","v":["400","400i"],"s":["latin"]},{"f":"Geologica","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Georama","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Geostar","v":["400"],"s":["latin"]},{"f":"Geostar Fill","v":["400"],"s":["latin"]},{"f":"Germania One","v":["400"],"s":["latin"]},{"f":"Gideon Roman","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Gidugu","v":["400"],"s":["latin","telugu"]},{"f":"Gilda Display","v":["400"],"s":["latin","latin-ext"]},{"f":"Girassol","v":["400"],"s":["latin","latin-ext"]},{"f":"Give You Glory","v":["400"],"s":["latin"]},{"f":"Glass Antiqua","v":["400"],"s":["latin","latin-ext"]},{"f":"Glegoo","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Gloock","v":["400"],"s":["cyrillic-ext","latin","latin-ext"]},{"f":"Gloria Hallelujah","v":["400"],"s":["latin"]},{"f":"Glory","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Gluten","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Goblin One","v":["400"],"s":["latin"]},{"f":"Gochi Hand","v":["400"],"s":["latin"]},{"f":"Goldman","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Golos Text","v":["400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Gorditas","v":["400","700"],"s":["latin"]},{"f":"Gothic A1","v":["100","200","300","400","500","600","700","800","900"],"s":["korean","latin"]},{"f":"Gotu","v":["400"],"s":["devanagari","latin","latin-ext","vietnamese"]},{"f":"Goudy Bookletter 1911","v":["400"],"s":["latin"]},{"f":"Gowun Batang","v":["400","700"],"s":["korean","latin","latin-ext","vietnamese"]},{"f":"Gowun Dodum","v":["400"],"s":["korean","latin","latin-ext","vietnamese"]},{"f":"Graduate","v":["400"],"s":["latin"]},{"f":"Grand Hotel","v":["400"],"s":["latin","latin-ext"]},{"f":"Grandiflora One","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Grandstander","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Grape Nuts","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Gravitas One","v":["400"],"s":["latin"]},{"f":"Great Vibes","v":["400"],"s":["cyrillic","cyrillic-ext","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Grechen Fuemen","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Grenze","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Grenze Gotisch","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Grey Qo","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Griffy","v":["400"],"s":["latin","latin-ext"]},{"f":"Gruppo","v":["400"],"s":["latin","latin-ext"]},{"f":"Gudea","v":["400","400i","700"],"s":["latin","latin-ext"]},{"f":"Gugi","v":["400"],"s":["korean","latin"]},{"f":"Gulzar","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Gupter","v":["400","500","700"],"s":["latin"]},{"f":"Gurajada","v":["400"],"s":["latin","telugu"]},{"f":"Gwendolyn","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Habibi","v":["400"],"s":["latin","latin-ext"]},{"f":"Hachi Maru Pop","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Hahmlet","v":["100","200","300","400","500","600","700","800","900"],"s":["korean","latin","latin-ext","vietnamese"]},{"f":"Halant","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Hammersmith One","v":["400"],"s":["latin","latin-ext"]},{"f":"Hanalei","v":["400"],"s":["latin","latin-ext"]},{"f":"Hanalei Fill","v":["400"],"s":["latin","latin-ext"]},{"f":"Handjet","v":["100","200","300","400","500","600","700","800","900"],"s":["arabic","armenian","cyrillic","cyrillic-ext","greek","hebrew","latin","latin-ext","vietnamese"]},{"f":"Handlee","v":["400"],"s":["latin"]},{"f":"Hanken Grotesk","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Hanuman","v":["100","300","400","700","900"],"s":["khmer","latin"]},{"f":"Happy Monkey","v":["400"],"s":["latin","latin-ext"]},{"f":"Harmattan","v":["400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Headland One","v":["400"],"s":["latin","latin-ext"]},{"f":"Hedvig Letters Sans","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Hedvig Letters Serif","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Heebo","v":["100","200","300","400","500","600","700","800","900"],"s":["hebrew","latin","latin-ext","math","symbols"]},{"f":"Henny Penny","v":["400"],"s":["latin"]},{"f":"Hepta Slab","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Herr Von Muellerhoff","v":["400"],"s":["latin","latin-ext"]},{"f":"Hi Melody","v":["400"],"s":["korean","latin"]},{"f":"Hina Mincho","v":["400"],"s":["cyrillic","japanese","latin","latin-ext","vietnamese"]},{"f":"Hind","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Hind Guntur","v":["300","400","500","600","700"],"s":["latin","latin-ext","telugu"]},{"f":"Hind Madurai","v":["300","400","500","600","700"],"s":["latin","latin-ext","tamil"]},{"f":"Hind Siliguri","v":["300","400","500","600","700"],"s":["bengali","latin","latin-ext"]},{"f":"Hind Vadodara","v":["300","400","500","600","700"],"s":["gujarati","latin","latin-ext"]},{"f":"Holtwood One SC","v":["400"],"s":["latin"]},{"f":"Homemade Apple","v":["400"],"s":["latin"]},{"f":"Homenaje","v":["400"],"s":["latin"]},{"f":"Honk","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Hubballi","v":["400"],"s":["kannada","latin","latin-ext"]},{"f":"Hurricane","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"IBM Plex Mono","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"IBM Plex Sans","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"IBM Plex Sans Arabic","v":["100","200","300","400","500","600","700"],"s":["arabic","cyrillic-ext","latin","latin-ext"]},{"f":"IBM Plex Sans Condensed","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"IBM Plex Sans Devanagari","v":["100","200","300","400","500","600","700"],"s":["cyrillic-ext","devanagari","latin","latin-ext"]},{"f":"IBM Plex Sans Hebrew","v":["100","200","300","400","500","600","700"],"s":["cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"IBM Plex Sans JP","v":["100","200","300","400","500","600","700"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"IBM Plex Sans KR","v":["100","200","300","400","500","600","700"],"s":["korean","latin","latin-ext"]},{"f":"IBM Plex Sans Thai","v":["100","200","300","400","500","600","700"],"s":["cyrillic-ext","latin","latin-ext","thai"]},{"f":"IBM Plex Sans Thai Looped","v":["100","200","300","400","500","600","700"],"s":["cyrillic-ext","latin","latin-ext","thai"]},{"f":"IBM Plex Serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"IM Fell DW Pica","v":["400","400i"],"s":["latin"]},{"f":"IM Fell DW Pica SC","v":["400"],"s":["latin"]},{"f":"IM Fell Double Pica","v":["400","400i"],"s":["latin"]},{"f":"IM Fell Double Pica SC","v":["400"],"s":["latin"]},{"f":"IM Fell English","v":["400","400i"],"s":["latin"]},{"f":"IM Fell English SC","v":["400"],"s":["latin"]},{"f":"IM Fell French Canon","v":["400","400i"],"s":["latin"]},{"f":"IM Fell French Canon SC","v":["400"],"s":["latin"]},{"f":"IM Fell Great Primer","v":["400","400i"],"s":["latin"]},{"f":"IM Fell Great Primer SC","v":["400"],"s":["latin"]},{"f":"Ibarra Real Nova","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Iceberg","v":["400"],"s":["latin"]},{"f":"Iceland","v":["400"],"s":["latin"]},{"f":"Imbue","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Imperial Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Imprima","v":["400"],"s":["latin","latin-ext"]},{"f":"Inclusive Sans","v":["400","400i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Inconsolata","v":["200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Inder","v":["400"],"s":["latin","latin-ext"]},{"f":"Indie Flower","v":["400"],"s":["latin"]},{"f":"Ingrid Darling","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Inika","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Inknut Antiqua","v":["300","400","500","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Inria Sans","v":["300","300i","400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Inria Serif","v":["300","300i","400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Inspiration","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Instrument Sans","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Instrument Serif","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Inter","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Inter Tight","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Irish Grover","v":["400"],"s":["latin"]},{"f":"Island Moments","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Istok Web","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Italiana","v":["400"],"s":["latin"]},{"f":"Italianno","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Itim","v":["400"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Jacquard 12","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Jacquard 12 Charted","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Jacquard 24","v":["400"],"s":["latin","latin-ext"]},{"f":"Jacquard 24 Charted","v":["400"],"s":["latin","latin-ext"]},{"f":"Jacquarda Bastarda 9","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Jacquarda Bastarda 9 Charted","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Jacques Francois","v":["400"],"s":["latin"]},{"f":"Jacques Francois Shadow","v":["400"],"s":["latin"]},{"f":"Jaini","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Jaini Purva","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Jaldi","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Jaro","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Jersey 10","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 10 Charted","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 15","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 15 Charted","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 20","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 20 Charted","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 25","v":["400"],"s":["latin","latin-ext"]},{"f":"Jersey 25 Charted","v":["400"],"s":["latin","latin-ext"]},{"f":"JetBrains Mono","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Jim Nightshade","v":["400"],"s":["latin","latin-ext"]},{"f":"Joan","v":["400"],"s":["latin","latin-ext"]},{"f":"Jockey One","v":["400"],"s":["latin","latin-ext"]},{"f":"Jolly Lodger","v":["400"],"s":["latin","latin-ext"]},{"f":"Jomhuria","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Jomolhari","v":["400"],"s":["latin","tibetan"]},{"f":"Josefin Sans","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Josefin Slab","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],"s":["latin"]},{"f":"Jost","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","latin","latin-ext"]},{"f":"Joti One","v":["400"],"s":["latin","latin-ext"]},{"f":"Jua","v":["400"],"s":["korean","latin"]},{"f":"Judson","v":["400","400i","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Julee","v":["400"],"s":["latin","latin-ext"]},{"f":"Julius Sans One","v":["400"],"s":["latin","latin-ext"]},{"f":"Junge","v":["400"],"s":["latin"]},{"f":"Jura","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","kayah-li","latin","latin-ext","vietnamese"]},{"f":"Just Another Hand","v":["400"],"s":["latin"]},{"f":"Just Me Again Down Here","v":["400"],"s":["latin","latin-ext"]},{"f":"K2D","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Kablammo","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Kadwa","v":["400","700"],"s":["devanagari","latin"]},{"f":"Kaisei Decol","v":["400","500","700"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kaisei HarunoUmi","v":["400","500","700"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kaisei Opti","v":["400","500","700"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kaisei Tokumin","v":["400","500","700","800"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kalam","v":["300","400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Kalnia","v":["100","200","300","400","500","600","700"],"s":["latin","latin-ext","math"]},{"f":"Kameron","v":["400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Kanit","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Kantumruy Pro","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],"s":["khmer","latin","latin-ext"]},{"f":"Karantina","v":["300","400","700"],"s":["hebrew","latin","latin-ext"]},{"f":"Karla","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext"]},{"f":"Karma","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Katibeh","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Kaushan Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Kavivanar","v":["400"],"s":["latin","latin-ext","tamil"]},{"f":"Kavoon","v":["400"],"s":["latin","latin-ext"]},{"f":"Kay Pho Du","v":["400","500","600","700"],"s":["kayah-li","latin","latin-ext"]},{"f":"Kdam Thmor Pro","v":["400"],"s":["khmer","latin","latin-ext"]},{"f":"Keania One","v":["400"],"s":["latin","latin-ext"]},{"f":"Kelly Slab","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Kenia","v":["400"],"s":["latin"]},{"f":"Khand","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Khmer","v":["400"],"s":["khmer"]},{"f":"Khula","v":["300","400","600","700","800"],"s":["devanagari","latin","latin-ext"]},{"f":"Kings","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Kirang Haerang","v":["400"],"s":["korean","latin"]},{"f":"Kite One","v":["400"],"s":["latin","latin-ext"]},{"f":"Kiwi Maru","v":["300","400","500"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Klee One","v":["400","600"],"s":["cyrillic","greek-ext","japanese","latin","latin-ext"]},{"f":"Knewave","v":["400"],"s":["latin","latin-ext"]},{"f":"KoHo","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Kodchasan","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Kode Mono","v":["400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Koh Santepheap","v":["100","300","400","700","900"],"s":["khmer","latin"]},{"f":"Kolker Brush","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Konkhmer Sleokchher","v":["400"],"s":["khmer","latin","latin-ext"]},{"f":"Kosugi","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kosugi Maru","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Kotta One","v":["400"],"s":["latin","latin-ext"]},{"f":"Koulen","v":["400"],"s":["khmer","latin"]},{"f":"Kranky","v":["400"],"s":["latin"]},{"f":"Kreon","v":["300","400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Kristi","v":["400"],"s":["latin"]},{"f":"Krona One","v":["400"],"s":["latin","latin-ext"]},{"f":"Krub","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Kufam","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Kulim Park","v":["200","200i","300","300i","400","400i","600","600i","700","700i"],"s":["latin","latin-ext"]},{"f":"Kumar One","v":["400"],"s":["gujarati","latin","latin-ext"]},{"f":"Kumar One Outline","v":["400"],"s":["gujarati","latin","latin-ext"]},{"f":"Kumbh Sans","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","math","symbols"]},{"f":"Kurale","v":["400"],"s":["cyrillic","cyrillic-ext","devanagari","latin","latin-ext"]},{"f":"La Belle Aurore","v":["400"],"s":["latin"]},{"f":"Labrada","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lacquer","v":["400"],"s":["latin"]},{"f":"Laila","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Lakki Reddy","v":["400"],"s":["latin","telugu"]},{"f":"Lalezar","v":["400"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Lancelot","v":["400"],"s":["latin","latin-ext"]},{"f":"Langar","v":["400"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Lateef","v":["200","300","400","500","600","700","800"],"s":["arabic","latin","latin-ext"]},{"f":"Lato","v":["100","100i","300","300i","400","400i","700","700i","900","900i"],"s":["latin","latin-ext"]},{"f":"Lavishly Yours","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"League Gothic","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"League Script","v":["400"],"s":["latin"]},{"f":"League Spartan","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Leckerli One","v":["400"],"s":["latin"]},{"f":"Ledger","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Lekton","v":["400","400i","700"],"s":["latin","latin-ext"]},{"f":"Lemon","v":["400"],"s":["latin","latin-ext"]},{"f":"Lemonada","v":["300","400","500","600","700"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Lexend","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Deca","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Exa","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Giga","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Mega","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Peta","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Tera","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lexend Zetta","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Libre Barcode 128","v":["400"],"s":["latin"]},{"f":"Libre Barcode 128 Text","v":["400"],"s":["latin"]},{"f":"Libre Barcode 39","v":["400"],"s":["latin"]},{"f":"Libre Barcode 39 Extended","v":["400"],"s":["latin"]},{"f":"Libre Barcode 39 Extended Text","v":["400"],"s":["latin"]},{"f":"Libre Barcode 39 Text","v":["400"],"s":["latin"]},{"f":"Libre Barcode EAN13 Text","v":["400"],"s":["latin"]},{"f":"Libre Baskerville","v":["400","400i","700"],"s":["latin","latin-ext"]},{"f":"Libre Bodoni","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Libre Caslon Display","v":["400"],"s":["latin","latin-ext"]},{"f":"Libre Caslon Text","v":["400","400i","700"],"s":["latin","latin-ext"]},{"f":"Libre Franklin","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Licorice","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Life Savers","v":["400","700","800"],"s":["latin","latin-ext"]},{"f":"Lilita One","v":["400"],"s":["latin","latin-ext"]},{"f":"Lily Script One","v":["400"],"s":["latin","latin-ext"]},{"f":"Limelight","v":["400"],"s":["latin","latin-ext"]},{"f":"Linden Hill","v":["400","400i"],"s":["latin"]},{"f":"Linefont","v":["100","200","300","400","500","600","700","800","900"],"s":["latin"]},{"f":"Lisu Bosa","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","lisu"]},{"f":"Literata","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Liu Jian Mao Cao","v":["400"],"s":["chinese-simplified","latin"]},{"f":"Livvic","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","900","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Lobster","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Lobster Two","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Londrina Outline","v":["400"],"s":["latin"]},{"f":"Londrina Shadow","v":["400"],"s":["latin"]},{"f":"Londrina Sketch","v":["400"],"s":["latin"]},{"f":"Londrina Solid","v":["100","300","400","900"],"s":["latin"]},{"f":"Long Cang","v":["400"],"s":["chinese-simplified","latin"]},{"f":"Lora","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Love Light","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Love Ya Like A Sister","v":["400"],"s":["latin","latin-ext"]},{"f":"Loved by the King","v":["400"],"s":["latin"]},{"f":"Lovers Quarrel","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Luckiest Guy","v":["400"],"s":["latin"]},{"f":"Lugrasimo","v":["400"],"s":["latin","latin-ext"]},{"f":"Lumanosimo","v":["400"],"s":["latin","latin-ext"]},{"f":"Lunasima","v":["400","700"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{"f":"Lusitana","v":["400","700"],"s":["latin"]},{"f":"Lustria","v":["400"],"s":["latin"]},{"f":"Luxurious Roman","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Luxurious Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"M PLUS 1","v":["100","200","300","400","500","600","700","800","900"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"M PLUS 1 Code","v":["100","200","300","400","500","600","700"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"M PLUS 1p","v":["100","300","400","500","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","japanese","latin","latin-ext","vietnamese"]},{"f":"M PLUS 2","v":["100","200","300","400","500","600","700","800","900"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"M PLUS Code Latin","v":["100","200","300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"M PLUS Rounded 1c","v":["100","300","400","500","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","japanese","latin","latin-ext","vietnamese"]},{"f":"Ma Shan Zheng","v":["400"],"s":["chinese-simplified","latin"]},{"f":"Macondo","v":["400"],"s":["latin"]},{"f":"Macondo Swash Caps","v":["400"],"s":["latin"]},{"f":"Mada","v":["200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext"]},{"f":"Madimi One","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Magra","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Maiden Orange","v":["400"],"s":["latin"]},{"f":"Maitree","v":["200","300","400","500","600","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Major Mono Display","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Mako","v":["400"],"s":["latin","latin-ext"]},{"f":"Mali","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Mallanna","v":["400"],"s":["latin","telugu"]},{"f":"Mandali","v":["400"],"s":["latin","telugu"]},{"f":"Manjari","v":["100","400","700"],"s":["latin","latin-ext","malayalam"]},{"f":"Manrope","v":["200","300","400","500","600","700","800"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Mansalva","v":["400"],"s":["greek","latin","latin-ext","vietnamese"]},{"f":"Manuale","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Marcellus","v":["400"],"s":["latin","latin-ext"]},{"f":"Marcellus SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Marck Script","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Margarine","v":["400"],"s":["latin","latin-ext"]},{"f":"Marhey","v":["300","400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Markazi Text","v":["400","500","600","700"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Marko One","v":["400"],"s":["latin"]},{"f":"Marmelad","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Martel","v":["200","300","400","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Martel Sans","v":["200","300","400","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Martian Mono","v":["100","200","300","400","500","600","700","800"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Marvel","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Mate","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Mate SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Material Icons","v":["400"],"s":["latin"]},{"f":"Material Icons Outlined","v":["400"],"s":["latin"]},{"f":"Material Icons Round","v":["400"],"s":["latin"]},{"f":"Material Icons Sharp","v":["400"],"s":["latin"]},{"f":"Material Icons Two Tone","v":["400"],"s":["latin"]},{"f":"Material Symbols Outlined","v":["100","200","300","400","500","600","700"],"s":["latin"]},{"f":"Material Symbols Rounded","v":["100","200","300","400","500","600","700"],"s":["latin"]},{"f":"Material Symbols Sharp","v":["100","200","300","400","500","600","700"],"s":["latin"]},{"f":"Maven Pro","v":["400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"McLaren","v":["400"],"s":["latin","latin-ext"]},{"f":"Mea Culpa","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Meddon","v":["400"],"s":["latin"]},{"f":"MedievalSharp","v":["400"],"s":["latin","latin-ext"]},{"f":"Medula One","v":["400"],"s":["latin"]},{"f":"Meera Inimai","v":["400"],"s":["latin","tamil"]},{"f":"Megrim","v":["400"],"s":["latin"]},{"f":"Meie Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Meow Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Merienda","v":["300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Merriweather","v":["300","300i","400","400i","700","700i","900","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Merriweather Sans","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Metal","v":["400"],"s":["khmer","latin"]},{"f":"Metal Mania","v":["400"],"s":["latin","latin-ext"]},{"f":"Metamorphous","v":["400"],"s":["latin","latin-ext"]},{"f":"Metrophobic","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Michroma","v":["400"],"s":["latin","latin-ext"]},{"f":"Micro 5","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Micro 5 Charted","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Milonga","v":["400"],"s":["latin","latin-ext"]},{"f":"Miltonian","v":["400"],"s":["latin"]},{"f":"Miltonian Tattoo","v":["400"],"s":["latin"]},{"f":"Mina","v":["400","700"],"s":["bengali","latin","latin-ext"]},{"f":"Mingzat","v":["400"],"s":["latin","latin-ext","lepcha"]},{"f":"Miniver","v":["400"],"s":["latin"]},{"f":"Miriam Libre","v":["400","700"],"s":["hebrew","latin","latin-ext"]},{"f":"Mirza","v":["400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Miss Fajardose","v":["400"],"s":["latin","latin-ext"]},{"f":"Mitr","v":["200","300","400","500","600","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Mochiy Pop One","v":["400"],"s":["japanese","latin"]},{"f":"Mochiy Pop P One","v":["400"],"s":["japanese","latin"]},{"f":"Modak","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Modern Antiqua","v":["400"],"s":["latin","latin-ext"]},{"f":"Mogra","v":["400"],"s":["gujarati","latin","latin-ext"]},{"f":"Mohave","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Moirai One","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Molengo","v":["400"],"s":["latin","latin-ext"]},{"f":"Molle","v":["400i"],"s":["latin","latin-ext"]},{"f":"Monda","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Monofett","v":["400"],"s":["latin","latin-ext"]},{"f":"Monomaniac One","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Monoton","v":["400"],"s":["latin"]},{"f":"Monsieur La Doulaise","v":["400"],"s":["latin","latin-ext"]},{"f":"Montaga","v":["400"],"s":["latin"]},{"f":"Montagu Slab","v":["100","200","300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"MonteCarlo","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Montez","v":["400"],"s":["latin"]},{"f":"Montserrat","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Montserrat Alternates","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Montserrat Subrayada","v":["400","700"],"s":["latin"]},{"f":"Moo Lah Lah","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Mooli","v":["400"],"s":["latin","latin-ext"]},{"f":"Moon Dance","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Moul","v":["400"],"s":["khmer","latin"]},{"f":"Moulpali","v":["400"],"s":["khmer","latin"]},{"f":"Mountains of Christmas","v":["400","700"],"s":["latin"]},{"f":"Mouse Memoirs","v":["400"],"s":["latin","latin-ext"]},{"f":"Mr Bedfort","v":["400"],"s":["latin","latin-ext"]},{"f":"Mr Dafoe","v":["400"],"s":["latin","latin-ext"]},{"f":"Mr De Haviland","v":["400"],"s":["latin","latin-ext"]},{"f":"Mrs Saint Delafield","v":["400"],"s":["latin","latin-ext"]},{"f":"Mrs Sheppards","v":["400"],"s":["latin","latin-ext"]},{"f":"Ms Madi","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Mukta","v":["200","300","400","500","600","700","800"],"s":["devanagari","latin","latin-ext"]},{"f":"Mukta Mahee","v":["200","300","400","500","600","700","800"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Mukta Malar","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","tamil"]},{"f":"Mukta Vaani","v":["200","300","400","500","600","700","800"],"s":["gujarati","latin","latin-ext"]},{"f":"Mulish","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Murecho","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","japanese","latin","latin-ext"]},{"f":"MuseoModerno","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"My Soul","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Mynerve","v":["400"],"s":["greek","latin","latin-ext","vietnamese"]},{"f":"Mystery Quest","v":["400"],"s":["latin","latin-ext"]},{"f":"NTR","v":["400"],"s":["latin","telugu"]},{"f":"Nabla","v":["400"],"s":["cyrillic-ext","latin","latin-ext","math","vietnamese"]},{"f":"Namdhinggo","v":["400","500","600","700","800"],"s":["latin","latin-ext","limbu"]},{"f":"Nanum Brush Script","v":["400"],"s":["korean","latin"]},{"f":"Nanum Gothic","v":["400","700","800"],"s":["korean","latin"]},{"f":"Nanum Gothic Coding","v":["400","700"],"s":["korean","latin"]},{"f":"Nanum Myeongjo","v":["400","700","800"],"s":["korean","latin"]},{"f":"Nanum Pen Script","v":["400"],"s":["korean","latin"]},{"f":"Narnoor","v":["400","500","600","700","800"],"s":["gunjala-gondi","latin","latin-ext","math","symbols"]},{"f":"Neonderthaw","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Nerko One","v":["400"],"s":["latin","latin-ext"]},{"f":"Neucha","v":["400"],"s":["cyrillic","latin"]},{"f":"Neuton","v":["200","300","400","400i","700","800"],"s":["latin","latin-ext"]},{"f":"New Rocker","v":["400"],"s":["latin","latin-ext"]},{"f":"New Tegomin","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"News Cycle","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Newsreader","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Niconne","v":["400"],"s":["latin","latin-ext"]},{"f":"Niramit","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Nixie One","v":["400"],"s":["latin"]},{"f":"Nobile","v":["400","400i","500","500i","700","700i"],"s":["latin","latin-ext"]},{"f":"Nokora","v":["100","300","400","700","900"],"s":["khmer","latin"]},{"f":"Norican","v":["400"],"s":["latin","latin-ext"]},{"f":"Nosifer","v":["400"],"s":["latin","latin-ext"]},{"f":"Notable","v":["400"],"s":["latin"]},{"f":"Nothing You Could Do","v":["400"],"s":["latin"]},{"f":"Noticia Text","v":["400","400i","700","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Noto Color Emoji","v":["400"],"s":["emoji"]},{"f":"Noto Emoji","v":["300","400","500","600","700"],"s":["emoji"]},{"f":"Noto Kufi Arabic","v":["100","200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext","math","symbols"]},{"f":"Noto Music","v":["400"],"s":["latin","latin-ext","music"]},{"f":"Noto Naskh Arabic","v":["400","500","600","700"],"s":["arabic","latin","latin-ext","math","symbols"]},{"f":"Noto Nastaliq Urdu","v":["400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Noto Rashi Hebrew","v":["100","200","300","400","500","600","700","800","900"],"s":["hebrew","latin","latin-ext"]},{"f":"Noto Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","devanagari","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Adlam","v":["400","500","600","700"],"s":["adlam","latin","latin-ext"]},{"f":"Noto Sans Adlam Unjoined","v":["400","500","600","700"],"s":["adlam","latin","latin-ext"]},{"f":"Noto Sans Anatolian Hieroglyphs","v":["400"],"s":["anatolian-hieroglyphs","latin","latin-ext"]},{"f":"Noto Sans Arabic","v":["100","200","300","400","500","600","700","800","900"],"s":["arabic"]},{"f":"Noto Sans Armenian","v":["100","200","300","400","500","600","700","800","900"],"s":["armenian","latin","latin-ext"]},{"f":"Noto Sans Avestan","v":["400"],"s":["avestan","latin","latin-ext"]},{"f":"Noto Sans Balinese","v":["400","500","600","700"],"s":["balinese","latin","latin-ext"]},{"f":"Noto Sans Bamum","v":["400","500","600","700"],"s":["bamum","latin","latin-ext"]},{"f":"Noto Sans Bassa Vah","v":["400","500","600","700"],"s":["bassa-vah","latin","latin-ext"]},{"f":"Noto Sans Batak","v":["400"],"s":["batak","latin","latin-ext"]},{"f":"Noto Sans Bengali","v":["100","200","300","400","500","600","700","800","900"],"s":["bengali","latin","latin-ext"]},{"f":"Noto Sans Bhaiksuki","v":["400"],"s":["bhaiksuki","latin","latin-ext"]},{"f":"Noto Sans Brahmi","v":["400"],"s":["brahmi","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Buginese","v":["400"],"s":["buginese","latin","latin-ext"]},{"f":"Noto Sans Buhid","v":["400"],"s":["buhid","latin","latin-ext"]},{"f":"Noto Sans Canadian Aboriginal","v":["100","200","300","400","500","600","700","800","900"],"s":["canadian-aboriginal","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Carian","v":["400"],"s":["carian","latin","latin-ext"]},{"f":"Noto Sans Caucasian Albanian","v":["400"],"s":["caucasian-albanian","latin","latin-ext"]},{"f":"Noto Sans Chakma","v":["400"],"s":["chakma","latin","latin-ext"]},{"f":"Noto Sans Cham","v":["100","200","300","400","500","600","700","800","900"],"s":["cham","latin","latin-ext"]},{"f":"Noto Sans Cherokee","v":["100","200","300","400","500","600","700","800","900"],"s":["cherokee","latin","latin-ext"]},{"f":"Noto Sans Chorasmian","v":["400"],"s":["chorasmian","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Coptic","v":["400"],"s":["coptic","latin","latin-ext"]},{"f":"Noto Sans Cuneiform","v":["400"],"s":["cuneiform","latin","latin-ext"]},{"f":"Noto Sans Cypriot","v":["400"],"s":["cypriot","latin","latin-ext"]},{"f":"Noto Sans Cypro Minoan","v":["400"],"s":["cypro-minoan","latin","latin-ext"]},{"f":"Noto Sans Deseret","v":["400"],"s":["deseret","latin","latin-ext"]},{"f":"Noto Sans Devanagari","v":["100","200","300","400","500","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Noto Sans Display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Duployan","v":["400","700"],"s":["duployan","latin","latin-ext"]},{"f":"Noto Sans Egyptian Hieroglyphs","v":["400"],"s":["egyptian-hieroglyphs","latin","latin-ext"]},{"f":"Noto Sans Elbasan","v":["400"],"s":["elbasan","latin","latin-ext"]},{"f":"Noto Sans Elymaic","v":["400"],"s":["elymaic","latin","latin-ext"]},{"f":"Noto Sans Ethiopic","v":["100","200","300","400","500","600","700","800","900"],"s":["ethiopic","latin","latin-ext"]},{"f":"Noto Sans Georgian","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic-ext","georgian","greek-ext","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Glagolitic","v":["400"],"s":["cyrillic-ext","glagolitic","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Gothic","v":["400"],"s":["gothic","latin","latin-ext"]},{"f":"Noto Sans Grantha","v":["400"],"s":["grantha","latin","latin-ext"]},{"f":"Noto Sans Gujarati","v":["100","200","300","400","500","600","700","800","900"],"s":["gujarati","latin","latin-ext","math","symbols"]},{"f":"Noto Sans Gunjala Gondi","v":["400","500","600","700"],"s":["gunjala-gondi","latin","latin-ext"]},{"f":"Noto Sans Gurmukhi","v":["100","200","300","400","500","600","700","800","900"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Noto Sans HK","v":["100","200","300","400","500","600","700","800","900"],"s":["chinese-hongkong","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Hanifi Rohingya","v":["400","500","600","700"],"s":["hanifi-rohingya","latin","latin-ext"]},{"f":"Noto Sans Hanunoo","v":["400"],"s":["hanunoo","latin","latin-ext"]},{"f":"Noto Sans Hatran","v":["400"],"s":["hatran","latin","latin-ext"]},{"f":"Noto Sans Hebrew","v":["100","200","300","400","500","600","700","800","900"],"s":["hebrew","latin","latin-ext"]},{"f":"Noto Sans Imperial Aramaic","v":["400"],"s":["imperial-aramaic","latin","latin-ext"]},{"f":"Noto Sans Indic Siyaq Numbers","v":["400"],"s":["indic-siyaq-numbers","latin","latin-ext"]},{"f":"Noto Sans Inscriptional Pahlavi","v":["400"],"s":["inscriptional-pahlavi","latin","latin-ext"]},{"f":"Noto Sans Inscriptional Parthian","v":["400"],"s":["inscriptional-parthian","latin","latin-ext"]},{"f":"Noto Sans JP","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","japanese","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Javanese","v":["400","500","600","700"],"s":["javanese","latin","latin-ext"]},{"f":"Noto Sans KR","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","korean","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Kaithi","v":["400"],"s":["kaithi","latin","latin-ext"]},{"f":"Noto Sans Kannada","v":["100","200","300","400","500","600","700","800","900"],"s":["kannada","latin","latin-ext"]},{"f":"Noto Sans Kawi","v":["400","500","600","700"],"s":["kawi","latin","latin-ext"]},{"f":"Noto Sans Kayah Li","v":["400","500","600","700"],"s":["kayah-li","latin","latin-ext"]},{"f":"Noto Sans Kharoshthi","v":["400"],"s":["kharoshthi","latin","latin-ext"]},{"f":"Noto Sans Khmer","v":["100","200","300","400","500","600","700","800","900"],"s":["khmer","latin","latin-ext"]},{"f":"Noto Sans Khojki","v":["400"],"s":["khojki","latin","latin-ext"]},{"f":"Noto Sans Khudawadi","v":["400"],"s":["khudawadi","latin","latin-ext"]},{"f":"Noto Sans Lao","v":["100","200","300","400","500","600","700","800","900"],"s":["lao","latin","latin-ext"]},{"f":"Noto Sans Lao Looped","v":["100","200","300","400","500","600","700","800","900"],"s":["lao","latin","latin-ext"]},{"f":"Noto Sans Lepcha","v":["400"],"s":["latin","latin-ext","lepcha"]},{"f":"Noto Sans Limbu","v":["400"],"s":["latin","latin-ext","limbu"]},{"f":"Noto Sans Linear A","v":["400"],"s":["latin","latin-ext","linear-a"]},{"f":"Noto Sans Linear B","v":["400"],"s":["latin","latin-ext","linear-b"]},{"f":"Noto Sans Lisu","v":["400","500","600","700"],"s":["latin","latin-ext","lisu"]},{"f":"Noto Sans Lycian","v":["400"],"s":["lycian"]},{"f":"Noto Sans Lydian","v":["400"],"s":["latin","latin-ext","lydian"]},{"f":"Noto Sans Mahajani","v":["400"],"s":["latin","latin-ext","mahajani"]},{"f":"Noto Sans Malayalam","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","malayalam"]},{"f":"Noto Sans Mandaic","v":["400"],"s":["latin","latin-ext","mandaic"]},{"f":"Noto Sans Manichaean","v":["400"],"s":["latin","latin-ext","manichaean"]},{"f":"Noto Sans Marchen","v":["400"],"s":["latin","latin-ext","marchen"]},{"f":"Noto Sans Masaram Gondi","v":["400"],"s":["latin","latin-ext","masaram-gondi"]},{"f":"Noto Sans Math","v":["400"],"s":["math"]},{"f":"Noto Sans Mayan Numerals","v":["400"],"s":["latin","latin-ext","mayan-numerals"]},{"f":"Noto Sans Medefaidrin","v":["400","500","600","700"],"s":["latin","latin-ext","medefaidrin"]},{"f":"Noto Sans Meetei Mayek","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","meetei-mayek"]},{"f":"Noto Sans Mende Kikakui","v":["400"],"s":["latin","latin-ext","mende-kikakui"]},{"f":"Noto Sans Meroitic","v":["400"],"s":["latin","latin-ext","meroitic","meroitic-cursive","meroitic-hieroglyphs"]},{"f":"Noto Sans Miao","v":["400"],"s":["latin","latin-ext","miao"]},{"f":"Noto Sans Modi","v":["400"],"s":["latin","latin-ext","modi"]},{"f":"Noto Sans Mongolian","v":["400"],"s":["latin","latin-ext","math","mongolian","symbols"]},{"f":"Noto Sans Mono","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Mro","v":["400"],"s":["latin","latin-ext","mro"]},{"f":"Noto Sans Multani","v":["400"],"s":["latin","latin-ext","multani"]},{"f":"Noto Sans Myanmar","v":["100","200","300","400","500","600","700","800","900"],"s":["myanmar"]},{"f":"Noto Sans NKo","v":["400"],"s":["latin","latin-ext","nko"]},{"f":"Noto Sans NKo Unjoined","v":["400","500","600","700"],"s":["latin","latin-ext","nko"]},{"f":"Noto Sans Nabataean","v":["400"],"s":["latin","latin-ext","nabataean"]},{"f":"Noto Sans Nag Mundari","v":["400","500","600","700"],"s":["latin","latin-ext","nag-mundari"]},{"f":"Noto Sans Nandinagari","v":["400"],"s":["latin","latin-ext","nandinagari"]},{"f":"Noto Sans New Tai Lue","v":["400","500","600","700"],"s":["latin","latin-ext","new-tai-lue"]},{"f":"Noto Sans Newa","v":["400"],"s":["latin","latin-ext","newa"]},{"f":"Noto Sans Nushu","v":["400"],"s":["latin","latin-ext","nushu"]},{"f":"Noto Sans Ogham","v":["400"],"s":["latin","latin-ext","ogham"]},{"f":"Noto Sans Ol Chiki","v":["400","500","600","700"],"s":["latin","latin-ext","ol-chiki"]},{"f":"Noto Sans Old Hungarian","v":["400"],"s":["latin","latin-ext","old-hungarian"]},{"f":"Noto Sans Old Italic","v":["400"],"s":["latin","latin-ext","old-italic"]},{"f":"Noto Sans Old North Arabian","v":["400"],"s":["latin","latin-ext","old-north-arabian"]},{"f":"Noto Sans Old Permic","v":["400"],"s":["cyrillic-ext","latin","latin-ext","old-permic"]},{"f":"Noto Sans Old Persian","v":["400"],"s":["latin","latin-ext","old-persian"]},{"f":"Noto Sans Old Sogdian","v":["400"],"s":["latin","latin-ext","old-sogdian"]},{"f":"Noto Sans Old South Arabian","v":["400"],"s":["latin","latin-ext","old-south-arabian"]},{"f":"Noto Sans Old Turkic","v":["400"],"s":["latin","latin-ext","old-turkic"]},{"f":"Noto Sans Oriya","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","oriya"]},{"f":"Noto Sans Osage","v":["400"],"s":["latin","latin-ext","osage"]},{"f":"Noto Sans Osmanya","v":["400"],"s":["latin","latin-ext","osmanya"]},{"f":"Noto Sans Pahawh Hmong","v":["400"],"s":["latin","latin-ext","pahawh-hmong"]},{"f":"Noto Sans Palmyrene","v":["400"],"s":["latin","latin-ext","palmyrene"]},{"f":"Noto Sans Pau Cin Hau","v":["400"],"s":["latin","latin-ext","pau-cin-hau"]},{"f":"Noto Sans Phags Pa","v":["400"],"s":["phags-pa"]},{"f":"Noto Sans Phoenician","v":["400"],"s":["latin","latin-ext","phoenician"]},{"f":"Noto Sans Psalter Pahlavi","v":["400"],"s":["latin","latin-ext","psalter-pahlavi"]},{"f":"Noto Sans Rejang","v":["400"],"s":["latin","latin-ext","rejang"]},{"f":"Noto Sans Runic","v":["400"],"s":["latin","latin-ext","runic"]},{"f":"Noto Sans SC","v":["100","200","300","400","500","600","700","800","900"],"s":["chinese-simplified","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Samaritan","v":["400"],"s":["latin","latin-ext","samaritan"]},{"f":"Noto Sans Saurashtra","v":["400"],"s":["latin","latin-ext","saurashtra"]},{"f":"Noto Sans Sharada","v":["400"],"s":["latin","latin-ext","sharada"]},{"f":"Noto Sans Shavian","v":["400"],"s":["latin","latin-ext","shavian"]},{"f":"Noto Sans Siddham","v":["400"],"s":["latin","latin-ext","siddham"]},{"f":"Noto Sans SignWriting","v":["400"],"s":["latin","latin-ext","signwriting"]},{"f":"Noto Sans Sinhala","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","sinhala"]},{"f":"Noto Sans Sogdian","v":["400"],"s":["latin","latin-ext","sogdian"]},{"f":"Noto Sans Sora Sompeng","v":["400","500","600","700"],"s":["latin","latin-ext","sora-sompeng"]},{"f":"Noto Sans Soyombo","v":["400"],"s":["latin","latin-ext","soyombo"]},{"f":"Noto Sans Sundanese","v":["400","500","600","700"],"s":["latin","latin-ext","sundanese"]},{"f":"Noto Sans Syloti Nagri","v":["400"],"s":["latin","latin-ext","syloti-nagri"]},{"f":"Noto Sans Symbols","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","symbols"]},{"f":"Noto Sans Symbols 2","v":["400"],"s":["braille","latin","latin-ext","math","mayan-numerals","symbols"]},{"f":"Noto Sans Syriac","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","syriac"]},{"f":"Noto Sans Syriac Eastern","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","syriac"]},{"f":"Noto Sans TC","v":["100","200","300","400","500","600","700","800","900"],"s":["chinese-traditional","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Sans Tagalog","v":["400"],"s":["latin","latin-ext","tagalog"]},{"f":"Noto Sans Tagbanwa","v":["400"],"s":["latin","latin-ext","tagbanwa"]},{"f":"Noto Sans Tai Le","v":["400"],"s":["latin","latin-ext","tai-le"]},{"f":"Noto Sans Tai Tham","v":["400","500","600","700"],"s":["latin","latin-ext","tai-tham"]},{"f":"Noto Sans Tai Viet","v":["400"],"s":["latin","latin-ext","tai-viet"]},{"f":"Noto Sans Takri","v":["400"],"s":["latin","latin-ext","takri"]},{"f":"Noto Sans Tamil","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","tamil"]},{"f":"Noto Sans Tamil Supplement","v":["400"],"s":["latin","latin-ext","tamil-supplement"]},{"f":"Noto Sans Tangsa","v":["400","500","600","700"],"s":["latin","latin-ext","tangsa"]},{"f":"Noto Sans Telugu","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","telugu"]},{"f":"Noto Sans Thaana","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","thaana"]},{"f":"Noto Sans Thai","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","thai"]},{"f":"Noto Sans Thai Looped","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","thai"]},{"f":"Noto Sans Tifinagh","v":["400"],"s":["latin","latin-ext","tifinagh"]},{"f":"Noto Sans Tirhuta","v":["400"],"s":["latin","latin-ext","tirhuta"]},{"f":"Noto Sans Ugaritic","v":["400"],"s":["latin","latin-ext","ugaritic"]},{"f":"Noto Sans Vai","v":["400"],"s":["latin","latin-ext","vai"]},{"f":"Noto Sans Vithkuqi","v":["400","500","600","700"],"s":["latin","latin-ext","vithkuqi"]},{"f":"Noto Sans Wancho","v":["400"],"s":["latin","latin-ext","wancho"]},{"f":"Noto Sans Warang Citi","v":["400"],"s":["latin","latin-ext","warang-citi"]},{"f":"Noto Sans Yi","v":["400"],"s":["latin","latin-ext","yi"]},{"f":"Noto Sans Zanabazar Square","v":["400"],"s":["latin","latin-ext","zanabazar-square"]},{"f":"Noto Serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Ahom","v":["400"],"s":["ahom","latin","latin-ext"]},{"f":"Noto Serif Armenian","v":["100","200","300","400","500","600","700","800","900"],"s":["armenian","latin","latin-ext"]},{"f":"Noto Serif Balinese","v":["400"],"s":["balinese","latin","latin-ext"]},{"f":"Noto Serif Bengali","v":["100","200","300","400","500","600","700","800","900"],"s":["bengali","latin","latin-ext"]},{"f":"Noto Serif Devanagari","v":["100","200","300","400","500","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Noto Serif Display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Dogra","v":["400"],"s":["dogra","latin","latin-ext"]},{"f":"Noto Serif Ethiopic","v":["100","200","300","400","500","600","700","800","900"],"s":["ethiopic","latin","latin-ext"]},{"f":"Noto Serif Georgian","v":["100","200","300","400","500","600","700","800","900"],"s":["georgian","latin","latin-ext"]},{"f":"Noto Serif Grantha","v":["400"],"s":["grantha","latin","latin-ext"]},{"f":"Noto Serif Gujarati","v":["100","200","300","400","500","600","700","800","900"],"s":["gujarati","latin","latin-ext","math","symbols"]},{"f":"Noto Serif Gurmukhi","v":["100","200","300","400","500","600","700","800","900"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Noto Serif HK","v":["200","300","400","500","600","700","800","900"],"s":["chinese-hongkong","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Hebrew","v":["100","200","300","400","500","600","700","800","900"],"s":["hebrew","latin","latin-ext"]},{"f":"Noto Serif JP","v":["200","300","400","500","600","700","800","900"],"s":["cyrillic","japanese","latin","latin-ext","vietnamese"]},{"f":"Noto Serif KR","v":["200","300","400","500","600","700","800","900"],"s":["cyrillic","korean","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Kannada","v":["100","200","300","400","500","600","700","800","900"],"s":["kannada","latin","latin-ext"]},{"f":"Noto Serif Khitan Small Script","v":["400"],"s":["khitan-small-script","latin","latin-ext"]},{"f":"Noto Serif Khmer","v":["100","200","300","400","500","600","700","800","900"],"s":["khmer","latin","latin-ext"]},{"f":"Noto Serif Khojki","v":["400","500","600","700"],"s":["khojki","latin","latin-ext"]},{"f":"Noto Serif Lao","v":["100","200","300","400","500","600","700","800","900"],"s":["lao","latin","latin-ext"]},{"f":"Noto Serif Makasar","v":["400"],"s":["latin","latin-ext","makasar"]},{"f":"Noto Serif Malayalam","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","malayalam"]},{"f":"Noto Serif Myanmar","v":["100","200","300","400","500","600","700","800","900"],"s":["myanmar"]},{"f":"Noto Serif NP Hmong","v":["400","500","600","700"],"s":["latin","nyiakeng-puachue-hmong"]},{"f":"Noto Serif Old Uyghur","v":["400"],"s":["latin","latin-ext","old-uyghur"]},{"f":"Noto Serif Oriya","v":["400","500","600","700"],"s":["latin","latin-ext","oriya"]},{"f":"Noto Serif Ottoman Siyaq","v":["400"],"s":["latin","latin-ext","ottoman-siyaq-numbers"]},{"f":"Noto Serif SC","v":["200","300","400","500","600","700","800","900"],"s":["chinese-simplified","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Sinhala","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","sinhala"]},{"f":"Noto Serif TC","v":["200","300","400","500","600","700","800","900"],"s":["chinese-traditional","cyrillic","latin","latin-ext","vietnamese"]},{"f":"Noto Serif Tamil","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","tamil"]},{"f":"Noto Serif Tangut","v":["400"],"s":["latin","latin-ext","tangut"]},{"f":"Noto Serif Telugu","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","telugu"]},{"f":"Noto Serif Thai","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","thai"]},{"f":"Noto Serif Tibetan","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","tibetan"]},{"f":"Noto Serif Toto","v":["400","500","600","700"],"s":["latin","latin-ext","toto"]},{"f":"Noto Serif Vithkuqi","v":["400","500","600","700"],"s":["latin","latin-ext","vithkuqi"]},{"f":"Noto Serif Yezidi","v":["400","500","600","700"],"s":["latin","latin-ext","yezidi"]},{"f":"Noto Traditional Nushu","v":["300","400","500","600","700"],"s":["latin","latin-ext","nushu"]},{"f":"Noto Znamenny Musical Notation","v":["400"],"s":["latin","latin-ext","math","symbols","znamenny"]},{"f":"Nova Cut","v":["400"],"s":["latin"]},{"f":"Nova Flat","v":["400"],"s":["latin"]},{"f":"Nova Mono","v":["400"],"s":["greek","latin"]},{"f":"Nova Oval","v":["400"],"s":["latin"]},{"f":"Nova Round","v":["400"],"s":["latin"]},{"f":"Nova Script","v":["400"],"s":["latin"]},{"f":"Nova Slim","v":["400"],"s":["latin"]},{"f":"Nova Square","v":["400"],"s":["latin"]},{"f":"Numans","v":["400"],"s":["latin"]},{"f":"Nunito","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Nunito Sans","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Nuosu SIL","v":["400"],"s":["latin","latin-ext","yi"]},{"f":"Odibee Sans","v":["400"],"s":["latin"]},{"f":"Odor Mean Chey","v":["400"],"s":["khmer","latin"]},{"f":"Offside","v":["400"],"s":["latin","latin-ext"]},{"f":"Oi","v":["400"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","tamil","vietnamese"]},{"f":"Ojuju","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Old Standard TT","v":["400","400i","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Oldenburg","v":["400"],"s":["latin","latin-ext"]},{"f":"Ole","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Oleo Script","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Oleo Script Swash Caps","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Onest","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Oooh Baby","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Open Sans","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Oranienbaum","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Orbit","v":["400"],"s":["korean","latin","latin-ext"]},{"f":"Orbitron","v":["400","500","600","700","800","900"],"s":["latin"]},{"f":"Oregano","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Orelega One","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Orienta","v":["400"],"s":["latin","latin-ext"]},{"f":"Original Surfer","v":["400"],"s":["latin"]},{"f":"Oswald","v":["200","300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Outfit","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext"]},{"f":"Over the Rainbow","v":["400"],"s":["latin"]},{"f":"Overlock","v":["400","400i","700","700i","900","900i"],"s":["latin","latin-ext"]},{"f":"Overlock SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Overpass","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Overpass Mono","v":["300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Ovo","v":["400"],"s":["latin"]},{"f":"Oxanium","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext"]},{"f":"Oxygen","v":["300","400","700"],"s":["latin","latin-ext"]},{"f":"Oxygen Mono","v":["400"],"s":["latin","latin-ext"]},{"f":"PT Mono","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"PT Sans","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"PT Sans Caption","v":["400","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"PT Sans Narrow","v":["400","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"PT Serif","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"PT Serif Caption","v":["400","400i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Pacifico","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Padauk","v":["400","700"],"s":["latin","latin-ext","myanmar"]},{"f":"Padyakke Expanded One","v":["400"],"s":["kannada","latin","latin-ext"]},{"f":"Palanquin","v":["100","200","300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Palanquin Dark","v":["400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Palette Mosaic","v":["400"],"s":["japanese","latin"]},{"f":"Pangolin","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Paprika","v":["400"],"s":["latin","latin-ext"]},{"f":"Parisienne","v":["400"],"s":["latin","latin-ext"]},{"f":"Passero One","v":["400"],"s":["latin","latin-ext"]},{"f":"Passion One","v":["400","700","900"],"s":["latin","latin-ext"]},{"f":"Passions Conflict","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Pathway Extreme","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Pathway Gothic One","v":["400"],"s":["latin","latin-ext"]},{"f":"Patrick Hand","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Patrick Hand SC","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Pattaya","v":["400"],"s":["cyrillic","latin","latin-ext","thai","vietnamese"]},{"f":"Patua One","v":["400"],"s":["latin"]},{"f":"Pavanam","v":["400"],"s":["latin","latin-ext","tamil"]},{"f":"Paytone One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Peddana","v":["400"],"s":["latin","telugu"]},{"f":"Peralta","v":["400"],"s":["latin","latin-ext"]},{"f":"Permanent Marker","v":["400"],"s":["latin"]},{"f":"Petemoss","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Petit Formal Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Petrona","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Philosopher","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","vietnamese"]},{"f":"Phudu","v":["300","400","500","600","700","800","900"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Piazzolla","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Piedra","v":["400"],"s":["latin","latin-ext"]},{"f":"Pinyon Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Pirata One","v":["400"],"s":["latin","latin-ext"]},{"f":"Pixelify Sans","v":["400","500","600","700"],"s":["cyrillic","latin","latin-ext"]},{"f":"Plaster","v":["400"],"s":["latin","latin-ext"]},{"f":"Platypi","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Play","v":["400","700"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Playball","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Playfair","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Playfair Display","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Playfair Display SC","v":["400","400i","700","700i","900","900i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Playpen Sans","v":["100","200","300","400","500","600","700","800"],"s":["emoji","latin","latin-ext","math","vietnamese"]},{"f":"Plus Jakarta Sans","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Podkova","v":["400","500","600","700","800"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Poetsen One","v":["400"],"s":["latin","latin-ext"]},{"f":"Poiret One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Poller One","v":["400"],"s":["latin"]},{"f":"Poltawski Nowy","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Poly","v":["400","400i"],"s":["latin"]},{"f":"Pompiere","v":["400"],"s":["latin"]},{"f":"Pontano Sans","v":["300","400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Poor Story","v":["400"],"s":["korean","latin"]},{"f":"Poppins","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext"]},{"f":"Port Lligat Sans","v":["400"],"s":["latin"]},{"f":"Port Lligat Slab","v":["400"],"s":["latin"]},{"f":"Potta One","v":["400"],"s":["japanese","latin","latin-ext","vietnamese"]},{"f":"Pragati Narrow","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Praise","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Prata","v":["400"],"s":["cyrillic","cyrillic-ext","latin","vietnamese"]},{"f":"Preahvihear","v":["400"],"s":["khmer","latin"]},{"f":"Press Start 2P","v":["400"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Pridi","v":["200","300","400","500","600","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Princess Sofia","v":["400"],"s":["latin","latin-ext"]},{"f":"Prociono","v":["400"],"s":["latin"]},{"f":"Prompt","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Prosto One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Protest Guerrilla","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Protest Revolution","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Protest Riot","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Protest Strike","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Proza Libre","v":["400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["latin","latin-ext"]},{"f":"Public Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Puppies Play","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Puritan","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Purple Purse","v":["400"],"s":["latin","latin-ext"]},{"f":"Qahiri","v":["400"],"s":["arabic","latin"]},{"f":"Quando","v":["400"],"s":["latin","latin-ext"]},{"f":"Quantico","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Quattrocento","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Quattrocento Sans","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Questrial","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Quicksand","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Quintessential","v":["400"],"s":["latin","latin-ext"]},{"f":"Qwigley","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Qwitcher Grypen","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"REM","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Racing Sans One","v":["400"],"s":["latin","latin-ext"]},{"f":"Radio Canada","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["canadian-aboriginal","latin","latin-ext","vietnamese"]},{"f":"Radio Canada Big","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Radley","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Rajdhani","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Rakkas","v":["400"],"s":["arabic","latin","latin-ext"]},{"f":"Raleway","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Raleway Dots","v":["400"],"s":["latin","latin-ext"]},{"f":"Ramabhadra","v":["400"],"s":["latin","telugu"]},{"f":"Ramaraja","v":["400"],"s":["latin","telugu"]},{"f":"Rambla","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Rammetto One","v":["400"],"s":["latin","latin-ext"]},{"f":"Rampart One","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Ranchers","v":["400"],"s":["latin","latin-ext"]},{"f":"Rancho","v":["400"],"s":["latin"]},{"f":"Ranga","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Rasa","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["gujarati","latin","latin-ext","vietnamese"]},{"f":"Rationale","v":["400"],"s":["latin"]},{"f":"Ravi Prakash","v":["400"],"s":["latin","telugu"]},{"f":"Readex Pro","v":["200","300","400","500","600","700"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Recursive","v":["300","400","500","600","700","800","900"],"s":["cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Red Hat Display","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Red Hat Mono","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Red Hat Text","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Red Rose","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Redacted","v":["400"],"s":["latin","latin-ext"]},{"f":"Redacted Script","v":["300","400","700"],"s":["latin","latin-ext"]},{"f":"Reddit Mono","v":["200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Reddit Sans","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Reddit Sans Condensed","v":["200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Redressed","v":["400"],"s":["latin"]},{"f":"Reem Kufi","v":["400","500","600","700"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Reem Kufi Fun","v":["400","500","600","700"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Reem Kufi Ink","v":["400"],"s":["arabic","latin","latin-ext","vietnamese"]},{"f":"Reenie Beanie","v":["400"],"s":["latin"]},{"f":"Reggae One","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Rethink Sans","v":["400","500","600","700","800","400i","500i","600i","700i","800i"],"s":["latin","latin-ext"]},{"f":"Revalia","v":["400"],"s":["latin","latin-ext"]},{"f":"Rhodium Libre","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Ribeye","v":["400"],"s":["latin","latin-ext"]},{"f":"Ribeye Marrow","v":["400"],"s":["latin","latin-ext"]},{"f":"Righteous","v":["400"],"s":["latin","latin-ext"]},{"f":"Risque","v":["400"],"s":["latin","latin-ext"]},{"f":"Road Rage","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Roboto","v":["100","100i","300","300i","400","400i","500","500i","700","700i","900","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Roboto Condensed","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Roboto Flex","v":["400"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Roboto Mono","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Roboto Serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Roboto Slab","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Rochester","v":["400"],"s":["latin"]},{"f":"Rock 3D","v":["400"],"s":["japanese","latin"]},{"f":"Rock Salt","v":["400"],"s":["latin"]},{"f":"RocknRoll One","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Rokkitt","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Romanesco","v":["400"],"s":["latin","latin-ext"]},{"f":"Ropa Sans","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Rosario","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Rosarivo","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Rouge Script","v":["400"],"s":["latin"]},{"f":"Rowdies","v":["300","400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Rozha One","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Rubik","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],"s":["arabic","cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik 80s Fade","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Beastly","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Broken Fax","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Bubbles","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Burned","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Dirt","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Distressed","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Doodle Shadow","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Doodle Triangles","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Gemstones","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Glitch","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Glitch Pop","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Iso","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Lines","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Maps","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Marker Hatch","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Maze","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Microbe","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Mono One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Rubik Moonrocks","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Pixels","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Puddles","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Scribble","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{"f":"Rubik Spray Paint","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Storm","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Vinyl","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Rubik Wet Paint","v":["400"],"s":["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{"f":"Ruda","v":["400","500","600","700","800","900"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Rufina","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Ruge Boogie","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Ruluko","v":["400"],"s":["latin","latin-ext"]},{"f":"Rum Raisin","v":["400"],"s":["latin","latin-ext"]},{"f":"Ruslan Display","v":["400"],"s":["cyrillic","latin","latin-ext","math","symbols"]},{"f":"Russo One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Ruthie","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Ruwudu","v":["400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Rye","v":["400"],"s":["latin","latin-ext"]},{"f":"STIX Two Text","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Sacramento","v":["400"],"s":["latin","latin-ext"]},{"f":"Sahitya","v":["400","700"],"s":["devanagari","latin"]},{"f":"Sail","v":["400"],"s":["latin","latin-ext"]},{"f":"Saira","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Saira Condensed","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Saira Extra Condensed","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Saira Semi Condensed","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Saira Stencil One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Salsa","v":["400"],"s":["latin"]},{"f":"Sanchez","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Sancreek","v":["400"],"s":["latin","latin-ext"]},{"f":"Sansita","v":["400","400i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext"]},{"f":"Sansita Swashed","v":["300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sarabun","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Sarala","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Sarina","v":["400"],"s":["latin","latin-ext"]},{"f":"Sarpanch","v":["400","500","600","700","800","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Sassy Frass","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Satisfy","v":["400"],"s":["latin"]},{"f":"Sawarabi Gothic","v":["400"],"s":["cyrillic","japanese","latin","latin-ext","vietnamese"]},{"f":"Sawarabi Mincho","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Scada","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext"]},{"f":"Scheherazade New","v":["400","500","600","700"],"s":["arabic","latin","latin-ext"]},{"f":"Schibsted Grotesk","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"Schoolbell","v":["400"],"s":["latin"]},{"f":"Scope One","v":["400"],"s":["latin","latin-ext"]},{"f":"Seaweed Script","v":["400"],"s":["latin","latin-ext"]},{"f":"Secular One","v":["400"],"s":["hebrew","latin","latin-ext"]},{"f":"Sedan","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Sedan SC","v":["400"],"s":["latin","latin-ext"]},{"f":"Sedgwick Ave","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sedgwick Ave Display","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sen","v":["400","500","600","700","800"],"s":["latin","latin-ext"]},{"f":"Send Flowers","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sevillana","v":["400"],"s":["latin","latin-ext"]},{"f":"Seymour One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Shadows Into Light","v":["400"],"s":["latin"]},{"f":"Shadows Into Light Two","v":["400"],"s":["latin","latin-ext"]},{"f":"Shalimar","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Shantell Sans","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Shanti","v":["400"],"s":["latin","latin-ext"]},{"f":"Share","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Share Tech","v":["400"],"s":["latin"]},{"f":"Share Tech Mono","v":["400"],"s":["latin"]},{"f":"Shippori Antique","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Shippori Antique B1","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Shippori Mincho","v":["400","500","600","700","800"],"s":["japanese","latin","latin-ext"]},{"f":"Shippori Mincho B1","v":["400","500","600","700","800"],"s":["japanese","latin","latin-ext"]},{"f":"Shizuru","v":["400"],"s":["japanese","latin"]},{"f":"Shojumaru","v":["400"],"s":["latin","latin-ext"]},{"f":"Short Stack","v":["400"],"s":["latin"]},{"f":"Shrikhand","v":["400"],"s":["gujarati","latin","latin-ext"]},{"f":"Siemreap","v":["400"],"s":["khmer"]},{"f":"Sigmar","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sigmar One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Signika","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Signika Negative","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Silkscreen","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Simonetta","v":["400","400i","900","900i"],"s":["latin","latin-ext"]},{"f":"Single Day","v":["400"],"s":["korean"]},{"f":"Sintony","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Sirin Stencil","v":["400"],"s":["latin"]},{"f":"Six Caps","v":["400"],"s":["latin"]},{"f":"Sixtyfour","v":["400"],"s":["latin","latin-ext","math","symbols"]},{"f":"Skranji","v":["400","700"],"s":["latin","latin-ext"]},{"f":"Slabo 13px","v":["400"],"s":["latin","latin-ext"]},{"f":"Slabo 27px","v":["400"],"s":["latin","latin-ext"]},{"f":"Slackey","v":["400"],"s":["latin"]},{"f":"Slackside One","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Smokum","v":["400"],"s":["latin"]},{"f":"Smooch","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Smooch Sans","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Smythe","v":["400"],"s":["latin"]},{"f":"Sniglet","v":["400","800"],"s":["latin","latin-ext"]},{"f":"Snippet","v":["400"],"s":["latin"]},{"f":"Snowburst One","v":["400"],"s":["latin","latin-ext"]},{"f":"Sofadi One","v":["400"],"s":["latin"]},{"f":"Sofia","v":["400"],"s":["latin"]},{"f":"Sofia Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Sofia Sans Condensed","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Sofia Sans Extra Condensed","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Sofia Sans Semi Condensed","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{"f":"Solitreo","v":["400"],"s":["hebrew","latin","latin-ext"]},{"f":"Solway","v":["300","400","500","700","800"],"s":["latin"]},{"f":"Sometype Mono","v":["400","500","600","700","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Song Myung","v":["400"],"s":["korean","latin"]},{"f":"Sono","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sonsie One","v":["400"],"s":["latin","latin-ext"]},{"f":"Sora","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext"]},{"f":"Sorts Mill Goudy","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Source Code Pro","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Source Sans 3","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{"f":"Source Serif 4","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Space Grotesk","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Space Mono","v":["400","400i","700","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Special Elite","v":["400"],"s":["latin"]},{"f":"Spectral","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Spectral SC","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["cyrillic","latin","latin-ext","vietnamese"]},{"f":"Spicy Rice","v":["400"],"s":["latin"]},{"f":"Spinnaker","v":["400"],"s":["latin","latin-ext"]},{"f":"Spirax","v":["400"],"s":["latin"]},{"f":"Splash","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Spline Sans","v":["300","400","500","600","700"],"s":["latin","latin-ext"]},{"f":"Spline Sans Mono","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext"]},{"f":"Squada One","v":["400"],"s":["latin"]},{"f":"Square Peg","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Sree Krushnadevaraya","v":["400"],"s":["latin","telugu"]},{"f":"Sriracha","v":["400"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Srisakdi","v":["400","700"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Staatliches","v":["400"],"s":["latin","latin-ext"]},{"f":"Stalemate","v":["400"],"s":["latin","latin-ext"]},{"f":"Stalinist One","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Stardos Stencil","v":["400","700"],"s":["latin"]},{"f":"Stick","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Stick No Bills","v":["200","300","400","500","600","700","800"],"s":["latin","latin-ext","sinhala"]},{"f":"Stint Ultra Condensed","v":["400"],"s":["latin","latin-ext"]},{"f":"Stint Ultra Expanded","v":["400"],"s":["latin","latin-ext"]},{"f":"Stoke","v":["300","400"],"s":["latin","latin-ext"]},{"f":"Strait","v":["400"],"s":["latin","latin-ext"]},{"f":"Style Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Stylish","v":["400"],"s":["korean","latin"]},{"f":"Sue Ellen Francisco","v":["400"],"s":["latin"]},{"f":"Suez One","v":["400"],"s":["hebrew","latin","latin-ext"]},{"f":"Sulphur Point","v":["300","400","700"],"s":["latin","latin-ext"]},{"f":"Sumana","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Sunflower","v":["300","500","700"],"s":["korean","latin"]},{"f":"Sunshiney","v":["400"],"s":["latin"]},{"f":"Supermercado One","v":["400"],"s":["latin"]},{"f":"Sura","v":["400","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Suranna","v":["400"],"s":["latin","telugu"]},{"f":"Suravaram","v":["400"],"s":["latin","telugu"]},{"f":"Suwannaphum","v":["100","300","400","700","900"],"s":["khmer","latin"]},{"f":"Swanky and Moo Moo","v":["400"],"s":["latin"]},{"f":"Syncopate","v":["400","700"],"s":["latin"]},{"f":"Syne","v":["400","500","600","700","800"],"s":["greek","latin","latin-ext"]},{"f":"Syne Mono","v":["400"],"s":["latin","latin-ext"]},{"f":"Syne Tactile","v":["400"],"s":["latin","latin-ext"]},{"f":"Tac One","v":["400"],"s":["latin","latin-ext","math","symbols","vietnamese"]},{"f":"Tai Heritage Pro","v":["400","700"],"s":["latin","latin-ext","tai-viet","vietnamese"]},{"f":"Tajawal","v":["200","300","400","500","700","800","900"],"s":["arabic","latin"]},{"f":"Tangerine","v":["400","700"],"s":["latin"]},{"f":"Tapestry","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Taprom","v":["400"],"s":["khmer","latin"]},{"f":"Tauri","v":["400"],"s":["latin","latin-ext"]},{"f":"Taviraj","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Teachers","v":["400","500","600","700","800","400i","500i","600i","700i","800i"],"s":["greek-ext","latin","latin-ext"]},{"f":"Teko","v":["300","400","500","600","700"],"s":["devanagari","latin","latin-ext"]},{"f":"Tektur","v":["400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Telex","v":["400"],"s":["latin","latin-ext"]},{"f":"Tenali Ramakrishna","v":["400"],"s":["latin","telugu"]},{"f":"Tenor Sans","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Text Me One","v":["400"],"s":["latin","latin-ext"]},{"f":"Texturina","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Thasadith","v":["400","400i","700","700i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"The Girl Next Door","v":["400"],"s":["latin"]},{"f":"The Nautigal","v":["400","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Tienne","v":["400","700","900"],"s":["latin"]},{"f":"Tillana","v":["400","500","600","700","800"],"s":["devanagari","latin","latin-ext"]},{"f":"Tilt Neon","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Tilt Prism","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Tilt Warp","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Timmana","v":["400"],"s":["latin","telugu"]},{"f":"Tinos","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{"f":"Tiro Bangla","v":["400","400i"],"s":["bengali","latin","latin-ext"]},{"f":"Tiro Devanagari Hindi","v":["400","400i"],"s":["devanagari","latin","latin-ext"]},{"f":"Tiro Devanagari Marathi","v":["400","400i"],"s":["devanagari","latin","latin-ext"]},{"f":"Tiro Devanagari Sanskrit","v":["400","400i"],"s":["devanagari","latin","latin-ext"]},{"f":"Tiro Gurmukhi","v":["400","400i"],"s":["gurmukhi","latin","latin-ext"]},{"f":"Tiro Kannada","v":["400","400i"],"s":["kannada","latin","latin-ext"]},{"f":"Tiro Tamil","v":["400","400i"],"s":["latin","latin-ext","tamil"]},{"f":"Tiro Telugu","v":["400","400i"],"s":["latin","latin-ext","telugu"]},{"f":"Titan One","v":["400"],"s":["latin","latin-ext"]},{"f":"Titillium Web","v":["200","200i","300","300i","400","400i","600","600i","700","700i","900"],"s":["latin","latin-ext"]},{"f":"Tomorrow","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext"]},{"f":"Tourney","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Trade Winds","v":["400"],"s":["latin"]},{"f":"Train One","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Trirong","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],"s":["latin","latin-ext","thai","vietnamese"]},{"f":"Trispace","v":["100","200","300","400","500","600","700","800"],"s":["latin","latin-ext","vietnamese"]},{"f":"Trocchi","v":["400"],"s":["latin","latin-ext"]},{"f":"Trochut","v":["400","400i","700"],"s":["latin"]},{"f":"Truculenta","v":["100","200","300","400","500","600","700","800","900"],"s":["latin","latin-ext","vietnamese"]},{"f":"Trykker","v":["400"],"s":["latin","latin-ext"]},{"f":"Tsukimi Rounded","v":["300","400","500","600","700"],"s":["japanese","latin","latin-ext"]},{"f":"Tulpen One","v":["400"],"s":["latin"]},{"f":"Turret Road","v":["200","300","400","500","700","800"],"s":["latin","latin-ext"]},{"f":"Twinkle Star","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Ubuntu","v":["300","300i","400","400i","500","500i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Ubuntu Condensed","v":["400"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Ubuntu Mono","v":["400","400i","700","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Ubuntu Sans","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Ubuntu Sans Mono","v":["400","500","600","700","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{"f":"Uchen","v":["400"],"s":["latin","tibetan"]},{"f":"Ultra","v":["400"],"s":["latin"]},{"f":"Unbounded","v":["200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Uncial Antiqua","v":["400"],"s":["latin"]},{"f":"Underdog","v":["400"],"s":["cyrillic","latin","latin-ext"]},{"f":"Unica One","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"UnifrakturCook","v":["700"],"s":["latin"]},{"f":"UnifrakturMaguntia","v":["400"],"s":["latin"]},{"f":"Unkempt","v":["400","700"],"s":["latin"]},{"f":"Unlock","v":["400"],"s":["latin","latin-ext"]},{"f":"Unna","v":["400","400i","700","700i"],"s":["latin","latin-ext"]},{"f":"Updock","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Urbanist","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext"]},{"f":"VT323","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Vampiro One","v":["400"],"s":["latin","latin-ext"]},{"f":"Varela","v":["400"],"s":["latin","latin-ext"]},{"f":"Varela Round","v":["400"],"s":["hebrew","latin","latin-ext","vietnamese"]},{"f":"Varta","v":["300","400","500","600","700"],"s":["latin","latin-ext","vietnamese"]},{"f":"Vast Shadow","v":["400"],"s":["latin"]},{"f":"Vazirmatn","v":["100","200","300","400","500","600","700","800","900"],"s":["arabic","latin","latin-ext"]},{"f":"Vesper Libre","v":["400","500","700","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Viaoda Libre","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Vibes","v":["400"],"s":["arabic","latin"]},{"f":"Vibur","v":["400"],"s":["latin"]},{"f":"Victor Mono","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Vidaloka","v":["400"],"s":["latin"]},{"f":"Viga","v":["400"],"s":["latin","latin-ext"]},{"f":"Vina Sans","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Voces","v":["400"],"s":["latin","latin-ext"]},{"f":"Volkhov","v":["400","400i","700","700i"],"s":["latin"]},{"f":"Vollkorn","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{"f":"Vollkorn SC","v":["400","600","700","900"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Voltaire","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Vujahday Script","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Waiting for the Sunrise","v":["400"],"s":["latin"]},{"f":"Wallpoet","v":["400"],"s":["latin"]},{"f":"Walter Turncoat","v":["400"],"s":["latin"]},{"f":"Warnes","v":["400"],"s":["latin","latin-ext"]},{"f":"Water Brush","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Waterfall","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"Wavefont","v":["100","200","300","400","500","600","700","800","900"],"s":["latin"]},{"f":"Wellfleet","v":["400"],"s":["latin","latin-ext"]},{"f":"Wendy One","v":["400"],"s":["latin","latin-ext"]},{"f":"Whisper","v":["400"],"s":["latin","latin-ext","vietnamese"]},{"f":"WindSong","v":["400","500"],"s":["latin","latin-ext","vietnamese"]},{"f":"Wire One","v":["400"],"s":["latin"]},{"f":"Wix Madefor Display","v":["400","500","600","700","800"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Wix Madefor Text","v":["400","400i","500","500i","600","600i","700","700i","800","800i"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Work Sans","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Workbench","v":["400"],"s":["latin","math","symbols"]},{"f":"Xanh Mono","v":["400","400i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Yaldevi","v":["200","300","400","500","600","700"],"s":["latin","latin-ext","sinhala"]},{"f":"Yanone Kaffeesatz","v":["200","300","400","500","600","700"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Yantramanav","v":["100","300","400","500","700","900"],"s":["devanagari","latin","latin-ext"]},{"f":"Yarndings 12","v":["400"],"s":["latin","math","symbols"]},{"f":"Yarndings 12 Charted","v":["400"],"s":["latin","math","symbols"]},{"f":"Yarndings 20","v":["400"],"s":["latin","math","symbols"]},{"f":"Yarndings 20 Charted","v":["400"],"s":["latin","math","symbols"]},{"f":"Yatra One","v":["400"],"s":["devanagari","latin","latin-ext"]},{"f":"Yellowtail","v":["400"],"s":["latin"]},{"f":"Yeon Sung","v":["400"],"s":["korean","latin"]},{"f":"Yeseva One","v":["400"],"s":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{"f":"Yesteryear","v":["400"],"s":["latin"]},{"f":"Yomogi","v":["400"],"s":["cyrillic","japanese","latin","latin-ext","vietnamese"]},{"f":"Young Serif","v":["400"],"s":["latin","latin-ext"]},{"f":"Yrsa","v":["300","400","500","600","700","300i","400i","500i","600i","700i"],"s":["latin","latin-ext","vietnamese"]},{"f":"Ysabeau","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Ysabeau Infant","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Ysabeau Office","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Ysabeau SC","v":["100","200","300","400","500","600","700","800","900"],"s":["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{"f":"Yuji Boku","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Yuji Hentaigana Akari","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Yuji Hentaigana Akebono","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"Yuji Mai","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Yuji Syuku","v":["400"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Yusei Magic","v":["400"],"s":["japanese","latin","latin-ext"]},{"f":"ZCOOL KuaiLe","v":["400"],"s":["chinese-simplified","latin"]},{"f":"ZCOOL QingKe HuangYou","v":["400"],"s":["chinese-simplified","latin"]},{"f":"ZCOOL XiaoWei","v":["400"],"s":["chinese-simplified","latin"]},{"f":"Zen Antique","v":["400"],"s":["cyrillic","greek","japanese","latin","latin-ext"]},{"f":"Zen Antique Soft","v":["400"],"s":["cyrillic","greek","japanese","latin","latin-ext"]},{"f":"Zen Dots","v":["400"],"s":["latin","latin-ext"]},{"f":"Zen Kaku Gothic Antique","v":["300","400","500","700","900"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Zen Kaku Gothic New","v":["300","400","500","700","900"],"s":["cyrillic","japanese","latin","latin-ext"]},{"f":"Zen Kurenaido","v":["400"],"s":["cyrillic","greek","japanese","latin","latin-ext"]},{"f":"Zen Loop","v":["400","400i"],"s":["latin","latin-ext"]},{"f":"Zen Maru Gothic","v":["300","400","500","700","900"],"s":["cyrillic","greek","japanese","latin","latin-ext"]},{"f":"Zen Old Mincho","v":["400","500","600","700","900"],"s":["cyrillic","greek","japanese","latin","latin-ext"]},{"f":"Zen Tokyo Zoo","v":["400"],"s":["latin","latin-ext"]},{"f":"Zeyada","v":["400"],"s":["latin"]},{"f":"Zhi Mang Xing","v":["400"],"s":["chinese-simplified","latin"]},{"f":"Zilla Slab","v":["300","300i","400","400i","500","500i","600","600i","700","700i"],"s":["latin","latin-ext"]},{"f":"Zilla Slab Highlight","v":["400","700"],"s":["latin","latin-ext"]}]blocks/src/google-fonts/edit.js000064400000022546151213254150012506 0ustar00/**
 * External dependencies
 */
import fontsJson from './fonts.json';
import systemFontsJson from './systemFonts.json';
const { __ } = wp.i18n;
const { Component, Fragment } = wp.element;
const { SelectControl, RangeControl, PanelBody } = wp.components;
const { RichText, InspectorControls, BlockControls, AlignmentToolbar, PanelColorSettings } = wp.blockEditor;

class GoogleFontsBlock extends Component {

	componentDidUpdate( prevProps ) {
		if ( this.props.attributes.fontID !== prevProps.attributes.fontID ) {
			this.props.attributes.v = "0";
		}
	}

	/**
	 * Get font families for use in <select>.
	 *
	 * @returns {Object}  value/label pair.
	 */
	getFontsForSelect() {

		const customFonts = Object.values( ogf_custom_fonts ).map( ( font ) => {
			return {
				value: font.id,
				label: font.label,
			};
		} );

		customFonts.unshift({
			value: '1',
			label: __( '- Custom Fonts -', 'olympus-google-fonts' ),
			disabled: true,
		});

		const typekitFonts = Object.values( ogf_typekit_fonts ).map( ( font ) => {
			return {
				value: font.id,
				label: font.label,
			};
		} );

		typekitFonts.unshift({
			value: '1',
			label: __( '- Typekit Fonts -', 'olympus-google-fonts' ),
			disabled: true,
		});

		const systemFonts = systemFontsJson.map( ( font ) => {
			const label = font.label;
			const value = font.id;

			return {
				value: value,
				label: label,
			};
		} );

		systemFonts.unshift({
			value: '1',
			label: __( '- System Fonts -', 'olympus-google-fonts' ),
			disabled: true,
		});

		const googleFonts = fontsJson.map( ( font ) => {
			const label = font.f;
			const value = label.replace( /\s+/g, '+' );

			return {
				value: value,
				label: label,
			};
		} );

		googleFonts.unshift({
			value: '1',
			label: __( '- Google Fonts -', 'olympus-google-fonts' ),
			disabled: true,
		});

		const combinedFonts = customFonts.concat( typekitFonts, systemFonts, googleFonts );
		return combinedFonts;
	}

	searchFonts( nameKey, myArray ){
    for (var i=0; i < myArray.length; i++) {
      if (myArray[i].id === nameKey) {
        return myArray[i];
      }
    }
	}

	isCustomFont( fontID ) {
		const searchResults = this.searchFonts( fontID, Object.values( ogf_custom_fonts ) );
		if ( typeof searchResults === 'object' ) {
			return true;
		}

		return false;
	}

	getCustomFontFamily( fontID ) {
		const searchResults = this.searchFonts( fontID, Object.values( ogf_custom_fonts_unique ) );
		return ogf_custom_fonts_unique[fontID] || fontID.replace( /\+/g, ' ' );
	}

	isSystemFont( fontID ) {
		const searchResults = this.searchFonts( fontID, systemFontsJson );
		if ( typeof searchResults === 'object' ) {
			return true;
		}

		return false;
	}

	isTypekitFont( fontID ) {
		const searchResults = this.searchFonts( fontID, Object.values( ogf_typekit_fonts ) );
		if ( typeof searchResults === 'object' ) {
			return true;
		}

		return false;
	}

	/**
	 * Check if a font weight is italic.
	 *
	 * @param   {string} value A font weight.
	 * @returns {boolean}  false is value is italic.
	 */
	isItalic( value ) {
		if ( value.includes( '0i' ) ) {
			return false;
		}
		return true;
	}

	/**
	 * Get font variants for use in <select>.
	 *
	 * @param   {Object} fontObject The font object.
	 * @returns {Object} value/label pair.
	 */
	getVariantsForSelect( fontObject ) {
		if ( ! fontObject ) {
			return;
		}

		const variantNiceNames = {
			0: __( '- Default -', 'olympus-google-fonts' ),
			100: __( 'Thin', 'olympus-google-fonts' ),
			200: __( 'Extra Light', 'olympus-google-fonts' ),
			300: __( 'Light', 'olympus-google-fonts' ),
			400: __( 'Normal', 'olympus-google-fonts' ),
			500: __( 'Medium', 'olympus-google-fonts' ),
			600: __( 'Semi Bold', 'olympus-google-fonts' ),
			700: __( 'Bold', 'olympus-google-fonts' ),
			800: __( 'Extra Bold', 'olympus-google-fonts' ),
			900: __( 'Ultra Bold', 'olympus-google-fonts' ),
		};

		if( fontObject.v.indexOf("0") === -1 ) {
			fontObject.v.unshift("0");
		}

		return fontObject.v.filter( this.isItalic ).map( ( variant ) => {
			return {
				value: variant,
				label: variantNiceNames[variant],
			};
		} );
	}

	/**
	 * All the font weights as options to be used in a <select> element
	 *
	 * @param   {string} fontFamily font-family name.
	 * @returns {Object}  The font object.
	 */
	getFontObject( fontFamily ) {
		if ( ! fontFamily ) {
			return;
		}

		// iterate over each element in the array
		for ( let i = 0; i < fontsJson.length; i++ ) {
			// look for the entry with a matching `code` value
			if ( fontsJson[ i ].f === fontFamily ) {
				return fontsJson[ i ];
			}
		}
	}

	/**
	 * Add Google Font link to head in block editor.
	 *
	 * @param {string} fontFamily font-family name.
	 * @param {Object} fontObject The font object.
	 */
	addGoogleFontToHead( fontFamily, fontObject ) {
		if ( ! fontFamily || ! fontObject ) {
			return;
		}

		const fse = document.querySelector('[name=editor-canvas]');
		const head = fse ? fse.contentDocument.head : document.head;
		const link = document.createElement( 'link' );
		const fontName = fontFamily.replace( /\s+/g, '+' );

		link.type = 'text/css';
		link.rel = 'stylesheet';
		link.id = fontName;
		link.href = 'https://fonts.googleapis.com/css?family=' + fontName + ':' + fontObject.v.join( ',' );

		if ( fse && fse.contentDocument.getElementById( fontName ) ) {
			return;
		}

		if ( document.getElementById( fontName ) ) {
			return;
		}

		if ( head ) {
			head.appendChild( link );
		}
	}

	render() {
		const { attributes, setAttributes } = this.props;
		const { fontID, content, align, variant, fontSize, lineHeight, color, blockType } = attributes;

		const fontOptions = this.getFontsForSelect();
		fontOptions.unshift( { label: '- Default -', value: '0' } );

		let variantOptions = [
			{
				value: '0',
				label: __('- Default -', 'olympus-google-fonts' ),
			},
			{
				value: '100',
				label: __('Thin', 'olympus-google-fonts' ),
			},
			{
				value: '200',
				label: __('Extra Light', 'olympus-google-fonts' ),
			},
			{
				value: '300',
				label: __('Light', 'olympus-google-fonts' ),
			},
			{
				value: '400',
				label: __('Regular', 'olympus-google-fonts' ),
			},
			{
				value: '500',
				label: __('Medium', 'olympus-google-fonts' ),
			},
			{
				value: '500',
				label: __('Semi Bold', 'olympus-google-fonts' ),
			},
			{
				value: '700',
				label: __('Bold', 'olympus-google-fonts' ),
			},
			{
				value: '800',
				label: __('Extra Bold', 'olympus-google-fonts' ),
			},
			{
				value: '900',
				label: __('Ultra Bold', 'olympus-google-fonts' ),
			},
		];

		if ( ! this.isTypekitFont( fontID ) && ! this.isSystemFont( fontID ) && ! this.isCustomFont( fontID ) ) {
			const fontObject = this.getFontObject( fontID.replace( /\+/g, ' ' ) );
			variantOptions = this.getVariantsForSelect( fontObject );
			this.addGoogleFontToHead( fontID, fontObject );
		}

		const controls = (
			<InspectorControls>
				<PanelBody title={ __( 'Font Settings', 'olympus-google-fonts' ) }>
					<SelectControl
						label={ __( 'Block Type', 'olympus-google-fonts' ) }
						type="string"
						value={ blockType }
						options={ [
							{ label: 'Paragraph', value: 'p' },
							{ label: 'H1', value: 'h1' },
							{ label: 'H2', value: 'h2' },
							{ label: 'H3', value: 'h3' },
							{ label: 'H4', value: 'h4' },
							{ label: 'H5', value: 'h5' },
							{ label: 'H6', value: 'h6' },
							{ label: 'Span', value: 'span' },
						] }
						onChange={ ( value ) => setAttributes( { blockType: value } ) }
					/>
					<SelectControl
						label={ __( 'Font', 'olympus-google-fonts' ) }
						type="string"
						value={ fontID }
						options={ fontOptions }
						onChange={ ( value ) => setAttributes( { fontID: value } ) }
					/>
					<SelectControl
						label={ __( 'Font Variant', 'olympus-google-fonts' ) }
						type="string"
						value={ variant }
						options={ variantOptions }
						onChange={ ( value ) => setAttributes( { variant: value } ) }
					/>
					<RangeControl
						label={ __( 'Font Size', 'olympus-google-fonts' ) }
						value={ fontSize }
						onChange={ ( value ) => setAttributes( { fontSize: value } ) }
						allowReset={ true }
						min="10"
						max="150"
					/>
					<RangeControl
						label={ __( 'Line Height', 'olympus-google-fonts' ) }
						value={ lineHeight }
						onChange={ ( value ) => setAttributes( { lineHeight: value } ) }
						allowReset={ true }
						min="1"
						max="3"
						step="0.1"
					/>
					<PanelColorSettings
						title={ __( 'Color Settings', 'olympus-google-fonts' ) }
						colorSettings={ [
							{
								value: attributes.color,
								onChange: ( value ) => setAttributes( { color: value } ),
								label: __( 'Text Color', 'olympus-google-fonts' ),
							},
						] }
					>
					</PanelColorSettings>
				</PanelBody>
			</InspectorControls>
		);

		return (
			<Fragment>
				{ controls }
				<BlockControls>
					<AlignmentToolbar
						value={ align }
						onChange={ ( value ) => setAttributes( { align: value } ) }
					/>
				</BlockControls>
				<RichText
					tagName={ blockType || 'p' }
					value={ content }
					onChange={ ( value ) => setAttributes( { content: value } ) }
					style={ {
						fontSize: fontSize ? fontSize + 'px' : undefined,
						textAlign: align,
						fontFamily: 'this.getCustomFontFamily(fontID)',
						fontWeight: variant,
						lineHeight: lineHeight,
						color: color,
					} }
					placeholder={ __( 'Add some content...', 'olympus-google-fonts' ) }
				/>
			</Fragment>
		);
	}

}

export default GoogleFontsBlock;
blocks/src/google-fonts/transforms.js000064400000001322151213254160013745 0ustar00/**
 * WordPress dependencies
 */
const { createBlock } = wp.blocks;

const transforms = {
	from: [
		{
			type: 'block',
			blocks: [ 'core/paragraph' ],
			transform: ( { content } ) => {
				return createBlock( 'olympus-google-fonts/google-fonts', {
					content,
				} );
			},
		},
		{
			type: 'block',
			blocks: [ 'core/heading' ],
			transform: ( { content, level } ) => {
				return createBlock( 'olympus-google-fonts/google-fonts', {
					content,
					blockType: 'h' + level,
				} );
			},
		},
	],
	to: [
		{
			type: 'block',
			blocks: [ 'core/paragraph' ],
			transform: ( { content } ) => {
				return createBlock( 'core/paragraph', {
					content,
				} );
			},
		},
	],
};

export default transforms;
blocks/src/common.scss000064400000000000151213254160010763 0ustar00blocks/src/blocks.js000064400000000257151213254160010427 0ustar00/**
 * Gutenberg Blocks
 *
 * All blocks should be included here since this is the file that
 * Webpack is compiling as the input file.
 */

import './google-fonts/index.js';
blocks/dist/blocks.editor.build.css000064400000000000151213254160013324 0ustar00blocks/dist/blocks.build.js000064400000423371151213254160011707 0ustar00!function(i){function t(e){if(a[e])return a[e].exports;var n=a[e]={i:e,l:!1,exports:{}};return i[e].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a={};t.m=i,t.c=a,t.d=function(i,a,e){t.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:e})},t.n=function(i){var a=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(a,"a",a),a},t.o=function(i,t){return Object.prototype.hasOwnProperty.call(i,t)},t.p="",t(t.s=0)}([function(i,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});a(1)},function(i,t,a){"use strict";var e=a(2),n=a(5),__=wp.i18n.__;(0,wp.blocks.registerBlockType)("olympus-google-fonts/google-fonts",{title:__("Fonts Plugin","olympus-google-fonts"),category:"common",icon:wp.element.createElement("svg",{baseProfile:"tiny",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),wp.element.createElement("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"})),keywords:[__("Fonts","olympus-google-fonts"),__("Heading","olympus-google-fonts")],transforms:n.a,edit:e.a,save:function(){return null}})},function(i,t,a){"use strict";function e(i,t){if(!(i instanceof t))throw new TypeError("Cannot call a class as a function")}function n(i,t){if(!i)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?i:t}function l(i,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);i.prototype=Object.create(t&&t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(i,t):i.__proto__=t)}var s=a(3),v=a.n(s),r=a(4),o=a.n(r),f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&"function"===typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},x=function(){function i(i,t){for(var a=0;a<t.length;a++){var e=t[a];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,a,e){return a&&i(t.prototype,a),e&&i(t,e),t}}(),__=wp.i18n.__,c=wp.element,m=c.Component,u=c.Fragment,y=wp.components,h=y.SelectControl,g=y.RangeControl,d=y.PanelBody,S=wp.blockEditor,k=S.RichText,b=S.InspectorControls,p=S.BlockControls,N=S.AlignmentToolbar,M=S.PanelColorSettings,C=function(i){function t(){return e(this,t),n(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,i),x(t,[{key:"componentDidUpdate",value:function(i){this.props.attributes.fontID!==i.attributes.fontID&&(this.props.attributes.v="0")}},{key:"getFontsForSelect",value:function(){var i=Object.values(ogf_custom_fonts).map(function(i){return{value:i.id,label:i.label}});i.unshift({value:"1",label:__("- Custom Fonts -","olympus-google-fonts"),disabled:!0});var t=Object.values(ogf_typekit_fonts).map(function(i){return{value:i.id,label:i.label}});t.unshift({value:"1",label:__("- Typekit Fonts -","olympus-google-fonts"),disabled:!0});var a=o.a.map(function(i){var t=i.label;return{value:i.id,label:t}});a.unshift({value:"1",label:__("- System Fonts -","olympus-google-fonts"),disabled:!0});var e=v.a.map(function(i){var t=i.f;return{value:t.replace(/\s+/g,"+"),label:t}});return e.unshift({value:"1",label:__("- Google Fonts -","olympus-google-fonts"),disabled:!0}),i.concat(t,a,e)}},{key:"searchFonts",value:function(i,t){for(var a=0;a<t.length;a++)if(t[a].id===i)return t[a]}},{key:"isCustomFont",value:function(i){var t=this.searchFonts(i,Object.values(ogf_custom_fonts));return"object"===("undefined"===typeof t?"undefined":f(t))}},{key:"getCustomFontFamily",value:function(i){this.searchFonts(i,Object.values(ogf_custom_fonts_unique));return ogf_custom_fonts_unique[i]||i.replace(/\+/g," ")}},{key:"isSystemFont",value:function(i){var t=this.searchFonts(i,o.a);return"object"===("undefined"===typeof t?"undefined":f(t))}},{key:"isTypekitFont",value:function(i){var t=this.searchFonts(i,Object.values(ogf_typekit_fonts));return"object"===("undefined"===typeof t?"undefined":f(t))}},{key:"isItalic",value:function(i){return!i.includes("0i")}},{key:"getVariantsForSelect",value:function(i){if(i){var t={0:__("- Default -","olympus-google-fonts"),100:__("Thin","olympus-google-fonts"),200:__("Extra Light","olympus-google-fonts"),300:__("Light","olympus-google-fonts"),400:__("Normal","olympus-google-fonts"),500:__("Medium","olympus-google-fonts"),600:__("Semi Bold","olympus-google-fonts"),700:__("Bold","olympus-google-fonts"),800:__("Extra Bold","olympus-google-fonts"),900:__("Ultra Bold","olympus-google-fonts")};return-1===i.v.indexOf("0")&&i.v.unshift("0"),i.v.filter(this.isItalic).map(function(i){return{value:i,label:t[i]}})}}},{key:"getFontObject",value:function(i){if(i)for(var t=0;t<v.a.length;t++)if(v.a[t].f===i)return v.a[t]}},{key:"addGoogleFontToHead",value:function(i,t){if(i&&t){var a=document.querySelector("[name=editor-canvas]"),e=a?a.contentDocument.head:document.head,n=document.createElement("link"),l=i.replace(/\s+/g,"+");n.type="text/css",n.rel="stylesheet",n.id=l,n.href="https://fonts.googleapis.com/css?family="+l+":"+t.v.join(","),a&&a.contentDocument.getElementById(l)||document.getElementById(l)||e&&e.appendChild(n)}}},{key:"render",value:function(){var i=this.props,t=i.attributes,a=i.setAttributes,e=t.fontID,n=t.content,l=t.align,s=t.variant,v=t.fontSize,r=t.lineHeight,o=t.color,f=t.blockType,x=this.getFontsForSelect();x.unshift({label:"- Default -",value:"0"});var c=[{value:"0",label:__("- Default -","olympus-google-fonts")},{value:"100",label:__("Thin","olympus-google-fonts")},{value:"200",label:__("Extra Light","olympus-google-fonts")},{value:"300",label:__("Light","olympus-google-fonts")},{value:"400",label:__("Regular","olympus-google-fonts")},{value:"500",label:__("Medium","olympus-google-fonts")},{value:"500",label:__("Semi Bold","olympus-google-fonts")},{value:"700",label:__("Bold","olympus-google-fonts")},{value:"800",label:__("Extra Bold","olympus-google-fonts")},{value:"900",label:__("Ultra Bold","olympus-google-fonts")}];if(!this.isTypekitFont(e)&&!this.isSystemFont(e)&&!this.isCustomFont(e)){var m=this.getFontObject(e.replace(/\+/g," "));c=this.getVariantsForSelect(m),this.addGoogleFontToHead(e,m)}var y=wp.element.createElement(b,null,wp.element.createElement(d,{title:__("Font Settings","olympus-google-fonts")},wp.element.createElement(h,{label:__("Block Type","olympus-google-fonts"),type:"string",value:f,options:[{label:"Paragraph",value:"p"},{label:"H1",value:"h1"},{label:"H2",value:"h2"},{label:"H3",value:"h3"},{label:"H4",value:"h4"},{label:"H5",value:"h5"},{label:"H6",value:"h6"},{label:"Span",value:"span"}],onChange:function(i){return a({blockType:i})}}),wp.element.createElement(h,{label:__("Font","olympus-google-fonts"),type:"string",value:e,options:x,onChange:function(i){return a({fontID:i})}}),wp.element.createElement(h,{label:__("Font Variant","olympus-google-fonts"),type:"string",value:s,options:c,onChange:function(i){return a({variant:i})}}),wp.element.createElement(g,{label:__("Font Size","olympus-google-fonts"),value:v,onChange:function(i){return a({fontSize:i})},allowReset:!0,min:"10",max:"150"}),wp.element.createElement(g,{label:__("Line Height","olympus-google-fonts"),value:r,onChange:function(i){return a({lineHeight:i})},allowReset:!0,min:"1",max:"3",step:"0.1"}),wp.element.createElement(M,{title:__("Color Settings","olympus-google-fonts"),colorSettings:[{value:t.color,onChange:function(i){return a({color:i})},label:__("Text Color","olympus-google-fonts")}]})));return wp.element.createElement(u,null,y,wp.element.createElement(p,null,wp.element.createElement(N,{value:l,onChange:function(i){return a({align:i})}})),wp.element.createElement(k,{tagName:f||"p",value:n,onChange:function(i){return a({content:i})},style:{fontSize:v?v+"px":void 0,textAlign:l,fontFamily:"this.getCustomFontFamily(fontID)",fontWeight:s,lineHeight:r,color:o},placeholder:__("Add some content...","olympus-google-fonts")}))}}]),t}(m);t.a=C},function(i,t){i.exports=[{f:"ABeeZee",v:["400","400i"],s:["latin","latin-ext"]},{f:"ADLaM Display",v:["400"],s:["adlam","latin","latin-ext"]},{f:"AR One Sans",v:["400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Abel",v:["400"],s:["latin"]},{f:"Abhaya Libre",v:["400","500","600","700","800"],s:["latin","latin-ext","sinhala"]},{f:"Aboreto",v:["400"],s:["latin","latin-ext"]},{f:"Abril Fatface",v:["400"],s:["latin","latin-ext"]},{f:"Abyssinica SIL",v:["400"],s:["ethiopic","latin","latin-ext"]},{f:"Aclonica",v:["400"],s:["latin"]},{f:"Acme",v:["400"],s:["latin"]},{f:"Actor",v:["400"],s:["latin"]},{f:"Adamina",v:["400"],s:["latin"]},{f:"Advent Pro",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Afacad",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{f:"Agbalumo",v:["400"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Agdasima",v:["400","700"],s:["latin","latin-ext"]},{f:"Aguafina Script",v:["400"],s:["latin","latin-ext"]},{f:"Akatab",v:["400","500","600","700","800","900"],s:["latin","latin-ext","tifinagh"]},{f:"Akaya Kanadaka",v:["400"],s:["kannada","latin","latin-ext"]},{f:"Akaya Telivigala",v:["400"],s:["latin","latin-ext","telugu"]},{f:"Akronim",v:["400"],s:["latin","latin-ext"]},{f:"Akshar",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Aladin",v:["400"],s:["latin","latin-ext"]},{f:"Alata",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Alatsi",v:["400"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Albert Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Aldrich",v:["400"],s:["latin"]},{f:"Alef",v:["400","700"],s:["hebrew","latin"]},{f:"Alegreya",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Alegreya SC",v:["400","400i","500","500i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Alegreya Sans",v:["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Alegreya Sans SC",v:["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Aleo",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Alex Brush",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Alexandria",v:["100","200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Alfa Slab One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Alice",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Alike",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Alike Angular",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Alkalami",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Alkatra",v:["400","500","600","700"],s:["bengali","devanagari","latin","latin-ext","oriya"]},{f:"Allan",v:["400","700"],s:["latin","latin-ext"]},{f:"Allerta",v:["400"],s:["latin"]},{f:"Allerta Stencil",v:["400"],s:["latin"]},{f:"Allison",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Allura",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Almarai",v:["300","400","700","800"],s:["arabic"]},{f:"Almendra",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Almendra Display",v:["400"],s:["latin","latin-ext"]},{f:"Almendra SC",v:["400"],s:["latin"]},{f:"Alumni Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Alumni Sans Collegiate One",v:["400","400i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Alumni Sans Inline One",v:["400","400i"],s:["latin","latin-ext","vietnamese"]},{f:"Alumni Sans Pinstripe",v:["400","400i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Amarante",v:["400"],s:["latin","latin-ext"]},{f:"Amaranth",v:["400","400i","700","700i"],s:["latin"]},{f:"Amatic SC",v:["400","700"],s:["cyrillic","hebrew","latin","latin-ext","vietnamese"]},{f:"Amethysta",v:["400"],s:["latin"]},{f:"Amiko",v:["400","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Amiri",v:["400","400i","700","700i"],s:["arabic","latin","latin-ext"]},{f:"Amiri Quran",v:["400"],s:["arabic","latin"]},{f:"Amita",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Anaheim",v:["400"],s:["latin","latin-ext"]},{f:"Andada Pro",v:["400","500","600","700","800","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Andika",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Anek Bangla",v:["100","200","300","400","500","600","700","800"],s:["bengali","latin","latin-ext"]},{f:"Anek Devanagari",v:["100","200","300","400","500","600","700","800"],s:["devanagari","latin","latin-ext"]},{f:"Anek Gujarati",v:["100","200","300","400","500","600","700","800"],s:["gujarati","latin","latin-ext"]},{f:"Anek Gurmukhi",v:["100","200","300","400","500","600","700","800"],s:["gurmukhi","latin","latin-ext"]},{f:"Anek Kannada",v:["100","200","300","400","500","600","700","800"],s:["kannada","latin","latin-ext"]},{f:"Anek Latin",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","vietnamese"]},{f:"Anek Malayalam",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","malayalam"]},{f:"Anek Odia",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","oriya"]},{f:"Anek Tamil",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","tamil"]},{f:"Anek Telugu",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","telugu"]},{f:"Angkor",v:["400"],s:["khmer","latin"]},{f:"Annapurna SIL",v:["400","700"],s:["devanagari","latin","latin-ext","math","symbols"]},{f:"Annie Use Your Telescope",v:["400"],s:["latin"]},{f:"Anonymous Pro",v:["400","400i","700","700i"],s:["cyrillic","greek","latin","latin-ext"]},{f:"Anta",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Antic",v:["400"],s:["latin"]},{f:"Antic Didone",v:["400"],s:["latin"]},{f:"Antic Slab",v:["400"],s:["latin"]},{f:"Anton",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Antonio",v:["100","200","300","400","500","600","700"],s:["latin","latin-ext"]},{f:"Anuphan",v:["100","200","300","400","500","600","700"],s:["cyrillic-ext","latin","latin-ext","thai","vietnamese"]},{f:"Anybody",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Aoboshi One",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Arapey",v:["400","400i"],s:["latin"]},{f:"Arbutus",v:["400"],s:["latin","latin-ext"]},{f:"Arbutus Slab",v:["400"],s:["latin","latin-ext"]},{f:"Architects Daughter",v:["400"],s:["latin"]},{f:"Archivo",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Archivo Black",v:["400"],s:["latin","latin-ext"]},{f:"Archivo Narrow",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Are You Serious",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Aref Ruqaa",v:["400","700"],s:["arabic","latin","latin-ext"]},{f:"Aref Ruqaa Ink",v:["400","700"],s:["arabic","latin","latin-ext"]},{f:"Arima",v:["100","200","300","400","500","600","700"],s:["greek","greek-ext","latin","latin-ext","malayalam","tamil","vietnamese"]},{f:"Arimo",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{f:"Arizonia",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Armata",v:["400"],s:["latin","latin-ext"]},{f:"Arsenal",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Artifika",v:["400"],s:["latin"]},{f:"Arvo",v:["400","400i","700","700i"],s:["latin"]},{f:"Arya",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Asap",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Asap Condensed",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Asar",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Asset",v:["400"],s:["cyrillic-ext","latin","latin-ext","math","symbols"]},{f:"Assistant",v:["200","300","400","500","600","700","800"],s:["hebrew","latin","latin-ext"]},{f:"Astloch",v:["400","700"],s:["latin"]},{f:"Asul",v:["400","700"],s:["latin"]},{f:"Athiti",v:["200","300","400","500","600","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Atkinson Hyperlegible",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Atma",v:["300","400","500","600","700"],s:["bengali","latin","latin-ext"]},{f:"Atomic Age",v:["400"],s:["latin"]},{f:"Aubrey",v:["400"],s:["latin"]},{f:"Audiowide",v:["400"],s:["latin","latin-ext"]},{f:"Autour One",v:["400"],s:["latin","latin-ext"]},{f:"Average",v:["400"],s:["latin","latin-ext"]},{f:"Average Sans",v:["400"],s:["latin","latin-ext"]},{f:"Averia Gruesa Libre",v:["400"],s:["latin","latin-ext"]},{f:"Averia Libre",v:["300","300i","400","400i","700","700i"],s:["latin"]},{f:"Averia Sans Libre",v:["300","300i","400","400i","700","700i"],s:["latin"]},{f:"Averia Serif Libre",v:["300","300i","400","400i","700","700i"],s:["latin"]},{f:"Azeret Mono",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"B612",v:["400","400i","700","700i"],s:["latin"]},{f:"B612 Mono",v:["400","400i","700","700i"],s:["latin"]},{f:"BIZ UDGothic",v:["400","700"],s:["cyrillic","greek-ext","japanese","latin","latin-ext"]},{f:"BIZ UDMincho",v:["400","700"],s:["cyrillic","greek-ext","japanese","latin","latin-ext"]},{f:"BIZ UDPGothic",v:["400","700"],s:["cyrillic","greek-ext","japanese","latin","latin-ext"]},{f:"BIZ UDPMincho",v:["400","700"],s:["cyrillic","greek-ext","japanese","latin","latin-ext"]},{f:"Babylonica",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bacasime Antique",v:["400"],s:["latin","latin-ext"]},{f:"Bad Script",v:["400"],s:["cyrillic","latin"]},{f:"Bagel Fat One",v:["400"],s:["korean","latin","latin-ext"]},{f:"Bahiana",v:["400"],s:["latin","latin-ext"]},{f:"Bahianita",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bai Jamjuree",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Bakbak One",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Ballet",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Baloo 2",v:["400","500","600","700","800"],s:["devanagari","latin","latin-ext","vietnamese"]},{f:"Baloo Bhai 2",v:["400","500","600","700","800"],s:["gujarati","latin","latin-ext","vietnamese"]},{f:"Baloo Bhaijaan 2",v:["400","500","600","700","800"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Baloo Bhaina 2",v:["400","500","600","700","800"],s:["latin","latin-ext","oriya","vietnamese"]},{f:"Baloo Chettan 2",v:["400","500","600","700","800"],s:["latin","latin-ext","malayalam","vietnamese"]},{f:"Baloo Da 2",v:["400","500","600","700","800"],s:["bengali","latin","latin-ext","vietnamese"]},{f:"Baloo Paaji 2",v:["400","500","600","700","800"],s:["gurmukhi","latin","latin-ext","vietnamese"]},{f:"Baloo Tamma 2",v:["400","500","600","700","800"],s:["kannada","latin","latin-ext","vietnamese"]},{f:"Baloo Tammudu 2",v:["400","500","600","700","800"],s:["latin","latin-ext","telugu","vietnamese"]},{f:"Baloo Thambi 2",v:["400","500","600","700","800"],s:["latin","latin-ext","tamil","vietnamese"]},{f:"Balsamiq Sans",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Balthazar",v:["400"],s:["latin"]},{f:"Bangers",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Barlow",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Barlow Condensed",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Barlow Semi Condensed",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Barriecito",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Barrio",v:["400"],s:["latin","latin-ext"]},{f:"Basic",v:["400"],s:["latin","latin-ext"]},{f:"Baskervville",v:["400","400i"],s:["latin","latin-ext"]},{f:"Battambang",v:["100","300","400","700","900"],s:["khmer","latin"]},{f:"Baumans",v:["400"],s:["latin"]},{f:"Bayon",v:["400"],s:["khmer","latin"]},{f:"Be Vietnam Pro",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Beau Rivage",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bebas Neue",v:["400"],s:["latin","latin-ext"]},{f:"Belanosima",v:["400","600","700"],s:["latin","latin-ext"]},{f:"Belgrano",v:["400"],s:["latin"]},{f:"Bellefair",v:["400"],s:["hebrew","latin","latin-ext"]},{f:"Belleza",v:["400"],s:["latin","latin-ext"]},{f:"Bellota",v:["300","300i","400","400i","700","700i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Bellota Text",v:["300","300i","400","400i","700","700i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"BenchNine",v:["300","400","700"],s:["latin","latin-ext"]},{f:"Benne",v:["400"],s:["kannada","latin","latin-ext"]},{f:"Bentham",v:["400"],s:["latin"]},{f:"Berkshire Swash",v:["400"],s:["latin","latin-ext"]},{f:"Besley",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Beth Ellen",v:["400"],s:["latin"]},{f:"Bevan",v:["400","400i"],s:["latin","latin-ext","vietnamese"]},{f:"BhuTuka Expanded One",v:["400"],s:["gurmukhi","latin","latin-ext"]},{f:"Big Shoulders Display",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Big Shoulders Inline Display",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Big Shoulders Inline Text",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Big Shoulders Stencil Display",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Big Shoulders Stencil Text",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Big Shoulders Text",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Bigelow Rules",v:["400"],s:["latin","latin-ext"]},{f:"Bigshot One",v:["400"],s:["latin"]},{f:"Bilbo",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bilbo Swash Caps",v:["400"],s:["latin","latin-ext"]},{f:"BioRhyme",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext"]},{f:"BioRhyme Expanded",v:["200","300","400","700","800"],s:["latin","latin-ext"]},{f:"Birthstone",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Birthstone Bounce",v:["400","500"],s:["latin","latin-ext","vietnamese"]},{f:"Biryani",v:["200","300","400","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Bitter",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Black And White Picture",v:["400"],s:["korean","latin"]},{f:"Black Han Sans",v:["400"],s:["korean","latin"]},{f:"Black Ops One",v:["400"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Blaka",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Blaka Hollow",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Blaka Ink",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Blinker",v:["100","200","300","400","600","700","800","900"],s:["latin","latin-ext"]},{f:"Bodoni Moda",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","math","symbols"]},{f:"Bokor",v:["400"],s:["khmer","latin"]},{f:"Bona Nova",v:["400","400i","700"],s:["cyrillic","cyrillic-ext","greek","hebrew","latin","latin-ext","vietnamese"]},{f:"Bonbon",v:["400"],s:["latin"]},{f:"Bonheur Royale",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Boogaloo",v:["400"],s:["latin"]},{f:"Borel",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Bowlby One",v:["400"],s:["latin"]},{f:"Bowlby One SC",v:["400"],s:["latin","latin-ext"]},{f:"Braah One",v:["400"],s:["gurmukhi","latin","latin-ext","vietnamese"]},{f:"Brawler",v:["400","700"],s:["latin"]},{f:"Bree Serif",v:["400"],s:["latin","latin-ext"]},{f:"Bricolage Grotesque",v:["200","300","400","500","600","700","800"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Bruno Ace",v:["400"],s:["latin","latin-ext"]},{f:"Bruno Ace SC",v:["400"],s:["latin","latin-ext"]},{f:"Brygada 1918",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Bubblegum Sans",v:["400"],s:["latin","latin-ext"]},{f:"Bubbler One",v:["400"],s:["latin","latin-ext"]},{f:"Buda",v:["300"],s:["latin"]},{f:"Buenard",v:["400","700"],s:["latin","latin-ext"]},{f:"Bungee",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bungee Hairline",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bungee Inline",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bungee Outline",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bungee Shade",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Bungee Spice",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Butcherman",v:["400"],s:["latin","latin-ext"]},{f:"Butterfly Kids",v:["400"],s:["latin","latin-ext"]},{f:"Cabin",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Cabin Condensed",v:["400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Cabin Sketch",v:["400","700"],s:["latin"]},{f:"Caesar Dressing",v:["400"],s:["latin"]},{f:"Cagliostro",v:["400"],s:["latin"]},{f:"Cairo",v:["200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext"]},{f:"Cairo Play",v:["200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext"]},{f:"Caladea",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Calistoga",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Calligraffitti",v:["400"],s:["latin"]},{f:"Cambay",v:["400","400i","700","700i"],s:["devanagari","latin","latin-ext"]},{f:"Cambo",v:["400"],s:["latin","latin-ext"]},{f:"Candal",v:["400"],s:["latin"]},{f:"Cantarell",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Cantata One",v:["400"],s:["latin","latin-ext"]},{f:"Cantora One",v:["400"],s:["latin","latin-ext"]},{f:"Caprasimo",v:["400"],s:["latin","latin-ext"]},{f:"Capriola",v:["400"],s:["latin","latin-ext"]},{f:"Caramel",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Carattere",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Cardo",v:["400","400i","700"],s:["greek","greek-ext","latin","latin-ext"]},{f:"Carlito",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Carme",v:["400"],s:["latin"]},{f:"Carrois Gothic",v:["400"],s:["latin"]},{f:"Carrois Gothic SC",v:["400"],s:["latin"]},{f:"Carter One",v:["400"],s:["latin"]},{f:"Castoro",v:["400","400i"],s:["latin","latin-ext"]},{f:"Castoro Titling",v:["400"],s:["latin","latin-ext"]},{f:"Catamaran",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","tamil"]},{f:"Caudex",v:["400","400i","700","700i"],s:["greek","greek-ext","latin","latin-ext"]},{f:"Caveat",v:["400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Caveat Brush",v:["400"],s:["latin","latin-ext"]},{f:"Cedarville Cursive",v:["400"],s:["latin"]},{f:"Ceviche One",v:["400"],s:["latin","latin-ext"]},{f:"Chakra Petch",v:["300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Changa",v:["200","300","400","500","600","700","800"],s:["arabic","latin","latin-ext"]},{f:"Changa One",v:["400","400i"],s:["latin"]},{f:"Chango",v:["400"],s:["latin","latin-ext"]},{f:"Charis SIL",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Charm",v:["400","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Charmonman",v:["400","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Chathura",v:["100","300","400","700","800"],s:["latin","telugu"]},{f:"Chau Philomene One",v:["400","400i"],s:["latin","latin-ext"]},{f:"Chela One",v:["400"],s:["latin","latin-ext"]},{f:"Chelsea Market",v:["400"],s:["latin","latin-ext"]},{f:"Chenla",v:["400"],s:["khmer"]},{f:"Cherish",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Cherry Bomb One",v:["400"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"Cherry Cream Soda",v:["400"],s:["latin"]},{f:"Cherry Swash",v:["400","700"],s:["latin","latin-ext"]},{f:"Chewy",v:["400"],s:["latin"]},{f:"Chicle",v:["400"],s:["latin","latin-ext"]},{f:"Chilanka",v:["400"],s:["latin","latin-ext","malayalam"]},{f:"Chivo",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Chivo Mono",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Chokokutai",v:["400"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"Chonburi",v:["400"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Cinzel",v:["400","500","600","700","800","900"],s:["latin","latin-ext"]},{f:"Cinzel Decorative",v:["400","700","900"],s:["latin"]},{f:"Clicker Script",v:["400"],s:["latin","latin-ext"]},{f:"Climate Crisis",v:["400"],s:["latin","latin-ext"]},{f:"Coda",v:["400","800"],s:["latin","latin-ext"]},{f:"Codystar",v:["300","400"],s:["latin","latin-ext"]},{f:"Coiny",v:["400"],s:["latin","latin-ext","tamil","vietnamese"]},{f:"Combo",v:["400"],s:["latin","latin-ext"]},{f:"Comfortaa",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Comforter",v:["400"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Comforter Brush",v:["400"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Comic Neue",v:["300","300i","400","400i","700","700i"],s:["latin"]},{f:"Coming Soon",v:["400"],s:["latin"]},{f:"Comme",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext"]},{f:"Commissioner",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Concert One",v:["400"],s:["latin","latin-ext"]},{f:"Condiment",v:["400"],s:["latin","latin-ext"]},{f:"Content",v:["400","700"],s:["khmer"]},{f:"Contrail One",v:["400"],s:["latin"]},{f:"Convergence",v:["400"],s:["latin","latin-ext"]},{f:"Cookie",v:["400"],s:["latin"]},{f:"Copse",v:["400"],s:["latin"]},{f:"Corben",v:["400","700"],s:["latin","latin-ext"]},{f:"Corinthia",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Cormorant",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cormorant Garamond",v:["300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cormorant Infant",v:["300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cormorant SC",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cormorant Unicase",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cormorant Upright",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Courgette",v:["400"],s:["latin","latin-ext"]},{f:"Courier Prime",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Cousine",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{f:"Coustard",v:["400","900"],s:["latin"]},{f:"Covered By Your Grace",v:["400"],s:["latin"]},{f:"Crafty Girls",v:["400"],s:["latin"]},{f:"Creepster",v:["400"],s:["latin"]},{f:"Crete Round",v:["400","400i"],s:["latin","latin-ext"]},{f:"Crimson Pro",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Crimson Text",v:["400","400i","600","600i","700","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Croissant One",v:["400"],s:["latin","latin-ext"]},{f:"Crushed",v:["400"],s:["latin"]},{f:"Cuprum",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Cute Font",v:["400"],s:["korean","latin"]},{f:"Cutive",v:["400"],s:["latin","latin-ext"]},{f:"Cutive Mono",v:["400"],s:["latin","latin-ext"]},{f:"DM Mono",v:["300","300i","400","400i","500","500i"],s:["latin","latin-ext"]},{f:"DM Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"DM Serif Display",v:["400","400i"],s:["latin","latin-ext"]},{f:"DM Serif Text",v:["400","400i"],s:["latin","latin-ext"]},{f:"Dai Banna SIL",v:["300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","new-tai-lue"]},{f:"Damion",v:["400"],s:["latin"]},{f:"Dancing Script",v:["400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Danfo",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Dangrek",v:["400"],s:["khmer","latin"]},{f:"Darker Grotesque",v:["300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Darumadrop One",v:["400"],s:["japanese","latin","latin-ext"]},{f:"David Libre",v:["400","500","700"],s:["hebrew","latin","latin-ext","math","symbols","vietnamese"]},{f:"Dawning of a New Day",v:["400"],s:["latin"]},{f:"Days One",v:["400"],s:["latin"]},{f:"Dekko",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Dela Gothic One",v:["400"],s:["cyrillic","greek","japanese","latin","latin-ext","vietnamese"]},{f:"Delicious Handrawn",v:["400"],s:["latin","latin-ext"]},{f:"Delius",v:["400"],s:["latin"]},{f:"Delius Swash Caps",v:["400"],s:["latin"]},{f:"Delius Unicase",v:["400","700"],s:["latin"]},{f:"Della Respira",v:["400"],s:["latin"]},{f:"Denk One",v:["400"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Devonshire",v:["400"],s:["latin","latin-ext"]},{f:"Dhurjati",v:["400"],s:["latin","telugu"]},{f:"Didact Gothic",v:["400"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Diphylleia",v:["400"],s:["korean","latin","latin-ext"]},{f:"Diplomata",v:["400"],s:["latin","latin-ext"]},{f:"Diplomata SC",v:["400"],s:["latin","latin-ext"]},{f:"Do Hyeon",v:["400"],s:["korean","latin"]},{f:"Dokdo",v:["400"],s:["korean","latin"]},{f:"Domine",v:["400","500","600","700"],s:["latin","latin-ext"]},{f:"Donegal One",v:["400"],s:["latin","latin-ext"]},{f:"Dongle",v:["300","400","700"],s:["korean","latin","latin-ext","vietnamese"]},{f:"Doppio One",v:["400"],s:["latin","latin-ext"]},{f:"Dorsa",v:["400"],s:["latin"]},{f:"Dosis",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","vietnamese"]},{f:"DotGothic16",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Dr Sugiyama",v:["400"],s:["latin","latin-ext"]},{f:"Duru Sans",v:["400"],s:["latin","latin-ext"]},{f:"DynaPuff",v:["400","500","600","700"],s:["cyrillic-ext","latin","latin-ext"]},{f:"Dynalight",v:["400"],s:["latin","latin-ext"]},{f:"EB Garamond",v:["400","500","600","700","800","400i","500i","600i","700i","800i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Eagle Lake",v:["400"],s:["latin","latin-ext"]},{f:"East Sea Dokdo",v:["400"],s:["korean","latin"]},{f:"Eater",v:["400"],s:["latin","latin-ext"]},{f:"Economica",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Eczar",v:["400","500","600","700","800"],s:["devanagari","greek","greek-ext","latin","latin-ext"]},{f:"Edu NSW ACT Foundation",v:["400","500","600","700"],s:["latin"]},{f:"Edu QLD Beginner",v:["400","500","600","700"],s:["latin"]},{f:"Edu SA Beginner",v:["400","500","600","700"],s:["latin"]},{f:"Edu TAS Beginner",v:["400","500","600","700"],s:["latin"]},{f:"Edu VIC WA NT Beginner",v:["400","500","600","700"],s:["latin"]},{f:"El Messiri",v:["400","500","600","700"],s:["arabic","cyrillic","latin","latin-ext"]},{f:"Electrolize",v:["400"],s:["latin"]},{f:"Elsie",v:["400","900"],s:["latin","latin-ext"]},{f:"Elsie Swash Caps",v:["400","900"],s:["latin","latin-ext"]},{f:"Emblema One",v:["400"],s:["latin","latin-ext"]},{f:"Emilys Candy",v:["400"],s:["latin","latin-ext"]},{f:"Encode Sans",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Encode Sans Condensed",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Encode Sans Expanded",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Encode Sans SC",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Encode Sans Semi Condensed",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Encode Sans Semi Expanded",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Engagement",v:["400"],s:["latin"]},{f:"Englebert",v:["400"],s:["latin","latin-ext"]},{f:"Enriqueta",v:["400","500","600","700"],s:["latin","latin-ext"]},{f:"Ephesis",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Epilogue",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Erica One",v:["400"],s:["latin","latin-ext"]},{f:"Esteban",v:["400"],s:["latin","latin-ext"]},{f:"Estonia",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Euphoria Script",v:["400"],s:["latin","latin-ext"]},{f:"Ewert",v:["400"],s:["latin","latin-ext"]},{f:"Exo",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Exo 2",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Expletus Sans",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Explora",v:["400"],s:["cherokee","latin","latin-ext","vietnamese"]},{f:"Fahkwang",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Familjen Grotesk",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Fanwood Text",v:["400","400i"],s:["latin"]},{f:"Farro",v:["300","400","500","700"],s:["latin","latin-ext"]},{f:"Farsan",v:["400"],s:["gujarati","latin","latin-ext","vietnamese"]},{f:"Fascinate",v:["400"],s:["latin"]},{f:"Fascinate Inline",v:["400"],s:["latin"]},{f:"Faster One",v:["400"],s:["latin","latin-ext"]},{f:"Fasthand",v:["400"],s:["khmer","latin"]},{f:"Fauna One",v:["400"],s:["latin","latin-ext"]},{f:"Faustina",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Federant",v:["400"],s:["latin"]},{f:"Federo",v:["400"],s:["latin"]},{f:"Felipa",v:["400"],s:["latin","latin-ext"]},{f:"Fenix",v:["400"],s:["latin","latin-ext"]},{f:"Festive",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Figtree",v:["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Finger Paint",v:["400"],s:["latin"]},{f:"Finlandica",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Fira Code",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Fira Mono",v:["400","500","700"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Fira Sans",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Fira Sans Condensed",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Fira Sans Extra Condensed",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Fjalla One",v:["400"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Fjord One",v:["400"],s:["latin"]},{f:"Flamenco",v:["300","400"],s:["latin"]},{f:"Flavors",v:["400"],s:["latin","latin-ext"]},{f:"Fleur De Leah",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Flow Block",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Flow Circular",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Flow Rounded",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Foldit",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Fondamento",v:["400","400i"],s:["latin","latin-ext"]},{f:"Fontdiner Swanky",v:["400"],s:["latin"]},{f:"Forum",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Fragment Mono",v:["400","400i"],s:["cyrillic-ext","latin","latin-ext"]},{f:"Francois One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Frank Ruhl Libre",v:["300","400","500","600","700","800","900"],s:["hebrew","latin","latin-ext"]},{f:"Fraunces",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Freckle Face",v:["400"],s:["latin","latin-ext"]},{f:"Fredericka the Great",v:["400"],s:["latin","latin-ext"]},{f:"Fredoka",v:["300","400","500","600","700"],s:["hebrew","latin","latin-ext"]},{f:"Freehand",v:["400"],s:["khmer","latin"]},{f:"Freeman",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Fresca",v:["400"],s:["latin","latin-ext"]},{f:"Frijole",v:["400"],s:["latin"]},{f:"Fruktur",v:["400","400i"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Fugaz One",v:["400"],s:["latin"]},{f:"Fuggles",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Fuzzy Bubbles",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"GFS Didot",v:["400"],s:["greek"]},{f:"GFS Neohellenic",v:["400","400i","700","700i"],s:["greek"]},{f:"Gabarito",v:["400","500","600","700","800","900"],s:["latin","latin-ext"]},{f:"Gabriela",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Gaegu",v:["300","400","700"],s:["korean","latin"]},{f:"Gafata",v:["400"],s:["latin","latin-ext"]},{f:"Gajraj One",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Galada",v:["400"],s:["bengali","latin"]},{f:"Galdeano",v:["400"],s:["latin"]},{f:"Galindo",v:["400"],s:["latin","latin-ext"]},{f:"Gamja Flower",v:["400"],s:["korean","latin"]},{f:"Gantari",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Gasoek One",v:["400"],s:["korean","latin","latin-ext"]},{f:"Gayathri",v:["100","400","700"],s:["latin","malayalam"]},{f:"Gelasio",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Gemunu Libre",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","sinhala"]},{f:"Genos",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cherokee","latin","latin-ext","vietnamese"]},{f:"Gentium Book Plus",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Gentium Plus",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Geo",v:["400","400i"],s:["latin"]},{f:"Geologica",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Georama",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Geostar",v:["400"],s:["latin"]},{f:"Geostar Fill",v:["400"],s:["latin"]},{f:"Germania One",v:["400"],s:["latin"]},{f:"Gideon Roman",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Gidugu",v:["400"],s:["latin","telugu"]},{f:"Gilda Display",v:["400"],s:["latin","latin-ext"]},{f:"Girassol",v:["400"],s:["latin","latin-ext"]},{f:"Give You Glory",v:["400"],s:["latin"]},{f:"Glass Antiqua",v:["400"],s:["latin","latin-ext"]},{f:"Glegoo",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Gloock",v:["400"],s:["cyrillic-ext","latin","latin-ext"]},{f:"Gloria Hallelujah",v:["400"],s:["latin"]},{f:"Glory",v:["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Gluten",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Goblin One",v:["400"],s:["latin"]},{f:"Gochi Hand",v:["400"],s:["latin"]},{f:"Goldman",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Golos Text",v:["400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Gorditas",v:["400","700"],s:["latin"]},{f:"Gothic A1",v:["100","200","300","400","500","600","700","800","900"],s:["korean","latin"]},{f:"Gotu",v:["400"],s:["devanagari","latin","latin-ext","vietnamese"]},{f:"Goudy Bookletter 1911",v:["400"],s:["latin"]},{f:"Gowun Batang",v:["400","700"],s:["korean","latin","latin-ext","vietnamese"]},{f:"Gowun Dodum",v:["400"],s:["korean","latin","latin-ext","vietnamese"]},{f:"Graduate",v:["400"],s:["latin"]},{f:"Grand Hotel",v:["400"],s:["latin","latin-ext"]},{f:"Grandiflora One",v:["400"],s:["korean","latin","latin-ext"]},{f:"Grandstander",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Grape Nuts",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Gravitas One",v:["400"],s:["latin"]},{f:"Great Vibes",v:["400"],s:["cyrillic","cyrillic-ext","greek-ext","latin","latin-ext","vietnamese"]},{f:"Grechen Fuemen",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Grenze",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Grenze Gotisch",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Grey Qo",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Griffy",v:["400"],s:["latin","latin-ext"]},{f:"Gruppo",v:["400"],s:["latin","latin-ext"]},{f:"Gudea",v:["400","400i","700"],s:["latin","latin-ext"]},{f:"Gugi",v:["400"],s:["korean","latin"]},{f:"Gulzar",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Gupter",v:["400","500","700"],s:["latin"]},{f:"Gurajada",v:["400"],s:["latin","telugu"]},{f:"Gwendolyn",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Habibi",v:["400"],s:["latin","latin-ext"]},{f:"Hachi Maru Pop",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Hahmlet",v:["100","200","300","400","500","600","700","800","900"],s:["korean","latin","latin-ext","vietnamese"]},{f:"Halant",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Hammersmith One",v:["400"],s:["latin","latin-ext"]},{f:"Hanalei",v:["400"],s:["latin","latin-ext"]},{f:"Hanalei Fill",v:["400"],s:["latin","latin-ext"]},{f:"Handjet",v:["100","200","300","400","500","600","700","800","900"],s:["arabic","armenian","cyrillic","cyrillic-ext","greek","hebrew","latin","latin-ext","vietnamese"]},{f:"Handlee",v:["400"],s:["latin"]},{f:"Hanken Grotesk",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Hanuman",v:["100","300","400","700","900"],s:["khmer","latin"]},{f:"Happy Monkey",v:["400"],s:["latin","latin-ext"]},{f:"Harmattan",v:["400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Headland One",v:["400"],s:["latin","latin-ext"]},{f:"Hedvig Letters Sans",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Hedvig Letters Serif",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Heebo",v:["100","200","300","400","500","600","700","800","900"],s:["hebrew","latin","latin-ext","math","symbols"]},{f:"Henny Penny",v:["400"],s:["latin"]},{f:"Hepta Slab",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Herr Von Muellerhoff",v:["400"],s:["latin","latin-ext"]},{f:"Hi Melody",v:["400"],s:["korean","latin"]},{f:"Hina Mincho",v:["400"],s:["cyrillic","japanese","latin","latin-ext","vietnamese"]},{f:"Hind",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Hind Guntur",v:["300","400","500","600","700"],s:["latin","latin-ext","telugu"]},{f:"Hind Madurai",v:["300","400","500","600","700"],s:["latin","latin-ext","tamil"]},{f:"Hind Siliguri",v:["300","400","500","600","700"],s:["bengali","latin","latin-ext"]},{f:"Hind Vadodara",v:["300","400","500","600","700"],s:["gujarati","latin","latin-ext"]},{f:"Holtwood One SC",v:["400"],s:["latin"]},{f:"Homemade Apple",v:["400"],s:["latin"]},{f:"Homenaje",v:["400"],s:["latin"]},{f:"Honk",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Hubballi",v:["400"],s:["kannada","latin","latin-ext"]},{f:"Hurricane",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"IBM Plex Mono",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"IBM Plex Sans",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"IBM Plex Sans Arabic",v:["100","200","300","400","500","600","700"],s:["arabic","cyrillic-ext","latin","latin-ext"]},{f:"IBM Plex Sans Condensed",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"IBM Plex Sans Devanagari",v:["100","200","300","400","500","600","700"],s:["cyrillic-ext","devanagari","latin","latin-ext"]},{f:"IBM Plex Sans Hebrew",v:["100","200","300","400","500","600","700"],s:["cyrillic-ext","hebrew","latin","latin-ext"]},{f:"IBM Plex Sans JP",v:["100","200","300","400","500","600","700"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"IBM Plex Sans KR",v:["100","200","300","400","500","600","700"],s:["korean","latin","latin-ext"]},{f:"IBM Plex Sans Thai",v:["100","200","300","400","500","600","700"],s:["cyrillic-ext","latin","latin-ext","thai"]},{f:"IBM Plex Sans Thai Looped",v:["100","200","300","400","500","600","700"],s:["cyrillic-ext","latin","latin-ext","thai"]},{f:"IBM Plex Serif",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"IM Fell DW Pica",v:["400","400i"],s:["latin"]},{f:"IM Fell DW Pica SC",v:["400"],s:["latin"]},{f:"IM Fell Double Pica",v:["400","400i"],s:["latin"]},{f:"IM Fell Double Pica SC",v:["400"],s:["latin"]},{f:"IM Fell English",v:["400","400i"],s:["latin"]},{f:"IM Fell English SC",v:["400"],s:["latin"]},{f:"IM Fell French Canon",v:["400","400i"],s:["latin"]},{f:"IM Fell French Canon SC",v:["400"],s:["latin"]},{f:"IM Fell Great Primer",v:["400","400i"],s:["latin"]},{f:"IM Fell Great Primer SC",v:["400"],s:["latin"]},{f:"Ibarra Real Nova",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Iceberg",v:["400"],s:["latin"]},{f:"Iceland",v:["400"],s:["latin"]},{f:"Imbue",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Imperial Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Imprima",v:["400"],s:["latin","latin-ext"]},{f:"Inclusive Sans",v:["400","400i"],s:["latin","latin-ext","vietnamese"]},{f:"Inconsolata",v:["200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Inder",v:["400"],s:["latin","latin-ext"]},{f:"Indie Flower",v:["400"],s:["latin"]},{f:"Ingrid Darling",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Inika",v:["400","700"],s:["latin","latin-ext"]},{f:"Inknut Antiqua",v:["300","400","500","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Inria Sans",v:["300","300i","400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Inria Serif",v:["300","300i","400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Inspiration",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Instrument Sans",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Instrument Serif",v:["400","400i"],s:["latin","latin-ext"]},{f:"Inter",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Inter Tight",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Irish Grover",v:["400"],s:["latin"]},{f:"Island Moments",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Istok Web",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Italiana",v:["400"],s:["latin"]},{f:"Italianno",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Itim",v:["400"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Jacquard 12",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Jacquard 12 Charted",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Jacquard 24",v:["400"],s:["latin","latin-ext"]},{f:"Jacquard 24 Charted",v:["400"],s:["latin","latin-ext"]},{f:"Jacquarda Bastarda 9",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Jacquarda Bastarda 9 Charted",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Jacques Francois",v:["400"],s:["latin"]},{f:"Jacques Francois Shadow",v:["400"],s:["latin"]},{f:"Jaini",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Jaini Purva",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Jaldi",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Jaro",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Jersey 10",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 10 Charted",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 15",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 15 Charted",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 20",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 20 Charted",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 25",v:["400"],s:["latin","latin-ext"]},{f:"Jersey 25 Charted",v:["400"],s:["latin","latin-ext"]},{f:"JetBrains Mono",v:["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Jim Nightshade",v:["400"],s:["latin","latin-ext"]},{f:"Joan",v:["400"],s:["latin","latin-ext"]},{f:"Jockey One",v:["400"],s:["latin","latin-ext"]},{f:"Jolly Lodger",v:["400"],s:["latin","latin-ext"]},{f:"Jomhuria",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Jomolhari",v:["400"],s:["latin","tibetan"]},{f:"Josefin Sans",v:["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Josefin Slab",v:["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],s:["latin"]},{f:"Jost",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","latin","latin-ext"]},{f:"Joti One",v:["400"],s:["latin","latin-ext"]},{f:"Jua",v:["400"],s:["korean","latin"]},{f:"Judson",v:["400","400i","700"],s:["latin","latin-ext","vietnamese"]},{f:"Julee",v:["400"],s:["latin","latin-ext"]},{f:"Julius Sans One",v:["400"],s:["latin","latin-ext"]},{f:"Junge",v:["400"],s:["latin"]},{f:"Jura",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","greek","greek-ext","kayah-li","latin","latin-ext","vietnamese"]},{f:"Just Another Hand",v:["400"],s:["latin"]},{f:"Just Me Again Down Here",v:["400"],s:["latin","latin-ext"]},{f:"K2D",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Kablammo",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Kadwa",v:["400","700"],s:["devanagari","latin"]},{f:"Kaisei Decol",v:["400","500","700"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kaisei HarunoUmi",v:["400","500","700"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kaisei Opti",v:["400","500","700"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kaisei Tokumin",v:["400","500","700","800"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kalam",v:["300","400","700"],s:["devanagari","latin","latin-ext"]},{f:"Kalnia",v:["100","200","300","400","500","600","700"],s:["latin","latin-ext","math"]},{f:"Kameron",v:["400","500","600","700"],s:["latin","latin-ext"]},{f:"Kanit",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Kantumruy Pro",v:["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],s:["khmer","latin","latin-ext"]},{f:"Karantina",v:["300","400","700"],s:["hebrew","latin","latin-ext"]},{f:"Karla",v:["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext"]},{f:"Karma",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Katibeh",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Kaushan Script",v:["400"],s:["latin","latin-ext"]},{f:"Kavivanar",v:["400"],s:["latin","latin-ext","tamil"]},{f:"Kavoon",v:["400"],s:["latin","latin-ext"]},{f:"Kay Pho Du",v:["400","500","600","700"],s:["kayah-li","latin","latin-ext"]},{f:"Kdam Thmor Pro",v:["400"],s:["khmer","latin","latin-ext"]},{f:"Keania One",v:["400"],s:["latin","latin-ext"]},{f:"Kelly Slab",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Kenia",v:["400"],s:["latin"]},{f:"Khand",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Khmer",v:["400"],s:["khmer"]},{f:"Khula",v:["300","400","600","700","800"],s:["devanagari","latin","latin-ext"]},{f:"Kings",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Kirang Haerang",v:["400"],s:["korean","latin"]},{f:"Kite One",v:["400"],s:["latin","latin-ext"]},{f:"Kiwi Maru",v:["300","400","500"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Klee One",v:["400","600"],s:["cyrillic","greek-ext","japanese","latin","latin-ext"]},{f:"Knewave",v:["400"],s:["latin","latin-ext"]},{f:"KoHo",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Kodchasan",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Kode Mono",v:["400","500","600","700"],s:["latin","latin-ext"]},{f:"Koh Santepheap",v:["100","300","400","700","900"],s:["khmer","latin"]},{f:"Kolker Brush",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Konkhmer Sleokchher",v:["400"],s:["khmer","latin","latin-ext"]},{f:"Kosugi",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kosugi Maru",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Kotta One",v:["400"],s:["latin","latin-ext"]},{f:"Koulen",v:["400"],s:["khmer","latin"]},{f:"Kranky",v:["400"],s:["latin"]},{f:"Kreon",v:["300","400","500","600","700"],s:["latin","latin-ext"]},{f:"Kristi",v:["400"],s:["latin"]},{f:"Krona One",v:["400"],s:["latin","latin-ext"]},{f:"Krub",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Kufam",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Kulim Park",v:["200","200i","300","300i","400","400i","600","600i","700","700i"],s:["latin","latin-ext"]},{f:"Kumar One",v:["400"],s:["gujarati","latin","latin-ext"]},{f:"Kumar One Outline",v:["400"],s:["gujarati","latin","latin-ext"]},{f:"Kumbh Sans",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","math","symbols"]},{f:"Kurale",v:["400"],s:["cyrillic","cyrillic-ext","devanagari","latin","latin-ext"]},{f:"La Belle Aurore",v:["400"],s:["latin"]},{f:"Labrada",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Lacquer",v:["400"],s:["latin"]},{f:"Laila",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Lakki Reddy",v:["400"],s:["latin","telugu"]},{f:"Lalezar",v:["400"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Lancelot",v:["400"],s:["latin","latin-ext"]},{f:"Langar",v:["400"],s:["gurmukhi","latin","latin-ext"]},{f:"Lateef",v:["200","300","400","500","600","700","800"],s:["arabic","latin","latin-ext"]},{f:"Lato",v:["100","100i","300","300i","400","400i","700","700i","900","900i"],s:["latin","latin-ext"]},{f:"Lavishly Yours",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"League Gothic",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"League Script",v:["400"],s:["latin"]},{f:"League Spartan",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Leckerli One",v:["400"],s:["latin"]},{f:"Ledger",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Lekton",v:["400","400i","700"],s:["latin","latin-ext"]},{f:"Lemon",v:["400"],s:["latin","latin-ext"]},{f:"Lemonada",v:["300","400","500","600","700"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Lexend",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Deca",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Exa",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Giga",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Mega",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Peta",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Tera",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Lexend Zetta",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Libre Barcode 128",v:["400"],s:["latin"]},{f:"Libre Barcode 128 Text",v:["400"],s:["latin"]},{f:"Libre Barcode 39",v:["400"],s:["latin"]},{f:"Libre Barcode 39 Extended",v:["400"],s:["latin"]},{f:"Libre Barcode 39 Extended Text",v:["400"],s:["latin"]},{f:"Libre Barcode 39 Text",v:["400"],s:["latin"]},{f:"Libre Barcode EAN13 Text",v:["400"],s:["latin"]},{f:"Libre Baskerville",v:["400","400i","700"],s:["latin","latin-ext"]},{f:"Libre Bodoni",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Libre Caslon Display",v:["400"],s:["latin","latin-ext"]},{f:"Libre Caslon Text",v:["400","400i","700"],s:["latin","latin-ext"]},{f:"Libre Franklin",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Licorice",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Life Savers",v:["400","700","800"],s:["latin","latin-ext"]},{f:"Lilita One",v:["400"],s:["latin","latin-ext"]},{f:"Lily Script One",v:["400"],s:["latin","latin-ext"]},{f:"Limelight",v:["400"],s:["latin","latin-ext"]},{f:"Linden Hill",v:["400","400i"],s:["latin"]},{f:"Linefont",v:["100","200","300","400","500","600","700","800","900"],s:["latin"]},{f:"Lisu Bosa",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","lisu"]},{f:"Literata",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Liu Jian Mao Cao",v:["400"],s:["chinese-simplified","latin"]},{f:"Livvic",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","900","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Lobster",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Lobster Two",v:["400","400i","700","700i"],s:["latin"]},{f:"Londrina Outline",v:["400"],s:["latin"]},{f:"Londrina Shadow",v:["400"],s:["latin"]},{f:"Londrina Sketch",v:["400"],s:["latin"]},{f:"Londrina Solid",v:["100","300","400","900"],s:["latin"]},{f:"Long Cang",v:["400"],s:["chinese-simplified","latin"]},{f:"Lora",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{f:"Love Light",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Love Ya Like A Sister",v:["400"],s:["latin","latin-ext"]},{f:"Loved by the King",v:["400"],s:["latin"]},{f:"Lovers Quarrel",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Luckiest Guy",v:["400"],s:["latin"]},{f:"Lugrasimo",v:["400"],s:["latin","latin-ext"]},{f:"Lumanosimo",v:["400"],s:["latin","latin-ext"]},{f:"Lunasima",v:["400","700"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{f:"Lusitana",v:["400","700"],s:["latin"]},{f:"Lustria",v:["400"],s:["latin"]},{f:"Luxurious Roman",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Luxurious Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"M PLUS 1",v:["100","200","300","400","500","600","700","800","900"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"M PLUS 1 Code",v:["100","200","300","400","500","600","700"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"M PLUS 1p",v:["100","300","400","500","700","800","900"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","japanese","latin","latin-ext","vietnamese"]},{f:"M PLUS 2",v:["100","200","300","400","500","600","700","800","900"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"M PLUS Code Latin",v:["100","200","300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"M PLUS Rounded 1c",v:["100","300","400","500","700","800","900"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","japanese","latin","latin-ext","vietnamese"]},{f:"Ma Shan Zheng",v:["400"],s:["chinese-simplified","latin"]},{f:"Macondo",v:["400"],s:["latin"]},{f:"Macondo Swash Caps",v:["400"],s:["latin"]},{f:"Mada",v:["200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext"]},{f:"Madimi One",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Magra",v:["400","700"],s:["latin","latin-ext"]},{f:"Maiden Orange",v:["400"],s:["latin"]},{f:"Maitree",v:["200","300","400","500","600","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Major Mono Display",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Mako",v:["400"],s:["latin","latin-ext"]},{f:"Mali",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Mallanna",v:["400"],s:["latin","telugu"]},{f:"Mandali",v:["400"],s:["latin","telugu"]},{f:"Manjari",v:["100","400","700"],s:["latin","latin-ext","malayalam"]},{f:"Manrope",v:["200","300","400","500","600","700","800"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Mansalva",v:["400"],s:["greek","latin","latin-ext","vietnamese"]},{f:"Manuale",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Marcellus",v:["400"],s:["latin","latin-ext"]},{f:"Marcellus SC",v:["400"],s:["latin","latin-ext"]},{f:"Marck Script",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Margarine",v:["400"],s:["latin","latin-ext"]},{f:"Marhey",v:["300","400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Markazi Text",v:["400","500","600","700"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Marko One",v:["400"],s:["latin"]},{f:"Marmelad",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Martel",v:["200","300","400","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Martel Sans",v:["200","300","400","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Martian Mono",v:["100","200","300","400","500","600","700","800"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Marvel",v:["400","400i","700","700i"],s:["latin"]},{f:"Mate",v:["400","400i"],s:["latin","latin-ext"]},{f:"Mate SC",v:["400"],s:["latin","latin-ext"]},{f:"Material Icons",v:["400"],s:["latin"]},{f:"Material Icons Outlined",v:["400"],s:["latin"]},{f:"Material Icons Round",v:["400"],s:["latin"]},{f:"Material Icons Sharp",v:["400"],s:["latin"]},{f:"Material Icons Two Tone",v:["400"],s:["latin"]},{f:"Material Symbols Outlined",v:["100","200","300","400","500","600","700"],s:["latin"]},{f:"Material Symbols Rounded",v:["100","200","300","400","500","600","700"],s:["latin"]},{f:"Material Symbols Sharp",v:["100","200","300","400","500","600","700"],s:["latin"]},{f:"Maven Pro",v:["400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"McLaren",v:["400"],s:["latin","latin-ext"]},{f:"Mea Culpa",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Meddon",v:["400"],s:["latin"]},{f:"MedievalSharp",v:["400"],s:["latin","latin-ext"]},{f:"Medula One",v:["400"],s:["latin"]},{f:"Meera Inimai",v:["400"],s:["latin","tamil"]},{f:"Megrim",v:["400"],s:["latin"]},{f:"Meie Script",v:["400"],s:["latin","latin-ext"]},{f:"Meow Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Merienda",v:["300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Merriweather",v:["300","300i","400","400i","700","700i","900","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Merriweather Sans",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Metal",v:["400"],s:["khmer","latin"]},{f:"Metal Mania",v:["400"],s:["latin","latin-ext"]},{f:"Metamorphous",v:["400"],s:["latin","latin-ext"]},{f:"Metrophobic",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Michroma",v:["400"],s:["latin","latin-ext"]},{f:"Micro 5",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Micro 5 Charted",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Milonga",v:["400"],s:["latin","latin-ext"]},{f:"Miltonian",v:["400"],s:["latin"]},{f:"Miltonian Tattoo",v:["400"],s:["latin"]},{f:"Mina",v:["400","700"],s:["bengali","latin","latin-ext"]},{f:"Mingzat",v:["400"],s:["latin","latin-ext","lepcha"]},{f:"Miniver",v:["400"],s:["latin"]},{f:"Miriam Libre",v:["400","700"],s:["hebrew","latin","latin-ext"]},{f:"Mirza",v:["400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Miss Fajardose",v:["400"],s:["latin","latin-ext"]},{f:"Mitr",v:["200","300","400","500","600","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Mochiy Pop One",v:["400"],s:["japanese","latin"]},{f:"Mochiy Pop P One",v:["400"],s:["japanese","latin"]},{f:"Modak",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Modern Antiqua",v:["400"],s:["latin","latin-ext"]},{f:"Mogra",v:["400"],s:["gujarati","latin","latin-ext"]},{f:"Mohave",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Moirai One",v:["400"],s:["korean","latin","latin-ext"]},{f:"Molengo",v:["400"],s:["latin","latin-ext"]},{f:"Molle",v:["400i"],s:["latin","latin-ext"]},{f:"Monda",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Monofett",v:["400"],s:["latin","latin-ext"]},{f:"Monomaniac One",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Monoton",v:["400"],s:["latin"]},{f:"Monsieur La Doulaise",v:["400"],s:["latin","latin-ext"]},{f:"Montaga",v:["400"],s:["latin"]},{f:"Montagu Slab",v:["100","200","300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"MonteCarlo",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Montez",v:["400"],s:["latin"]},{f:"Montserrat",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Montserrat Alternates",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Montserrat Subrayada",v:["400","700"],s:["latin"]},{f:"Moo Lah Lah",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Mooli",v:["400"],s:["latin","latin-ext"]},{f:"Moon Dance",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Moul",v:["400"],s:["khmer","latin"]},{f:"Moulpali",v:["400"],s:["khmer","latin"]},{f:"Mountains of Christmas",v:["400","700"],s:["latin"]},{f:"Mouse Memoirs",v:["400"],s:["latin","latin-ext"]},{f:"Mr Bedfort",v:["400"],s:["latin","latin-ext"]},{f:"Mr Dafoe",v:["400"],s:["latin","latin-ext"]},{f:"Mr De Haviland",v:["400"],s:["latin","latin-ext"]},{f:"Mrs Saint Delafield",v:["400"],s:["latin","latin-ext"]},{f:"Mrs Sheppards",v:["400"],s:["latin","latin-ext"]},{f:"Ms Madi",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Mukta",v:["200","300","400","500","600","700","800"],s:["devanagari","latin","latin-ext"]},{f:"Mukta Mahee",v:["200","300","400","500","600","700","800"],s:["gurmukhi","latin","latin-ext"]},{f:"Mukta Malar",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","tamil"]},{f:"Mukta Vaani",v:["200","300","400","500","600","700","800"],s:["gujarati","latin","latin-ext"]},{f:"Mulish",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Murecho",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","japanese","latin","latin-ext"]},{f:"MuseoModerno",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"My Soul",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Mynerve",v:["400"],s:["greek","latin","latin-ext","vietnamese"]},{f:"Mystery Quest",v:["400"],s:["latin","latin-ext"]},{f:"NTR",v:["400"],s:["latin","telugu"]},{f:"Nabla",v:["400"],s:["cyrillic-ext","latin","latin-ext","math","vietnamese"]},{f:"Namdhinggo",v:["400","500","600","700","800"],s:["latin","latin-ext","limbu"]},{f:"Nanum Brush Script",v:["400"],s:["korean","latin"]},{f:"Nanum Gothic",v:["400","700","800"],s:["korean","latin"]},{f:"Nanum Gothic Coding",v:["400","700"],s:["korean","latin"]},{f:"Nanum Myeongjo",v:["400","700","800"],s:["korean","latin"]},{f:"Nanum Pen Script",v:["400"],s:["korean","latin"]},{f:"Narnoor",v:["400","500","600","700","800"],s:["gunjala-gondi","latin","latin-ext","math","symbols"]},{f:"Neonderthaw",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Nerko One",v:["400"],s:["latin","latin-ext"]},{f:"Neucha",v:["400"],s:["cyrillic","latin"]},{f:"Neuton",v:["200","300","400","400i","700","800"],s:["latin","latin-ext"]},{f:"New Rocker",v:["400"],s:["latin","latin-ext"]},{f:"New Tegomin",v:["400"],s:["japanese","latin","latin-ext"]},{f:"News Cycle",v:["400","700"],s:["latin","latin-ext"]},{f:"Newsreader",v:["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Niconne",v:["400"],s:["latin","latin-ext"]},{f:"Niramit",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Nixie One",v:["400"],s:["latin"]},{f:"Nobile",v:["400","400i","500","500i","700","700i"],s:["latin","latin-ext"]},{f:"Nokora",v:["100","300","400","700","900"],s:["khmer","latin"]},{f:"Norican",v:["400"],s:["latin","latin-ext"]},{f:"Nosifer",v:["400"],s:["latin","latin-ext"]},{f:"Notable",v:["400"],s:["latin"]},{f:"Nothing You Could Do",v:["400"],s:["latin"]},{f:"Noticia Text",v:["400","400i","700","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Noto Color Emoji",v:["400"],s:["emoji"]},{f:"Noto Emoji",v:["300","400","500","600","700"],s:["emoji"]},{f:"Noto Kufi Arabic",v:["100","200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext","math","symbols"]},{f:"Noto Music",v:["400"],s:["latin","latin-ext","music"]},{f:"Noto Naskh Arabic",v:["400","500","600","700"],s:["arabic","latin","latin-ext","math","symbols"]},{f:"Noto Nastaliq Urdu",v:["400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Noto Rashi Hebrew",v:["100","200","300","400","500","600","700","800","900"],s:["hebrew","latin","latin-ext"]},{f:"Noto Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","devanagari","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Noto Sans Adlam",v:["400","500","600","700"],s:["adlam","latin","latin-ext"]},{f:"Noto Sans Adlam Unjoined",v:["400","500","600","700"],s:["adlam","latin","latin-ext"]},{f:"Noto Sans Anatolian Hieroglyphs",v:["400"],s:["anatolian-hieroglyphs","latin","latin-ext"]},{f:"Noto Sans Arabic",v:["100","200","300","400","500","600","700","800","900"],s:["arabic"]},{f:"Noto Sans Armenian",v:["100","200","300","400","500","600","700","800","900"],s:["armenian","latin","latin-ext"]},{f:"Noto Sans Avestan",v:["400"],s:["avestan","latin","latin-ext"]},{f:"Noto Sans Balinese",v:["400","500","600","700"],s:["balinese","latin","latin-ext"]},{f:"Noto Sans Bamum",v:["400","500","600","700"],s:["bamum","latin","latin-ext"]},{f:"Noto Sans Bassa Vah",v:["400","500","600","700"],s:["bassa-vah","latin","latin-ext"]},{f:"Noto Sans Batak",v:["400"],s:["batak","latin","latin-ext"]},{f:"Noto Sans Bengali",v:["100","200","300","400","500","600","700","800","900"],s:["bengali","latin","latin-ext"]},{f:"Noto Sans Bhaiksuki",v:["400"],s:["bhaiksuki","latin","latin-ext"]},{f:"Noto Sans Brahmi",v:["400"],s:["brahmi","latin","latin-ext","math","symbols"]},{f:"Noto Sans Buginese",v:["400"],s:["buginese","latin","latin-ext"]},{f:"Noto Sans Buhid",v:["400"],s:["buhid","latin","latin-ext"]},{f:"Noto Sans Canadian Aboriginal",v:["100","200","300","400","500","600","700","800","900"],s:["canadian-aboriginal","latin","latin-ext","math","symbols"]},{f:"Noto Sans Carian",v:["400"],s:["carian","latin","latin-ext"]},{f:"Noto Sans Caucasian Albanian",v:["400"],s:["caucasian-albanian","latin","latin-ext"]},{f:"Noto Sans Chakma",v:["400"],s:["chakma","latin","latin-ext"]},{f:"Noto Sans Cham",v:["100","200","300","400","500","600","700","800","900"],s:["cham","latin","latin-ext"]},{f:"Noto Sans Cherokee",v:["100","200","300","400","500","600","700","800","900"],s:["cherokee","latin","latin-ext"]},{f:"Noto Sans Chorasmian",v:["400"],s:["chorasmian","latin","latin-ext","math","symbols"]},{f:"Noto Sans Coptic",v:["400"],s:["coptic","latin","latin-ext"]},{f:"Noto Sans Cuneiform",v:["400"],s:["cuneiform","latin","latin-ext"]},{f:"Noto Sans Cypriot",v:["400"],s:["cypriot","latin","latin-ext"]},{f:"Noto Sans Cypro Minoan",v:["400"],s:["cypro-minoan","latin","latin-ext"]},{f:"Noto Sans Deseret",v:["400"],s:["deseret","latin","latin-ext"]},{f:"Noto Sans Devanagari",v:["100","200","300","400","500","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Noto Sans Display",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Noto Sans Duployan",v:["400","700"],s:["duployan","latin","latin-ext"]},{f:"Noto Sans Egyptian Hieroglyphs",v:["400"],s:["egyptian-hieroglyphs","latin","latin-ext"]},{f:"Noto Sans Elbasan",v:["400"],s:["elbasan","latin","latin-ext"]},{f:"Noto Sans Elymaic",v:["400"],s:["elymaic","latin","latin-ext"]},{f:"Noto Sans Ethiopic",v:["100","200","300","400","500","600","700","800","900"],s:["ethiopic","latin","latin-ext"]},{f:"Noto Sans Georgian",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic-ext","georgian","greek-ext","latin","latin-ext","math","symbols"]},{f:"Noto Sans Glagolitic",v:["400"],s:["cyrillic-ext","glagolitic","latin","latin-ext","math","symbols"]},{f:"Noto Sans Gothic",v:["400"],s:["gothic","latin","latin-ext"]},{f:"Noto Sans Grantha",v:["400"],s:["grantha","latin","latin-ext"]},{f:"Noto Sans Gujarati",v:["100","200","300","400","500","600","700","800","900"],s:["gujarati","latin","latin-ext","math","symbols"]},{f:"Noto Sans Gunjala Gondi",v:["400","500","600","700"],s:["gunjala-gondi","latin","latin-ext"]},{f:"Noto Sans Gurmukhi",v:["100","200","300","400","500","600","700","800","900"],s:["gurmukhi","latin","latin-ext"]},{f:"Noto Sans HK",v:["100","200","300","400","500","600","700","800","900"],s:["chinese-hongkong","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Sans Hanifi Rohingya",v:["400","500","600","700"],s:["hanifi-rohingya","latin","latin-ext"]},{f:"Noto Sans Hanunoo",v:["400"],s:["hanunoo","latin","latin-ext"]},{f:"Noto Sans Hatran",v:["400"],s:["hatran","latin","latin-ext"]},{f:"Noto Sans Hebrew",v:["100","200","300","400","500","600","700","800","900"],s:["hebrew","latin","latin-ext"]},{f:"Noto Sans Imperial Aramaic",v:["400"],s:["imperial-aramaic","latin","latin-ext"]},{f:"Noto Sans Indic Siyaq Numbers",v:["400"],s:["indic-siyaq-numbers","latin","latin-ext"]},{f:"Noto Sans Inscriptional Pahlavi",v:["400"],s:["inscriptional-pahlavi","latin","latin-ext"]},{f:"Noto Sans Inscriptional Parthian",v:["400"],s:["inscriptional-parthian","latin","latin-ext"]},{f:"Noto Sans JP",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","japanese","latin","latin-ext","vietnamese"]},{f:"Noto Sans Javanese",v:["400","500","600","700"],s:["javanese","latin","latin-ext"]},{f:"Noto Sans KR",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","korean","latin","latin-ext","vietnamese"]},{f:"Noto Sans Kaithi",v:["400"],s:["kaithi","latin","latin-ext"]},{f:"Noto Sans Kannada",v:["100","200","300","400","500","600","700","800","900"],s:["kannada","latin","latin-ext"]},{f:"Noto Sans Kawi",v:["400","500","600","700"],s:["kawi","latin","latin-ext"]},{f:"Noto Sans Kayah Li",v:["400","500","600","700"],s:["kayah-li","latin","latin-ext"]},{f:"Noto Sans Kharoshthi",v:["400"],s:["kharoshthi","latin","latin-ext"]},{f:"Noto Sans Khmer",v:["100","200","300","400","500","600","700","800","900"],s:["khmer","latin","latin-ext"]},{f:"Noto Sans Khojki",v:["400"],s:["khojki","latin","latin-ext"]},{f:"Noto Sans Khudawadi",v:["400"],s:["khudawadi","latin","latin-ext"]},{f:"Noto Sans Lao",v:["100","200","300","400","500","600","700","800","900"],s:["lao","latin","latin-ext"]},{f:"Noto Sans Lao Looped",v:["100","200","300","400","500","600","700","800","900"],s:["lao","latin","latin-ext"]},{f:"Noto Sans Lepcha",v:["400"],s:["latin","latin-ext","lepcha"]},{f:"Noto Sans Limbu",v:["400"],s:["latin","latin-ext","limbu"]},{f:"Noto Sans Linear A",v:["400"],s:["latin","latin-ext","linear-a"]},{f:"Noto Sans Linear B",v:["400"],s:["latin","latin-ext","linear-b"]},{f:"Noto Sans Lisu",v:["400","500","600","700"],s:["latin","latin-ext","lisu"]},{f:"Noto Sans Lycian",v:["400"],s:["lycian"]},{f:"Noto Sans Lydian",v:["400"],s:["latin","latin-ext","lydian"]},{f:"Noto Sans Mahajani",v:["400"],s:["latin","latin-ext","mahajani"]},{f:"Noto Sans Malayalam",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","malayalam"]},{f:"Noto Sans Mandaic",v:["400"],s:["latin","latin-ext","mandaic"]},{f:"Noto Sans Manichaean",v:["400"],s:["latin","latin-ext","manichaean"]},{f:"Noto Sans Marchen",v:["400"],s:["latin","latin-ext","marchen"]},{f:"Noto Sans Masaram Gondi",v:["400"],s:["latin","latin-ext","masaram-gondi"]},{f:"Noto Sans Math",v:["400"],s:["math"]},{f:"Noto Sans Mayan Numerals",v:["400"],s:["latin","latin-ext","mayan-numerals"]},{f:"Noto Sans Medefaidrin",v:["400","500","600","700"],s:["latin","latin-ext","medefaidrin"]},{f:"Noto Sans Meetei Mayek",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","meetei-mayek"]},{f:"Noto Sans Mende Kikakui",v:["400"],s:["latin","latin-ext","mende-kikakui"]},{f:"Noto Sans Meroitic",v:["400"],s:["latin","latin-ext","meroitic","meroitic-cursive","meroitic-hieroglyphs"]},{f:"Noto Sans Miao",v:["400"],s:["latin","latin-ext","miao"]},{f:"Noto Sans Modi",v:["400"],s:["latin","latin-ext","modi"]},{f:"Noto Sans Mongolian",v:["400"],s:["latin","latin-ext","math","mongolian","symbols"]},{f:"Noto Sans Mono",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Noto Sans Mro",v:["400"],s:["latin","latin-ext","mro"]},{f:"Noto Sans Multani",v:["400"],s:["latin","latin-ext","multani"]},{f:"Noto Sans Myanmar",v:["100","200","300","400","500","600","700","800","900"],s:["myanmar"]},{f:"Noto Sans NKo",v:["400"],s:["latin","latin-ext","nko"]},{f:"Noto Sans NKo Unjoined",v:["400","500","600","700"],s:["latin","latin-ext","nko"]},{f:"Noto Sans Nabataean",v:["400"],s:["latin","latin-ext","nabataean"]},{f:"Noto Sans Nag Mundari",v:["400","500","600","700"],s:["latin","latin-ext","nag-mundari"]},{f:"Noto Sans Nandinagari",v:["400"],s:["latin","latin-ext","nandinagari"]},{f:"Noto Sans New Tai Lue",v:["400","500","600","700"],s:["latin","latin-ext","new-tai-lue"]},{f:"Noto Sans Newa",v:["400"],s:["latin","latin-ext","newa"]},{f:"Noto Sans Nushu",v:["400"],s:["latin","latin-ext","nushu"]},{f:"Noto Sans Ogham",v:["400"],s:["latin","latin-ext","ogham"]},{f:"Noto Sans Ol Chiki",v:["400","500","600","700"],s:["latin","latin-ext","ol-chiki"]},{f:"Noto Sans Old Hungarian",v:["400"],s:["latin","latin-ext","old-hungarian"]},{f:"Noto Sans Old Italic",v:["400"],s:["latin","latin-ext","old-italic"]},{f:"Noto Sans Old North Arabian",v:["400"],s:["latin","latin-ext","old-north-arabian"]},{f:"Noto Sans Old Permic",v:["400"],s:["cyrillic-ext","latin","latin-ext","old-permic"]},{f:"Noto Sans Old Persian",v:["400"],s:["latin","latin-ext","old-persian"]},{f:"Noto Sans Old Sogdian",v:["400"],s:["latin","latin-ext","old-sogdian"]},{f:"Noto Sans Old South Arabian",v:["400"],s:["latin","latin-ext","old-south-arabian"]},{f:"Noto Sans Old Turkic",v:["400"],s:["latin","latin-ext","old-turkic"]},{f:"Noto Sans Oriya",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","oriya"]},{f:"Noto Sans Osage",v:["400"],s:["latin","latin-ext","osage"]},{f:"Noto Sans Osmanya",v:["400"],s:["latin","latin-ext","osmanya"]},{f:"Noto Sans Pahawh Hmong",v:["400"],s:["latin","latin-ext","pahawh-hmong"]},{f:"Noto Sans Palmyrene",v:["400"],s:["latin","latin-ext","palmyrene"]},{f:"Noto Sans Pau Cin Hau",v:["400"],s:["latin","latin-ext","pau-cin-hau"]},{f:"Noto Sans Phags Pa",v:["400"],s:["phags-pa"]},{f:"Noto Sans Phoenician",v:["400"],s:["latin","latin-ext","phoenician"]},{f:"Noto Sans Psalter Pahlavi",v:["400"],s:["latin","latin-ext","psalter-pahlavi"]},{f:"Noto Sans Rejang",v:["400"],s:["latin","latin-ext","rejang"]},{f:"Noto Sans Runic",v:["400"],s:["latin","latin-ext","runic"]},{f:"Noto Sans SC",v:["100","200","300","400","500","600","700","800","900"],s:["chinese-simplified","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Sans Samaritan",v:["400"],s:["latin","latin-ext","samaritan"]},{f:"Noto Sans Saurashtra",v:["400"],s:["latin","latin-ext","saurashtra"]},{f:"Noto Sans Sharada",v:["400"],s:["latin","latin-ext","sharada"]},{f:"Noto Sans Shavian",v:["400"],s:["latin","latin-ext","shavian"]},{f:"Noto Sans Siddham",v:["400"],s:["latin","latin-ext","siddham"]},{f:"Noto Sans SignWriting",v:["400"],s:["latin","latin-ext","signwriting"]},{f:"Noto Sans Sinhala",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","sinhala"]},{f:"Noto Sans Sogdian",v:["400"],s:["latin","latin-ext","sogdian"]},{f:"Noto Sans Sora Sompeng",v:["400","500","600","700"],s:["latin","latin-ext","sora-sompeng"]},{f:"Noto Sans Soyombo",v:["400"],s:["latin","latin-ext","soyombo"]},{f:"Noto Sans Sundanese",v:["400","500","600","700"],s:["latin","latin-ext","sundanese"]},{f:"Noto Sans Syloti Nagri",v:["400"],s:["latin","latin-ext","syloti-nagri"]},{f:"Noto Sans Symbols",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","symbols"]},{f:"Noto Sans Symbols 2",v:["400"],s:["braille","latin","latin-ext","math","mayan-numerals","symbols"]},{f:"Noto Sans Syriac",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","syriac"]},{f:"Noto Sans Syriac Eastern",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","syriac"]},{f:"Noto Sans TC",v:["100","200","300","400","500","600","700","800","900"],s:["chinese-traditional","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Sans Tagalog",v:["400"],s:["latin","latin-ext","tagalog"]},{f:"Noto Sans Tagbanwa",v:["400"],s:["latin","latin-ext","tagbanwa"]},{f:"Noto Sans Tai Le",v:["400"],s:["latin","latin-ext","tai-le"]},{f:"Noto Sans Tai Tham",v:["400","500","600","700"],s:["latin","latin-ext","tai-tham"]},{f:"Noto Sans Tai Viet",v:["400"],s:["latin","latin-ext","tai-viet"]},{f:"Noto Sans Takri",v:["400"],s:["latin","latin-ext","takri"]},{f:"Noto Sans Tamil",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","tamil"]},{f:"Noto Sans Tamil Supplement",v:["400"],s:["latin","latin-ext","tamil-supplement"]},{f:"Noto Sans Tangsa",v:["400","500","600","700"],s:["latin","latin-ext","tangsa"]},{f:"Noto Sans Telugu",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","telugu"]},{f:"Noto Sans Thaana",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","thaana"]},{f:"Noto Sans Thai",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","thai"]},{f:"Noto Sans Thai Looped",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","thai"]},{f:"Noto Sans Tifinagh",v:["400"],s:["latin","latin-ext","tifinagh"]},{f:"Noto Sans Tirhuta",v:["400"],s:["latin","latin-ext","tirhuta"]},{f:"Noto Sans Ugaritic",v:["400"],s:["latin","latin-ext","ugaritic"]},{f:"Noto Sans Vai",v:["400"],s:["latin","latin-ext","vai"]},{f:"Noto Sans Vithkuqi",v:["400","500","600","700"],s:["latin","latin-ext","vithkuqi"]},{f:"Noto Sans Wancho",v:["400"],s:["latin","latin-ext","wancho"]},{f:"Noto Sans Warang Citi",v:["400"],s:["latin","latin-ext","warang-citi"]},{f:"Noto Sans Yi",v:["400"],s:["latin","latin-ext","yi"]},{f:"Noto Sans Zanabazar Square",v:["400"],s:["latin","latin-ext","zanabazar-square"]},{f:"Noto Serif",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Noto Serif Ahom",v:["400"],s:["ahom","latin","latin-ext"]},{f:"Noto Serif Armenian",v:["100","200","300","400","500","600","700","800","900"],s:["armenian","latin","latin-ext"]},{f:"Noto Serif Balinese",v:["400"],s:["balinese","latin","latin-ext"]},{f:"Noto Serif Bengali",v:["100","200","300","400","500","600","700","800","900"],s:["bengali","latin","latin-ext"]},{f:"Noto Serif Devanagari",v:["100","200","300","400","500","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Noto Serif Display",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Noto Serif Dogra",v:["400"],s:["dogra","latin","latin-ext"]},{f:"Noto Serif Ethiopic",v:["100","200","300","400","500","600","700","800","900"],s:["ethiopic","latin","latin-ext"]},{f:"Noto Serif Georgian",v:["100","200","300","400","500","600","700","800","900"],s:["georgian","latin","latin-ext"]},{f:"Noto Serif Grantha",v:["400"],s:["grantha","latin","latin-ext"]},{f:"Noto Serif Gujarati",v:["100","200","300","400","500","600","700","800","900"],s:["gujarati","latin","latin-ext","math","symbols"]},{f:"Noto Serif Gurmukhi",v:["100","200","300","400","500","600","700","800","900"],s:["gurmukhi","latin","latin-ext"]},{f:"Noto Serif HK",v:["200","300","400","500","600","700","800","900"],s:["chinese-hongkong","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Serif Hebrew",v:["100","200","300","400","500","600","700","800","900"],s:["hebrew","latin","latin-ext"]},{f:"Noto Serif JP",v:["200","300","400","500","600","700","800","900"],s:["cyrillic","japanese","latin","latin-ext","vietnamese"]},{f:"Noto Serif KR",v:["200","300","400","500","600","700","800","900"],s:["cyrillic","korean","latin","latin-ext","vietnamese"]},{f:"Noto Serif Kannada",v:["100","200","300","400","500","600","700","800","900"],s:["kannada","latin","latin-ext"]},{f:"Noto Serif Khitan Small Script",v:["400"],s:["khitan-small-script","latin","latin-ext"]},{f:"Noto Serif Khmer",v:["100","200","300","400","500","600","700","800","900"],s:["khmer","latin","latin-ext"]},{f:"Noto Serif Khojki",v:["400","500","600","700"],s:["khojki","latin","latin-ext"]},{f:"Noto Serif Lao",v:["100","200","300","400","500","600","700","800","900"],s:["lao","latin","latin-ext"]},{f:"Noto Serif Makasar",v:["400"],s:["latin","latin-ext","makasar"]},{f:"Noto Serif Malayalam",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","malayalam"]},{f:"Noto Serif Myanmar",v:["100","200","300","400","500","600","700","800","900"],s:["myanmar"]},{f:"Noto Serif NP Hmong",v:["400","500","600","700"],s:["latin","nyiakeng-puachue-hmong"]},{f:"Noto Serif Old Uyghur",v:["400"],s:["latin","latin-ext","old-uyghur"]},{f:"Noto Serif Oriya",v:["400","500","600","700"],s:["latin","latin-ext","oriya"]},{f:"Noto Serif Ottoman Siyaq",v:["400"],s:["latin","latin-ext","ottoman-siyaq-numbers"]},{f:"Noto Serif SC",v:["200","300","400","500","600","700","800","900"],s:["chinese-simplified","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Serif Sinhala",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","sinhala"]},{f:"Noto Serif TC",v:["200","300","400","500","600","700","800","900"],s:["chinese-traditional","cyrillic","latin","latin-ext","vietnamese"]},{f:"Noto Serif Tamil",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","tamil"]},{f:"Noto Serif Tangut",v:["400"],s:["latin","latin-ext","tangut"]},{f:"Noto Serif Telugu",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","telugu"]},{f:"Noto Serif Thai",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","thai"]},{f:"Noto Serif Tibetan",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","tibetan"]},{f:"Noto Serif Toto",v:["400","500","600","700"],s:["latin","latin-ext","toto"]},{f:"Noto Serif Vithkuqi",v:["400","500","600","700"],s:["latin","latin-ext","vithkuqi"]},{f:"Noto Serif Yezidi",v:["400","500","600","700"],s:["latin","latin-ext","yezidi"]},{f:"Noto Traditional Nushu",v:["300","400","500","600","700"],s:["latin","latin-ext","nushu"]},{f:"Noto Znamenny Musical Notation",v:["400"],s:["latin","latin-ext","math","symbols","znamenny"]},{f:"Nova Cut",v:["400"],s:["latin"]},{f:"Nova Flat",v:["400"],s:["latin"]},{f:"Nova Mono",v:["400"],s:["greek","latin"]},{f:"Nova Oval",v:["400"],s:["latin"]},{f:"Nova Round",v:["400"],s:["latin"]},{f:"Nova Script",v:["400"],s:["latin"]},{f:"Nova Slim",v:["400"],s:["latin"]},{f:"Nova Square",v:["400"],s:["latin"]},{f:"Numans",v:["400"],s:["latin"]},{f:"Nunito",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Nunito Sans",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Nuosu SIL",v:["400"],s:["latin","latin-ext","yi"]},{f:"Odibee Sans",v:["400"],s:["latin"]},{f:"Odor Mean Chey",v:["400"],s:["khmer","latin"]},{f:"Offside",v:["400"],s:["latin","latin-ext"]},{f:"Oi",v:["400"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","tamil","vietnamese"]},{f:"Ojuju",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Old Standard TT",v:["400","400i","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Oldenburg",v:["400"],s:["latin","latin-ext"]},{f:"Ole",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Oleo Script",v:["400","700"],s:["latin","latin-ext"]},{f:"Oleo Script Swash Caps",v:["400","700"],s:["latin","latin-ext"]},{f:"Onest",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Oooh Baby",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Open Sans",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","math","symbols","vietnamese"]},{f:"Oranienbaum",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Orbit",v:["400"],s:["korean","latin","latin-ext"]},{f:"Orbitron",v:["400","500","600","700","800","900"],s:["latin"]},{f:"Oregano",v:["400","400i"],s:["latin","latin-ext"]},{f:"Orelega One",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Orienta",v:["400"],s:["latin","latin-ext"]},{f:"Original Surfer",v:["400"],s:["latin"]},{f:"Oswald",v:["200","300","400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Outfit",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext"]},{f:"Over the Rainbow",v:["400"],s:["latin"]},{f:"Overlock",v:["400","400i","700","700i","900","900i"],s:["latin","latin-ext"]},{f:"Overlock SC",v:["400"],s:["latin","latin-ext"]},{f:"Overpass",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Overpass Mono",v:["300","400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Ovo",v:["400"],s:["latin"]},{f:"Oxanium",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext"]},{f:"Oxygen",v:["300","400","700"],s:["latin","latin-ext"]},{f:"Oxygen Mono",v:["400"],s:["latin","latin-ext"]},{f:"PT Mono",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"PT Sans",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"PT Sans Caption",v:["400","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"PT Sans Narrow",v:["400","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"PT Serif",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"PT Serif Caption",v:["400","400i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Pacifico",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Padauk",v:["400","700"],s:["latin","latin-ext","myanmar"]},{f:"Padyakke Expanded One",v:["400"],s:["kannada","latin","latin-ext"]},{f:"Palanquin",v:["100","200","300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Palanquin Dark",v:["400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Palette Mosaic",v:["400"],s:["japanese","latin"]},{f:"Pangolin",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Paprika",v:["400"],s:["latin","latin-ext"]},{f:"Parisienne",v:["400"],s:["latin","latin-ext"]},{f:"Passero One",v:["400"],s:["latin","latin-ext"]},{f:"Passion One",v:["400","700","900"],s:["latin","latin-ext"]},{f:"Passions Conflict",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Pathway Extreme",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Pathway Gothic One",v:["400"],s:["latin","latin-ext"]},{f:"Patrick Hand",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Patrick Hand SC",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Pattaya",v:["400"],s:["cyrillic","latin","latin-ext","thai","vietnamese"]},{f:"Patua One",v:["400"],s:["latin"]},{f:"Pavanam",v:["400"],s:["latin","latin-ext","tamil"]},{f:"Paytone One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Peddana",v:["400"],s:["latin","telugu"]},{f:"Peralta",v:["400"],s:["latin","latin-ext"]},{f:"Permanent Marker",v:["400"],s:["latin"]},{f:"Petemoss",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Petit Formal Script",v:["400"],s:["latin","latin-ext"]},{f:"Petrona",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Philosopher",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","vietnamese"]},{f:"Phudu",v:["300","400","500","600","700","800","900"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Piazzolla",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Piedra",v:["400"],s:["latin","latin-ext"]},{f:"Pinyon Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Pirata One",v:["400"],s:["latin","latin-ext"]},{f:"Pixelify Sans",v:["400","500","600","700"],s:["cyrillic","latin","latin-ext"]},{f:"Plaster",v:["400"],s:["latin","latin-ext"]},{f:"Platypi",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["latin","latin-ext","vietnamese"]},{f:"Play",v:["400","700"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Playball",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Playfair",v:["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Playfair Display",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Playfair Display SC",v:["400","400i","700","700i","900","900i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Playpen Sans",v:["100","200","300","400","500","600","700","800"],s:["emoji","latin","latin-ext","math","vietnamese"]},{f:"Plus Jakarta Sans",v:["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Podkova",v:["400","500","600","700","800"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Poetsen One",v:["400"],s:["latin","latin-ext"]},{f:"Poiret One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Poller One",v:["400"],s:["latin"]},{f:"Poltawski Nowy",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Poly",v:["400","400i"],s:["latin"]},{f:"Pompiere",v:["400"],s:["latin"]},{f:"Pontano Sans",v:["300","400","500","600","700"],s:["latin","latin-ext"]},{f:"Poor Story",v:["400"],s:["korean","latin"]},{f:"Poppins",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext"]},{f:"Port Lligat Sans",v:["400"],s:["latin"]},{f:"Port Lligat Slab",v:["400"],s:["latin"]},{f:"Potta One",v:["400"],s:["japanese","latin","latin-ext","vietnamese"]},{f:"Pragati Narrow",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Praise",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Prata",v:["400"],s:["cyrillic","cyrillic-ext","latin","vietnamese"]},{f:"Preahvihear",v:["400"],s:["khmer","latin"]},{f:"Press Start 2P",v:["400"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Pridi",v:["200","300","400","500","600","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Princess Sofia",v:["400"],s:["latin","latin-ext"]},{f:"Prociono",v:["400"],s:["latin"]},{f:"Prompt",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Prosto One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Protest Guerrilla",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Protest Revolution",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Protest Riot",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Protest Strike",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Proza Libre",v:["400","400i","500","500i","600","600i","700","700i","800","800i"],s:["latin","latin-ext"]},{f:"Public Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Puppies Play",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Puritan",v:["400","400i","700","700i"],s:["latin"]},{f:"Purple Purse",v:["400"],s:["latin","latin-ext"]},{f:"Qahiri",v:["400"],s:["arabic","latin"]},{f:"Quando",v:["400"],s:["latin","latin-ext"]},{f:"Quantico",v:["400","400i","700","700i"],s:["latin"]},{f:"Quattrocento",v:["400","700"],s:["latin","latin-ext"]},{f:"Quattrocento Sans",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Questrial",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Quicksand",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Quintessential",v:["400"],s:["latin","latin-ext"]},{f:"Qwigley",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Qwitcher Grypen",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"REM",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Racing Sans One",v:["400"],s:["latin","latin-ext"]},{f:"Radio Canada",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["canadian-aboriginal","latin","latin-ext","vietnamese"]},{f:"Radio Canada Big",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Radley",v:["400","400i"],s:["latin","latin-ext"]},{f:"Rajdhani",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Rakkas",v:["400"],s:["arabic","latin","latin-ext"]},{f:"Raleway",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Raleway Dots",v:["400"],s:["latin","latin-ext"]},{f:"Ramabhadra",v:["400"],s:["latin","telugu"]},{f:"Ramaraja",v:["400"],s:["latin","telugu"]},{f:"Rambla",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Rammetto One",v:["400"],s:["latin","latin-ext"]},{f:"Rampart One",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Ranchers",v:["400"],s:["latin","latin-ext"]},{f:"Rancho",v:["400"],s:["latin"]},{f:"Ranga",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Rasa",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["gujarati","latin","latin-ext","vietnamese"]},{f:"Rationale",v:["400"],s:["latin"]},{f:"Ravi Prakash",v:["400"],s:["latin","telugu"]},{f:"Readex Pro",v:["200","300","400","500","600","700"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Recursive",v:["300","400","500","600","700","800","900"],s:["cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Red Hat Display",v:["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Red Hat Mono",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Red Hat Text",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Red Rose",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Redacted",v:["400"],s:["latin","latin-ext"]},{f:"Redacted Script",v:["300","400","700"],s:["latin","latin-ext"]},{f:"Reddit Mono",v:["200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Reddit Sans",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Reddit Sans Condensed",v:["200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Redressed",v:["400"],s:["latin"]},{f:"Reem Kufi",v:["400","500","600","700"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Reem Kufi Fun",v:["400","500","600","700"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Reem Kufi Ink",v:["400"],s:["arabic","latin","latin-ext","vietnamese"]},{f:"Reenie Beanie",v:["400"],s:["latin"]},{f:"Reggae One",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Rethink Sans",v:["400","500","600","700","800","400i","500i","600i","700i","800i"],s:["latin","latin-ext"]},{f:"Revalia",v:["400"],s:["latin","latin-ext"]},{f:"Rhodium Libre",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Ribeye",v:["400"],s:["latin","latin-ext"]},{f:"Ribeye Marrow",v:["400"],s:["latin","latin-ext"]},{f:"Righteous",v:["400"],s:["latin","latin-ext"]},{f:"Risque",v:["400"],s:["latin","latin-ext"]},{f:"Road Rage",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Roboto",v:["100","100i","300","300i","400","400i","500","500i","700","700i","900","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Roboto Condensed",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Roboto Flex",v:["400"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Roboto Mono",v:["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Roboto Serif",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Roboto Slab",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Rochester",v:["400"],s:["latin"]},{f:"Rock 3D",v:["400"],s:["japanese","latin"]},{f:"Rock Salt",v:["400"],s:["latin"]},{f:"RocknRoll One",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Rokkitt",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Romanesco",v:["400"],s:["latin","latin-ext"]},{f:"Ropa Sans",v:["400","400i"],s:["latin","latin-ext"]},{f:"Rosario",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Rosarivo",v:["400","400i"],s:["latin","latin-ext"]},{f:"Rouge Script",v:["400"],s:["latin"]},{f:"Rowdies",v:["300","400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Rozha One",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Rubik",v:["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"],s:["arabic","cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik 80s Fade",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Beastly",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Broken Fax",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Bubbles",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Burned",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Dirt",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Distressed",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Doodle Shadow",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Doodle Triangles",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Gemstones",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Glitch",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Glitch Pop",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Iso",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Lines",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Maps",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Marker Hatch",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Maze",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Microbe",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Mono One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Rubik Moonrocks",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Pixels",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Puddles",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Scribble",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext","math","symbols"]},{f:"Rubik Spray Paint",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Storm",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Vinyl",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Rubik Wet Paint",v:["400"],s:["cyrillic","cyrillic-ext","hebrew","latin","latin-ext"]},{f:"Ruda",v:["400","500","600","700","800","900"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Rufina",v:["400","700"],s:["latin","latin-ext"]},{f:"Ruge Boogie",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Ruluko",v:["400"],s:["latin","latin-ext"]},{f:"Rum Raisin",v:["400"],s:["latin","latin-ext"]},{f:"Ruslan Display",v:["400"],s:["cyrillic","latin","latin-ext","math","symbols"]},{f:"Russo One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Ruthie",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Ruwudu",v:["400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Rye",v:["400"],s:["latin","latin-ext"]},{f:"STIX Two Text",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Sacramento",v:["400"],s:["latin","latin-ext"]},{f:"Sahitya",v:["400","700"],s:["devanagari","latin"]},{f:"Sail",v:["400"],s:["latin","latin-ext"]},{f:"Saira",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Saira Condensed",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Saira Extra Condensed",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Saira Semi Condensed",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Saira Stencil One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Salsa",v:["400"],s:["latin"]},{f:"Sanchez",v:["400","400i"],s:["latin","latin-ext"]},{f:"Sancreek",v:["400"],s:["latin","latin-ext"]},{f:"Sansita",v:["400","400i","700","700i","800","800i","900","900i"],s:["latin","latin-ext"]},{f:"Sansita Swashed",v:["300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Sarabun",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Sarala",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Sarina",v:["400"],s:["latin","latin-ext"]},{f:"Sarpanch",v:["400","500","600","700","800","900"],s:["devanagari","latin","latin-ext"]},{f:"Sassy Frass",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Satisfy",v:["400"],s:["latin"]},{f:"Sawarabi Gothic",v:["400"],s:["cyrillic","japanese","latin","latin-ext","vietnamese"]},{f:"Sawarabi Mincho",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Scada",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","latin","latin-ext"]},{f:"Scheherazade New",v:["400","500","600","700"],s:["arabic","latin","latin-ext"]},{f:"Schibsted Grotesk",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"Schoolbell",v:["400"],s:["latin"]},{f:"Scope One",v:["400"],s:["latin","latin-ext"]},{f:"Seaweed Script",v:["400"],s:["latin","latin-ext"]},{f:"Secular One",v:["400"],s:["hebrew","latin","latin-ext"]},{f:"Sedan",v:["400","400i"],s:["latin","latin-ext"]},{f:"Sedan SC",v:["400"],s:["latin","latin-ext"]},{f:"Sedgwick Ave",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Sedgwick Ave Display",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Sen",v:["400","500","600","700","800"],s:["latin","latin-ext"]},{f:"Send Flowers",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Sevillana",v:["400"],s:["latin","latin-ext"]},{f:"Seymour One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Shadows Into Light",v:["400"],s:["latin"]},{f:"Shadows Into Light Two",v:["400"],s:["latin","latin-ext"]},{f:"Shalimar",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Shantell Sans",v:["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Shanti",v:["400"],s:["latin","latin-ext"]},{f:"Share",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Share Tech",v:["400"],s:["latin"]},{f:"Share Tech Mono",v:["400"],s:["latin"]},{f:"Shippori Antique",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Shippori Antique B1",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Shippori Mincho",v:["400","500","600","700","800"],s:["japanese","latin","latin-ext"]},{f:"Shippori Mincho B1",v:["400","500","600","700","800"],s:["japanese","latin","latin-ext"]},{f:"Shizuru",v:["400"],s:["japanese","latin"]},{f:"Shojumaru",v:["400"],s:["latin","latin-ext"]},{f:"Short Stack",v:["400"],s:["latin"]},{f:"Shrikhand",v:["400"],s:["gujarati","latin","latin-ext"]},{f:"Siemreap",v:["400"],s:["khmer"]},{f:"Sigmar",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Sigmar One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Signika",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Signika Negative",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Silkscreen",v:["400","700"],s:["latin","latin-ext"]},{f:"Simonetta",v:["400","400i","900","900i"],s:["latin","latin-ext"]},{f:"Single Day",v:["400"],s:["korean"]},{f:"Sintony",v:["400","700"],s:["latin","latin-ext"]},{f:"Sirin Stencil",v:["400"],s:["latin"]},{f:"Six Caps",v:["400"],s:["latin"]},{f:"Sixtyfour",v:["400"],s:["latin","latin-ext","math","symbols"]},{f:"Skranji",v:["400","700"],s:["latin","latin-ext"]},{f:"Slabo 13px",v:["400"],s:["latin","latin-ext"]},{f:"Slabo 27px",v:["400"],s:["latin","latin-ext"]},{f:"Slackey",v:["400"],s:["latin"]},{f:"Slackside One",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Smokum",v:["400"],s:["latin"]},{f:"Smooch",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Smooch Sans",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Smythe",v:["400"],s:["latin"]},{f:"Sniglet",v:["400","800"],s:["latin","latin-ext"]},{f:"Snippet",v:["400"],s:["latin"]},{f:"Snowburst One",v:["400"],s:["latin","latin-ext"]},{f:"Sofadi One",v:["400"],s:["latin"]},{f:"Sofia",v:["400"],s:["latin"]},{f:"Sofia Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Sofia Sans Condensed",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Sofia Sans Extra Condensed",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Sofia Sans Semi Condensed",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{f:"Solitreo",v:["400"],s:["hebrew","latin","latin-ext"]},{f:"Solway",v:["300","400","500","700","800"],s:["latin"]},{f:"Sometype Mono",v:["400","500","600","700","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Song Myung",v:["400"],s:["korean","latin"]},{f:"Sono",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","vietnamese"]},{f:"Sonsie One",v:["400"],s:["latin","latin-ext"]},{f:"Sora",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext"]},{f:"Sorts Mill Goudy",v:["400","400i"],s:["latin","latin-ext"]},{f:"Source Code Pro",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Source Sans 3",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"]},{f:"Source Serif 4",v:["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Space Grotesk",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Space Mono",v:["400","400i","700","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Special Elite",v:["400"],s:["latin"]},{f:"Spectral",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Spectral SC",v:["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"],s:["cyrillic","latin","latin-ext","vietnamese"]},{f:"Spicy Rice",v:["400"],s:["latin"]},{f:"Spinnaker",v:["400"],s:["latin","latin-ext"]},{f:"Spirax",v:["400"],s:["latin"]},{f:"Splash",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Spline Sans",v:["300","400","500","600","700"],s:["latin","latin-ext"]},{f:"Spline Sans Mono",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext"]},{f:"Squada One",v:["400"],s:["latin"]},{f:"Square Peg",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Sree Krushnadevaraya",v:["400"],s:["latin","telugu"]},{f:"Sriracha",v:["400"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Srisakdi",v:["400","700"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Staatliches",v:["400"],s:["latin","latin-ext"]},{f:"Stalemate",v:["400"],s:["latin","latin-ext"]},{f:"Stalinist One",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Stardos Stencil",v:["400","700"],s:["latin"]},{f:"Stick",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Stick No Bills",v:["200","300","400","500","600","700","800"],s:["latin","latin-ext","sinhala"]},{f:"Stint Ultra Condensed",v:["400"],s:["latin","latin-ext"]},{f:"Stint Ultra Expanded",v:["400"],s:["latin","latin-ext"]},{f:"Stoke",v:["300","400"],s:["latin","latin-ext"]},{f:"Strait",v:["400"],s:["latin","latin-ext"]},{f:"Style Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Stylish",v:["400"],s:["korean","latin"]},{f:"Sue Ellen Francisco",v:["400"],s:["latin"]},{f:"Suez One",v:["400"],s:["hebrew","latin","latin-ext"]},{f:"Sulphur Point",v:["300","400","700"],s:["latin","latin-ext"]},{f:"Sumana",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Sunflower",v:["300","500","700"],s:["korean","latin"]},{f:"Sunshiney",v:["400"],s:["latin"]},{f:"Supermercado One",v:["400"],s:["latin"]},{f:"Sura",v:["400","700"],s:["devanagari","latin","latin-ext"]},{f:"Suranna",v:["400"],s:["latin","telugu"]},{f:"Suravaram",v:["400"],s:["latin","telugu"]},{f:"Suwannaphum",v:["100","300","400","700","900"],s:["khmer","latin"]},{f:"Swanky and Moo Moo",v:["400"],s:["latin"]},{f:"Syncopate",v:["400","700"],s:["latin"]},{f:"Syne",v:["400","500","600","700","800"],s:["greek","latin","latin-ext"]},{f:"Syne Mono",v:["400"],s:["latin","latin-ext"]},{f:"Syne Tactile",v:["400"],s:["latin","latin-ext"]},{f:"Tac One",v:["400"],s:["latin","latin-ext","math","symbols","vietnamese"]},{f:"Tai Heritage Pro",v:["400","700"],s:["latin","latin-ext","tai-viet","vietnamese"]},{f:"Tajawal",v:["200","300","400","500","700","800","900"],s:["arabic","latin"]},{f:"Tangerine",v:["400","700"],s:["latin"]},{f:"Tapestry",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Taprom",v:["400"],s:["khmer","latin"]},{f:"Tauri",v:["400"],s:["latin","latin-ext"]},{f:"Taviraj",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Teachers",v:["400","500","600","700","800","400i","500i","600i","700i","800i"],s:["greek-ext","latin","latin-ext"]},{f:"Teko",v:["300","400","500","600","700"],s:["devanagari","latin","latin-ext"]},{f:"Tektur",v:["400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Telex",v:["400"],s:["latin","latin-ext"]},{f:"Tenali Ramakrishna",v:["400"],s:["latin","telugu"]},{f:"Tenor Sans",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Text Me One",v:["400"],s:["latin","latin-ext"]},{f:"Texturina",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Thasadith",v:["400","400i","700","700i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"The Girl Next Door",v:["400"],s:["latin"]},{f:"The Nautigal",v:["400","700"],s:["latin","latin-ext","vietnamese"]},{f:"Tienne",v:["400","700","900"],s:["latin"]},{f:"Tillana",v:["400","500","600","700","800"],s:["devanagari","latin","latin-ext"]},{f:"Tilt Neon",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Tilt Prism",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Tilt Warp",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Timmana",v:["400"],s:["latin","telugu"]},{f:"Tinos",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","hebrew","latin","latin-ext","vietnamese"]},{f:"Tiro Bangla",v:["400","400i"],s:["bengali","latin","latin-ext"]},{f:"Tiro Devanagari Hindi",v:["400","400i"],s:["devanagari","latin","latin-ext"]},{f:"Tiro Devanagari Marathi",v:["400","400i"],s:["devanagari","latin","latin-ext"]},{f:"Tiro Devanagari Sanskrit",v:["400","400i"],s:["devanagari","latin","latin-ext"]},{f:"Tiro Gurmukhi",v:["400","400i"],s:["gurmukhi","latin","latin-ext"]},{f:"Tiro Kannada",v:["400","400i"],s:["kannada","latin","latin-ext"]},{f:"Tiro Tamil",v:["400","400i"],s:["latin","latin-ext","tamil"]},{f:"Tiro Telugu",v:["400","400i"],s:["latin","latin-ext","telugu"]},{f:"Titan One",v:["400"],s:["latin","latin-ext"]},{f:"Titillium Web",v:["200","200i","300","300i","400","400i","600","600i","700","700i","900"],s:["latin","latin-ext"]},{f:"Tomorrow",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext"]},{f:"Tourney",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Trade Winds",v:["400"],s:["latin"]},{f:"Train One",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Trirong",v:["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"],s:["latin","latin-ext","thai","vietnamese"]},{f:"Trispace",v:["100","200","300","400","500","600","700","800"],s:["latin","latin-ext","vietnamese"]},{f:"Trocchi",v:["400"],s:["latin","latin-ext"]},{f:"Trochut",v:["400","400i","700"],s:["latin"]},{f:"Truculenta",v:["100","200","300","400","500","600","700","800","900"],s:["latin","latin-ext","vietnamese"]},{f:"Trykker",v:["400"],s:["latin","latin-ext"]},{f:"Tsukimi Rounded",v:["300","400","500","600","700"],s:["japanese","latin","latin-ext"]},{f:"Tulpen One",v:["400"],s:["latin"]},{f:"Turret Road",v:["200","300","400","500","700","800"],s:["latin","latin-ext"]},{f:"Twinkle Star",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Ubuntu",v:["300","300i","400","400i","500","500i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Ubuntu Condensed",v:["400"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Ubuntu Mono",v:["400","400i","700","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Ubuntu Sans",v:["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Ubuntu Sans Mono",v:["400","500","600","700","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext"]},{f:"Uchen",v:["400"],s:["latin","tibetan"]},{f:"Ultra",v:["400"],s:["latin"]},{f:"Unbounded",v:["200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Uncial Antiqua",v:["400"],s:["latin"]},{f:"Underdog",v:["400"],s:["cyrillic","latin","latin-ext"]},{f:"Unica One",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"UnifrakturCook",v:["700"],s:["latin"]},{f:"UnifrakturMaguntia",v:["400"],s:["latin"]},{f:"Unkempt",v:["400","700"],s:["latin"]},{f:"Unlock",v:["400"],s:["latin","latin-ext"]},{f:"Unna",v:["400","400i","700","700i"],s:["latin","latin-ext"]},{f:"Updock",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Urbanist",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext"]},{f:"VT323",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Vampiro One",v:["400"],s:["latin","latin-ext"]},{f:"Varela",v:["400"],s:["latin","latin-ext"]},{f:"Varela Round",v:["400"],s:["hebrew","latin","latin-ext","vietnamese"]},{f:"Varta",v:["300","400","500","600","700"],s:["latin","latin-ext","vietnamese"]},{f:"Vast Shadow",v:["400"],s:["latin"]},{f:"Vazirmatn",v:["100","200","300","400","500","600","700","800","900"],s:["arabic","latin","latin-ext"]},{f:"Vesper Libre",v:["400","500","700","900"],s:["devanagari","latin","latin-ext"]},{f:"Viaoda Libre",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Vibes",v:["400"],s:["arabic","latin"]},{f:"Vibur",v:["400"],s:["latin"]},{f:"Victor Mono",v:["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Vidaloka",v:["400"],s:["latin"]},{f:"Viga",v:["400"],s:["latin","latin-ext"]},{f:"Vina Sans",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Voces",v:["400"],s:["latin","latin-ext"]},{f:"Volkhov",v:["400","400i","700","700i"],s:["latin"]},{f:"Vollkorn",v:["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","vietnamese"]},{f:"Vollkorn SC",v:["400","600","700","900"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Voltaire",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Vujahday Script",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Waiting for the Sunrise",v:["400"],s:["latin"]},{f:"Wallpoet",v:["400"],s:["latin"]},{f:"Walter Turncoat",v:["400"],s:["latin"]},{f:"Warnes",v:["400"],s:["latin","latin-ext"]},{f:"Water Brush",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Waterfall",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"Wavefont",v:["100","200","300","400","500","600","700","800","900"],s:["latin"]},{f:"Wellfleet",v:["400"],s:["latin","latin-ext"]},{f:"Wendy One",v:["400"],s:["latin","latin-ext"]},{f:"Whisper",v:["400"],s:["latin","latin-ext","vietnamese"]},{f:"WindSong",v:["400","500"],s:["latin","latin-ext","vietnamese"]},{f:"Wire One",v:["400"],s:["latin"]},{f:"Wix Madefor Display",v:["400","500","600","700","800"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Wix Madefor Text",v:["400","400i","500","500i","600","600i","700","700i","800","800i"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Work Sans",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["latin","latin-ext","vietnamese"]},{f:"Workbench",v:["400"],s:["latin","math","symbols"]},{f:"Xanh Mono",v:["400","400i"],s:["latin","latin-ext","vietnamese"]},{f:"Yaldevi",v:["200","300","400","500","600","700"],s:["latin","latin-ext","sinhala"]},{f:"Yanone Kaffeesatz",v:["200","300","400","500","600","700"],s:["cyrillic","cyrillic-ext","latin","latin-ext","math","symbols","vietnamese"]},{f:"Yantramanav",v:["100","300","400","500","700","900"],s:["devanagari","latin","latin-ext"]},{f:"Yarndings 12",v:["400"],s:["latin","math","symbols"]},{f:"Yarndings 12 Charted",v:["400"],s:["latin","math","symbols"]},{f:"Yarndings 20",v:["400"],s:["latin","math","symbols"]},{f:"Yarndings 20 Charted",v:["400"],s:["latin","math","symbols"]},{f:"Yatra One",v:["400"],s:["devanagari","latin","latin-ext"]},{f:"Yellowtail",v:["400"],s:["latin"]},{f:"Yeon Sung",v:["400"],s:["korean","latin"]},{f:"Yeseva One",v:["400"],s:["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"]},{f:"Yesteryear",v:["400"],s:["latin"]},{f:"Yomogi",v:["400"],s:["cyrillic","japanese","latin","latin-ext","vietnamese"]},{f:"Young Serif",v:["400"],s:["latin","latin-ext"]},{f:"Yrsa",v:["300","400","500","600","700","300i","400i","500i","600i","700i"],s:["latin","latin-ext","vietnamese"]},{f:"Ysabeau",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{f:"Ysabeau Infant",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{f:"Ysabeau Office",v:["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{f:"Ysabeau SC",v:["100","200","300","400","500","600","700","800","900"],s:["cyrillic","cyrillic-ext","greek","latin","latin-ext","math","symbols","vietnamese"]},{f:"Yuji Boku",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Yuji Hentaigana Akari",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Yuji Hentaigana Akebono",v:["400"],s:["japanese","latin","latin-ext"]},{f:"Yuji Mai",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Yuji Syuku",v:["400"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Yusei Magic",v:["400"],s:["japanese","latin","latin-ext"]},{f:"ZCOOL KuaiLe",v:["400"],s:["chinese-simplified","latin"]},{f:"ZCOOL QingKe HuangYou",v:["400"],s:["chinese-simplified","latin"]},{f:"ZCOOL XiaoWei",v:["400"],s:["chinese-simplified","latin"]},{f:"Zen Antique",v:["400"],s:["cyrillic","greek","japanese","latin","latin-ext"]},{f:"Zen Antique Soft",v:["400"],s:["cyrillic","greek","japanese","latin","latin-ext"]},{f:"Zen Dots",v:["400"],s:["latin","latin-ext"]},{f:"Zen Kaku Gothic Antique",v:["300","400","500","700","900"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Zen Kaku Gothic New",v:["300","400","500","700","900"],s:["cyrillic","japanese","latin","latin-ext"]},{f:"Zen Kurenaido",v:["400"],s:["cyrillic","greek","japanese","latin","latin-ext"]},{f:"Zen Loop",v:["400","400i"],s:["latin","latin-ext"]},{f:"Zen Maru Gothic",v:["300","400","500","700","900"],s:["cyrillic","greek","japanese","latin","latin-ext"]},{f:"Zen Old Mincho",v:["400","500","600","700","900"],s:["cyrillic","greek","japanese","latin","latin-ext"]},{f:"Zen Tokyo Zoo",v:["400"],s:["latin","latin-ext"]},{f:"Zeyada",v:["400"],s:["latin"]},{f:"Zhi Mang Xing",v:["400"],s:["chinese-simplified","latin"]},{f:"Zilla Slab",v:["300","300i","400","400i","500","500i","600","600i","700","700i"],s:["latin","latin-ext"]},{f:"Zilla Slab Highlight",v:["400","700"],s:["latin","latin-ext"]}]},function(i,t){i.exports=[{id:"arial",label:"Arial",stack:"Arial, Helvetica Neue, Helvetica, sans-serif"},{id:"calibri",label:"Calibri",stack:"Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;"},{id:"consolas",label:"Consolas",stack:"Consolas, monaco, monospace"},{id:"courier-new",label:"Courier New",stack:"Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace"},{id:"helvetica",label:"Helvetica Neue",stack:"Helvetica Neue, Helvetica, Arial, sans-serif"},{id:"georgia",label:"Georgia",stack:"Georgia, Times, Times New Roman, serif"},{id:"futura",label:"Futura",stack:"Futura, Trebuchet MS, Arial, sans-serif"},{id:"lucida-grande",label:"Lucida Grande",stack:"Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif"},{id:"tahoma",label:"Tahoma",stack:"Tahoma, Verdana, Segoe, sans-serif"},{id:"times-new-roman",label:"Times New Roman",stack:"TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif"},{id:"trebuchet",label:"Trebuchet MS",stack:"Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif"},{id:"palatino",label:"Palatino",stack:"Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif"},{id:"verdana",label:"Verdana",stack:"Verdana, Geneva, sans-serif;"}]},function(i,t,a){"use strict";var e=wp.blocks.createBlock,n={from:[{type:"block",blocks:["core/paragraph"],transform:function(i){var t=i.content;return e("olympus-google-fonts/google-fonts",{content:t})}},{type:"block",blocks:["core/heading"],transform:function(i){var t=i.content,a=i.level;return e("olympus-google-fonts/google-fonts",{content:t,blockType:"h"+a})}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(i){var t=i.content;return e("core/paragraph",{content:t})}}]};t.a=n}]);blocks/dist/blocks.style.build.css000064400000000000151213254170013177 0ustar00class-olympus-google-fonts.php000064400000017312151213254170012476 0ustar00<?php
/**
 * Main Olympus_Google_Fonts Class
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Main Olympus_Google_Fonts Class
 */
class Olympus_Google_Fonts {

	/**
	 * Initialize plugin.
	 */
	public function __construct() {
		$this->constants();
		$this->includes();
		$this->compatibility();

		add_action( 'init', array( $this, 'load_textdomain' ) );

		add_action( 'ogf_inline_styles', array( $this, 'enqueue' ), 0 );
		add_filter( 'wp_resource_hints', array( $this, 'resource_hints' ), 10, 2 );
		add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue' ), 100 );
		add_action( 'customize_preview_init', array( $this, 'customize_preview_enqueue' ) );

		add_filter( 'plugin_action_links_' . plugin_basename( OGF_DIR_PATH . 'olympus-google-fonts.php' ), array( $this, 'links' ) );

		if ( ! defined( 'OGF_PRO' ) ) {
			add_action( 'customize_register', array( $this, 'remove_pro_sections' ) );
		}
	}

	/**
	 * Load plugin files.
	 */
	public function constants() {
		if ( ! defined( 'OGF_VERSION' ) ) {
			define( 'OGF_VERSION', '3.7.8' );
		}

		if ( ! defined( 'OGF_DIR_PATH' ) ) {
			define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
		}

		if ( ! defined( 'OGF_DIR_URL' ) ) {
			define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
		}
	}

	/**
	 * Load plugin files.
	 */
	public function includes() {
		// Custom uploads functionality.
		require_once OGF_DIR_PATH . 'includes/class-ogf-fonts-taxonomy.php';
		require_once OGF_DIR_PATH . 'admin/class-ogf-upload-fonts-screen.php';

		// Required files for building the Google Fonts URL.
		require_once OGF_DIR_PATH . 'includes/functions.php';
		require_once OGF_DIR_PATH . 'includes/class-ogf-fonts.php';

		// Required files for the customizer settings.
		require_once OGF_DIR_PATH . 'includes/customizer/panels.php';
		require_once OGF_DIR_PATH . 'includes/customizer/settings.php';
		require_once OGF_DIR_PATH . 'includes/customizer/output-css.php';
		require_once OGF_DIR_PATH . 'includes//customizer/class-ogf-optimization-controls.php';

		// Required files for the Typekit integration.
		require_once OGF_DIR_PATH . 'includes/class-ogf-typekit.php';

		// Required files for the Gutenberg editor.
		require_once OGF_DIR_PATH . 'blocks/init.php';
		require_once OGF_DIR_PATH . 'includes/gutenberg/output-css.php';

		// Notifications class.
		require_once OGF_DIR_PATH . 'includes/class-ogf-notifications.php';

		// Welcome notice class.
		require_once OGF_DIR_PATH . 'includes/class-ogf-welcome.php';

		// Reset class.
		require_once OGF_DIR_PATH . 'includes/class-ogf-reset.php';
		require_once OGF_DIR_PATH . 'includes/class-ogf-clear-cache.php';

		// Classic Editor class.
		require_once OGF_DIR_PATH . 'includes/class-ogf-classic-editor.php';

		// News widget.
		require_once OGF_DIR_PATH . 'includes/class-ogf-dashboard-widget.php';

		// Admin sidebar page(s).
		require_once OGF_DIR_PATH . 'admin/class-ogf-welcome-screen.php';
	}

	/**
	 * Load plugin textdomain.
	 */
	public function compatibility() {
		$current_theme      = wp_get_theme();
		$theme_author       = strtolower( esc_attr( $current_theme->get( 'Author' ) ) );
		$theme_author       = str_replace( ' ', '', $theme_author );
		$author_compat_path = OGF_DIR_PATH . '/compatibility/' . $theme_author . '.php';
		if ( file_exists( $author_compat_path ) ) {
			require_once $author_compat_path;
		}
		if ( ogf_is_woocommerce_activated() ) {
			require_once OGF_DIR_PATH . '/compatibility/woocommerce.php';
		}
		if ( ogf_is_memberpress_courses_activated() ) {
			require_once OGF_DIR_PATH . '/compatibility/memberpress-courses.php';
		}
	}

	/**
	 * Load plugin textdomain.
	 */
	public function load_textdomain() {
		load_plugin_textdomain( 'olympus-google-fonts', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
	}

	/**
	 * Enqueue the Google Fonts URL.
	 */
	public function enqueue() {
		$fonts = new OGF_Fonts();

		if ( ! $fonts->has_google_fonts() ) {
			return;
		}

		if ( ogf_is_fpp_activated() && (bool) get_theme_mod( 'fpp_host_locally', false ) === true ) {
			return;
		}

		$url = $fonts->build_url();
		if ( $fonts->stored_css( $url ) ) {
			echo $fonts->stored_css( $url );
		} else {
			echo "@import url('" . esc_url( $url ) . "');" . PHP_EOL;
		}
	}

	/**
	 * Add preconnect for Google Fonts.
	 *
	 * @param array  $urls           URLs to print for resource hints.
	 * @param string $relation_type  The relation type the URLs are printed.
	 * @return array $urls           URLs to print for resource hints.
	 */
	public function resource_hints( $urls, $relation_type ) {
		// If we are using local fonts we don't need this.
		if ( get_theme_mod( 'fpp_host_locally' ) === true ) {
			return $urls;
		}

		$fonts = new OGF_Fonts();

		// If no Google Fonts are being used we don't need this.
		if ( ! $fonts->has_google_fonts() ) {
			return $urls;
		}

		if ( 'preconnect' === $relation_type ) {
			$urls[] = array(
				'href' => 'https://fonts.gstatic.com',
				'crossorigin',
			);
		}
		return $urls;
	}

	/**
	 * Register control scripts/styles.
	 */
	public function customize_controls_enqueue() {
		wp_enqueue_script( 'ogf-customize-controls', esc_url( OGF_DIR_URL . 'assets/js/customize-controls.js' ), array( 'customize-controls' ), OGF_VERSION, true );
		wp_enqueue_style( 'ogf-customize-controls', esc_url( OGF_DIR_URL . 'assets/css/customize-controls.css' ), array(), OGF_VERSION );

		wp_localize_script( 'ogf-customize-controls', 'ogf_font_array', ogf_fonts_array() );
		wp_localize_script( 'ogf-customize-controls', 'ogf_system_fonts', ogf_system_fonts() );
		wp_localize_script( 'ogf-customize-controls', 'ogf_custom_fonts_unique', ogf_custom_fonts_unique() );
		wp_localize_script( 'ogf-customize-controls', 'ogf_typekit_fonts', ogf_typekit_fonts() );
		wp_localize_script( 'ogf-customize-controls', 'ogf_font_variants', ogf_font_variants() );
	}

	/**
	 * Load preview scripts/styles.
	 */
	public function customize_preview_enqueue() {
		wp_enqueue_script( 'ogf-customize-preview', esc_url( OGF_DIR_URL . 'assets/js/customize-preview.js' ), array( 'jquery' ), OGF_VERSION, true );

		$elements = array_merge( ogf_get_elements(), ogf_get_custom_elements() );

		wp_localize_script( 'ogf-customize-preview', 'ogf_elements', $elements );
		wp_localize_script( 'ogf-customize-preview', 'ogf_system_fonts', ogf_system_fonts() );
		wp_localize_script( 'ogf-customize-preview', 'ogf_custom_fonts', ogf_custom_fonts() );
		wp_localize_script( 'ogf-customize-preview', 'ogf_custom_fonts_unique', ogf_custom_fonts_unique() );
		wp_localize_script( 'ogf-customize-preview', 'ogf_typekit_fonts', ogf_typekit_fonts() );
	}

	/**
	 * Add custom links to plugin settings page.
	 *
	 * @param array $links Current links array.
	 * @return array $links Modified links array.
	 */
	public function links( $links ) {
		// Customizer Settings Link.
		$customizer_url = admin_url( 'customize.php?autofocus[panel]=ogf_google_fonts' );

		$settings_link = '<a href="' . esc_url( $customizer_url ) . '">' . esc_html__( 'Settings', 'olympus-google-fonts' ) . '</a>';

		array_push( $links, $settings_link );

		if ( ! defined( 'OGF_PRO' ) ) {
			// Upgrade Link.
			$pro_link = '<a href="https://fontsplugin.com/pro-upgrade/?utm_source=plugin&utm_medium=wpadmin&utm_campaign=upsell">' . esc_html__( 'Upgrade to Pro', 'olympus-google-fonts' ) . '</a>';

			array_push( $links, $pro_link );
		}

		return $links;
	}

	/**
	 * Remove pro sections from basic version.
	 *
	 * @param object $wp_customize Access to the $wp_customize object.
	 */
	public function remove_pro_sections( $wp_customize ) {
		$wp_customize->remove_section( 'ogf_custom' );
		$wp_customize->remove_section( 'ogf_advanced__custom' );
	}
}

$gfwp = new Olympus_Google_Fonts();
admin/fonts-plugin-quickstart-guide.png000064400000212361151213254170014260 0ustar00�PNG


IHDRXN�@��PLTE		,3

O""�III  "8�<<�::?�66�99Ce''`((�99�44�77�::�;;�..r**�00n))�99�88�::�--^&&�//q//�77v++�22]''�::�++�33�55x,,N!!z66�66o//}77�::׹�v55�::�@@u++͜�}77{77w<<vBB���x33�WW����������``�66�::�==�44�77�88�55�55�??�AA�CC����DD�??�99�;;�FF�<<�>>�77�BB�99�44�FF�22�77����QQ�88�;;����99�//�NN�AA�VV�II�;;�33�DD�22�FF�SS�44�88�55�LL�22�33�HH�??�DD�>>�==�??�,-�^^�YY�55�hh�;;�``�==����[[�::����nn�kk�??�KK�XX�CC�DD�22�GG�qq�GG�II�BB�::�BB�EE�AA�**�ee�HH�AA�JJ�**�tt�<<�((�++�//�bb�dd�++�AA�MM���--w((�((�<<�//y++�JJ|..u%%�}}�vv�--Ձ��++۔��xx�((�{{�33�1155�//�,,�����ʺGG达�JJ�,,�00�88�88|11縸؍�22�00���ᨨ���ݜ���ߨ44���ߢ��//�''������88�33և����<<�::�55�::䲲㭭�((�11�����r##�==��Ԑ66�EE�BB�>>�;;|((�AA�66�GG�@@�22�AAy%%�;;�#$�00�0WItRNS
"DP2)�:\)g��s���}R����b�6����p�͜E��������ճ�$�k\B=|�V�oi�<�WIDATx��]lKa�����c�����0R5j�Lz��j&�H�eT1_��"S��Do�4aDz�4�z�&ť�<���۳~�����9okY~����Q�����?Ҵl�\��j14[��u���˚�t����Ш�a��Oo�~>
�����K���Ph�b��l�b��͋�.]����:u5ȷr�2@�M����c�p�?���'N�{��A�p0<�A�'><��=�KCC�S�K����u�5�,V��ի�7M7
@���O�>�{��C@��u��S�D �j%�n�?������~�E�����
��s������~J�y��_E^�z�t���з��\�&=�V���4g��կ��c����	$���QO`�Gl!|��������d�O���ڱcǡC�O�Rb�Tdtt�ŋ��9PM�͵�����|c��O�l/�B���!��8�r:��.��u��d*MG"�4oS��Z
л�ԃn�6+��XAkgo����kg4$�|b9I,R���(�B���_e�I�,˛6��ܵ��k����dLQF��>|x�ƍ�
�s`~�Rk2X-8+̇b��z7M���|��$֝�X�b	�@���͒9-�&12G���]���ֵ�����M�E"iH��ȴ���4+�N�;sf��Y���uz�������
��$����E�,9�ñ�&����k�Gk��`�fH�u����˓E���H$򪁏��n��s�n+fM��F�nR��ob�J,�z�����%K!�䅰P,�@,���m�֎'�6���������5k�6���n���E�b��H7�mʔZ��0|����:�n��UOG�x
��b�'�����>�;�k��<��.K�<l�̚ ���ذlk�0ޞ�o�4A��t3M�bJ�M��i�U����b�sb�C��}B,'��\�����U-��F������w�~�L^��nX��t#�z��)cJ:
�e�m���Zֻ-�b�t��&i�M���sb�\��$VB�����D��*��D{~�Uq^e�:q�k˵n<��Z������
T�|��z��o�nL�f�zּ���kj4߾I˳�X�a.�u��۽�@��X�������UL,	^��BT�O��`˾g�l*�5�����5n�Z
7�֣iEy	��n���Y�~�M�7j��cɉ���uĺ��
�WP�bQ)�v\E�BY4��ʋ%�I�1�����߲q 0�b��[.ޔ��N�)�
{7��_e�b�)��yb��&V<�W��b�fAu뎋���W.�aI��W'���q�l_w��
tC�p��%�c��SԻ�VH36o��ۊY��ߟ#\�s�R8x�>���X	+���Z���E���gB�`(UлW_-5�B�֎Cf�utr��f��	��4�T�T���p��܌�4oL�:��[-����U�u�;A����f��s�X�m�%YPA�n��T�ȢH�U	n�)F7Y�w�}��[gg�f��ݻwo�5�7z��ẽ�ލ���)�ffg��t�w!K��DN�}Y���Eb��	��h�*�T	ˉ�A�p��Z��|I�))��#�pH����ݽ4��/��Bz$-f���f����n�9�W$֩c��q�#~��+�Urw����m�°�T�,Q8�d
��i�Ԛ!v;	'�.��cR`�hww��5���Lb-��f��;o���f�?$�tFF�q�+����R���XV,��sŸ�_�ToB�D��*)W�*�`)��5����$A�]9t�֭�XH��9T�0g�-�=55��ؔt���_�n�+��z|�ة0+�c���9�ֻ����^��;�U�в���k��\6��/���7�J��e�R�I��((d�vylK
8�q�9�xC݄o3顐Yu?o6%���B�u��{���Db�
�B�p�"\B+�V!m����Xx��
Ht��eQh�E��,\ʃR�[��g͙��M�Rz�=m[w7�XL |S�F�e��
|�\E���dkg�X�i0(�
M,�B�W�K�4�J���P�Ś�X2��v�r�l�魤W�[�mR.疽 �N���+-��zS�q���&���d앉(u��P'�0�(J<R��#20!�(��_abl����}�r�o;�u�Y{�;�Oߵ��k�F�L��p;pࢧ-�曍��œ��v`�
`�!�
���`�|̡���;��Ά	�U�oGX��/,��
6�E�[
�Q�ѻ
��l,M�����`~	o7���}��z�6�w�'���`�`a�`]#a�M	�8M��S�ퟸ��趉K�emrwE��3a�Õ��b�_4���V����0�֎ܪѮw󦘁�ƃ�`�N�����V,��ΆB�j���P�x��\�
T1')��B�_�\����-U��&r����V��k��XoZ`I���d$d��Y���_���
�
m�
�1�D�XاY�TT�!�k���PI;�~�\˖w�9�z���mjyW���"{�<Y�����g�|�8Z�UWwl(@��,�Uc`�1U���&J��惵�,���X'<X��Ίu`i]�t&��2F�Xe��p��
*�2��Ml�@HT��,�yQ�b�b⡆A�c�`M����ޜxq;�T��+WU}z5 �+�����vg�B�T��^�s�����`=Ym�7�Wj���,�V����X�Rl����d�"��@�U����j�,c��<A��1PҀ�߁u��,3�6~XGX>�j�ڟ�u��
��X����3��`m7<�08P�JnɊk�%y=�B�L�
I��:։�0��h��?��?}f��:^8q�Gj��$��ŃŽX"w�O���,XHA��kp ,ʂ`!RHT�UEFٝv���1T�լ\����c��X,��,�Rh�Ъ*���p��WQ�3b�X�b��)�`�J~�E���S���X�b�|6��
���F��zx�:�/���!
�q�U�X��.^;�izE�0��I����L��[uȕ�+I�(>j���@V+Zd�%w>"f����ͯj�N,���v��Z�u��X�=��^�ʃU�`�`I���cYV8�����X�~
�J;�a#�O��{',ժ��		C�i;�L�:�l�����2�£�N�<~���p�����dI�^�6���=x�R<���U)ij�H�D�]��|[H;-��R�%s5P2����g��tX"X�Z`y�R�X��PĒ��s+�z�ƕTLWz:d3UD�R.t:H��

?���E��r�9$�)��g��Z���(�u	`��s�[G}g�Jٝ$��a�� ���n������.�+�u��U�e�†�$͒<�-+s�'��g��ь�o�u���,ɕ�*G�Jɰ�B�PH�Ъ6���ᇫthqM	�8b+S���K֌>?ɕ�c$�ψ���?�c8�C�X���`��,����^�B$��DKT���4�LC�A?VY�Q�/������Iyf�c\�R���Z��X�c��)����Uf`-�`�B�{������h�b�`�8�U�ײ�
\�Fٴ��)��G��T!q�]�F�8�q�{�J�[#=���b�Y��A��8�C�I(<���gX�M���ځ�_+h�a{r$럌x�w�Q�5�xI�`'�V �^��$���T���
kVg���?�OQ(|�z�:�H��,�
�XJ�N��c�r�J)6�5��`��L���1+�m��=U���9��P.���w���WH_��j�D���u��"c��bC�g	9�"�A�_c��`�0��8������;�Ҭ���l �Pa���d��N
֡�W��މ`�#��	�l{�@�XX���eY�B���j-�sc(�Y�1�l)��N�B�I0<�u�����u��3�0
'���(t��z9Z�}�"��7�rч��}`q>��閖dE�ʌ���ҙ�C:<�J�w�cg��ZXȰ�p}^��%" �Zk�-���H�6K�Umtp����\~o,}ᴝ�y�{�~��N�X�h�+|��7o��[�q��~!�/DAPp!
����@f�!�.��aH! �(�
�(FD�M$�""�B�g��
vuuw�95]u��=��^~T����cK\�]
Y9��JX`(���k�R�R1Ȍ(�H��,��`Mx9��`=X���`}�z�7�2��1�t�K�#Z���V	�a�,�|h�_N%-�1
��X�H
�9��uO")⥙*H}W���_�"X�u�>=�{��L%t7eZ���R��DRY�ޞ��n�%��)�wW��d�&1K�`5�,����&�XG��&�G���J�*��]�����p������@�nY%tJ[��{��rʏFf��V9��s��W�`����5�����ѐ��c
�q�*�X�J%�����ˋY��e��:Ms}
Zn-ieK 5�a�듂&��F���̃u`��;��H'��5��X���h�p��Zw�·�\.�� �,�To!	Z4�%��cb�2���^-8�~�ep9��``��`�d�Y���(ܖs��Ztv�?� R{ՙ�8�,t�
���sz���G��V��iX��s3p�)ZTC�xInն�U�K�X�^L:_r�^�`M��Eq(gf�ڀK4<*��[�>��SQ^��J�*#��7�#���OB�Te}�vk�ַU��X�:`-�i�M�l��Q�V�M�����R�7{h&`��v��Ж�8Xb)zB����?�t)����־;_5��Xgu�Fr"e�6ֶJV?D����CO��X;�(ㅍ����(��r�4�A��fY�Xx�4�GI���
�2�oޯ�(c��`!W����]|Ԁ���O�V��g:R�w�!9K�,���8Sַa��	���3�f*�k�
��4�|��_��/���yv=��Xc�J��]��"���!`��N[r�~Z�e-x*\y��/s�А��˛t"R�=V�R@)t�~Nnx�2@:`�Z����B����Ub���+a�1b���`	��"fUR"K�$Zd�����t�[�*B�Z��k�&��Kq�`�����(�k���B�;���(e�N �P�I`RM�%��Z�o�amPyB���`���
\	��k�\���6��K1�X�U +Qռ��X�`����Adq��S6��;��ǚ�0���w����Z0���FFh�esu-�-s-���^
��uz6�so=����V���|�"�࢖�L�R+P�u©���}�2�U��k$�1W�������L:��Xl>�C��z�h������� �Qkd�],s��'E��K��=q>1��,�(+��`ѥ��T
b�}�z2YV�-�k7u`��O�RX�:Xi='kR��9�
_�j��+z0&��x�̀w��Mf��F;JʲD��_�;�(�(�D+��Ea�`=�`q��u���b�&�,�]�a~R�*4i�	,�˓e+X\��f%�o�ߞ�R���IG��k���q��/��E�Z,_n%6`�P�
x��^p�����gp=G�
�]���:�X�!�}*��k�����a����u]r���X�]��ý9f,)6H�t�A~�P�G9Z��/�������
�VȽ`��U,�[&�Z�uM��M[7=��м��+��^k�`	#Evb�^)�V�Q쬸�P�h�7_�AwC7�%*JWZ��;HyfS.Z#�Z��D���u�SY���q�x)�X�o�6bö���=�k%SV(�N0��4��q���T�"Zv��G�C��g��W�%,����m�U���i�� �:�W+�4p��,�Ò�p�gbE�{I���
x_yk���h�\���tZ�
?3�ˍ�]I[�MƊ�G4�V������V�`}sX�=Hww�nBŒ��*�uX}AVb��yC�/�U���z,��6ZD�Px4��I Uw|NR�ʹ�n)��u���֬���&�^:�1�ΔWB؅{�zC��+oT�%�$XBz/�[�=g:9Vw*��*b	S���h�<����Su��b&�e�p���M:�z��y�s)����p�0����!�Xb*#�'�`	����Uث�*wR��rH�cձC�ZX��dW�=�O���I:������;,4�,"X8�~@`Q����+q�H�Y��|_T�"TPp����R^��c��0u�ٔ��e��R�vQ%�jmmm�N&/.X�Kq����\ƚp�����2V���D՗�z���}������tpY�:B �CR>sق�%�x�oD	�[m�����n���9�u���u���(KY/6��vW� ��
w6�P�PQhI�l���f�;�%�a,2V�f���t�I��M:m�K+���M:4鼃#�g�y��$� ]y�ԕ��{#�m>	���3F�uB�� ���3�ƈZ��w,!X�^60i���j�uZZ��/B|U=�J���:Xv��A`ݜ���Z����z���+���Œ��tw`G�ݱRg%7�*���VU��r�ꪰ��e�ͲF�L:OX��r��xsv�8F��X�jX�*\��h���qF��.�~=v���:���;����%��K�K?cn"~3���|�*�t>�����"d��u��/B^	���V�o��OBf����Dw@��0�@#���F;K*�����K�t����G���q7s��B8��_X'����r���غ�2�+HX���g?i֯_�[H��w�x�E���Y�摵ݳS����A�3c�y�s�F`��w ]|~�ާ_:��Ig�z��>�����֥p;�Lp����C�3�'�;�<Wf��g�� �JW#1���X_�te��x��Œu~U�x����%Z�֠�����ׂz���~=�<�ZK������A����OB��Q��!\�$��;e�

,g+D����"�)K���>
�N `Q���Y�W���I�Z�\�2�"�ԙ,��+��Jє�:4���ٙt,6�<
�����zN�_�L���7���%x �#X���*^=�\{}a�/��T-�]o��Z�t�u��&�'֧�Y˫Xb+o�QZ,Ku�R�oqxa	A�Q�8�j�zw�
�`��j2�8���*rK��k㦧��}n8@��K!��R�!T,AWO�
�>�L6��g�Muu�Y�X�S'f����Md�_{�,��
4�]�tʀ#�M`}����~����3�Wjާ�U�<j�X��������{��XFs���ae��>B���
d�-_Q�>RL:e��3�2���ϑ+T���r�p��G%Z�n��^Z��}2����oBuV�ad�]2I��<���5RL:%��1�tX3,�����2�t��M8�߄]>
���Dee�m�X�*�.t���е7�JUOY�n��ÿ��3j�"C�r@����
7n{*�u2���w�o���8�2�
�x����Q��zN����X�]`�[ӡ+wZ�P
-�\֢��N)��B�p�䃃�,�R0��X#><��
�S�/�`Q�*��RQ��L�-껑��pio%�H-�=���7��vZ�V[�κ��Ō5�c`���M�XP
��4d,[v��RV��(i�Ewbk��,�r���j�5���Bq��ċ���*b5c	��i*�7�p�W0�D������X+�,
mį�����������zފ�k����� �r�p�w��!w›v*�=$T5�=����B�p����֛�F/�1������̼(+aӉ��ذ�h�L�E	P-����}��D���"T`��<3&+նJs~��a`ݻW����_0�����I�,��(e��ω1BF2	3ZI�*b��R&�xƜ{�����;X��qAS�MR%	#�*<Ww)`��3��R��X,�LF}�_'g�N�bX��e��@T�*�B��G�՜��Y��8G:Vm��ee۫�˶��R�t��;cI�T$c�I2��/m�j��q���_)��(E���Ή:N�pI.]�Sb@(�G���y�M�3bB$�1W���������ڿ��~�����=��o��Z����`QѪD:�2XT��;�D���of�T�N�,v��8���� �"a��f��7!�*3����T)�*���iҶ!%-
�8�H���g�R(`����\�`���v�6[E�p�C�R�	O�%��5Oh�א
)�M�hU�:ҙ�)�W*�q�ֽ
Xܙ��u��C!:d������p�6s��+q/\>#O����>c�7��2O3��2���:�a��U*.�3�H�%��h�u_�q�R`�P���(�j�on�X��NJL�kY&��[;Ӯ�^
��8,X3\9��L^��"�R�e�k�Jּ�<[��T�����G��_�+,�G���H8U`)��ܔD�MR$�06���8��*�g$���]r-��8�U+�.��Z	�g��g{x,��$~�J��_hy�X�c���䰆�X7��?�+Z�W�*֘6��,W%��V�������gĔ�,�2Mt�k5I���r�\��A�����K�P�*���&��7�-�jôZ��N5���&n�O�B��V! ����4�� ��|M��y�S���}�D:.]3֛�'��i�_��"y,���=X_�1��� ���n�2V./��uX����i�Zڇ��}�Z�@�=	([��XVx΁���t�OX�A�<��z�+S5�eF�� 2"�$]��5�0�͒r5+;�f���44�db��uN��8j)5�>���"�|�d��H�U���P����7��XH�Q!�fR8-	�����"Vi���s��I7���F4�r�XWXQK��X/��V��9 ��b�d��֤?ϒ�笨PN�m��2��g
��rU�ud� �ɱ浳A��䅏H瘮H���m��D:w���g��ky}�p�(n�L� ��,�_g%��G#)�b�m
����d����B\�BoV�d��'JKare�u����^$��k��B�OB�����0r%@�y;(���@VRm������j�akY�Z��j{�����(_��+���y��;�tN��*�H���=�XA��Yjy-��<C��d�T(��?#Òx9�4�5q��Y�L4
k$��2Zlv=��N���aǮ�H��c�����Mk�uX|-�֭��b�vu���i%
��k�.�.kx��+�f�#Ik�zd����)��t鼰	
��-`}�)�1�����R���C��k,��uy`]��rnn��L�H�t��|�&aJ��ύ��Zy��� �A6Z�S|�Ia���{��[M��2G�ȑFk�夥�����B���B�z	`�K�2j
(��Ba��0F(�[ǜ�.|�t:��w��x�Bon���U-��+�+ְ��1��<�$��H�
�
X���X�7
��Q(nKdoٮ��Z�"��vmrP����XK�J��!���Rό��.�AA�+c���UI��c,Qm�n���>��]������7�!X7�Xl�2��m���Fq�5�0/\Q�NZ*�6�UXjo�vX�!؏�g+�$NK��jy?��L�so֓[�5�6X�bu��KC�Hx3�̐nm��3��ô�q��I�$zX�E)
Wv�C�e��9�?lMEkN�Z
G�N��d�M����zuw_�ZÔ����ɧ��
�Q��
.�����i�ӊrUΚN�-�l���1?�D��
6^��� �92W�~ohy��뙯�z��GX�և1ޢv��Y�c���.��@�8�Y��JT���P?�`nsk��X�8�Ti�*ٞ�O�u�O;�_,�RX��Uk[q��Q,��U.��-	���:�D>�B�f���8���~v��x-Z���rv�P�:��>�K�t,h)���N)��z�C�eFٝ9b���X�&U酧������A���:�0�pX�%!PU��"0p5��/pV-��D0�N��A}�G[�%���BB���ּ��)b�>+0ŏ�֍
Rq�w���9�~���M���LK�� )ؐ16T�G �J�G�2D:XF�{{,t&��KgX!�*�@/�Q�,�cFi�l��kX���]�U��Sg�u�c1U��P����:�؎ul��X,�
-�/���ړP(\Y:
��0���`e����Z+.�OG,4zH�	.U��k'F�[��yȭb�DW
��:���J"��@�݀�ƣ,�!�r�(cu��k�HE��
du����Nl9"%�3#�ӡ~r4w5m�e���[�zF�2��!1�t޽��cΊ��۱�����z��
,�N��*P
G`5�U+wW6W��[���oB�*N������gn��{
-[o/��EZ���
�po�����WtM	���z�2��9F(̇�v;ۈ�1.���bi%Y�C?�
��ꡙ�`鴬��o9N���z%���){,h)W��"�^��㪖��L�ks*�Q�����
�H�r��U܉�?�ˊw	��Ҡl��x�Ώ?�
	���c��57d`�k�P������г;@�s����kL��Q~}���%y�k�Y�T�縱4ZH�U/�b��}�-��Ў%`�#`m?�`��O���/��Jk�M3�
��p3V�( �e��.}�{z���dv/z��*�5㗭+�%�
�3JZh��c�KPe�
�O��r���HKq��2X�X/*�z�*���D�v�h,m��i��M
um��&�9��Q��u�eUU�x�X��X���z��/���M��.5s�)R��(���/�[��_�>U��1�.���+%���B���K`j�&�pL+k�tG�J�S�R���/�ϞXl��XT�V��B�c����յ�LK" ���v-�8�X�Y!��:Cs��dV���ʮ3t��H��߻`}���Ek�`�W�*uw�b�b�LL��vw��%�Yx�I�5�/�l��5qZN�Ex
9rfPg֢:�<�b{�7�.ꯘc=Y!�u_֋���X+��!W�ᯰ����k?G'�k4Vyj�Rx,��?�$�3xj��'���#V�:��1�L���"�c{'�0X�2X/��'$����� ��[����(����0`�V,eUM�
����ެ�i:p�xY5�$X�fU���w�Q2����E:��mI��PH`}w/{������A(�K�óX
��Nˌ��l���{d���CU�9 (�v��i���E�Z��b��/�7q�F4`A��E`5��֮��w?�ku}�a�5�P��sX���+zXx������a'���>����$ժJV�ƙ������%ҁ��p��fB(d��W=���v4W��B��銕i�YJ41��]��&s����f�T��Z�� �y�
��AVY[����"��%G���D:
X�
X�Xۋ����,�V�<���A�*��Q�ރ>�]��2���v�T#E�r�o�sn����o&-�%P�y��uh��aE:�j� �y`m��E1p���CVa��
�|���Ⲳ�pX��`��eI
/��;ī*��`�hV�ALʈ)���"�F�tr��X���i�hyo�����B�


tO����.0#�����:��=[�K��d��zoo.�Gy�\ӛ��W�X.��FV�zE���� �>�ӑpEw�ؐ����������l�5��/�b�x9�2���Z���Znڑ��n��T�M>"�_X_��zu���OB���`_ڑ�Ri��R�QO]���q'��һl� "��JR��n�<:W���	�������3X�AV�����x~M���V�|hCD*�y��{QI��+��"XB���§�5k�b�x�e	��c�*��*�]3ʁm ��5�vtآ���փ�{���Kx���`��R�U�`,���GS���a�|;g�="ñSüB�X1�_��P�y�)��u(9ުD:�u���/��J�ck���X�n�c)[VڒS�=��.6��P�c��>	+%-` щ��;�&�B')�*�J�O���(�`{���&�,]wg�F�t4X�F��`���I�Rp�;�b����#{:sg��q��79�`�X��%��wt@�,��5R����]*���	h��]���h�����\�������[w��E"�g��Z����,�֪�$��+�S�*sYv�A���m�4_n�
�@VQ���˲M����9�S|I(�ꯑ`�.��$ҁ�b���R����T�Eɻ�U����-f�����Ѧ+���ˎ)�Ks2�s���MfwC[�3�i�C__��_��nN\|��9n`](�/�y������>d�����X+�c�6��
���@���I<����S��wɱ�
���X%�g�Ҝ](K�*t͈�^�I�'�[��6)��aE:Z�X����(x�\[_�*��>�,���Ͽ=9ϳ�;.���9ZG�����dg��X�
<�)�u꯷	�豶�G�Q��U_֞��M3��=Kͣ�Xh�K����$��.'�{x��T�O����G����e��b����J�zz^���伃�uD�I����
�a��c
N�Vn�r�em��P<��!�{�ʣ��

��x(m� �>��PF�S�kn˞��"ǁ'�`��52�ݸ_���mź9��
�I!N�d��>+�����>�;��Rp@�Ϟ�,�
��6�F����I:��Xe��o�HG���B�=Ԏ������pK,��-�X�ǏM���U(��PՎ��{�V��j�u�r[xZ�`���I�9��7��O��#��`A��<֚�hy`����P(�;���/��#Շ����Y���K�A�*�F.L%Ѕ����%����W�&�m�$хM�Ǫ�t^���d�^܆�K����i�V�h�J`��;��xWT:�p��EK�>֖(60dV�A���r���Sz�K��8i)2���z���c�z�ʨ�%+Mr,�ɰr�RS`�P��<�f`3�Kι-���N�j/B{{H�`U�k"�-��u/���z9t&3Wk�+<5V��U�겯�Њ��ڗO���X�@� &D��&HY*{��;�����6�Np�X"ҹok
�X����U���P�S�i�L�DO1Lh_���4��sԨ)�0�uF��U̷��;ח3�J4$���xx��E��z4z���cu��U�*.KFQ�9xjǒJ�\!�XS��Q3�'=�if�W;
A��X2�hr�X�����gM����*���Hhm@���A\���p����Wp�Nf���r6�^|U-�S�o�� �q�X�0X�P����C�Kձ$��i��Є�*��0I0,�Ҝ
\0�p�܉��젉r��NF�tX+��
WMa�#�ܴ���zp��֣�Ny'�>`-4X+"�WB�Wm�d��ր;���B�]�f��v���=�vU#��qd����)�9�x�H�{1�U�|����O`����O�]�e�B����P��f���C��Z���B�C�즿YC��:u��\(�p)�a�����_M�n��k��O`���U'��f�J�o��Id�2��㲿3�*����Z�y�!�†�h���>~<�a�1,LB%�!S-�	,x���X/��X��+qS,�
�ϔYE�	<�6��KO!8E�<��l&���=����9�C�+zr�[ǫ�d��O+�XVly'�X)
X�êULA!�����w����8��e�ѣ7wf⽲�r��4�Y�U�V�=�q[b�D:yk)������X�	�͎��#!�%K���dXf}��A��}�������S�\>�ݯby�_�!k�A����'��U��`�c,���������D��WSyNb�A�P�.��GN���GT����-��V8Ey��	�}VV�4Xٕ4f)��y�t0��'�����I���
���[4XR���ȲSw���	�6�)��9��p�?X#b
���9ݤ�i)f�V}�����F�\�'�A��[��/Z
x�GXa�h�c�
sO��]wG�U��dŶ,\%��,:>}ڲ��'�U��;�v)KV����	a�tu��~"���m�H����N�RL�`�(Lx)
�鱄����� �%pP����39��&X���V,\�.�'ܒ�otΝy��D:��j�ŝ�����X�<�^,��'���,�ת�?yyԑEĈ֣��c�D��f�S��>��_^"k�
֗<��.c	X;V0��c�Xkh�%2�����"��k�"[���`D~��:DLf���� ��9��N�l�����"��{y(˱�<��8,�Y@�Ka��,�y9�iD��e�����E��U�T�!¤)+g��'."k+�-�n� ��ǒ��p%.���u,�N�,����(�q-�pXc�{��
�{�
}�HU6�5W�&�[���:)�tH�%�����j��r�����ߢ:f�5W5SP%�ᠽ�9�n~w0�Ȳ���K���u4�2��,,�Q���'Y!D:k�y��&�����X䱠��+d�aKeX&X���\r��?���WE7�`��3Jn?�����g���B��U�Ӏ��][M��
�n�v�U��!(qPZfn*�5,)��w�e�V!��{I�ҭ��6D�E�:[�P>
�N��eE�e�H��r�XPe"�/������wr�V�o�e\�b����Ӗ�N��&�,NF���M�8��lX@4�	�(��\�r�u��H`�w��"��	�2�VY(\!&�
�2�fU�����SX�*D;��1P�	kZ�I�fK�*
V�Z �W�s��<�^`=M�[��XR�#+V�L���*"
ŕ��3G���{@H�U�/k��"�gƲ�v�OYhQ�2��(��#��$+��#��Z�O���ӃfX,5��JDT�
�!(�L�p��8X�3��m��
x�+��A��`��\<֙]���������M(z/ �|�	��ޱ8,z�?X�\f6�#�q���ew���:�W��}�s�u�MZ
����N+y��
E�x�"�Vݔ�PL���>O��F����j�Qr���c�๊Cu
�([��0��J7�u"����0��g3�8y��9֊-�G,X���X}�n���ܔ�T.C�ش����˰k�Mc���W!Fk��㡥���ǟ~d�(F�X
��+�X��,	Qc0�s�,U�yU�`�6Y��e-�0<,e��*��./�K�p�{a�}�|��
��Ώ���oMgr��{�s�c���R�^���ca5�ٽX%��*`M�^�;��Y%E����7��a��|+��X6`m�^Xd`-,	�lY���UO�}�"�:KB�H*�1s���B�>��M�a� )�rW�T3����m���+ϱ~>�#*"V�D:/�cm=I`=��,�RP;V�nQ�z�’�Ш6���P����N�����,yOGz+iTƍ@�E)~�Q�=���,��H�{G��O�!��E`WQ����{�=�B�&�RU���e
*7��Qjh{̜��p�l���L]X���XƇ��J���=g��v�i),��n��C!�R�L�\�OB]wh�C#wo�A�Pt�O�9��"�@��^�a���2e⭌�B�
��� ���z~k`m7`��8�Z!������	b�aH�^��X>�w�r+z��5\�hp���
��9���.t�$�����0Xk��_k�*7X�X�úXY�zAOZ�[Z{;W�%w됍H���T"e�b�UQ!�\bX�����,X����/��/�X����F`5-�w��"�b���`�U����pV�eT�`ZS�+��,ˣ��4�� ��͗���=G�>^N�T�t3�����������-����J�9F�{,�V~[�9h�ᤋ��F��J�
cE�3�T�S�dc�6qU<��]��ݱ��:����~"���E:�C!D:�L���tݝ�_�Sw���
O\��UO$����@���(��R��F�l�v�aQDN���$��h;���(�Gy�!BJ��RD��L�ϸ�K�S(s�xԔqg&y���h�(���"����"�I)R��߳��笳�:�,k��g��ק��Y{}�z"��,	���,�0�
h���T��
`���,�JKZ�ɖ��۝��&���� `eE;"��fI��y��;X�w_�k��\��
"��+vV�3�`a��._���WT���j�ct͠���H(`���A�Ch)\'�Y!k)h<�a�\�*H7����j\��KWY�`u��a�䯤O9�t�X��:r���{������d�*{
��c���H�a�`��څ����H��{S�6V�Z�C���b�B�y'D�d�Yo�S��V
�0��E��l�N�Bk����)�.잃��/�I:������Px�B�
P�ˣ��"���{,UѲT�NR��,^���؞'���j�P��ɒl���y�N��X���2X���T�(�bTL�?\e,WQ��ڴ%���t:�h�w��tLl�R���0X�?I`-\��`=t�<VC��r%�}b�̝�,a�ṰR�l��l��I�&�#���,z�3_
�+��*�X����v��W�`���H����
*c�$����"�������m�H��U�%k.밤<Z?3)����������A"����/��
љ��u,�B�5M�H�=�7d���H/T�W"X���2���n+�j��CC��΁`Ͷ^�˲��� 3���5�o'XAK�v,��Ҝ�U��aEZ�$�A�{n�b��R��
5�f�4S�K�3��U��e��~!F4�4��r�{�R`]w�
љ<m�X�Q��;�Zn�,Z3&�
�����9,*�������Y��!�~�m.KgYL��]Ȳ���Al&��;��c�N�_�]k)HVx+���`���1������2��B���0���a�������
����FaԪ��Xު��К�ү�A*���N	��+�n���B$D����Uf�	OU)|�<cf��ɦ�F*5�1���i��R�ħ��f����X&�>v�����������k{�VXk�
�����H؄���U��z
[��'�_�!P���!�U�7��b���:��D��,�{&�(�crD:>Z�֝
���`��3y"���=V�V4�@F�+�ƸD��y�5��2����q�6��2��,$�@VL��G��w"X1�P9t&X�����Tsը5�,8,�g�H��[��zJv��{W�cnj�5жe/`�+��yF`2t`�k��$�7q�8�o�t
��Z{`:ա`�<��l�("�I O;}�x��Ӥ��t)���t�
B�k��t��eȪ,�c��:����r��-�l�:���X���Q�:K���3��Ϫ<zj)������I�
����[��Y�x�):0��kﵕ��Y��:����w�/nyG}��e౔>&`�W��ܽ�Jx��For�vR�妞�9.r�yY"V�‴]��]Y��Z�csU�0X�\Ry�+�����R�:
k�Xi��T1V�G�b��{�`z��� 0��=�n��+T��Z=.\��J|W_̞+P����I:��Ez�u����������w�u�9.��>�2V;�:�Ȣ��`–�����:����#ɳܜU��6�n�5a�B��|��U��ʲ�>I'��؍����b�E\��`>[��eq($�f]���I!|V,�3��O�1!B!=l��3w9|�/~�<�����?����^Τ�
D�:��_^"����� ��e����P8���#��#^���r��]y��e�z5����Q�`j� :�6W��4N�ij�0{\Euw��Pyx����ci�V��(�+��:w?#�ݻ�l	X�W�,@f�U���Uz�5�MYi��;=��|�p5��Vi��9[�eE:�������b-��k�f�wB�%`I�UJ�`We�b�s�DSH�x/2�`������+���Œ�L�˥�t�
�%�<7�.L�>�`qg���F�8:
�`5i�\q�E���w<LT�9ȉ�hMf�����ѣ,��R�T����MO�٢�2��{��cQ;D:5X�ȱ����M��E�Am��$�X�2��v�*NVD5��Z�4}wi��`'^Kj���?�ir�o�V�F��p��N�/��,�KQ�5�.���"U��J��ȲU,�$%�[mA��DM���UYɥ3� 8.	�Y���c��b+�OR�>5RѴ�W�����
*�`ݞ���B`!sW��ݑ�����>B�+���W환�����n':X�+H:�G$�?|@Țˍ14�̷d�:�k��tX�=[�%n��U��̎HH����"�z�I�ڕR�AnH��w��cz5�u&Z��g570V�Z.��4��wAK����{���`��#�<A`I�>!�6b�>�d�wBa+}+�Ա$qg�C]������x�{�o�/2w
�`Y���)3��f�
��c���7�E��c=�Z�豠�@+[�WX�aтVF��b!�6P��
�����t;H��Բ���7�f�z�$�4�ږUة;O�yl7��d�~X\x��X"��ϯ�R܆�����+��
�P%XpW�9�!dE��w�D^X������^�j���DS�����#��=Aь�,ҁ�����]���/t&K(X@+Wj�ˢ��U�,WU�.^k=���/�%���p�(�1�+h��uY�X�p��W���t�w8�޾6r�t��3y��R�Z����:�jr%	V�a�ZmY�:��yV*b���α<�:���X)M�\a�\�]�gF��t���
�G���u���c=�����ZG�{���jEC$����:'D��
��IQ�F���0�j?������hr�O�L_EZ���Π8�����_;����Z�`�^`W�����j�]
��:^���\I�nX2�����0�܏w�
5��b����ӛ4X�w���A�U����/j �x�@�R�1?���sX.9�KO�u$�%��j�����J������_B� ���pAi�H��H�D�cdX0�R����W��ki��{�L�ZL�b-�qN(�{�g�
�Z�����)|�V��gЍAs�V_��g���b����`h��C����}��w&/r���Gk��[uEB,��tb�2��ϡ�S�q���S/�>r{�xX���Ɣ�?Z�i��Wf�s��N�e�:g3������W K�X0&�u�A�sB���TC�Zh %��n�,��P����
,cs�}�Kg�/˾�o���"�_�H��Z�V|)d-��R��h'X-�,�L6��V|,�jz�}�-L�H�,��r�L�"C���U'��U�Zg�&ҁ�B�z��'���lV`m�b�ބ�>-K�@\�>�C\�b[r�w~�@�Wsz%�Xm!m�A�r�;(��	*Y�m]�S�B4�X�"�L^U\��,]��fIU�a J�X��JQ5L��='�HS�0�`�d�w�~3�=�Ր���t*��XO�`=D-�
!+�(�Tq4�cᥰnE4Y�����*F�������0��q�c��ޞ�\g�>��*e�$'Y!�_B��KZ��,ɱ��N��+�6�T�f�%]3���rS�����],2e\�lE���k��q�Y8�gK��H�J
Z�߯ƫ��!-�Cs�R�W%�Y�B!�����,�5�RF�,���647H7q+��J�a�A9&m�d�!X�_�����S�˜
����(�a>��
���ͥ�XK��H�X��`!ǚ�3X�T�+4c	XbQ
H�)������C�$f�����d�U��s�:�j��	�X{�Di�
n"9�i���`�^�;��6�rC�Xݲ��[!,�Wai�+��+)��z�:0�fD�i�aë��$��o�N'Vd�h��j��.��Y<�c��z'�
�&�t�'R�
Á�IV�KatU�?U#��%���, &�����u�X
���BJ���;L��_s�
�!���IV�<����-�3X++�8��W�{{d@;[�$�jGJ�6v��z�2|�ԔC;(X?�a�-��,��^R��&Lx�|���Ǻ�S���Bx�
��_O�.����@B�l\J���B�,Ul�@��Tٷ��.����Q���*8�<�Zm�
����091�0ɦ�;3�D:G;�t�
"k{�{�5�t�cMᱲ=~v�or��K�T���w%�j�T2�=���`�o����LN=s�4��>1l�d�W��,'��zE�%Z��X����[�uP(WE&'�Rq$躻��ԅ�	VE�t5�Ϛ憖B�xԱ�{g�(C�:�L8�H�k�N"+�x2�u]
�mV���am��qR�quF�l�լd�/f\V�y��9���)u�t�_s^�l�Û���i!n+�n�!o��"�I:��p�H᱖�{-���i�GcC�+���K�-du8��y0X�kn�`IK��y�\�^��a}~�@՝�2p¶����UQ�ca��X�-��*���Fiy�U\Y�X:�b���Ɽ4*)V|
Yv$�㝢�"�8D�|mP�Xv���!C��1V�k����E}~wX�Xhy������lH"a�V�-�}��0fVJu� f����pǩ{F��P�/N]��U���EY|�2W��Q�|�'D:�� +��ǡ���1XM��d^
Uս1�$�@�d��"R��[����xy)t��*�mF�LFehI�A���XS��p�0X����XK�����`�+���ZD�Q����T( U?�`ry��<0�E�^ǣ�W8�JVo��كh�S�
-�c��_;D�k��Zg�EW,�+�Hg��fN#��
��u���N�ْ$�&��t�ԞV!���#Qx��iQw��1�І*ۇ`��N󘤳��t
,rX˛SV5��Xk�8�Q�%��L�$8���J^,3����눖p
qY�Q��~��Uփ�1�S�<��Hg�X����Ԏ����pӭ�TZ����s��˲�b%t��2`�JV�-1�ʫeB���u/7V|\f�a*�ږk�L�n������`-�UR	Xh ��,�+Y��[,��GR���o-54����핏�{J��$g�����Ц)�����h)��hڡ�����
`����lJ��Y�@h�+I�t L��G�#��ʑ�����j]���Rx@
e_t���p��՚���<<D:@��`mXЫ��=z,�5�	u���	[�\x�QV[V��:%_%��MnX��%C�tS�e6�Yr�S5_�{&6zn؈&
��,j�Zf�n���["X++�%���X��N�tk�,�X��R��d��3����	���`{�k�")�`V,�h/6�I:
,�,�@��t��6�c=@`�B�X,�XS��V�SC�.��a.籶8�B�Z���	���M��9�H
�XZ�+I��n#Nj��9���"�{,�uE�*���7��Y}�
D�t6�'�Q9�R,�+){���=>�
a'��aPա��%�U�X�{�"��H�ZnKMұ,����E
���@*`�Z{����Rɻ
��i![%//%����1�S�=������@)W����;�ş(��wЕS��!u�Ɯ{�-���7�5�A��
�Bh)*��V`+;w4EXRm�,IO���w(��ND�z���r��g�zU�,���·i��XY��'�����*��Bg��k
`]��2�9�觤���Q�5L@c��x��L*�A�Uu%�Q��y;$��[�ӅԶ���q����:� �3h�u���=V���
�5�&���:��,��+�Z�������:�A<t����
)��~kL�W����@kn���L���F������ޖ"��E
���&�D:k���>,���R���b�HV(N+��5S؉��<�/���H!�G=j�`+c��Dk.?	�ho��V�J:y��\�f��X�/pg2�y�� ���:Z��Ka⮰i�R�#}G����_����*�r��e�#�<#X
�+fX�]�<��l`J�b$���}�������V�cQs�
�"g]�&I��,u�C)-�V���S���{�Q�p�T�a��9,M��I�̠�.}4���
�}XO.R��u�XA�z���m��P��u�u�]�NU}06
+p��~X��]E�m�K�r���Y�+
��F[����>m!X<�֞���ZXb�D���?������}�����N(_��03y��#�K
XJQa_�_s�upyT�Y�f��Xak﨡`BT�������'���}��bYa�L�������@Gs%��x�����	X�ib�s\%��F�DB����F�>.V�D-f_��Y��`m_��Z޸�k��B�5�7�����3`�+	W⟌S���<0kX���~"VAj(V��R�PJ��3�	�;�,���6��,����ԙ��%Ti�4X���%���e{.�����r/7�]%=��h\�@K+�YZ��Լ���s"�w	�ek}������ X�X*��BW2�t��	����S��>K
����
uX�R�=��fS�8��=3�P������Q�u���Y�u�B��ny��+�_���<���.#�2e,��SR�Y��?�Ŕ484�J*�W*�蓇��b�2پx-|�#U
4�~A���+�&�š�E:��S(�`5CaBS�J�,X�����KV�^~�-2��%5|�˵�oh�.�,�/嫌+B��h�e���U�`�%`�f���k��
+���	֩�,�%�,O�*zl� (3�L}a*]u?�Q�`���D�p��a`�O�2�7"�q��"X�L�tn	��sR�W�T�LI�m�@u���^v��$_�H9�	�8)e����UtQD���L�tk^�O��_:�h��
��9!.v�u�Z
�ي�)9зX�jWIE����®��5�.��+����!���<JYx)�ϒY��S��������i��nn�`����z��_������,�X+[���,�GVL�DX!b+{�h��\z��{��և��ca2w�E2�51n̛_n����[(]��&z�u,��T�*��E�Ρ�qc���`-7�ZI��)�]v���@(9�
M�����n9v�S�}��O�~��ǯ���G/��̳��z�7�t��d��D��V��nQ��(�MV��q9~�F�^�9U�g�%o��E5IǰX��k��<���7E�uã
�-���;wuˌ��e����w��.v�#��>���o���?�/��Gn���'���x�o��@�7�����-�ơ��pi$��^��1����"�w	��7.Y@�;d�k
�ѳ��R��>)V��׽3�@,5hlG��K*
=�!����O�����_����x����ɽ]�D�]v̓���s�b �V���-��@ߴ+K�h�����%�E:7-E�f�*c�+
��
�&�7�$˲Ъ�Xߜ�f��_	��N��b���l����o/!�����)_�����a���t��b��K�b���X"�Q,�T�;a�f���qX�0�u�_�E
��yH8ۯW������ݬd,Q�mk�BQC�dL�%d���h��{8y������V�V�
��l��J��f̑���y��X�&��
\���E��lo��k60�m��4��
��S�����C��R�X	XJ�C`���ty�D:k&`�,���8
M�I��[���$���/@���we�?�����V�q���`'[��O.X>�WޥR��Z��0���z,$���SB��z
{��Yl~��#,�Y�x/?7�
�;�5´9���';����r��J�����m�U	����֘�Z��Vi}�#s�cх�d�c���ˌ�[�d�W-� �m��CDA;�O!]��&�8���a��"��9Y����c�	Ba�혺w�&��U�<5l'�c���E�� ����؂��Jݣ�Ղ
!��x��}�9�t�`]�`q�{
�#�%����$K��}�jM/�M�hؘ'p� ���7��k�u�w�q9�y�E%�
g�N�r
�x,��
�M�R~U�
�:�,���e��Œ���s��l�\�H���C����BG�ȧ��7��l�D:WE�^XKtQdTU�Ot.���Rt1S�$�@�2)��U��-ڹ�c��l�_ӿ�0�5�
��~�mȷ,a�(�ҝZ�+�	`-����f��"���}~�P8�t3�
�	�`��e��`�v3ƁP'�
��_��&4�*��~� �~+�u�x�,MH0�5jDX
Nb��#���(�
jb�"ˊ+⮲D]WE?��ŀ��G��X����^Ou��.+3�ߠ��GUu���z3�:�f�Ȃ��I;Q�M��l�x��F�Z�Ok��"{v=`y-R,��읐��+����K<�}j(7���	�V�'<��p�q�2j��k,�6�I:��3��3������v���Ր��aU��Xc�h����:��z`�S���Ö$"1�d�r��N�K�Z�,�u���Zl3X/0X���v�8XbL�m�KqU1ϑdY�ԅ����H0��n�-YEp�{���դ�P0�3TZzX�^��c���x�&��_<>���v��=	Ya	W����8Y�"|��wF)o�ٯA��m�����#
,����1��6qkC�c�Nq�/�ŝɘ�U�~-
}��0g7#�5!K�4_-<G�ӯ[{��^��]�
�D���E@�j}�l#uwﳚ�tN�"��{槷�,z����ƒ�:���b���XQ5)��q��虡L��޻	l�{V����X�Y`Ku)G���1�:,����D:��"��&��3���nyw/�S7��W)��%׬U��z*,��e2k��k[��m?}���S
��zv�8TѶ���V�۔aq�����;$+|�j�v,��j)�I
�{,V%�u�#�U]��e��g,xԝ?��
;OL��7�k�I����{e�݃�:�7G�����[Ǿ&�j����h�sBX0�>��W�� ��
.pUsB]}oa��R�����{��Z�k�,wgZ6���_�ϨT��<�-Ckk��7]2��"��sz��I�������B��%`Ք "fO^,^1}<XBUd�}�jC��L�}~��_Ϥ-�Sd�"b�K!c�8j��R��s���u�����>p[��^�϶/�X�o���,�S�隑��r,��H`}�`=�=־��O�/�`-Xw:��(1+�b5+_#��Q�w+�V����j��^G
��7e�ۨ}&IKx��Q5��Y3��=���tN��`���d���`�/�,{�ڕ`��!�A�)+�j�X����,8*m��0��Kz�S�w�G7J���V\U�i�Dy�CTf%Y{V��F��/?Ǥ�"����.��ux���]�AW�8I������_,A�Q�ݻ�5έ�)Md##؎K�k����@�ӭ����������
��s�ᣍ��2�K!�u��	�W�3y6kY�*�p-VlY ��,���x1D:��������9��7w���J��FG(�b��g`=u��4�m(�>>�P�a�H��@x��C�L+Vʂ��x�r�I:hy�Y�����XV9Z#
<+�kK�xY:�����|���I��>�oƩbz��t9Z��鿴��P*��f�D��`RN�0U:�=�@�U������`mX���bC�]
Z��_ �����P��_�b��2��P��G��F���J�	�{�K�������=V^b���Z�4�
4�צ��B�����*��g��g	��5���L{����Zr{���;�J�:�o���g�G:֮�
�Xݝ����/	Vd��'˘<^��*mE��?bII�-���Mҹ��"�9���}~��J���)O
GK�:J�Q	�����C�'��y�S��g������VՔ�
R
/cS|����H�>G:���c�H-ӳ)X�IV�`����X-�K�P�Uq�e�����XPmcV���)J>�9೪�(�?�v�Kw�u�~9=_�>���\���o�CQ�4Y�G�=��ӡ+�t�
����U�����c�3�������i�ƙj����D3K;������@�&_F���� $f"��p������`�Uݞ<.,�`i� �1�X�{,֢��f�)�Ba�ܝ"��PMpQ���ݏ�zׁ�Z���m���䯏�J���H'n�Z6��1��5
z
5K@�X�uf
�u&��p��k9�X�(xS����`����r�m�}���*ݡ��O��t�!5KSK��ɼ�	�Ǵ��<3�umX��y��²Խ��%�
�s�7#�w��YC[V?bk���V	�����n��MV�h8�u:$q��Ky-s�ׅ�HG���$���O`�s�{9Wq,y�[Fbb�z��!�葷�;CVō�X�T�Ҷ�3ཷ�04pYX�L��2����6D:&���`ML.2X3�I�Z�W�P�f�t$dcweZn���K���t�\[`��	m�N~+������{_-�e��8��,�`���
2C|#&R0�(�>|�DV-�"�ŲB��i)Z��塐���ը������Κ�n/�l>��rÑ���j��v(��&��":/��wm����%m4�|e�P���k~"�R�3X�8���W	�*Mݱ%"AkD��}�U�;��Α�P)mp`}_.ř�
uw"�3�6S:��qO��7HG))�2>a8����KrX�x���B�i�X�We�|˻���S��>���KYUG����p�V��٥H&��R�0X�W(&��PE$;6��9��5zTW%�Pb�
�	�B��%�/��������DB���R��e,��@
֗�G���tXm+�f��h�b����(TM�@&
Y��)V�ݨ��a�M"�ϝ���j��z4k�N��#�J౴U�*����T��
��.���47V��lǒ�꧊ɉ���,�)�d�G�A�K��A�"�E"�9�Xk��rG�Ы�=����Y�.D�Ɣ�ys�����a�+?���R?U�3v��!:އ�Ƴ�K�%��փ�X'U�h�܋t&r`=-���w�Px/y�˱T�����\�¶4ǒ/����g��z�З��䪼5�x��K�H+zfX(�&�H�eᱠ�X�XNV�����ZI��H(�_�j�� 	l��P�,ݷ>J��|��S\?��?V�æD�$���U鄝��ݯ-�tLr,�Ḷ3zUiy�¾u�`�)�e�N�}��yX�ѐ�v8X���l"B$��,�;xz��Ҁ��m_Y͔6Q逯���tVm�N��t�G��=X���l�7Y�b�:�a�����,QJ(���:R$��P%p���4�4U���6�^4�X��'	�����6�ڵ`�P9ރK'Y(6(��XR{���K$�d�X��R0|+k�%��)�e� E���c�����GIU�!,��� ��c�Z2Igbzw�9�c�y�Z,�)R��Dz���.X�Ȿp`U�����O�X�¡щa�Z)�P;,O~��#`=B�<Xx�H��j�c�N���O[�%Dž��;�ழ����|^��(�(��U,}�cRn�����(�k�^ұ���꯳S���������ȃ�<W;�B�N���\%KV�V�X������C�7�}�w���u�>X��]�M�Vn?Z��|8�ߢ�h8�I�53;�����T���+�`U���9�,M��x��/�
������y9�����8Zҟ�x�@��t�o�LY9*U�J�����!ұQe`q�ߣ��C����S�-�E�
(^=X�9Vm!�tB�B�W�m��r�HH���C
�,�vR���5X�~�]���"���F4�Ix,�cM<@`��b*�6	�ȴLM��ȳ*��X��J���a�^QԠ��y9���c5!�U�����~%�<5�`U�RX��2�R-��D*ҙd��x�=��G`��$ŲtV�71RI�-��M�@�V��o��w��Uja9�;�%�]_"v��Dz�ݵ��?��q�S_=.f?I'����B�{
�<��O��J�Jc`�K�-�x
7`*
E2�ꤛ��������K���B_x��K�`r@�`2�|�.C�c�
Q��"�F
�`=
���{3��5�gj��c�^xP(��Z��gEW_�p8��*��_���d
N�.��P"�&����c̓O��$r|#�`
��/_b6��G�f8��X�L��,�n*	}m�?\$4�dI�Ua�۷��h�`;���
�]�����Cy��/��?y<l�7��'Y�X� �H<d��XXp �l&�H��rZ
���v��t�;AƖ낅�QǓ8,�u�YR�]~_�ƭ9�B��_*�l%]��(��kk�K]�����PA79+Dߟ�*�%j���mB!D:P,ʱX��Fkƫ�����S���"�
�������F4�+�`G?�X[�:��:|���
uc�P���ۢp	��֚&�5RE'X�s������E��B�3@;V��Z
k&�E:B!:�,��\�eh+��J���G4y��	�����=\;����C��˱��}�[I]Qv(�[}�ư��V�q�h
,�9�L���#�f�x�8���cM�5�%����LJW��N��Z���
��?P>�푽�}�,�٫�8G�R8�[:�j�u�r%t5�ICUOj/�Z���l��]�9D:������;��/�Rx��;�x,�Q��9-D����P����µ~�_���:k'�K#�F���iEb�V”�,3cXS�
�Y���7Y��C��9d��ܙ�(�B'+�[ާ�@����@���),�:�#-��"�M�K;�7�u0��Y��}�G�ts��Q��.��N�2+ga�NZo������"���x���=ִk��㊉�Ί6�0R�)#��]V�	�*���l�K��8����<�����7��;Z(�P�5����YIM\�+Q\IHd��"�=�J֎t|�UE:YD~%d.Y�*�\�i�!��I�b]��C���c#&��HW!�7�$I��8�O ۙ$���]3��Y!���`=�`�-�c-+�N(L�'��i��c_���:�m0n#�(�ڔ��a�����(�W�Z�h�i�,���Y)XX4��u&Xw$k\U��\�7[ƽ��J.��<����V���I:6��V�Ap�p���[��hAKa� �y㫿e��,�rc0������SSs�jк��c�(0V�`T����{�X�H�L�:ͽ�px�2V����T:���
`�c䱠�X-Z���,��"�P��Ps�ʗ�n1@�d��A��_n
��}~~��
�L�
v��B$�!aU9);��s�n =Á��_��
e.����j�܊H(`�K��F�_�
ʓ6���G�Z��G�^T�ࡄ�ё�-��s��$�72��s��`���g3��)XsⰔه���3j��!)cᙱ�ľ�`5#ͬH�$ْ��J�H/`�-��ǂ�`M,V�>�r\y��䨐V��\VX��XJ_ʴy���ُ� �}a��d5��a	�;hª�È&C-�ԙ�䳳�
�j��
�֞��|���=c�?�^I�,i;x��A���k�l/�f�d%R~�c��tN����%����:�XȱZ����9|]sa}Tq��,���{��Ju)�&���
@kp��ۀ�b	+v
�`򂰬�`���M'����`��p��je"�;��b.��sx�-T�B���0q�_�8�֠ܠ�_��ǪY��c)���k���H
�XV�t��"�.��p�7> �<V/���pY
*�2)��B�O�[��	\��2�U�6��WZ��Ǒ7���DK��볓��c-��"�)�5�rh�;4b)�#��LM�W"�ж��t�l ���˦H�~G2��(S�~�((; �ߥK�~׆H�hD�W.��Q籼Hg�p{�=�ɯ�R����q���T!��	X9ĺ��[�3-�8�>d�"�f12V��i�ݷ��R��+��z�<�>?�tփ��3�c����{
�X>u'����v�1qD�����q�e��
"�r�H���^K�'���X������Ș+���_D:OXS��J,�a�ʏ�c�8�kY����X���p�c�m��U+�$�X�ɹ-��q0�x.�R���c)�~.kz�.XpY���QijS�����"����XeƸ5(��A�j�ְ�I��
)��/8R�[ޯ4v��,�B~+$��_�H��t`=I��;�
��z#	oAޮ�
��O��Xw{٭j
J��4j�a���B4Y�Y��R�)X0X�L��=�R�u`���r1t��>}-3�L��
i������
�X]}fߛ����'�����Ʊ�>zu�ֆvo�v/��,��DC^pf�t�lD:'�/���d�<�8<�<��9�X�0��iUn��ez�UH����IA����T1�ac�D��;V����/�|C�mmln_�j�s�<:#���f
�p����I��X�������t�`���>��;�
<�j�y�}�@�@H�£4w�Uj�-�X�R�j6&	T����N����
��}���3�ޛ�o_|wx�رc?���m��/�$���1uWGC^�%��o�`8I�
V{��kf`�X�ԙ�`�8H�	a�~hb|,�)|V�0��
���Ԛ�I��z��%��e�����W�z���:�;�Ѷ5�3�yW���5L��*<Zg�c�Y�4�K�5+`AKq��$����r\�ճ�,=*,x�S~�ؙ�*�*��[����ʄ�n�[�;h,�
��G΁()�'i_I��e���H��X-��"�U�R�'��̅`��!eY�k;,�?O�
�)o�e�<��(�Ei_fpO�Y�oY��"��f`!w	�I�k�̋�b �Y����R� �!�(y�h��0�DŽ,?4}p�`�6p�O9WC�C.̢
C�%����L�y!���㝤�
�R<7�{7�5�z��V>�m�
�4"_S��vWjy��*���rUv`&^�S�:\x.��	��x,��>w"���,�d��O�kl�\�Z���.�%ƿ$k�,+�(V�k�ӫ2°��X�J8:W�)lV4�JrtI�U��"#-�z���•�=����f��,|��Q`E�m�xl5H�ߔ��H�՗la54x����Lw?�ړe�xÈ&�I:k)���
��D������.3�	��|[2�G)���e����N�QpX��G
D��V~�EC<?�f%Uլ��$���c-�cAK�5��_�C��THU�
[8�,����B�*�q��m"�V��՟��6L؂�2�~�9�ס���u��$n�X���c�/+!�f��x*��`�D�%qP�@�,�*yTx�jiR	�	^��Y2�ު��u���FW�H��t���kb�H�I����
�O�K����܆?
�)
��
�Uє1%�{4�_�[�Za l���;��#`�L�X3�܎5E�e�ԎE`My��[+5�c��9�c�deO�yI�F�����	�&L�B���pCʚ��̏o�־:V��d���e"י�(�5���`9��5�����~��Xw�'1�L�1�'K���O��@
�F�E@)gE��$Y�p����v��O��pYw!Z�x���`ͦ`-;��HK1���x,��7�	X�7c��-�%�Y�
K�S�D�F� �UF�&��C���d�C+@6�&�%�x�S
�B(d�XV��Z���������=K�C���G X�JUH��Y��M$�S
}�(���%pe�b��3��A����>2V7�������5�w'+\��`!y�C`%!Xw i�Pa����~��a�)��*����
�Y�[��P����d_v[�[�Z����?�x�5k���w�S��>��=#L�~��=U`
_�;��aؔ�>-���6��.�p��]!^	�͌��%ׅ�>4�B�5�uZ�<X{���[Ruȟ2;i}?ZA�yr^�
�j�+^����U����p���E��2%�\Aw����t�Hg��jg`��(�
��гD�lV��(�?����W�`I5+]��Y�EI�>��©�ݢ3�t�P���wk6K<֝�c���w���
k�l��2��0ѢM�_a�p��-�q�>���?��]���6//L�W�c��鼲��E:%`�$!�.��ɨ�H)��,�bD�4�W�*��_��
R(5aJ���j��[�B�x+��0Q��Ƀ5E"��������)�X__o�<d��`ﰀU|�h1l�x�����u�VL��y�C!�YUK����
�ӯ�j�k��_֮�Xҙ,����Ǟ=�]��E���N�}@�~-��Ρ=nRª0E����hC�eF
�U���;?�t~^�`-�c��B���B���
w%y�S5,u`��+��@�h�op��ց��-�̐�Ť��]zIuL���\��B�t�_^l1X��Y��XSDT�
��R(v[���h���
�ES�
�b��eI���@IS���Rm��Zd�$rU+@����`��ˁ���X��`I(�)�mw���:�
��
1��wsu�����V
�j,��u���-n��#Q����,�u�����ƝǢ1�kb��bYa,�T�K���Ga�L��3>|fIt��\�ψ�R*&{K�!>�)����;Z�s��ǂH�=�̝�O$_Ǎ���[�Q�%1��ۋ��pp�����]c�^7!�+��@��%f��/��LvƉ�,"��΄'A���2
�@��}�Xu�}�z83��X=�����IUu���"���}�IK1��{H`uՁ�8u׌�cՅC�(X��n�Ď���T�R��_I��Xh*��p�`�&|�������t�o}���`�n3XK�c!r�%����X�}�,˅��M�ַ�,��Rf7M�XV�"<��n�̮����eW��kX��1�]w�c�-�ZĔd��[ae�cٷ���wqV"�oq�^|��6����vx���s"�`Dӕ��P��ӟ�H�{Vy,�
��^����u�c�EH��.�>҂ep%�{R|X��zM��n�K(��}�����عH�󃏿ي����������	�x,��H,u���-�n>�E�%���*Z�R�$[��U�j�H��AۇQ���h�Oj�u�������
���i�Rt`Q��`A��䝐��P��u, ��ŗ�V��;󐐶V��*\�Ҡ�^PEB鄷���m��%��1S����H��)��$�����
��i�hy�\���R���c�+�Rwt44L��E�K#Ų|ܭ�ϥd	VZ�jP�0��<
�lt�+с���%9��,\ �y���w��w��U��z���<��RH���J��j�.���o�-�U�֭d�X\���B��R��V�t���
�E��`��/7R)�D���?�^Ku&��`=���x��7B	�
�/
���x�/2%D��"_���]	Z���f��M4�}�R��з(v����&��X���Xc�9:pX��3��+M�ʻDF��D,�ɔ�6��	X��M��0��\�f��W�7�G\VϟH�c,L������P`�`K@
�wd� �@�[�21�J^����7�]���-h�\6K;;��R_�� �E:v��H�?�7��G+kpbjn~ja|�X�U�
�d ��+]m ���)W�>Q�+�\W�f?qPXbѤ�%=VM�َ���O��*
���^{�t~�D:u`���Ѷ�}����K�
���-��R���ڹ$J/i}�/�*��3W��@�uC6oOV�d!k[tke4آe����=���C�&{,�tD:k��
�w"��J`R ��MU2S�z��)�N�e�i�x!u7���jYrV}�	1�J��n�"����J�3� 7�2Xci)4X�o�Q$$7�h!6�W��\�իb��+�Y
f��4~w%����Uq�l��!��+k��¡(�co��t~���dؙ<Dz�y��E\	Xu�Q��0TD�"����T/�߃/W��G[{;���/��g^|y��_����\-�%m~� 2`���X�Rx9�O-�t,i)X����BOG
�VGk),��
�f���`}��p�}QJ�9ꚾ�ϗ*�J�tw�`7�O�5!N�Y�_�Kڔ[g�~�!ܱ���F�B- ұ�L�����:���1,qZ��~KeYtm36u�(8Z�Wgi�T:�<���Z�����I�W�I��Ľk��v�@�c�h�`��_S`-,i����
��N�P�7Bng@��إo���<�ėz��s����5�foj���q%����X
��c%��vRydW�L1���\���ߞD)�U	�y�L�EB�;Ȓ��ؠ~�ݐXC�
3�ʰ��]/� (+��*T������w��bY�c�Ȇ"���v
�I��P�l-����-`=!�Tg���PKQWv�<V���կjY�7l�tZ{�t
�8�mM,$]27�^�O��C������*F��zz�o�=��W��i�Y�V��N�{	�&��Z���>�u-�ֳ��}Z
,
�����9;��.i;]M�ͧ��Ƌ���5��u|��^.�f퀕|yB��������(��Gݝ����,�zQ)��Q����neSZa#i/���VE:?eY�W�c����;��R72���;�#�Ȥ����3_�C����-��c��^
����r�����`��!�Ozfhl\s`���Tj�''��6�vV���v�n<j��]3w���qת�Do�l�KF
��}k"��A,j ��B��XK�ҡ�~�.ʙ�
��,���-������^+0^��g�<����I�����%�M�J�[S������3n=U�%y'l���>��p;/�~����alr�2^�$���? �������w��>�R0X��d��Xx3�0�]��6)b����x��bLѣ.q9X�%�
�A�׷��N��k��5=��3s�D��aKoMx�~�[dzϔ� ɺ��N/O��&��!m������)D:vd�������_k�������.lE4q
��nx��*0X��f0���ޙl�ti~z�E���s��I�8�~<��\��ጰ*|��$u��W1g|��2ђwC\����8�V���E%ږ2Ma�#�Y��f�t ��!����k�G�X�c� ҩ{)$�X���҉YC����X���Vң\ȾX=��{b�R]rA���#�+����KN;i�X�,ُV�ơ�3Y%��'mz��j���}��y�p����r��x	���Dk]��B�C��z��N��k�t^w�HG�_��%�fx|��8X<�AvU*"�kq��DKBan'�X���kq�ZrR���|(˟��VV�_�X���GG{�3����6Xg��Ee�Ks�2�:�>�=��F-p��X�gH�&��4�Rhhq�Л�?�[�/�:��NW�I����h)L�DV�}���X?"���`q(�:�lA��R-!չ$y�Kq+�R�%���+����U�R�����T�"R�U�ܬ9�����ݽ���*g3I6/�+�Ez�5��m�IM':�z����jO<β������g����2�~���F��M'�w5��W�U'����wr˻�w��V�5=�"	�/Փ�w�o��q!K�w���p���;�q���Xj{!'����J��.M��<v��V*�ӔdU��7��h�($�Mޞ��"77�
��ౖ���{T�ʌV+z��\��{객v�f�A��Z�3QX�D�3
���cBО�`a��5F45��%J�{"������H�:�,XѰ�}>
�Xv����I{!V�"��s2��]aO��u{�����t�U�t�k�i�6�٘��O>�9
��g2�R,����y�:���5R�A�a���[�uhn�3�+��ua6����B�LX#����$��+����$��g�{�q
�
V=WL�����X몎�_zEYx1�F������0�Nmo�<8��ن��-��ˇ�gD�=|�3�F�Si1�+52˔��M�jěrI�i�7�,�{W���؍:f܉���?������
\��߾r��2�̕����K\���o~�]3��J�E`��wR1X�*~�a�ΰt�~K�,ًVU�FdU�R�8::�ش��LE�!EN��	�di�?W�^���Y�*�u�������$����,�E'%T�O*;���0Vl鰜��F�5XS`�'<����ѵvo"�m���u=��]�-�v���&��:�cS�^R
��҈�������a�H
��>�`}A����%E,Ƌ~P��B���[e��K�ژ�<�Q��;p�_�‘�@;kֆ��N~cyfz���5�mf�c-;d�ʁ�'\<g�/.!`=�(�*�<y�� ��kY�}�D>P��Qyt�����}F傤��Y�f*VfO�Ǟ��K!Y��~�^"����w�cՃ5t,�%`��A!��w~'��e�0h�Nq$���K�YU(݅���Q�VÓ�9���]:u4��e����Ҫ�dy��/W�F�����n�R���mރ���j����Oǽ�rCo4����ƜYr�����,�Z}T�W�iz�S{�7O�/��?Hırݞ����󅎉k2&��,���󓫁���`�Hg�;�ɾ:8:C`ݯ�Xcf(�r
&��jLV�6-
X��" �
K����:�x��m����}5�����9�/{��{�̫5��.va�΁���9���ʭ�\��|t�� �,c����X�~����s(tgP1��k%,�f�[���n,��G�����Ry����]�	�/W��F)����Q���L��4eA�e�c}H��
K��|F���2W��3�5��2^	y����a����
�N.�X����V"���$,;�O�ʗ��q4��+��|v������*:E��c�2[�a��Q�w3�g�+��a�lZ��[W�/�P�?���6���M�oj�"]�f�pW�����ſ�{�]=��o�ӳ�%|J�p��]��g���q��J-s+�����z�!ҁ����V`AV(`1Q�(b!��b�d%|q7
�k�sj_�?��ɀց0:.���\Z_m+�X��.$wB�2�ɳ���ቪ�3A���o�����a<�Z�W`��D�"���,'2:m�D}5��<P3l��z������yu��K㝴LLo�U�W�=3�L��e�
`Y�L�}Du&�`��9Ekh�sq����Q�[�K{�/��o��n��Q�_^�\ݡF���[J���Q�EV�
�֯���Pat�`��E�Խ�lH�1�z��m骓V����|�&X�֙��}wCUHQ��Jٞk�+Q��<�}5x)�\��x��ÂkOB����/����ɜg�򦫺�a4�~	��5�"��(��͘�z��%�X�=��˴6x,�A04�g����0�}~lJ���e�ų�@�t���y��k�?����s��2k`1I��X#�_e�؆��m��X��N�$��=~)L��Tl���6l���NՁ��'N�6]rX5�Ӆ�+��uGldտP-D�H�u��ee��/�s,ރX?b��坹�Pl���ByX�1X�̀�](�b�v��]T�y�z�)�:�}���}�RT�G��Q�p!frUG�ΉǢ��\���%��>�Vs%`=X�WhL�t.���U��6�SIC)2*X��j�{j�ǻ?����v�}&�%��'��[A��=psJĿ�ox��&��"K����V`A�C`�ø�Xm�e�A����i�ټj�*�
�w>��֥F��Q`���Le�_E�5��bY���,��0��Ȣ��3�gd�\�%_��*�l�8�+뀜��s�d}C�|Vg(Lx*���N�Ci������j�'��PpM CO��7�r�y��o�>�#�~��?�H�v�k"V��~�t�A�~ew|L����gz�}���X�k���]�ڧ�!�Oq�U�,z'�ϺgrjeS�?i�M�D�y��{��|<
�~ˇ�•�*�P:��w�W���{��
��	���ϫjE��\~��J~����J>Z�y���گ_!�_�h�� �a��c}_{�%���f
5X��2r�O�,\�f��|j#0N��.��p�Ē��n��;���`�,��r�d�2��P�DL,;�G4�(����յ�:�V	$���{�G9�[�f����w�'�����i3� $�J�B��Y�S��
Æ�m�`����u�BU�a�T��X��nk�Oj�%`-��b�`�S�\�`���	X]�r��C;�qPŮ��U�K�^H,�*k"ˀL�S`�X�'*���wX�'�m~qzW��C<�\p�����'v&�>���
��e�'t*s�C׮zRd���*u�<�bx�(�w"�_��j���ۃm�{��Y|i�گ�>l
�7|�<�
ρ�E`A�s�scOU�{���0���S/��3X{�5#h��\A�$o+.��G'C�j M+���>�����Dp�9��^��+�yp�/�o؝v�U�-wO����n�$�+_uIm�*Uԩ��J���M�
��3*��B�ú��.�nx�C��d�
���F���hϺH�sU�W�I:ZV8����=y���Q�P�zKݥ������5-�xvr�I��v��WQ�U<F�uT���|X��F`�F:8�'~�	׵�HG��2���k�����Sm��R\��Qcr�T�Tv7��2.�B�6ly��-�P����ao1�L;mM�\��,���8����Fo�����;���O���2�"�8X�>�<֐�����A\��l��+��x��En��ݡ,?d���T	�9ȩ۹P����+ʇm�mW�u�@S��ܶN��u�]�Jn����w�ɣGO�2�V�Hֹak!�#|],�A����Mh��d?.��������a>Kgh���yT	}b����¶���!D:vF4�`�?V
��Qx��{�B�l��c���/n��͢)�����P�Eҝ�����ypwQZ�D�':e���'�,�1ǭz��j�s��`�u�����{ʘ*���E~<�;,�wD`=����	՞�D�t��T�#:�Xa���`�ʓ��S<y��x�=ز��@`}���:��v&���V���3��"�:�X�K�i���@��wy��b�V��HQ�/Ra�ؿ��A-�/ս�*`��X����
��{�<<R�mG���V2�<YX�ɆDZm�+��*�T>i���HK_
�宄��W����Q�Xu�B�+u0��
ѭ���8���ܬAY���P��,�,�R��Ba{,&+L�c%`a!t��_+�c]�g!I';sSs;'�]U�T�DsP��Z��bC�5I9'�(?���ᕙ�W�'+����q��J�UX�S��3��z��j�*����{퉮m�U��~zz�����+|��Ѓ�8�H��9I'�X=챾���V�q?<��bI�u�ȱ̗Bko�k����,���������Z���Ӷ�����Y+
Wmӝnt3Ps�
�!�j��X��4V�Ժ�;��
;&�]�ٸ�;�$	hmWw�z�䧻#VB�CP�;$��{>�Wcx�!�X�)�9k),%+� �	Ca���4�*����#�N=υ,ō�Yʃ&�Tm���ౄ��-縠s(�X8I[~���W{��h1,���y�D��9?ݷ�`͸�t�����aV��=�X��r�����u�L���k4t%`�OBPyx"�őj8�fp���t,����)Y!��M�B>��!q�r�x,m�5��ݝ�V�V����\����Z�&2�ҩڼ`��sѓE┕���2<T���*�ZԢ@
_�㙌�Q��1��W2�)�J���Z�eDC�s*��J��H��GY��Aʖ��f�_�����4jF�:����>�B���[�&h��6���K���k����`�佋<֘QƂɊ��GK�����Ν�/�lt8h0�>w�8�4Uν�/b=4�4����֎~���㌺�l������������ޢx+^%��S��z,�SQ�V��{OVM�W�0i�����8���{�
���ʼ�X��G��Z�&xI�l������w�h��"�[1���`=d�z,�%T������-��2�j
��y�W��d%'M�Rا���"��R�Ou�R��!ݣ��/�F�.�7|iq]���)�z��vQ[HNEFBDx����Y�VW�k���}m���[M��S�����$y��^�
��7Kr-D:?�/҉���U�h�'C���
/}'�%��̢�~ PɊ�S+�;;k��B���˽����B6�>"V��G��d��x[
�4���Z��#���z��2�y�V��QT.��,�u(�&$\�`_w�%AZ�.N��@�E��½��`�K!�˞�X���`x����Q�"��,��XMS,I��AU�A��"*cq���+\�
k��&��5-�Wnb=
WSN9��[��a�Fl�'\�ڀ�r'��@�ey��]T�����6�{<'��;��~�"a�"mR��ݞ1��/���fh�X����X�uc��~a]��5�[�5���NXc͓�OG`1Q
[���C�+Fu6�P�x/C�6}\�@�.U7�3���=�r6�0�Wݬ.���P7��V��1Ea�_�X~����2�W�͆�x��0��;D�5��y���Dm�)
�,x,X�����ƗX��`}�X���〯f&�π.���W�d�obqmqi2���tN�������x�Q2&�L���^r��
��h��dd�q�ŃE�3wݙ�ޘh�=��3�����XT���Z��	�n�l�h��?��]�b��X�{��j��Sߐk~o
-\��
��L&�E&�Q�a`|�G��vd�?1�y|(��n�3�d�o���R�'�A� v�>�<��t�C����y.��lg2I��a7ܰ	������|�Ƨ��ۊ,""�����$Y!��
k��ZX�����YK\U݊�ň(��j�,���1u~�W̸~{w���
W�W����w���bU�7���z���X�m2�ᆍ/"�ቡ��5;V@]���"��"�<m�-kX����N豞��`}���]�,��6ê����m4��#�1��������.3��=����z$�^xDH�BY�Ɍ����CD:l+��Z��>��@v��lQ��+�������wb����Z�a2���B�sf�es������w3V��y�[g�|�V�"���j�|vF}5�����bR��J��
���M�(3e��,�3d-�E���G�Rh�HK1�
��_P\q�;Zލ�B�����)�V�(x#1�	N�\�Ҍ{Q}=����3IH3I7�Ѯ���I���O���l^����`�,,��i)^s������?z��w�5 `5K�Ŵ�^jY&I�I�%\�6�3g���ֈ(Y(����@,qO����%R�Ս���nm?V� �U����
�Bw2�ܣ5��~���F��	%�~7�2XOY�ʝɽw,�LF���b��F�eVE�$��>X�W���.1w^���$Uu��̮�b%�����գ�d~���C;� {>
LN��Pn�Hǖ�zCVwoX|f�x,h)Zk�1MG�&��V��ϔDBI�0u�`�]�V��~���S$�����"(�B���qY��ą����k+O�������D:��_=}�|��4w&k�x�����ֹ�%d�U�&�_Ƌ���(ƚO��T]f�T=DPpĖHP��������DZ�x�*D:6�"��H���c`uX�J��k���vN��D��L�{���+����bz�V3�9��99lƦI��MR����d��"�B�Ų…g1��s`}h]�,y3lZ5�j��ߺ��蘯j-��'�d�6G6I��n�+�t��'
0z`����>~#��2�zJ`AV(`qn�Px��19|�
��]Ryۉ��W]��f�����<��¬cU��	T���Q�������d��~�����X$+E:�3���ӭFB|�^�u�P�2�Zb+�Wz-�ĥ!Rr����Jo��<�c��	^�]���F��n�t�NKD:V7�5u��R�@
��إ��P�2���b`��`�6[��u>�o�s�0؀1�q*����]}��J�m7�t"KZ��!�5X�u`}���L�� o�C�h���E
��a�5 �dE�Yf
�eÁ:ɵ�s���Uh=ɪKܯ�k)�`u=�`�����1��~�!Q�:X0��-GB�Ȃɐ�X��s�@�uy�4y���'ܣY=���OkV�%Z
�t,Mҩk�K,��>?Q1X,��^yv����:S�c㽰y$��CC�ܞ�ǻ��~ek"����TW�aS�L��������7�X_b��ͥ��������8���[a��
��M���\�t�� $�n�cf��Z�.W7v���.��Y�L�y��v,��L� ґ����X�eI��&`�s��,l#%U����+���;�V1�������+is��&�X?�)�)���o
3X�=1�� �!��K�/eJ�akH��hpe����{�i`\LF1>��ˤ2�+���р�kX��W�D:X]C�P`���ԁ�Krw�S���A����
u���H�;�%�
��0��`d�"��5���$ұ��X$+$��BK����$��P8���ZO����F\�)��F"C\�l�G��u��W�Ƀ+���ݕ9Y���_d��z�k��K���^������C�a	X�ե�X�(X!;�z��~���E10��dlpYH���6f�	� �-��E�J�qa���B|�����߽��$���X��}pB�5�����Z�Ǿ^���e�.т��
�,�Qqg�(L�JCT�?��kIvec6{�Nx�El5�L�2�j��t_��"X�$����.��$��=�L{H`�L�H�t,�X�̀���}�{)gwujjf~�8���+y����A���m���-g�p�6�FXu
J�Y��]���T:*b	�lr%��VG9����"pe���HG������XK!����_�\D\-XtD.Ap�T6��9V�-�R�E�U�6���0�rV,��T�A���ɺ4x�W��M@�9.~jπ��Wk��"��`��h� ��a��:��ZD���U:C�4�JgV9��_�������oR�نy<M6�-\�U�ߒk]��,ba)Ѹ�OV`I�d+�j�p�Vs����?��i_��,�NϨS��;_�[�����=�$��S����C��������`xy>hȕ�VN-d[��p͚�.�
WY��d!u�o�/�Wm�tZ�Xo�؏I�E��ք�u����ׅ*\diZcM4�
n�;{�8E��S5��D�#v���ls��Wn�kW�T�_�(܁���Y����1�
l�.ұ�?��H��^k��bY!�q�(~!��Օ����j4!�b�[n3u:#��f�#�9��Iz�9X���Lր
��6�i=O͡S�Mb����N��8V��I:~��L���E`�c�Zu&,h)>�X(/;:��|z�&[~�o?�;
�hpп�vu��Z�E�BVf�Y�\��-�8An�3�W��w/��mO���X�����S,/c_Y�&�,��6�͞H��]��t`����U�׿�P<Q'�
X���=qX��⎳��
&�&�A2�
�l1[車lȸ�Ji�)X>����ΛY%��,48<2�N��q���d�"54 ���G>���M�Lm-��"
�����p����d
��a�����+�+��S$�~aO����&Nx�S
�������B9-:��֋џ
�x|�T����MhR5��g�Y�p����_w��Yu�zHx��^��;���Xf�t�]-p��z�U���^E��M�zJ��zt�Y��,�H�j�&1��_�:{K����ϲ֯�
�nӣ,��"&�;�9�Q�w�h���T!P`���~1�P�ˠP,�ֺ�#�ѩF���bf�y�� ��T���G���MM�8c��%W1,�.K|���`Y�)����Z���S
�5��/�@*`)����X��`W����8T���{35ҐM��cg��X�9���б��+omԜ�q��ȟ
�X:w0ܲ�6_�����d2��D��N���(4��ҙ�p�܄i|��^Gƃ�ʌV�
Z_�&�uz|0�`ު�e,�V��ٷ-%���9�?W�Kݽ֘k��ҳ���Òc�S�5f��\#‚O�S+9p%|���㧹g/�=�Hq唇ʭ;k����s��"(dv�#��ى{e&s
��ŋu�gH��e���v�M�Nh��d1���'V*e��3Xɲ3-`	o�#�UϋjZnbc��.;��p�K->�o/c���C�����j��X�
,�X"���P�P8���ҽ3��C�Z�Ă�
�!��_�U	7�Uu�TI>.;��U�>(�.�f���hyqmdW���]�tgq�����u�s/�/嗲��.oV+��ꨫp��91���񙴇M��h.�֫�X��W�K��]��=�Xϕ�W�PƘ�"x��"�]�
�G42 ���L6T�QSM�O�9���#��S�˭�ֶ��.�<ZMͣBJq2Y�]
�����ZG�,��G�T��?tv����=r��A��j>|�Q-�P��o[��`��������71�^ɟ-&f'&N��L��x�O�tP!��L�p�6k��t�ve�m4�
��/�t���h���`!y���W����b�h]
+���HC��+~�&� y/c�|��Y~%,�4�l�uS���,��Y�d���y�j^1�uR�#:J;s���?:v�KnX�Zw�^QW:u�ͩy�4��{6��Vid>�4)Vbux�	wriG�v�T��J�-}9X����I:��j�X��4�`��ꈁuQ���+Ā���y,�{�����(&g��`��[��Ry�w�)W��[�+�e�(�үC������y�~��x:�Q��zr�:YL�KE�3�W�0I`�8G�}�S��������i%���s��0�%�]��R�����H�^�-�\9x0{�wtdݴ���[�tl�c	X�X�X�K���$�޳�b�����`�������yUn�RӚƮ-��G����ިʜ�w)��
�2��f�Μ��s�+f���I����m�N�j�q�$���f��܄W|u7Mӽ:�z�b���_�dy�v�=~Ӄ��~�уA8*���L�I�����Kr?���
4���{m�
1I�o�1�X=��4XD�+�8z������{����-���;�c���E�6���4=�7w��m�s����9#�����im��8�G���w �|��Dێmm}�V��ǥ�BO�ZKj-�"*륇5��.(Db�rK O��@����3;�;I��FW�&��ͿEf�7��o2G#̭|�}_�B���V�u�F�SJ�őM��u�Q���<K}zK!X�%TuFlg8x[�+5qP�6+�
ķ	YE�+
�S5�ڃ��u��x��H'k��X�c}��o
	�e�R�I{p�ոi��p��\�
�%���?7�+̬��D�
��a�K�*QN*VX]B�Uט� �Đ5��&���e�#��.R���7`���y����D�S� �?�~��_yO��*��W�&�AL*;��J��Q�०�#N�v�~�O��T֒�c����R�<
�яlv�%;��iz��܍2�s������}�Du��M���{�U�:�o/i]4WC����O�L�Z�>tT-RwW�q��&������C?�I�h~�T����M9JRi���`m�ٓ�/ֺ0h�n��'e�`)�鷝O��M���t�?�t�3�r��_^������<V�������`�s��n��t����v{��n��o��נjD�jAm\�f
�|�S�5�\+���A�uWi#�NtL4���j8uN9��z�,���,��UAt��7��$,�TLR
CQ�*�
�*���vz߼��o�4��z��h�1z'��#��>	�z���Q�����{��<��R�a1b]�f�Zn-]q�[��N1�^�7���fm�g<ޜ�f{�_B����uz�7ߴ�KF�,�bC�������X��l��Q�������8,-0JtQΡ��l�2OX5]4#�g)�n��_A��R�0�O��cZf��&�T�[�W�W���N+����W����%4E�Y��kq	g2�H��K���e��}��x�i;c���e�c1N�Ȟq2�*-r����7[��F��n�:�Ms��Z]��/�<\[!XV2�8*
�/O��r=�ޮח�Pm��E��(A����d�N�:�|�~U�7�۬@�+���6",�b����L�v�
\��?��V$��n���~�C��K�6X/��P�
��a�N6���`�ˆ�jN�
�Y����Yj�	:�\6]��`�L`g��C����kD$�b1��I�G1��\u��x�K[��~8���^5L�mP�N��[vo�G��^
*�Ph��l�|������O�%\+����@��g‰�u�r�g�m��6�E�O0WDY����"_%�W�o�t<�>��X�X+�Kr,KК!��_�JW�v�D�=�fU��΃�V%�1��p7)EM7K�_�c�cb㆖�r�](�V
��O��]�ʆi**�u�e�h������L4y�+�Ã�����)�]f���:;,�g��E���J*4uo���F(ie8��J�¿�WkH��@�%"��=���;���]�Ǣ��0��E����������e��<v,��u��j�0�r��Yn����"`�K��pSٟ���X���x�O_VO�[���s޽hE�&�U��/�*�׹�E��p(���X7�����H�j��,����f",J�6ùW���Q:ߕh�k^�ޭ?H��@�pU�'Y�dcx���D:������� `-��#R����-����9�+ZݎS�y��N�j���[���Ū�Uظ�us��s]U���\���y��0t].��j�9��@1��&���\�~ ��Ke����P�����<�O��v3�4k�Pvi_H���c�S9����B$�/+�5���$„�5L��A�E*>�%#��i���t�!�aY!u&��z
�_ձ&���E�J��s��M��tzsp�Q��j�f#���Fi�ͤ����	\�XV�����1w�c�}e�`�]��9��.l����ܮ��Y�+��&�$|�ʚ�X����+K:�#���`�=���k(*�JZ��'SD��>W�P��$��>@�����z{�FEU3���D�I�;-n��ՙ,�/�Xo��%�I��,h9's98j�<�L�J�mHq��ĉ��C�#��ZJ�3��匍\;DN�(�ٝ��}~������QoMŻ�E�*z؄e��@���W�~es/=�7ԫQ���͡�
j:{H�>��TʻC̩�c�'PViO���_��k��`�
�c�X����(\��E:���z�k��"����Zz�3����&R��� %��f[�2=xyl7���Y���w
�x�x�Bl_�r�",WۄR�X+6���x�4�/���R.�q
�דMh!~V�]˅�����!�P�ӏ1d�G�B=2{N9����XE�X�A��6?\�f�t�/�<�i8?�H���X��x]+^`�X�ݳ�ݮ���Xm,|��t�E�����U+���������<C3�-���Ƣ�͗aX9� s�â�sX��Z�r�y��������!�kgˆad�`�fp���b���$rk¬�p�M��)4t�(�k3��I��!9;�D`�u.6�4���Ϡ_�:�҇�XyO��"�����>c��ɘp�������g�<t��B�5+�g&X	)��%�r��M�$u2%��\�ٻ����=:0w��f����'��bsj�+�cU6��j�y�p{��߮<����=@�3�uu5s
��gXf}��4ЯE����>4'?�$_Ir�ui�`����c|�ؓ�[%�J�Nի���TR�P'�����.ڑR���R<���E:����f��2�Rg�ҋ�ʋ�`�a+�O�&�rb$-s?n�����\׸{\��mB(]7g���	�^W�{�t�Y�2ܴ���+A�u8(��W5}���B�5�G�y��`]B�A��3������IӴ
���Ը�X��Aw�~��P
�Xν��ù�E��VJ��2#G�g�	�Q��E�W\���y���QKA����z��M�#E?ta��va���8��q�j�2�/|n�orEp�������7_Z˹�/Yk��Q�x����(@��e�M��f��S4L������[ڴ�"ف����/Mq?��
M���h̽.��҉N+j4'���_Tw؇2���L�B�n��4�D�Z�+����X�Fp035���rW[�4@ލ����}���Um�9g$}����|�?=K��3��;)n^�o�+���'6t����2�3��j~GUt�ս|��Rv�θ�J/أn{)�;Vh�&���~M΋�]�3-��#���N���d��6>�Q_V8��t,l 
�J��O�P��x,Y̌��ܯ��b�v���n�S�ć��o3%k!e��(*�TÇIq��d�4v�Z�4���m������X��� �iRQ��t�.Q�O��K���:�_U.׽�b�e}.⏆���I�Q�P�3�E���t^�k��z{E���d�h�՜|�3K㻬�����1�}���(W��d�̤�B�V�O�ztk�l�=@�ˍo�@�.WWm���d��_�-Ӥt�1�{�ŭ���A�Q�S381$��-����k��aE:�i)��ku,B�Ѷ!XX�J$>xEB��`�w���o�}�*1�M��BCV�O�Tuea{7���b*rB��Bm�P��TQ��U��Z�á���.ԋ�~��c�^���?$�<]���L���y&,Vq4c9�61�H��E:X�x`�p��+`(�Ȱ�*nK���i�P����W�}�[�=v�&z�2zN�1�!=ޒ[���=ؖ�\*�=Y��~��F�����L�V���S��~q��_
��'�H'.��$�E-�S`e�6�s,,N��%�O���{�nA
�9(2�0:���x�;)~��PCO�šQӘ&�Hd���V�R�Զ���ЂC��@w8(B�Or6/ՆXqx,ф�B���,�c�`���٨���Ox5�	Y��Y>S��wZ쨂�85����'�6"O7u����i��V����=j�'#8��A)�$k!q��؞�����`��B<�2}���Ʌ]��-����cI�Jr�K��,2�;ÜƉ���m��!;�V����+�̮�� �z�E��v�H��z=�uO���A�v��$J�T��=���.1Pʤ�Y2:{�n��s�}����AN� ��7�yK7)�t���c����Q0X�ֆ/��"�	�S|�f��J�4;w��]�v��:wNxΒ�G�z��\%����ݖ���=�(|�;2=Z�������v��OAT�J+m-�,�oQ|	���h!��B��vbo+A����C��ݹ�ɳ�rެ΍���ˇ�ٹ�e��GF�_��V`�K���P����<_��iEX)S�bP��b�C�Z�2�@��J�ә܃u��e���|�oyG�K���n.	�o������`*(�����_�ʼ��r���y(,�k!��=R�c`�~��n]}Z�5[m�<�����'@�+O�~0��a��'[|
�����@e�Xgц�<�v+T��Ga놀uW�Vޙ,`���VcJwP�A��(�rGt��f����`�
s%TD�	�y� �gZ/B�R-Eʱn�Q؃�����K�E����1f��Ǭ�I��92�xec��X��[e�4r��1��`��X�ua�,�"ł.��2���`E��+K�啇P�X5qgV��q��;c+“v�ʮ��t��_���Vx��`=��s�t�j�WF��E4G!<��Z�h)^.�XS�9՝�4�A[����wTE:)b-r�^����քЀU����6w���d`��M!���J�
/6�Uk����=�	��>Ӓ��$҉닂5���Ճ��X���r6�Qeq��ܡ́V^�rd��A����Rw�>Ƭ��.������k�"��>�֗?�z$`=ߋt:�րV�l*��ߴe��1��
�p[�N����1�2��B#-`�H'�3��F��+X�`IW�
�ʍCЈbi�
���B�X��'�
H��+��6����G\j����V��W�o&��z|-E,!)
<y�`��l�X��E�tɋ
�kę۞�Õ7d��t)������v5T�d�G>+���4�c��L�SaZ��D�c`mX�K"Vי����0%��6��|{e
��� �z��i��m�;�
����d~�$F�L�X�i��3"�%k^D�������'��6XD%���\m&0�����0e���p,��Pm8
�4\0Vu9�&���[���~��pށu7���^����{����{�8�R������@}o�(bdM�\�eR��W��w�?�"�
��ۦ��$��c�kW�QIg�u�B��-�JW��pE��S�̐|�1�r�,w�)�Iw ��.����j�:IG�_��3��+X�օ,��R�:���/��p��"L
5,G6�
�ty{���d�8W��L�U���ց-��U�E��y�zVs�,��lM�ܣ���S�'JM;B�{JZ�`�vn�S�2�U���/T������'����W�"�h)��Lœ�����`Q��C��)<E���j�;�
������$M�E����Έ�O�j���[��XO�.���h��p�V�/�.���J{{��I8vAd�$ԧ-�K�T0\�t"����kՁ�N�X��Ն����(E�#����[��s/�;��l/.���E�O�
�'U-s��LK���@� #�ҕs�=d%�ןL��Z7�,��m_�!	���r<��:r����$+���_2�b�.X�i�.�5�E��6�]��0M�L�^�ڛh<iV�Xj���E:�J���%
���W�Zn�Z��a�\Ը���0�;*�YNJ���O~U�u�η���|��H�L�H�"���k�R-��X�
,`)�"Ţ[������3�|+[n�-V��U\
�9ŏ���D:�+-�o���� �㢔����,V��?�ϻ�����,��C)+v�Udg���������boo���=3f�x��s�Og�~�U�:�O�3��P��룥���W���l�l^~��+tlX�hZa�HxL�hD&驄EK C���o�1���/u~x)�N:�%����`�X�2X��	��+�QzT�Ps():pEp-�3�+�EDMһ��$,����
�u��%-�ɘt^_;�?�u���[ϐ�k)��a4~芊��d)����R7��$���P)�f�#�I'ȕ_
k`=r`��X���`��UE�ʿ�`Ql���.ג
%�|��lfC�Ǫ�e�R�%*�_��Z4	��	�cXf�,3��1��JI���K(���Rf���Խ�����P΂'<��K��I���N:�f�f?�u���a)�%X��~ j^޸e�8�A�׃.�Vv�ƷYl�5�B�=4���L:�[	H�X���qe,s@��=��k�#d?~�+\�����	M�`M��\�H9��*��n^j >ީh��;qâ��!c퓀tpY���w���3��'v�-�:6{Bլn7uCv0l��y�i�S���RU���O=�2��I�2�y��V�c�8r
�,c�O�{A��EEX�#�'�����[n��p�t7ʙ��h
����l��'+�ɱ�����d���:��ڙ�JRJS�ExgŀU~�PCU^
��@�ٌM:%���Ї��� rg�=aJ��XK�I�~k�
�C�RKՆo`��`� ]��PxU{-�!�60V�&VD��?�"u`	�Pp���j
֛r�μ	���ک�.=H`�5�N��Rh��H���0K�ГV�3ԏ��L�;�W@�+����rf���UP�O�ښt���2փgw/ʤc`]I밖B�
H^�^;{�/_��u��.;�dE��o11��T�'Y�3��]=*��&���n�d`�9i`
K�}�ܕ29q�=� y�,ce�`��v�����=��U:��u� ��5�<a���P;:}⥨��{���:��C7�R8�e\i��k��k;����/��h;��zs\�����
��]Բx�TT��`�3�w=i`]e,�I�ψ,[
�!c!F��R���DA�8B�R,;01�l�=I(�D3~F
��Uݜ��A��$e�d+��ٺ�ӝ�	,�RXi���%��$�T�� ��#��"����o��휨9L�&�@,V"^M�����B�/�V6�k�*LD�
�E���uF�<���cʫ�$���j\w�Z�.��F�P��{-rI�X��wo�9rr�X'��uP`���X���VÊ��(��o�vZ�^`��Fe�*���vN煬�b���0���Xc�N�R�6�w�/E��[e��J�Xp]O�9E��98��z��e)rRG���kީJ:;�̤3'b�A�~ �5d,�t"�;��`�?����=;y�4)�k�,�����%�H�=iC��Z��w��t��3�K�����;���(h�8�N+$���PQv��=�{���4��R�jV��K���+�_�u������2��U�Uȹ�f⫶ѽފM���BB��a�C~Dҕ�V�Ђ��&:�X׎�}�c>�2��ɀ�$��ɨ	U���,Ul�xjm�9�)S�Sw�R�����ŠI��K�L:�:2�����҂+�S4���X�KoK�����(�*���R�)��Wf��U3�h���e`�2��:v4�u;��~�;X�v�IZ]���PQ㖾�%�tEq=��b�/Ĩg����]Pƻ�V߈�G�r-���|n�#I5s��]�uX`�s.#k�MX�r�_مYl���q�E�&���R�`M65D�T�d9�N��'r
����	H�g,[
qQ�)����X�N�2� Ǎ��&-���_���Lp����O��x�����K�R`�9g&�A�N�2�{���0�0J�FC(sT��&��Sc�b.�P����M�B��%�i��㙺M�֗�-������a�	�_u��K�9��OE�l�{�!���
��5S�S�
SY���pߝ�[�6k�$�X�l�7���K=u�wna+�0�0w�|�"U��Ϣ�����
s)�/B�U/��M2���Ҽ�g�w�e`=,y)���j�ס�2s
 �����f�4�Qx�����F��i"u�;����V6�R,{�2�tt��w��	H�`}�Dzƒ�|�>?�?j�d��:�Yi]�7Z/A���@��I����}!`�X�
�g�X'���c�����'�T
�+�Sc��<�&�bdQ�K�4d�v�1�<]��Ka�d���pf`]4�OK!�/�PQ���z�H]1��9�*v
��{���F8w�k!�!e�Z�`"��ɳ����R,��JZX�k��Y��@���~��=���B�m��D�g�����k�֙X�.	�$sg�uG��Z�P8�T\�`+J����.�
:v|��l�����&�x�Z�\��K�C9c��+�
VTc˽
�-+�&���F�Z݂<E�U�J_]}�f��v��j�z�ip֍�I��Xɤ�:։Ң(S������bxm��¬\y�*��a��}������R����I����L:�e�e���M�.>*��w����b62W�K��X�� )�4@U��	M�/z����.&�x'��f/��
M�|@`Y�*)�Vqy�.�*��^sݛ\�O����o�p;�@i������/L:
�����@�W`)�T�5�&�IYI�R��a���eF�*?�ލ������8d�i��ä#���p��A�>�XL��
p��<;�CX߳h��Ia#'�3Ա�˳�tp��0��k���{�$y����n�J���ECL�B�W촐�ټ�l��w��V����J�I'�u���B�g`Y�:�ܽ2q!��w��TQ-���2Y=
ݕ�6����;,�D���߂�1��ES
o�y)�f�o`�e�+�X���J��qU}$�KςOC^CX5�X��9�s���O��B�Ҵ��ΆJ�;K!`��_,3��o��B�/˕�j�Z�Tc���0
����G;�*�[��d�p���B�6Ԙt�3�(c}�R\Xs��Kᰪ;.�j�=�K�C��	c�@��Á��`4�����êQ�J���&��t��
o[�:��X\��� zOu@�M��!��3^G���*)�s��I}`��ù
�}��~c��s���a)����V��E�:��*�~c����zz����۲&�̸��r~��)a�]�0^�M:_�;wY� �(b��5� ��F���*�+,�(
"��x5Ӎ�434D1���@C3O�?�_ϖ;]����tW�M?�j��?�KI��g�X��;`IK1&�j��+\c��%u y��B!�[CXa���I�YO��Ӥ\9X9"�~-E։�%��K�V4
σ0��4Е�^m����ݸ�0V�/�|��aȘ[�"�w�JF"��/_��U,�	��^_�X����fh�'�T)%h�+���C
��\��2�W�,��ց�x��"�,��`/��<�@������
��%5����-��Wp1yV��>-)�1�~6�[����,M&�
��gB,�t�a�~�ћ9;�kG$���Ŧy�\�
Bg�tVo�X]���e����k���U�.���xZ
�!x�bmtm��hhn��[��bz�7_�����r"����Ռ�ϗ��V�+~M�o��`QeU\����F�䇡���E���-�N�^"+4�v:`%Ȏ��E�T_�l��K�X�%�
�4�h)P�W��87K^�8H����E:)b��D����{VJ���`�1�:B�">c%
�}�i^ۡ␲�UT�!��`'N��\�NE��S�zvv���(X_�1���e0狣B�W:ꏶҰ�)R4;+��O*��ɉ�UVK��J�/�O}dZ�W�=耵�*�&5Ck�E�? _��J�
X�x��z�&�p=��X6��?�5`E�W����?X�
X�L�$����+Q����~��������S_tO{��I�l"3'��I�]}Z�o��t.w`�܀���:1�.$��g��[�y�2�H��Ǡ
����j
�*����8Y�(��J�Rf�4\o}�G	�d
X�
�E*XO��F�K��=��g������sm[>I2�����Rc#�`���Q
-ŗ�^�0����`#�e~y/f,�&z��ѰN�
N�8�}A����@�Z+�'�X�����ݬ
�W�ø�~X�u��\X�X%��r'N	��������
���5�X�(����8�-~(�^�H�A˃�HG��`�+��V9�S`�o丿R�E�;�
�9��@�!�|h�����3���!�Y/b!�yq逸`6˴��%�V,p��4��d./kAs��BF,%C?b��be&���:���'�ˋt��e�M�e��^� ���
D�rxq��ag�V�`�-4��8��0E�qí�	W�-3�����H��d2"���=󪍼D�2-�E"V�E�rL��\�T�@��	utA��xD���,���u�3~�tׇ,���bm��%=Z���)��N�:L`�W�	,D:	,��̿#�c�1LʸC���E)���[,s�*0�H��R�X�W�t�-5�'��-�#b�Ԁ��^ug2}��(W<�ق�����.�M,��װ�o�
#����z���@\�b�QZ���05)#ҹd%X_,�_O�V��wR�TX���4`?&n�a��3��EIߪ&�Z�#�xR�A߀���z�GO�IG"�"��֧��*�_�H����e&O��ն]z.Ox����Hц� 	Z-}z�R|"�F<�Ћt��D�B�XG��>M�XĢƚ�ƻh2��Ðͫl���@����ʧ����v�V����N�q��?[���_�k2��%#��hd��2�ܺ�5���6�og��\�$x�	�+���9��uk)�PQcy��cE��d�s�נȋu��!n�5(K.)��\��.���k�z�"�R`!�X)�87Y��BV�7/_��C�tc�AN�(���1�
T�&݆�ޙ�66K�n��Ʌo���X�����u����g�D��U�-R#�*y�V>U��Z�&���À!���4�P��;�������N�I�%�N8�a�`��7F�� �!�*s�aq�*�fyD�?0���-�9e�B�7#��Q,�e�
�&��X�5�0�õ�N6�J�pe�e��XV�h�oGiܸ��eM������XϜj)F����l��Y�//rT�>5��h��p'n�V�p�+U����M&���W���S�u��:�f	�Q]cx4[[�㵫�ت
���@ղLn]d�@�E"4W���u��̫�>o�:hR�詏����(X$A�F@�+8ɏ)+�>W������;ѵ���8&��+�N�S������z��eK�����x�B�s�XSp"v��$ř>�do4V�2?�e�0��i��W�\B�\�E��,�����UM˃5���j@���
�8V+�U�<5d��&+�!�>O��r�w/k)�.�,�})b��b7�5o���	��.�tX��9�a��htaz��է�!����qV�U��<U\����`������F�¼r'{����B���/]��S|R��Pb�A9���
N�����t
���?`�|$�^[k~���X���U��N:˘s��+�ֹ��H�ݪ��x#K�NN�*��7�t�ڤ�Z��� ="b}��VE��_/���+RiIaj���C���d�_>��B'���!A��ˀ�H�D`Y*<��j�.X)b��f癿!e�o�ˉ
CX��K�6$���ah+PT�]5[����Z�~��k(X�tV�Z�Xi�a9b���{IQ�?���G9@�,�.�<��O1�4@C"T�Qr#h�&ωu<Y�>��h��O�-��b��_�{+�
�Z�����

��n��|2�
dD�g�8�DI��O`%?nm*�8Ddkl���$�����X3KZ
"V-�K��A=
��us�'Hv[�`c|�3Z��F��2��}��"�RZ���XgF�g;�TX�3�J�H�����‰'GS՞)��d�Kǁj>��pY��&��`}&��)X�=��<`�f6�����1�e����l��]]��hV��0�j��ۉD:e6�|�"V֋�Z��k�:X���
�t@M�\<:����w�=�Tn���^��gg�v��I' �!b���i�����E��m�(e�!�v��
���
���YT�!�8C�#7&��p�y���ց��4`�
XoW�H��"l`*��ih$K&�]�l�Mx�y�8w�Oب��	�t��M�5�K`�T��q,ra�0l��<�@:�L:��r�x%]�‹�;},��hȢ�E���D:���n�i.�>��"���h�pv\7bMqQ�58�4h���:{
�������i�������^`���	��־�z-���.Va��Z��xV��e4�U>���s;�VW��WK�����-�����ߝ���Xo���W�X��MLq�C^�*��QZ�\��oB��w��)L���
_V�G���"�h7��^WK�K֙�h��П�bQ����"��i*������`}5��X��Ӧ�X6�,�����0��f�Z�+��ݲ0�H�Q`Ն�|N�8��fņ�Dӄ�,�Υ}`�e�/�XJ���X�����{�<ݙn,�".��5h�V�,���*�
�{��>��М�h�?�“5N E���:Z�4@�j)��vx=|�w�8=�w���3�)����F�N�x�q`D�F޳�Z��0��E�]���5��ЍX��o�ZX��SG��i��2����8�	Ol.�4H���c�t
E,��Wڈu<m�z�`MC\	'���Ү;d�O;��Vt�A/
�>�*9�Z���6����uX>�D����`�F
�*�Uf��6Z��g��lj�Ur�?�П�H_��b0�ȋڤ�`�M:W�.�,�`�Հ�8��Qu��
�8�̓3��,�
)a��9��Μ2v� ��B��qt�6���Kv��N�N�Ԍ����f�A�^z]#��w�uqL�O�F�@�q�T5�fK��@C�}($�huE�:��[����E:�^u�P�d��ւ��j��#�>z	't��(3�%���8e
��&�L��;���M��x�[�"�Y#b!ұ�ub`�)��H�`��B��Ʊ@�I��Ymǁ��I�h�I�����Z���RB+o%9��r7��_��X��T8{��-bI��ڼ��|`����?Ɂ��u~r��~wM-`r�1~�ꕚH�r�t��^uw��d,�X��jZ
�5�:XI�W�F�E��޾�(��|G��#�����
Yx��8"����d�j,���`�8V���LL���t�,\j�k��1/CS+6�X2��w�ՃE����Z	�i)�&k�e����XSE��U���)��
��)%?�=G+-"��"�D:��&�·���yp�yl�+��+�ܠr���XH�s��X�F��M�X/�Nͤ�_)b�a�Ɇ��ڤH�8���٠Qx~"f"�����;�L%+�sB�șъ5�X�T,Ʊ��g^z/�c=���6X�-D,?F*/9�F�ν���e<$U.��1��<Xx=ʊ��J�u7��9`M�5���2��V7j
��H�-��Rb}�:�н8�I(#"c
��i��&�2��W;���+�B�X_0����<XS\p��7�z7�҄�8�/��pGm��>H�Cs���Jh)�h��L���h�z��(j�}�y�.�,q�_���_+���	 |]+(3�xFb�O��v�t
h)��j�����% ����_ bm,jx�"h�Sfٿ�D�pZ>��@ck܏٘JK��4�xׇ��$�)3��`���quq�`����)4p�<�gF\bV����
���2C���x��
kA�'U���� e�N�R|*-�HK`}��RWJ�Ӌuj��ru��햂ъ~i`���R��f1��3�ׇZxI�Sk�t��X*�5�7��i���f[y-�l�*-,t��o
�V��L�������!톱nz
���Hǃ���t�T8?^��7��J�F�Ƶ>^���ZLj\���X����2E����d\7��`�-,�ie��N�z�2-E�J}�&��i���ҿ��;-���|��<:|�����\���H��$��R�G#���sӶ��d�w�M?
�pg�l�������Gs��J?�Q�8/�&�F�x�Xĺc!+DK!�>xntD�������t�*�hbek�8�F^�Ix��E�V��ؑy"�K�p�_�dk2���U�k�T�\����q�{GM�!V���#��hт'!V\�
W<CS(��ſ@�䡻�`� E���:h�_��Z�N���&��HՍXCe��Aڛ
�g�[
8�C���?�'n�H纵DZ���E,�%���]�^�R*8��E��tȹ��YE�V��X�bKY�t<X��Ɂ�:0Y�����M�v�_�P��`N&�=pB7��F���
�z�@�%�Gm �ʈtLKa�,b���;���m�5=+7�>�n,��\�V�-��^v�Y��u�h�.�t�~�'�1���5��"��^��b��nE:۷�$泆JØ1�@N�<����P��s!7��uf�/D:���֗|l�/i)�F����{�7"^����n�4f�t�P2���p�<-���J�tX�[�jE:I��øOk���:sb�nq�f�O��AL<��&����Y�4�=[y��N��ǖ
��4��F��
X�uD�Cd;bJ�|!ǔn�D���󳨯̓%-�7�t��X�h��k�֫��G��8#dx�>��\����.�t�0�V�\lg�{C�-�7�t�k�˼H�j�S�l�W M`�p�f�#��e�Isg�WU�$Zm ��“��*
�
3<�D:��X����:�	������6b}�U���Ƃ.�;��`JA�����n֬E��������U�V��#�jD:W4�L(��Ȼ�©D:�W5Y�L���l,����ޝ(Mxt�2jw��
���)oc4%�n~�"�;�E���i���Mv�'�
��wR��D:)=�ֲvR9�<���x!M�V�};��r��H��5�ߤӂ5-v%�>|��(n+b��x�	^Y�J���To��KUEF��$��^�x��z��Hg	,�

���wu��w�iaɏ'CNR�)� Z(��h�֑�a)V�*w�r�9�R|�DQ�Nk�R�H#�g��T8��?�Uh_J�A�,�V��w�r��*'�J�aEtO�4~b����/�[A�󥩿~L`�u���ӈ5��ԣ��rz�Q��Vd�t�?
-ְVڹC��;���Y'�>����_N�#Y�+�yɴ�eZ��O&{�Ȓ����%�H�������]����
����v�ǟ^S"b��)�5���j"���H��/w��I�qьTTD|��8��J���T$A	2���u��N��l���	q�ٹ
L�+��;Aﭯ+���}ouUY屭:Պ(�8������CT톭��XC
�+3��X�a�i!�lek��
"���5V�D:��T���HV\�B�5ǑD�Pi��5�a^����?0W�{���}(6`M��q�:�م/���!��W/X��~B
���N;�$S^@�ٙ�����SBVt:,�R�B�JJ���������}a�	��ֻ����|�j7�HD.��e���Ͽ�B�x�����XKa�J�VBZ��ŏ’p�\�76ԭ��/L����?��k)������;2�v�V'���R�ڤ��<VT]��J���P�/�Xrj1�$^�J��f�7�;��H'k��/���ň�֞�e��P���٢p���Ւ��6�4!cU������A���8��ygE��J��H'�`�9?�r�u`�hY@�C�;C�c�J�:�
�O��"�╴�,/ҹ����LK!�W65#Y���eF�S�ů�Cm^�Ԝc7�ؠ�yl����U�8�]�#���H�I:Z[kǫBK��@+0E(\�:D�i���]
-����(\im����7�;�����w�v�`]��_,D:�ց�1�@,���C��$!`�����=�g:�f���g&$"�y�*Ʊ�R�x�N2�R���%M&����L���9gS�.Q��	�f��á��>1Gw�,�,�4_IJ`m�y*��J���{�s~-,�ͥ��
����2�Q!���V�i)���ڈ��1�Xk^�c�j�H�4�`+�
�4H"��Y�`р�Ձ�������X-��J+ɱ�+K��q*l1XJ���+�K�P^	�=��6������
R���i)��b����~&ҹ��t.���^'�N���d.L��B�XQmX�0�]kx����,�2�v�^�`�݊t�#�NVxi݃�v��HZ��KoFZ�?(�
�d��d�� Uc/��F�M�RV�
"֝X��ޱ���럾��Vb��n� 
	1֔�����UŻ��w���X�XyXc-�p�b��qЕ�(���$��*R�3�8��:��������ߨ b���H�x�݁��m�X�1�@Ѯ�x��d��5bP���3�ȓ+ڢg���+G�V��ޫ��E:�9XL&�K���Y&�쐲���Z���j��iehc!7Y=�9��W�_�`���z�w,�B"�j������DC�Ҕ�(���b�`��{2!�w�Q�щt^�j�����b��N�����b���I��s3,�f��$Xs�nO%�1헇��F�y���up[t�e#����ꯉ����{b���Ƙì$Pb��uD�>��E�7��o/Z�l�p,�����:�f�r"���Ed3�U�Ds��_���7��8�o�J"`�%����	�F��R5MON*���dxJf���P�5"8$!�&r�������7b!����:�]�
}*\u��1��V��>pZ�3�����ó,_�	�9l�!�����˼HGz�lj���X�$X򥈢p_Za�y]WM�Rx��M�餺�M:wT*�Q*�zӁ��`���$(���"S!�U�ؚ^���yǾ��k�/���B�a�W=Y�HGZ��B���;`�U�%���b��fV�ir+G����5�	��OOq��y����#���ɩ�X��h-+I[�W%���-;����0��B�T�K,Hy/�o��w�_y��t�Y�(D�Q+#�ጬRX/vD�;��
��A� �Vm�Y}*w<}��u��"�����Hg�i)�#V/�X�H����f0�#�R�+p�ib��B��cԙ���D:�V���W��f�Ֆ��	!j��/ڙ�V������$���dр�B،�(�|x�LE�
�tX�R�����
Z��l�	;���9����)R�c��4�2F���vf��ݗ*�B�XK�K����t3�œ7Ĭ�"�������o�K
P������"ֽ��j_#��l�ܥ���#�I�S��+H*�#M��;N0`�d��ա:�x�9��B����'�N��_ֿ|{u�n��F��*~	#^e��)�gg5t�$34�	o�Z�g��J��C��K`��(�V��@�n��f��ڦ�Mw���ޘ��{H���E:>b�=/�^�rs~^Kѹ�5�U|�n�S�!��t�j,�ժwD�m7�P�H��j���8�t`]��X*低ٺS�����X�U�	7yh��#Ă���������f:XC�W]�t��.�e9�o���<DM;�c��p�d��J��b����	��������"�)=S:Z\J5�H���z���ꃓ�1ef�s`�,<�>�H��:�<X���h)�3Z�@V
��qL��U��)~@����"�
�R��R���,%����&g"���S��_��Ր�����ת�X� ��#�2`e�'��z���#G*W3E���);���
����#h.Ĭh�Q��e�BWc���:Vr����R\��[ X8�\}/���?��uc���g�<���'�HY��g��dr����;�*x�S�Ub����t�uեc�T$��W��X>�M�~|��w��hP&�n�L6"�<G:��J"��^�����jF�!R�XS�_++k�����&g��LG��x؊����:cK`1I����T��xY-"��9?��T��~-E�	 y!�
�pYԈ��UG�mtݝ/OO�����y#")�֡���
/H�cV4�ڞ
�S���l�응CghDO����'d���_N*��--�d��#���E:D�ċtZ5�k�0hX�^p2w�P�c
�B1b<�&ҹ9�U�,���ꊛ��$m���k�N�WР2��k��l3Tb�W"��C��v��B���E:�����H���W�P`���X�k4j��b�i<�	K�E^����֒|������m�+���e�N"��V�`y���ڛk�D9Pp΂�'+�'%f�n 76=��_fKx��v�W����B`-%��Xh)H��Q�2&�б�))c$C�6�~:w��oæ؂/���
�=5XVK��F����2�cꯩQr�4�E]�:���di��"|5ւWI%�N;<k�*ꯪD:~�T˫�<X)`�:9���	�����܉Z����j/�Є	+��Z�M�C�Z�z˃���3otr��,AeŬ���B�;���
V�эC4�p#i)�N���%�<G�Ko{��z35�ɛ�n�`"�x�ŧB� �{�C~�cT�rt�DV�|D:U�c���'�����{��HǍ���W�_��@(�t��a����k!c�z{R�����Hg׫�V�����N�t0��r1{��Y� ��VV:V���!"���:�r�b��5��/��p
ҫbXb�M+��Uj*x�$t�W��Mgu�1�XUl���_�����8���v�x?��Y>W^x��U~�/�sꮱS0{��V����K��E�����I�Շ�g�+�0{�C0a�k�<ᠷgA���t�=��X#�5�z�F�Qԡ����$M�{4���H��tmd~�	����F�S%XK�`��`�u����JY�,���`V�:Zצ╕�
Xs��ۤ�*JV8���2X��Rn�W�w����ӧY�"\+�t�&���R���U�cIVXk8k#�j�9�0��O�1I*?fi�dԒ��h�5��S��@K��~�}s5U*
�O3-����%~29/�G[	��	�(�=��9�4d�/d�Y�׆U����<"qe��-��9�D`IKA�����V�}}X�J��`�'f͞�+J�'��
�N^�D:�Ŋ��E����y�589������ݙǢ?��?��(�RR�_���L+˫�Ђ�‚�K�Q�+�V�i)�X��5,���18Cd���F��-U����D����ĿL��;z�ƊE:E�|�Z��`�`����N���~��Ґ�S�L��V�i��.4jo�O>�:t"�G�^��j,��h=�쭑
7���{Ż=��$ȹY��r\����!X�)��/�4�����H�
���%�F�G�n�Ǚ��n(�Ȣ�;G�J��[�F{A#�w#e�,#�饓`}��_L͌�v��'���f%�����{/l0���g�d��t��R�v��E:���T�&�Z�k�0n�Ag��]�QU��`QPI�H)��9標Aer�䡥���T��i�֛XoD:J�b���3�n�ᨼʂ�	:��x��#��A���_�W��X�R����i)ܓ�X.���W��a�`%�N�	t@�VY�������`[���
�w���`��>b�H`�|"T��p.W�"�+��-�*���,���G|ҍŬz�L����)�̶&K�L��P`edI-����j^|1��/������d�.D�f́U͊&����^��hY�ݤ�ҟ8t4zeHQ�O2�?�����VC����v�ޤC�Z��܏W�n*b	,����֨7K��gl��<�
��?����e���2�����V��;�*�R��y��j�O��w`}�*�t<s{BJdI`�?�U6k�#�P<*��`֡�Ma�):����Z�O��{�=�ێ�M{{{=7��п�{
Yc��"*'ȹ�ˀS�v��b����A�����to0*X�V��r������o���v�o���������_Ak��8P��]��x����Dmub�!�JZB*��*��tZ��¹�Q��Qk�[���rv����|���Ͼ��O?��9{��5�M
<q"��ƟD#�X<Y�Ss`�.`U�
�ka��e�M����3��ģ���;;��W���{�_S�ϮYF�>��Dcp�Ό�UZGj�R�;-�C�D,�⎉5O��e��Pv�gx��z��٧~��������c�p#g����VX���ɱ�=ahM�84���JF,��E]u7�ѥ`����.���B�˜�9��=���ѳO?�������߹v�Ui��#�����OM�A��ZKX1�ܘ�V�H��͎Xg�J���X�����{����v������s�x��w�%ԝ�����&��p�Գ +�x�,.i�q([��3�\��4X�Bk
[�!��Lfq3�)�9�Μ9s��-o�n�7�����1oW�'�6��E˴�	Z���s��ʆ�Z�&G��Q*�\8��>>S�d7�[�2�����'Ƹ��qs�mmm�y�k�Z�|���o'��J��:D�0����C�6`�N�ͽ�U�AWp�#og
śps�	7�Or��۞�
��{�1��_G�PF�oNۆ����ء�QI�Y�XȐ�f�U�,m�o�M�M)�\x��G��x���Up{��
m��Jh�/j,��J'�i�;��L�ԫ��U��R<�pC�"Kd�*�V��ōߦ7��t�T�MɦJ�����mcC�`Fd4��ak�"���K���,<���;j��7eS�6u�=Q�m�7o�7�s?P]F�#��ᩈ��T���.m��2`�!K\��]gi3���TUoʦ�ޛ��z�D6u�q���Y��#��?]؝Ve�	��Ob"
��ly�ח+��Y�e�5�uU��}6��wV�V�{9��6u�
�.��M����#�UhI/c&�
VM������v�v�	
YS�
�
?���s�om"�����)�M�y�<o�3ޮ�8�bp�e�4�� A-e
�H��w?�Ma�S;�P@�RQWa��h�JH^ �c��;���-R6t�|N�����ag�/cg^\Ǵ�@�Oo<c��L�g��B�b��
;}B����f�M�an��N�]_o������Q��SM�p�qہ>5o)9Ċ`%N������x��u�Z����kѾ����Zo�
����n�7zÀj��]"�z+Ǻ�{���g.�+�-��E��S/��eynĉ#�.^’}��nX��TF�D�B���?޾e�Fpf����V��	a�wh,�ʢ,��>sD^] ����E�D�`t5f�Ǽ���WE�%	O�2o��}��sqg����7������&��Qe�u������G����f��KM2n��:W�x'�67��>}��D��NBn�#��GX�
Yef�P�>
�ah��4�s,=�z���B�[�"��_X�,�ObM����)��s�?xF�7h�֛�Ha�+�-�,��1���q���{�u���
�f��I6���\�d˒J8m�S8��R��ro[��3w�t�qg�W�>;s_���D���,�[qyr��|����?�7�4�u���Pp2�>�	܎��­�lZ$�E��\���#�	�&w�M/���t�^�'o��,���V-��M���[,�7]�]q�M�B��I�oo���8iC+�$K��M[eKn�(2�bRIsX�u�(ȱ�\L3E�A��iyl��q�f�h�JMe�Vub���*r���u�a0�a�U��rO�{�5�
�'=_I.tk���Zkk���Dz�?c7�YX��).�t8Q�K/#Va���G䵴S9No�^JzZމ��$*a��:�Tk��A%2�
 �Pt���1�������lz�:�Eo=�_ꛫv %u/$-��ȸ򰯆M�/�$Ɂ��"�z�Q)�髞!�O��%�&�U����J$1~�|{Md����13�1�K��f�h�0��hm�O�U�8L���nY���ĠN�A["ԅ�
�v��M�"DU!!!!!!!!^�/+���
��IEND�B`�admin/class-ogf-welcome-screen.php000064400000007765151213254170013151 0ustar00<?php
/**
 * Olympus Google Fonts Admin Pages.
 *
 * @package olympus-google-fonts
 */

/**
 * Create the admin pages.
 */
class OGF_Welcome_Screen {

	/**
	 * Start up
	 */
	public function __construct() {
		add_action( 'admin_menu', array( $this, 'add_plugin_page' ), 1 );
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
		add_action( 'wp_ajax_ogf_dismiss_guide', array( $this, 'dismiss_guide' ) );
	}

	/**
	 * Add options page
	 */
	public function add_plugin_page() {

		add_menu_page(
			__( 'Fonts Plugin', 'olympus-google-fonts' ),
			'Fonts Plugin',
			'manage_options',
			'fonts-plugin',
			array( $this, 'render_welcome_page' ),
			'dashicons-editor-textcolor',
			61
		);

		add_submenu_page(
			'fonts-plugin',
			__( 'Customize Fonts', 'olympus-google-fonts' ),
			__( 'Customize Fonts', 'olympus-google-fonts' ),
			'manage_options',
			esc_url( admin_url( '/customize.php?autofocus[panel]=ogf_google_fonts' ) ),
			'',
			5
		);

		add_submenu_page(
			'fonts-plugin',
			__( 'Documentation', 'olympus-google-fonts' ),
			__( 'Documentation', 'olympus-google-fonts' ),
			'manage_options',
			'https://docs.fontsplugin.com/',
			'',
			25
		);
	}

	/**
	 * Add options page
	 */
	public function enqueue() {

		if ( get_current_screen()->id === 'toplevel_page_fonts-plugin' ) {
			wp_enqueue_style( 'olympus-google-fonts-admin', plugins_url( 'admin/style.css', __DIR__ ), false, '1.0.0' );
		}

		wp_enqueue_script( 'ogf-admin', esc_url( OGF_DIR_URL . 'assets/js/admin.js' ), 'jquery', OGF_VERSION, false );
	}

	/**
	 * Options page callback
	 */
	public function render_welcome_page() {
		?>
			<div class="eb-wrap">
				<div class="eb-content">
					<div class="eb-content__header">
						<h1><?php esc_html_e( 'Your Quickstart Guide', 'olympus-google-fonts' ); ?></h1>
					</div>
					<div class="eb-content__inner">
						<img class="ebook-cover" src="<?php echo esc_url( plugins_url( 'admin/fonts-plugin-quickstart-guide.png', __DIR__ ) ); ?>">
						<p><?php esc_html_e( 'To help you get the most out of the Google Fonts plugin we’ve put together a free quickstart guide.', 'olympus-google-fonts' ); ?></p>
						<p><?php esc_html_e( 'In this beautifully-formatted, easy-to-read PDF you will learn:', 'olympus-google-fonts' ); ?>
						<ul>
							<li><?php printf( esc_html__( 'How to %1$seasily%2$s customize your typography.', 'olympus-google-fonts' ), '<strong>', '</strong>' ); ?></li>
							<li><?php printf( esc_html__( 'How to host fonts %1$slocally%2$s for speed, GDPR & DSGVO.', 'olympus-google-fonts' ), '<strong>', '</strong>' ); ?></li>
							<li><?php printf( esc_html__( 'How to use Google Fonts without %1$sslowing down%2$s your website.', 'olympus-google-fonts' ), '<strong>', '</strong>' ); ?></li>
						</ul>
						<p><?php esc_html_e( 'Download your free copy today.', 'olympus-google-fonts' ); ?></p>

						<?php if ( get_option( 'ogf_dismiss_guide', false ) === false ) : ?>
							<form action="https://fontsplugin.email/subscribe" method="post" class="validate" target="_blank" novalidate>
								<input type="email" value="" placeholder="<?php esc_attr_e( 'Your email address...', 'olympus-google-fonts' ); ?>" name="email" class="required email" id="mce-EMAIL">
								<input type="hidden" name="list" value="2guyf8U56tOENOh6892lBQ6w"/>
		<input type="hidden" name="subform" value="yes"/>
								<input type="submit" value="<?php esc_attr_e( 'Send My Guide!', 'olympus-google-fonts' ); ?>" name="submit" class="ogf-send-guide-button button">
							</form>
						<?php else : ?>

							<a class="ogf-send-guide-button button" href="https://fontsplugin.com/wp-content/uploads/qs-guide.pdf" target="_blank"><?php esc_html_e( 'Read Guide', 'olympus-google-fonts' ); ?></a>

						<?php endif; ?>

					</div>
				</div>
			</div>
			<?php
	}

	/**
	 * AJAX handler to store the state of dismissible notices.
	 */
	public function dismiss_guide() {
		// Store it in the options table.
		update_option( 'ogf_dismiss_guide', true );
	}
}

if ( is_admin() ) {
	$ogf_welcome_screen = new OGF_Welcome_Screen();
}
admin/class-ogf-upload-fonts-screen.php000064400000046113151213254170014117 0ustar00<?php
/**
 * Upload  Fonts Admin UI
 *
 * @package olympus-google-fonts
 */

/**
 * OGF_Upload_Fonts_Screen
 */
class OGF_Upload_Fonts_Screen {

	/**
	 * Instance of OGF_Upload_Fonts_Screen
	 *
	 * @var (Object) OGF_Upload_Fonts_Screen
	 */
	private static $instance = null;

	/**
	 * Parent Menu Slug
	 *
	 * @var (string) $parent_menu_slug
	 */
	protected $parent_menu_slug = 'fonts-plugin';

	/**
	 * Instance of OGF_Upload_Fonts_Screen.
	 *
	 * @return object Class object.
	 */
	public static function get_instance() {
		if ( ! isset( self::$instance ) ) {
			self::$instance = new self();
		}

		return self::$instance;
	}

	/**
	 * Constructor.
	 */
	public function __construct() {
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );

		add_action( 'admin_menu', array( $this, 'register_custom_fonts_menu' ), 101 );
		add_action( 'admin_head', array( $this, 'customize_output' ) );

		add_filter( 'manage_edit-' . OGF_Fonts_Taxonomy::$taxonomy_slug . '_columns', array( $this, 'manage_columns' ) );

		add_action( OGF_Fonts_Taxonomy::$taxonomy_slug . '_add_form_fields', array( $this, 'add_new_taxonomy_data' ) );
		add_action( OGF_Fonts_Taxonomy::$taxonomy_slug . '_edit_form_fields', array( $this, 'edit_taxonomy_data' ) );
		add_action( OGF_Fonts_Taxonomy::$taxonomy_slug . '_term_new_form_tag', array( $this, 'intro_text' ) );

		add_action( 'edited_' . OGF_Fonts_Taxonomy::$taxonomy_slug, array( $this, 'save_metadata' ) );
		add_action( 'create_' . OGF_Fonts_Taxonomy::$taxonomy_slug, array( $this, 'save_metadata' ) );

		add_filter( 'upload_mimes', array( $this, 'add_to_allowed_mimes' ) );
		add_filter( 'wp_check_filetype_and_ext', array( $this, 'update_mime_types' ), 10, 3 );
	}

	/**
	 * Add options page
	 */
	public function enqueue() {
		if ( get_current_screen()->id !== 'edit-ogf_custom_fonts' ) {
			return;
		}

		wp_enqueue_style( 'olympus-google-fonts-admin', plugins_url( 'admin/style.css', __DIR__ ), false, '1.0.0' );

		wp_enqueue_media();
		wp_enqueue_script( 'olympus-google-fonts-upload', plugins_url( 'assets/js/uploadFonts.js', __DIR__ ), array(), '1.0.1' );
	}

	/**
	 * Register custom font menu
	 */
	public function register_custom_fonts_menu() {
		$title = apply_filters( 'ogf_custom_fonts_menu_title', __( 'Upload Fonts', 'olympus-google-fonts' ) );
		add_submenu_page(
			$this->parent_menu_slug,
			$title,
			$title,
			OGF_Fonts_Taxonomy::$capability,
			'edit-tags.php?taxonomy=' . OGF_Fonts_Taxonomy::$taxonomy_slug
		);
	}

	/**
	 * Modify taxonomy output.
	 */
	public function customize_output() {
		global $parent_file, $submenu_file;

		if ( 'edit-tags.php?taxonomy=' . OGF_Fonts_Taxonomy::$taxonomy_slug === $submenu_file ) {
			$parent_file = $this->parent_menu_slug; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
		}
		if ( get_current_screen()->id != 'edit-' . OGF_Fonts_Taxonomy::$taxonomy_slug ) {
			return;
		}

		?><style>#addtag div.form-field.term-slug-wrap, #edittag tr.form-field.term-slug-wrap { display: none; }
			#addtag div.form-field.term-description-wrap, #edittag tr.form-field.term-description-wrap { display: none; }</style><script>jQuery( document ).ready( function( $ ) {
				var $wrapper = $( '#addtag, #edittag' );
				$wrapper.find( 'tr.form-field.term-name-wrap p, div.form-field.term-name-wrap > p' ).text( '<?php esc_html_e( 'A unique name to describe this variant.', 'olympus-google-fonts' ); ?>' );
			} );</script>
			<p>
			<?php
	}

	/**
	 * Manage Columns
	 *
	 * @param array $columns default columns.
	 * @return array $columns updated columns.
	 */
	public function manage_columns( $columns ) {
		$screen = get_current_screen();
		// If current screen is add new custom fonts screen.
		if ( isset( $screen->base ) && 'edit-tags' == $screen->base ) {
			$old_columns = $columns;
			$columns     = array(
				'cb'   => $old_columns['cb'],
				'name' => $old_columns['name'],
			);
		}
		return $columns;
	}

	/**
	 * Add options page
	 */
	public function intro_text() {
		echo '><span>Documentation for this feature is available here: <a href="https://fontsplugin.com/upload-fonts-wordpress/">Upload Fonts to WordPress</a>.</span';
	}

	/**
	 * Add new Taxonomy data
	 */
	public function add_new_taxonomy_data() {
		$this->font_family_new_field( 'family', __( 'Font Family', 'olympus-google-fonts' ), __( 'The name of the font family. For example, Helvetica or Proxima Nova.', 'olympus-google-fonts' ) );
		$this->font_file_new_field( 'woff', __( 'WOFF Font File', 'olympus-google-fonts' ), '' );
		$this->font_file_new_field( 'woff2', __( 'WOFF2 Font File', 'olympus-google-fonts' ), '' );
		$this->font_file_new_field( 'otf', __( 'OpenType (.otf) Font File', 'olympus-google-fonts' ), '' );
		$this->font_file_new_field( 'ttf', __( 'TrueType (.ttf) Font File', 'olympus-google-fonts' ), '' );
		$this->font_weight_new_field( 'weight', __( 'Font Weight', 'olympus-google-fonts' ), '' );
		$this->font_style_new_field( 'style', __( 'Font Style', 'olympus-google-fonts' ), '' );
	}

	/**
	 * Edit Taxonomy data
	 *
	 * @param object $term taxonomy terms.
	 */
	public function edit_taxonomy_data( $term ) {
		$data = OGF_Fonts_Taxonomy::get_font_data( $term->term_id );
		$this->font_family_edit_field( 'family', __( 'Font Family', 'olympus-google-fonts' ), $data['family'], __( 'The name of the font family. For example, Helvetica or Proxima Nova.', 'olympus-google-fonts' ) );
		$this->font_file_edit_field( 'woff', __( 'Font .woff', 'olympus-google-fonts' ), $data['woff'], __( 'Upload the font\'s .woff file or enter the URL.', 'olympus-google-fonts' ) );
		$this->font_file_edit_field( 'woff2', __( 'Font .woff2', 'olympus-google-fonts' ), $data['woff2'], __( 'Upload the font\'s .woff2 file or enter the URL.', 'olympus-google-fonts' ) );
		$this->font_file_edit_field( 'ttf', __( 'Font .ttf', 'olympus-google-fonts' ), $data['ttf'], __( 'Upload the font\'s .ttf file or enter the URL.', 'olympus-google-fonts' ) );
		$this->font_file_edit_field( 'otf', __( 'Font .otf', 'olympus-google-fonts' ), $data['otf'], __( 'Upload the font\'s .otf file or enter the URL.', 'olympus-google-fonts' ) );
		$this->font_weight_edit_field( 'weight', __( 'Font Weight', 'olympus-google-fonts' ), $data['weight'] );
		$this->font_style_edit_field( 'style', __( 'Font Weight', 'olympus-google-fonts' ), $data['style'] );
		$this->font_preload_edit_field( 'preload', __( 'Preload Font', 'olympus-google-fonts' ), $data['preload'],  __( 'Preloading is a <a href="https://fontsplugin.com/pro-upgrade">Fonts Plugin Pro</a> feature.', 'olympus-google-fonts' )  );
	}


	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $description title font type description.
	 */
	protected function font_family_new_field( $id, $title, $description = '' ) {
		?>
		<div class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<input id="metadata-<?php echo esc_attr( $id ); ?>" type="text" class="ogf-custom-fonts-family-input <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]"/>
				<p class="description"><?php echo esc_html( $description ); ?></p>
			</td>
		</div>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $value title font type meta values.
	 * @param string $description title font type description.
	 */
	protected function font_family_edit_field( $id, $title, $value = '', $description = '' ) {
		?>
		<tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<input id="metadata-<?php echo esc_attr( $id ); ?>" type="text" class="ogf-custom-fonts-family-input <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" value="<?php echo esc_attr( $value ); ?>" />
				<p class="description"><?php echo esc_html( $description ); ?></p>
			</td>
		</tr>
		<?php
	}


	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $description title font type description.
	 * @param string $value title font type meta values.
	 */
	protected function font_file_new_field( $id, $title, $description, $value = '' ) {
		?>
		<div class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap" >

			<label for="font-<?php echo esc_attr( $id ); ?>"><?php echo esc_html( $title ); ?></label>
			<div style="display:flex; width: 95%">
				<input style="flex:1; margin-right: .5rem" type="text" id="font-<?php echo esc_attr( $id ); ?>" class="ogf-custom-fonts-link-input <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" value="<?php echo esc_attr( $value ); ?>" />
				<a href="#" class="ogf-custom-fonts-upload button" data-upload-type="<?php echo esc_attr( $id ); ?>"><?php esc_html_e( 'Upload File', 'olympus-google-fonts' ); ?></a>
			</div>
				<p><?php echo esc_html( $description ); ?></p>
		</div>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $value title font type meta values.
	 * @param string $description title font type description.
	 */
	protected function font_file_edit_field( $id, $title, $value = '', $description = '' ) {
		?>
		<tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<input placeholder="https://" id="metadata-<?php echo esc_attr( $id ); ?>" type="text" class="ogf-custom-fonts-link-input <?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" value="<?php echo esc_attr( $value ); ?>" />
				<a href="#" class="ogf-custom-fonts-upload button" data-upload-type="<?php echo esc_attr( $id ); ?>"><?php esc_html_e( 'Upload File', 'olympus-google-fonts' ); ?></a>
				<p class="description"><?php echo esc_html( $description ); ?></p>
			</td>
		</tr>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $description title font type description.
	 */
	protected function font_weight_new_field( $id, $title, $description = '' ) {
		?>
		<div class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap" >
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>

				<select id="metadata-<?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]">
					<option value="">All</option>
					<option value="100"><?php esc_html_e( 'Thin (100)', 'olympus-google-fonts' ); ?></option>
					<option value="200"><?php esc_html_e( 'Extra Light (200)', 'olympus-google-fonts' ); ?></option>
					<option value="300"><?php esc_html_e( 'Light (300)', 'olympus-google-fonts' ); ?></option>
					<option value="400"><?php esc_html_e( 'Normal (400)', 'olympus-google-fonts' ); ?></option>
					<option value="500"><?php esc_html_e( 'Medium (500)', 'olympus-google-fonts' ); ?></option>
					<option value="600"><?php esc_html_e( 'Semi Bold (600)', 'olympus-google-fonts' ); ?></option>
					<option value="700"><?php esc_html_e( 'Bold (700)', 'olympus-google-fonts' ); ?></option>
					<option value="800"><?php esc_html_e( 'Extra Bold (800)', 'olympus-google-fonts' ); ?></option>
					<option value="900"><?php esc_html_e( 'Black (900)', 'olympus-google-fonts' ); ?></option>
				</select>
	</div>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $value title font type meta values.
	 * @param string $description title font type description.
	 */
	protected function font_weight_edit_field( $id, $title, $value = '', $description = '' ) {
		?>
		<tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<select id="metadata-<?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]">
					<option value="">All</option>
					<option value="100" <?php selected( $value, '100' ); ?>><?php esc_html_e( 'Thin (100)', 'olympus-google-fonts' ); ?></option>
					<option value="200" <?php selected( $value, '200' ); ?>><?php esc_html_e( 'Extra Light (200)', 'olympus-google-fonts' ); ?></option>
					<option value="300" <?php selected( $value, '300' ); ?>><?php esc_html_e( 'Light (300)', 'olympus-google-fonts' ); ?></option>
					<option value="400" <?php selected( $value, '400' ); ?>><?php esc_html_e( 'Normal (400)', 'olympus-google-fonts' ); ?></option>
					<option value="500" <?php selected( $value, '500' ); ?>><?php esc_html_e( 'Medium (500)', 'olympus-google-fonts' ); ?></option>
					<option value="600" <?php selected( $value, '600' ); ?>><?php esc_html_e( 'Semi Bold (600)', 'olympus-google-fonts' ); ?></option>
					<option value="700" <?php selected( $value, '700' ); ?>><?php esc_html_e( 'Bold (700)', 'olympus-google-fonts' ); ?></option>
					<option value="800" <?php selected( $value, '800' ); ?>><?php esc_html_e( 'Extra Bold (800)', 'olympus-google-fonts' ); ?></option>
					<option value="900" <?php selected( $value, '900' ); ?>><?php esc_html_e( 'Black (900)', 'olympus-google-fonts' ); ?></option>
				</select>
			</td>
		</tr>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $description title font type description.
	 */
	protected function font_style_new_field( $id, $title, $description = '' ) {
		?>
		<div class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap" >
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
				<select id="metadata-<?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]">
					<option value="">All</option>
					<option value="normal"><?php esc_html_e( 'Normal', 'olympus-google-fonts' ); ?></option>
					<option value="italic"><?php esc_html_e( 'Italic', 'olympus-google-fonts' ); ?></option>
					<option value="oblique"><?php esc_html_e( 'Oblique', 'olympus-google-fonts' ); ?></option>
				</select>
	</div>
		<?php
	}
	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $value title font type meta values.
	 * @param string $description title font type description.
	 */
	protected function font_style_edit_field( $id, $title, $value = '', $description = '' ) {
		?>
		<tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<select id="metadata-<?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]">
					<option value="">All</option>
					<option value="normal" <?php selected( $value, 'normal' ); ?>><?php esc_html_e( 'Normal', 'olympus-google-fonts' ); ?></option>
					<option value="italic" <?php selected( $value, 'italic' ); ?>><?php esc_html_e( 'Italic', 'olympus-google-fonts' ); ?></option>
					<option value="oblique" <?php selected( $value, 'oblique' ); ?>><?php esc_html_e( 'Oblique', 'olympus-google-fonts' ); ?></option>
				</select>
			</td>
		</tr>
		<?php
	}

	/**
	 * Add Taxonomy data field
	 *
	 * @param string $id current term id.
	 * @param string $title font type title.
	 * @param string $value title font type meta values.
	 * @param string $description title font type description.
	 */
	protected function font_preload_edit_field( $id, $title, $value = '', $description = '' ) {
		?>
		<tr class="ogf-custom-fonts-file-wrap form-field term-<?php echo esc_attr( $id ); ?>-wrap ">
			<th scope="row">
				<label for="metadata-<?php echo esc_attr( $id ); ?>">
					<?php echo esc_html( $title ); ?>
				</label>
			</th>
			<td>
				<?php if( defined('OGF_PRO') ) : ?>
					<input type="checkbox" id="metadata-<?php echo esc_attr( $id ); ?>" name="<?php echo esc_attr( OGF_Fonts_Taxonomy::$taxonomy_slug ); ?>[<?php echo esc_attr( $id ); ?>]" <?php checked( $value, 1 ); ?> value="1">
				<?php else : ?>
					<p class="description"><?php echo wp_kses_post( $description ); ?></p>
				<?php endif; ?>
			</td>
		</tr>
		<?php
	}

	/**
	 * Save Taxonomy meta data value
	 *
	 * @since 1.0.0
	 * @param int $term_id current term id.
	 */
	public function save_metadata( $term_id ) {
		if ( isset( $_POST[ OGF_Fonts_Taxonomy::$taxonomy_slug ] ) ) {// phpcs:ignore WordPress.Security.NonceVerification.Missing
			$value = array_map( 'esc_attr', $_POST[ OGF_Fonts_Taxonomy::$taxonomy_slug ] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
			OGF_Fonts_Taxonomy::update_font_data( $value, $term_id );
		}
	}

	/**
	 * Add WOFF and WOFF2 to the allowed mime types.
	 *
	 * @param array $mimes Current array of mime types.
	 * @return array $mimes Updated array of mime types.
	 */
	public function add_to_allowed_mimes( $mimes ) {

		$php_7_ttf_mime_type = PHP_VERSION_ID >= 70300 ? 'application/font-sfnt' : 'application/x-font-ttf';

		$mimes['otf']   = 'application/vnd.ms-opentype';
		$mimes['ttf']   = PHP_VERSION_ID >= 70400 ? 'font/sfnt' : $php_7_ttf_mime_type;
		$mimes['woff']  = PHP_VERSION_ID >= 80112 ? 'font/woff' : 'application/font-woff';
		$mimes['woff2'] = PHP_VERSION_ID >= 80112 ? 'font/woff2' : 'application/font-woff2';

		return $mimes;
	}

	/**
	 * Correct the mime types and extension for the font types.
	 *
	 * @param array  $defaults File data array containing 'ext', 'type', and
	 *                                          'proper_filename' keys.
	 * @param string $file                      Full path to the file.
	 * @param string $filename                  The name of the file (may differ from $file due to
	 *                                          $file being in a tmp directory).
	 * @return Array File data array containing 'ext', 'type', and
	 */
	public function update_mime_types( $defaults, $file, $filename ) {
		if ( 'ttf' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
			$defaults['type'] = 'application/x-font-ttf';
			$defaults['ext']  = 'ttf';
		}

		if ( 'otf' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
			$defaults['type'] = 'application/x-font-otf';
			$defaults['ext']  = 'otf';
		}

		return $defaults;
	}
}

OGF_Upload_Fonts_Screen::get_instance();
admin/style.css000064400000003320151213254200007477 0ustar00.eb-wrap {
	margin: 50px 35px;
	max-width: 960px;
}

.eb-wrap * {
	font-size: 16px;
	margin-top: 0;
	font-family: 'Source Sans Pro', 'Helvetica Neue', sans-serif;
}

.eb-wrap p {
	line-height: 1.6;
}

.eb-wrap ul {
	list-style: disc;
	margin-left: 32px
}

.eb-wrap ul li {
	margin-bottom: 8px
}

.eb-content {
	background: #fff;
	border-radius: 3px;
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 740px;
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);
}

.eb-content__header {
	border-top: 5px solid #b43534;
	border-radius: 5px 5px 0 0;
}

.eb-content__header h1 {
	font-size: 24px;
	padding: 50px 50px 0;
	margin: 0
}

.eb-content__inner {
	background-color: #fff;
	padding: 25px 50px 50px;
}

.eb-sidebar__inner {
	background-color: white;
}

.eb-sidebar__header {
	background-color: #0d72a7
}

.eb-sidebar__plugin {
	padding: 30px;
}

.eb-sidebar__header h2 {
	color: #fff;
	font-size: 16px;
	padding: 20px 30px;
	margin: 0
}

.appearance_page_olympus-google-fonts .notice {
	display: none
}

.eb-wrap .button {
	color: #fff;
  border-color: #a10000;
  background: #a10000;
  padding: 4px 16px;
  font-size: 16px;
  font-weight: 600;
  margin-left: 8px;
	height: auto
}

#mce-EMAIL {
	padding: 5px 12px;
	min-height: 27px
}

.ebook-cover {
	float: right;
	max-width: 30%;
  margin-left: 10%;
  margin-top: -25px;
}

input[type="text"].ogf-custom-fonts-link-input {
	width: 78.5%;
}

@media only screen and (max-width: 960px) {

	.eb-content {
		max-width: 98%;
		float: none;
	}

	.eb-wrap {
			margin: 1%;
	}

}
@media only screen and (max-width: 480px) {

	.ebook-cover {
		display: none
	}

	#mce-EMAIL {
    padding: 5px 12px;
    width: 100%;
    margin-bottom: 10px;
	}

	.eb-wrap .button {
		width: 100%;
		margin-left: 0;
	}

}
languages/olympus-google-fonts.pot000064400000047524151213254200013356 0ustar00# Copyright (C) 2021 Fonts Plugin
# This file is distributed under the same license as the Fonts Plugin | Google Fonts Typography plugin.
msgid ""
msgstr ""
"Project-Id-Version: Fonts Plugin | Google Fonts Typography 2.5.5\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/olympus-google-fonts\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2021-03-09T11:22:40+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.1.0\n"
"X-Domain: olympus-google-fonts\n"

#. Plugin Name of the plugin
msgid "Fonts Plugin | Google Fonts Typography"
msgstr ""

#. Plugin URI of the plugin
msgid "https://wordpress.org/plugins/olympus-google-fonts/"
msgstr ""

#. Description of the plugin
msgid "The easiest to use Google Fonts typography plugin. No coding required. 1000+ font choices."
msgstr ""

#. Author of the plugin
#: includes/customizer/panels.php:31
#: admin/class-ogf-welcome-screen.php:28
msgid "Fonts Plugin"
msgstr ""

#. Author URI of the plugin
msgid "https://fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=description"
msgstr ""

#: class-olympus-google-fonts.php:151
msgid "Settings"
msgstr ""

#: class-olympus-google-fonts.php:157
msgid "Upgrade to Pro"
msgstr ""

#: includes/functions.php:35
msgid "Base Typography"
msgstr ""

#: includes/functions.php:36
msgid "Select and configure the font for your content."
msgstr ""

#: includes/functions.php:41
#: includes/functions.php:113
#: includes/functions.php:125
msgid "Headings Typography"
msgstr ""

#: includes/functions.php:42
msgid "Select and configure the font for your headings."
msgstr ""

#: includes/functions.php:47
msgid "Buttons and Inputs Typography"
msgstr ""

#: includes/functions.php:48
msgid "Select and configure the font for your input fields and buttons."
msgstr ""

#: includes/functions.php:53
msgid "Site Title Typography"
msgstr ""

#: includes/functions.php:54
msgid "Select and configure the font for your site title."
msgstr ""

#: includes/functions.php:59
msgid "Site Description Typography"
msgstr ""

#: includes/functions.php:60
msgid "Select and configure the font for your site description."
msgstr ""

#: includes/functions.php:65
msgid "Navigation Typography"
msgstr ""

#: includes/functions.php:66
msgid "Select and configure the font for your site navigation."
msgstr ""

#: includes/functions.php:71
#: includes/functions.php:119
#: includes/functions.php:133
msgid "Content Typography"
msgstr ""

#: includes/functions.php:72
msgid "Select and configure the font for your post and page content."
msgstr ""

#: includes/functions.php:77
msgid "Title and H1 Typography"
msgstr ""

#: includes/functions.php:78
msgid "Select and configure the font for your title and H1 headings."
msgstr ""

#: includes/functions.php:83
msgid "H2 Typography"
msgstr ""

#: includes/functions.php:84
msgid "Select and configure the font for your H2 headings."
msgstr ""

#: includes/functions.php:89
msgid "H3 Typography"
msgstr ""

#: includes/functions.php:90
msgid "Select and configure the font for your H3 headings."
msgstr ""

#: includes/functions.php:95
msgid "H4 Typography"
msgstr ""

#: includes/functions.php:96
msgid "Select and configure the font for your H4 headings."
msgstr ""

#: includes/functions.php:101
msgid "H5 Typography"
msgstr ""

#: includes/functions.php:102
msgid "Select and configure the font for your H5 headings."
msgstr ""

#: includes/functions.php:107
msgid "H6 Typography"
msgstr ""

#: includes/functions.php:108
msgid "Select and configure the font for your H6 headings."
msgstr ""

#: includes/functions.php:114
msgid "Select and configure the font for your sidebar headings."
msgstr ""

#: includes/functions.php:120
msgid "Select and configure the font for your sidebar content."
msgstr ""

#: includes/functions.php:126
msgid "Select and configure the font for your footer headings."
msgstr ""

#: includes/functions.php:134
msgid "Select and configure the font for your footer content."
msgstr ""

#: includes/functions.php:218
msgid "Arial"
msgstr ""

#: includes/functions.php:223
msgid "Calibri"
msgstr ""

#: includes/functions.php:228
msgid "Century Gothic"
msgstr ""

#: includes/functions.php:233
msgid "Consolas"
msgstr ""

#: includes/functions.php:238
msgid "Courier New"
msgstr ""

#: includes/functions.php:243
msgid "Helvetica Neue"
msgstr ""

#: includes/functions.php:248
msgid "Georgia"
msgstr ""

#: includes/functions.php:253
msgid "Futura"
msgstr ""

#: includes/functions.php:258
msgid "Lucida Grande"
msgstr ""

#: includes/functions.php:263
msgid "Segoe UI"
msgstr ""

#: includes/functions.php:268
msgid "Tahoma"
msgstr ""

#: includes/functions.php:273
msgid "Times New Roman"
msgstr ""

#: includes/functions.php:278
msgid "Trebuchet MS"
msgstr ""

#: includes/functions.php:283
msgid "Palatino"
msgstr ""

#: includes/functions.php:288
msgid "Verdana"
msgstr ""

#: includes/functions.php:303
#: includes/customizer/controls/class-ogf-customize-typography-control.php:270
#: includes/customizer/controls/class-ogf-customize-typography-control.php:287
#: includes/customizer/controls/class-ogf-customize-typography-control.php:297
#: includes/customizer/controls/class-ogf-customize-typography-control.php:309
#: includes/customizer/controls/class-ogf-customize-typography-control.php:321
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:148
msgid "- Default -"
msgstr ""

#: includes/functions.php:304
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:149
msgid "Thin"
msgstr ""

#: includes/functions.php:305
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:150
msgid "Extra Light"
msgstr ""

#: includes/functions.php:306
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:151
msgid "Light"
msgstr ""

#: includes/functions.php:307
#: includes/customizer/controls/class-ogf-customize-typography-control.php:298
#: includes/customizer/controls/class-ogf-customize-typography-control.php:310
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:152
msgid "Normal"
msgstr ""

#: includes/functions.php:308
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:153
msgid "Medium"
msgstr ""

#: includes/functions.php:309
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:154
msgid "Semi Bold"
msgstr ""

#: includes/functions.php:310
#: includes/customizer/controls/class-ogf-customize-typography-control.php:299
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:155
msgid "Bold"
msgstr ""

#: includes/functions.php:311
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:156
msgid "Extra Bold"
msgstr ""

#: includes/functions.php:312
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:157
msgid "Ultra Bold"
msgstr ""

#: includes/functions.php:313
msgid "Thin Italic"
msgstr ""

#: includes/functions.php:314
msgid "Extra Light Italic"
msgstr ""

#: includes/functions.php:315
msgid "Light Italic"
msgstr ""

#: includes/functions.php:316
msgid "Normal Italic"
msgstr ""

#: includes/functions.php:317
msgid "Medium Italic"
msgstr ""

#: includes/functions.php:318
msgid "Semi Bold Italic"
msgstr ""

#: includes/functions.php:319
msgid "Bold Italic"
msgstr ""

#: includes/functions.php:320
msgid "Extra Bold Italic"
msgstr ""

#: includes/functions.php:321
msgid "Ultra Bold Italic"
msgstr ""

#: includes/class-ogf-reset.php:41
#: includes/class-ogf-reset.php:60
msgid "This will reset all fonts set by this plugin to their defaults. This action can not be reversed."
msgstr ""

#: includes/class-ogf-reset.php:59
#: includes/class-ogf-reset.php:65
msgid "Reset All Fonts"
msgstr ""

#. translators: %s Link to Google Fonts customizer panel.
#: includes/class-ogf-welcome.php:102
msgid "Thank you for installing <strong>Google Fonts for WordPress</strong>! Configure your fonts here: <a href=\"%s\">WordPress Customizer</a>"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:65
msgid "Custom Fonts"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:66
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:261
msgid "Font"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:67
msgctxt "Admin menu name"
msgid "Custom Fonts"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:68
msgid "Search Fonts"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:69
msgid "All Fonts"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:70
msgid "Parent Font"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:71
msgid "Parent Font:"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:72
msgid "Edit Font"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:73
msgid "Update Font"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:74
msgid "Add New Font"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:75
msgid "New Font Name"
msgstr ""

#: includes/class-ogf-fonts-taxonomy.php:76
msgid "No fonts found"
msgstr ""

#. translators: Number of years
#: includes/class-ogf-notifications.php:82
msgid "a year"
msgid_plural "%s years"
msgstr[0] ""

#. translators: Number of days
#: includes/class-ogf-notifications.php:94
msgid "%s days"
msgstr ""

#: includes/class-ogf-notifications.php:218
msgid "Google Fonts WordPress Plugin"
msgstr ""

#: includes/class-ogf-notifications.php:221
msgid "Are you enjoying using Google Fonts?"
msgstr ""

#. translators: 1. Name, 2. Time
#: includes/class-ogf-notifications.php:225
msgid "You have been using <strong>%1$s</strong> for %2$s now! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
msgstr ""

#: includes/class-ogf-notifications.php:230
msgid "Leave a Review"
msgstr ""

#: includes/class-ogf-notifications.php:231
msgid "No thanks / I already have"
msgstr ""

#: includes/class-ogf-notifications.php:257
msgid "Google Fonts for WordPress"
msgstr ""

#: includes/customizer/settings.php:38
#: includes/customizer/panels.php:70
#: includes/customizer/panels.php:100
msgid "Custom Elements"
msgstr ""

#: includes/customizer/settings.php:56
#: includes/customizer/panels.php:158
msgid "Load Fonts Only"
msgstr ""

#: includes/customizer/settings.php:57
msgid "Load fonts but don't automatically assign them to an element."
msgstr ""

#: includes/customizer/settings.php:173
msgid "Force Styles?"
msgstr ""

#: includes/customizer/settings.php:177
msgid "If your choices are not displaying correctly, check this box."
msgstr ""

#: includes/customizer/settings.php:193
msgid "Disable Editor Controls"
msgstr ""

#: includes/customizer/settings.php:197
msgid "Remove font controls from the individual post editor screen (Gutenberg and Classic)."
msgstr ""

#: includes/customizer/settings.php:216
msgid "Swap"
msgstr ""

#: includes/customizer/settings.php:217
msgid "Block"
msgstr ""

#: includes/customizer/settings.php:218
msgid "Fallback"
msgstr ""

#: includes/customizer/settings.php:219
msgid "Optional"
msgstr ""

#: includes/customizer/panels.php:40
msgid "Theme Settings"
msgstr ""

#: includes/customizer/panels.php:49
msgid "Basic Settings"
msgstr ""

#: includes/customizer/panels.php:59
msgid "Advanced Settings"
msgstr ""

#. Translators: %s Custom Elements Customizer Panel URL
#: includes/customizer/panels.php:73
msgid "Define your Custom Elements here and then customize them under <a href=\"%s\">Advanced Settings &rarr; Custom Elements</a>."
msgstr ""

#: includes/customizer/panels.php:81
msgid "Font Loading"
msgstr ""

#: includes/customizer/panels.php:91
msgid "Debugging"
msgstr ""

#. Translators: %s Custom Elements Customizer Panel URL
#: includes/customizer/panels.php:102
msgid "Custom Elements allow you to apply Google Fonts to any part of your website, they can be setup under <a href=\"%s\">Google Fonts &rarr; Custom Elements</a>."
msgstr ""

#: includes/customizer/panels.php:110
msgid "Theme Elements"
msgstr ""

#: includes/customizer/panels.php:118
msgid "Branding"
msgstr ""

#: includes/customizer/panels.php:126
msgid "Navigation"
msgstr ""

#: includes/customizer/panels.php:134
msgid "Content"
msgstr ""

#: includes/customizer/panels.php:142
msgid "Sidebar"
msgstr ""

#: includes/customizer/panels.php:150
msgid "Footer"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:82
msgid "Add New"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:85
msgid "Save Elements"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:132
#: includes/customizer/controls/class-ogf-customize-repeater-control.php:138
msgid "Label"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:143
#: includes/customizer/controls/class-ogf-customize-repeater-control.php:149
msgid "Description"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:154
msgid "Selectors"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:160
msgid "Add your selectors..."
msgstr ""

#: includes/customizer/controls/class-ogf-customize-repeater-control.php:164
msgid "Delete field"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:48
msgid "Font Family"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:49
msgid "Font Weight"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:50
msgid "Font Style"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:51
msgid "Font Size (px)"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:52
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:283
msgid "Line Height"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:53
msgid "Color"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:54
msgid "Letter Spacing (px)"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:55
msgid "Text Transform"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:129
msgid "Default Font"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:132
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:35
msgid "- Custom Fonts -"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:138
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:48
msgid "- Typekit Fonts -"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:143
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:64
msgid "- System Fonts -"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:147
#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:80
msgid "- Google Fonts -"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:153
msgid "Advanced"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:311
msgid "Italic"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:312
msgid "Oblique"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:322
msgid "Capitalize"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:323
msgid "Uppercase"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:324
msgid "Lowercase"
msgstr ""

#: includes/customizer/controls/class-ogf-customize-typography-control.php:325
msgid "None"
msgstr ""

#: includes/class-ogf-dashboard-widget.php:30
msgid "Typography News"
msgstr ""

#: includes/class-ogf-dashboard-widget.php:70
#: includes/class-ogf-dashboard-widget.php:96
msgid "Temporarily unable to load feed."
msgstr ""

#: includes/class-ogf-typekit.php:32
#: includes/class-ogf-typekit.php:33
msgid "Adobe Fonts"
msgstr ""

#: includes/class-ogf-typekit.php:46
msgid "Configuration"
msgstr ""

#: includes/class-ogf-typekit.php:47
msgid "Results"
msgstr ""

#: includes/class-ogf-typekit.php:48
msgid "API Key"
msgstr ""

#: includes/class-ogf-typekit.php:56
msgid "Adobe Fonts (Typekit) Configuration"
msgstr ""

#: includes/class-ogf-typekit.php:62
msgid "Refresh Fonts"
msgstr ""

#: includes/class-ogf-typekit.php:73
msgid "<p>You can retrieve your Adobe Fonts API Key here: <a target=\"_blank\" href=\"https://fonts.adobe.com/account/tokens\">https://fonts.adobe.com/account/tokens</a></p>"
msgstr ""

#: includes/class-ogf-typekit.php:81
msgid "Save"
msgstr ""

#: includes/class-ogf-typekit.php:93
msgid "There is a problem connecting to the API. Please check your API Key."
msgstr ""

#: includes/class-ogf-typekit.php:95
msgid "Enter your Adobe Fonts API Key to retrieve the fonts."
msgstr ""

#: includes/class-ogf-typekit.php:100
msgid "The following data was retrieved from the Typekit API:"
msgstr ""

#: includes/class-ogf-typekit.php:104
msgid "Kit: "
msgstr ""

#: includes/class-ogf-typekit.php:106
msgid "Enabled"
msgstr ""

#: includes/class-ogf-typekit.php:106
msgid "Disabled"
msgstr ""

#: includes/class-ogf-typekit.php:110
msgid "Font Family: "
msgstr ""

#: includes/class-ogf-typekit.php:114
msgid "Disable Kit"
msgstr ""

#: includes/class-ogf-typekit.php:116
msgid "Enable Kit"
msgstr ""

#: includes/class-ogf-fonts.php:105
msgid "Font Missing"
msgstr ""

#: admin/class-ogf-welcome-screen.php:39
#: admin/class-ogf-welcome-screen.php:40
msgid "Customize Fonts"
msgstr ""

#: admin/class-ogf-welcome-screen.php:49
#: admin/class-ogf-welcome-screen.php:50
msgid "Documentation"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:78
msgid "Upload Fonts"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:105
msgid "The name of the font as it appears in the customizer options."
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:136
msgid "WOFF Font File"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:137
msgid "WOFF2 Font File"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:138
msgid "OpenType (.otf) Font File"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:139
msgid "TrueType (.ttf) Font File"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:149
msgid "Font .woff"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:149
msgid "Upload the font's .woff file or enter the URL."
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:150
msgid "Font .woff2"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:150
msgid "Upload the font's .woff2 file or enter the URL."
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:151
msgid "Font .ttf"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:151
msgid "Upload the font's .ttf file or enter the URL."
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:152
msgid "Font .otf"
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:152
msgid "Upload the font's .otf file or enter the URL."
msgstr ""

#: admin/class-ogf-upload-fonts-screen.php:170
#: admin/class-ogf-upload-fonts-screen.php:194
msgid "Upload"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/index.js:12
msgid "Google Fonts"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/index.js:16
msgid "Fonts"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/index.js:17
msgid "Heading"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:243
msgid "Font Settings"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:245
msgid "Block Type"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:268
msgid "Font Variant"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:275
msgid "Font Size"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:292
msgid "Color Settings"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:297
msgid "Text Color"
msgstr ""

#: blocks/dist/blocks.build.js:1
#: blocks/src/google-fonts/edit.js:327
msgid "Add some content..."
msgstr ""
olympus-google-fonts.php000064400000003114151213254200011360 0ustar00<?php
/**
 * Fonts Plugin | Use Google Fonts, Adobe Fonts or Upload Fonts
 *
 * Plugin Name: Fonts Plugin | Use Google Fonts, Adobe Fonts or Upload Fonts
 * Plugin URI:  https://wordpress.org/plugins/olympus-google-fonts/
 * Description: The easiest to customize fonts in WordPress. Optimized for Speed. 1000+ font choices. Supports Google Fonts, Adobe Fonts and Upload Fonts.
 * Version:     3.7.8
 * Author:      Fonts Plugin
 * Author URI:  https://fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=description
 * Text Domain: olympus-google-fonts
 * License:     GPL-2.0+
 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
 * Domain Path: /languages
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Initiate the plugin, unless the Pro version is active.
 */
function ogf_initiate() {
	require_once 'class-olympus-google-fonts.php';
}
add_action( 'plugins_loaded', 'ogf_initiate', 10 );

/**
 * Add a redirection check on activation.
 *
 * @return void
 */
function ogf_activate() {
	add_option( 'ogf_do_activation_redirect', true );
}
register_activation_hook( __FILE__, 'ogf_activate' );

/**
 * Redirect to the Google Fonts Welcome page.
 */
function ogf_redirect() {
	if ( get_option( 'ogf_do_activation_redirect', false ) ) {
		delete_option( 'ogf_do_activation_redirect' );
		if ( ! isset( $_GET['activate-multi'] ) && ! is_network_admin() ) {
			wp_safe_redirect( 'admin.php?page=fonts-plugin' );
			exit;
		}
	}
}
add_action( 'admin_init', 'ogf_redirect' );phpcs.xml000064400000006573151213254210006412 0ustar00<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Fonts Plugin">

	<description>A custom set of rules to check for a WordPress project</description>

	<!-- What NOT to scan. -->
	<exclude-pattern>*/bin/*</exclude-pattern>
	<exclude-pattern>*/vendor/*</exclude-pattern>
	<exclude-pattern>*/node_modules/*</exclude-pattern>
	<exclude-pattern>*/*.asset.php</exclude-pattern> <!-- This file is generated by the Gutenberg build process. -->
	<exclude-pattern>*/dependencies/*</exclude-pattern> <!-- This folder is generated by the PHP scoping process. -->

	<!-- How to scan. -->
	<arg value="sp"/> <!-- Show sniff and progress. -->
	<arg name="colors"/> <!-- Show results with colors. Disable if working on Windows. -->
	<arg name="parallel" value="8"/> <!-- Enables parallel processing when available for faster results. -->
	<arg name="extensions" value="php"/> <!-- Only scan PHP files. -->

	<!-- Run against the PHPCompatibilityWP ruleset and check for cross-version support for PHP 5.6 and higher. -->
	<rule ref="PHPCompatibilityWP"/>
	<config name="testVersion" value="5.6-"/>

	<!-- Run against the WordPress-Extra ruleset and check for the minimum supported WP version. -->
	<rule ref="WordPress-Extra">
		<exclude name="WordPress.Files.FileName.NotHyphenatedLowercase" />
		<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
	</rule>
	<config name="minimum_wp_version" value="6.0"/>

	<!-- Disallow blank lines at start/end of for/foreach/if blocks. -->
	<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
		<properties>
			<property name="blank_line_check" value="true"/>
		</properties>
	</rule>

	<!-- Ensure documentation blocks follow basic formatting like containing a short description and not mixing tag groups. -->
	<rule ref="Generic.Commenting.DocComment">
		<!-- Ignore @param tags not being first since normally start with @since and @version tags. -->
		<exclude name="Generic.Commenting.DocComment.ParamNotFirst" />
	</rule>

	<!-- Check that function comments exist and that they contain @param, @return and @throws tags. -->
	<rule ref="Squiz.Commenting.FunctionComment">
		<properties>
			<!-- Ignore missing tags if @inheritDoc is present. -->
			<property name="skipIfInheritdoc" value="true" />
		</properties>
		<!-- Ignore missing type hints since we sometimes want to ignore them on hooks. -->
		<exclude name="Squiz.Commenting.FunctionComment.TypeHintMissing"/>
		<exclude name="Squiz.Commenting.FunctionComment.ScalarTypeHintMissing"/>
	</rule>

	<!-- Check that class comments exists. -->
	<rule ref="Squiz.Commenting.ClassComment">
		<!-- Ignore the presence of tags such as @version and @since. -->
		<exclude name="Squiz.Commenting.ClassComment.TagNotAllowed" />
	</rule>

		<!-- Exclude a few select sniffs/errorcodes for specific reasons and add configuration for a sniff.-->
	<rule ref="WordPress">
		<properties>
			<property name="minimum_supported_version" value="6.0"/>
		</properties>

		<!-- Demanding Yoda conditions is stupid. -->
		<exclude name="WordPress.PHP.YodaConditions"/>

		<!-- A while loop is the only valid control structure where an assignment can be justified. -->
		<exclude name="WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition"/>
	</rule>

	<!-- Add in some extra rules from other standards. -->
	<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>
	<rule ref="Generic.Commenting.Todo"/>
</ruleset>assets/js/uploadFonts.js000064400000002633151213254210011316 0ustar00(function($){

	/**
	 * OgfUploadFonts
	 */
	OgfUploadFonts = {

		/**
		 * Initializes OgfUploadFonts.
		 *
		 * @since 1.0
		 * @method init
		 */
		init: function() {
			// Init.
			this._fileUploads();
		},
		/**
		 * Font File Uploads
		 *
		 * @access private
		 * @method _fileUploads
		 */
		_fileUploads: function() {
			var file_frame;
			window.inputWrapper = '';
			$( document.body ).on('click', '.ogf-custom-fonts-upload', function(event) {
				event.preventDefault();
				var button = $(this),
				button_type = button.data('upload-type');
				window.inputWrapper = $(this).closest('.ogf-custom-fonts-file-wrap');

				// If the media frame already exists, reopen it.
				if ( file_frame ) {
					file_frame.open();
					return;
				}

				// Create a new media frame
				file_frame = wp.media.frames.file_frame = wp.media({
					multiple: false  // Set to true to allow multiple files to be selected
				});

			     // When an image is selected in the media frame...
				file_frame.on( 'select', function() {
					// Get media attachment details from the frame state
					var attachment = file_frame.state().get('selection').first().toJSON();
					window.inputWrapper.find( '.ogf-custom-fonts-link-input' ).val(attachment.url);
				});
      			// Finally, open the modal
				file_frame.open();
			});
			var file_frame;
			window.inputWrapper = '';
		},
	}

	$(function() {
		OgfUploadFonts.init();
	});

})(jQuery);
assets/js/multiple-checkbox.js000064400000001240151213254210012430 0ustar00wp.customize.controlConstructor[ 'ogf-multiple-checkbox' ] = wp.customize.Control.extend( {

	// When we're finished loading continue processing.
	ready: function() {

		const control = this;

		// Save the value
		control.container.on( 'change', 'input', function() {
			const value = [];
			let i = 0;

			// Build the value as an object using the sub-values from individual checkboxes.
			jQuery.each( control.params.choices, function( key ) {
				if ( control.container.find( 'input[value="' + key + '"]' ).is( ':checked' ) ) {
					value[ i ] = key;
					i++;
				}
			} );

			// Update the value in the customizer.
			control.setting.set( value );
		} );
	},

} );
assets/js/chosen.min.js000064400000072673151213254210011074 0ustar00/* Chosen v1.8.5 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */

(function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},o=function(t,e){function s(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},r={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,o,r;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),r=[],s=0,i=(o=t.childNodes).length;s<i;s++)n=o[s],r.push(this.add_option(n,e,t.disabled));return r},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,n,o,r;for(o=new i,s=0,n=(r=t.childNodes).length;s<n;s++)e=r[s],o.add_node(e);return o.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){return this.click_test_action=function(t){return function(e){return t.test_active_click(e)}}(this),this.activate_action=function(t){return function(e){return t.activate_field(e)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||Infinity,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+t.group_label+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,o,r,h;for(e="",h=0,n=0,o=(r=this.results_data).length;n<o&&(s=r[n],i="",""!==(i=s.group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(t){var e,s,i,n,o,r,h,l,c,_,a,u,d,f,p;for(this.no_results_clear(),_=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(o=l[i]).search_match=!1,a=null,u=null,o.highlighted_html="",this.include_option_in_results(o)&&(o.group&&(o.group_match=!1,o.active_options=0),null!=o.group_array_index&&this.results_data[o.group_array_index]&&(0===(a=this.results_data[o.group_array_index]).active_options&&a.search_match&&(_+=1),a.active_options+=1),p=o.group?o.label:o.text,o.group&&!this.group_search||(u=this.search_string_match(p,c),o.search_match=null!=u,o.search_match&&!o.group&&(_+=1),o.search_match?(h.length&&(d=u.index,r=p.slice(0,d),s=p.slice(d,d+h.length),f=p.slice(d+h.length),o.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(f)),null!=a&&(a.group_match=!0)):null!=o.group_array_index&&this.results_data[o.group_array_index].search_match&&(o.search_match=!0)));return this.result_clear_highlight(),_<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n  <input class="chosen-focus-input" type="text" autocomplete="off" />\n  <span>'+this.default_text+'</span>\n  <div><b></b></div>\n</a>\n<div class="chosen-drop">\n  <div class="chosen-search">\n    <input class="chosen-search-input" type="text" autocomplete="off" />\n  </div>\n  <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n  <li class="search-field">\n    <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n  </li>\n</ul>\n<div class="chosen-drop">\n  <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n  '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,o;o=(n=t(this)).data("chosen"),"destroy"!==i?o instanceof s||n.data("chosen",new s(this,i)):o instanceof s&&o.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return o(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input.chosen-search-input"),this.focus_field=this.container.find("input.chosen-focus-input"),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){var t;return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):(this.container.on("click.chosen",function(t){t.preventDefault()}),this.focus_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.focus_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),t=function(t){return function(){return t.search_field.val(t.focus_field.val()),t.focus_field.val("")}}(this),this.focus_field.on("keyup.chosen",function(e){return function(s){t(),e.keyup_checker(s)}}(this)),this.focus_field.on("keydown.chosen",function(e){return function(s){t(),e.keydown_checker(s)}}(this)),this.focus_field.on("cut.chosen",function(e){return function(s){setTimeout(t,0),e.clipboard_event_checker(s)}}(this)),this.focus_field.on("paste.chosen",function(e){return function(s){setTimeout(t,0),e.clipboard_event_checker(s)}}(this)))},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.focus_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.focus_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,o;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),o=this.search_results.scrollTop(),n=i+o,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<o)return this.search_results.scrollTop(s)}},n.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},n.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},n.prototype.update_results_content=function(t){return this.search_results.html(t)},n.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),setTimeout(function(t){return function(){return t.focus_field.focus()}}(this),0),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},n.prototype.set_tab_index=function(t){var e,s;if(this.form_field.tabIndex)return s=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=s,null!=(e=this.focus_field[0])?e.tabIndex=s:void 0},n.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):((i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("<div/>").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,o,r,h;if(this.is_multiple){for(o={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s<i;s++)o[n=r[s]]=this.search_field.css(n);return(e=t("<div />").css(o)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
assets/js/customize-preview.js000064400000010710151213254210012514 0ustar00/* global ogf_elements, ogf_system_fonts, ogf_custom_fonts */
jQuery( document ).ready(
	function() {
		// Retrieve the Google Fonts url from the Customizer and append it to head.
		wp.customize.preview.bind(
			'olympusFontURL',
			function( url ) {
				jQuery( 'head' ).append( url );
			}
		);

		// Update the font family for this element.
		function fontFamilyChange( selector, value ) {
			if ( value === 'default' ) {
				jQuery( selector ).css( 'font-family', '' );
				wp.customize.preview.send( 'refresh' );
			} else if ( isSystemFont( value ) ) {
				jQuery( selector ).each( function( i, v ) {
					const fontID = value.replace( 'sf-', '' );
					v.style.setProperty( 'font-family', ogf_system_fonts[ fontID ].stack, 'important' );
				} );
			} else if ( isCustomFont( value ) ) {
				jQuery( selector ).each( function( i, v ) {
					const fontID = value.replace( 'cf-', '' );
					v.style.setProperty( 'font-family', ogf_custom_fonts_unique[ fontID ].family || ogf_custom_fonts_unique[ fontID ], 'important' );
				} );
			} else if ( isTypekitFont( value ) ) {
				jQuery( selector ).each( function( i, v ) {
					v.style.setProperty( 'font-family', ogf_typekit_fonts[ value ].stack, 'important' );
				} );
			} else {
				jQuery( selector ).each( function( i, v ) {
					v.style.setProperty( 'font-family', '"' + value.split( '-' ).join( ' ' ) + '"', 'important' );
				} );
			}
		}

		function isSystemFont( fontID ) {
			if ( fontID.indexOf( 'sf-' ) !== -1 ) {
				return true;
			}
			return false;
		}

		function isCustomFont( fontID ) {
			if ( fontID.indexOf( 'cf-' ) !== -1 ) {
				return true;
			}
			return false;
		}

		function isTypekitFont( fontID ) {
			if ( fontID.indexOf( 'tk-' ) !== -1 ) {
				return true;
			}
			return false;
		}

		// Loop through the elements and bind the controls.
		jQuery.map( ogf_elements, function( val, id ) {
			wp.customize(
				id + '_font',
				function( value ) {
					value.bind(
						function( to ) {
							fontFamilyChange( val.selectors, to );
						}
					);
				}
			);

			wp.customize(
				id + '_font_weight',
				function( value ) {
					value.bind(
						function( to ) {
							if ( to === '0' ) {
								wp.customize.preview.send( 'refresh' );
							} else {
								jQuery( val.selectors ).each( function( i, v ) {
									v.style.setProperty( 'font-weight', to, 'important' );
								} );
							}
						}
					);
				}
			);

			wp.customize(
				id + '_font_style',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								v.style.setProperty( 'font-style', to, 'important' );
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_font_color',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								v.style.setProperty( 'color', to, 'important' );
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_font_size',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								if ( to === '' ) {
									wp.customize.preview.send( 'refresh' );
								} else {
									v.style.setProperty( 'font-size', to + 'px', 'important' );
								}
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_line_height',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								v.style.setProperty( 'line-height', to, 'important' );
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_text_transform',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								v.style.setProperty( 'text-transform', to, 'important' );
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_text_decoration',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								v.style.setProperty( 'text-decoration', to, 'important' );
							} );
						}
					);
				}
			);

			wp.customize(
				id + '_letter_spacing',
				function( value ) {
					value.bind(
						function( to ) {
							jQuery( val.selectors ).each( function( i, v ) {
								if ( to === '' ) {
									wp.customize.preview.send( 'refresh' );
								} else {
									v.style.setProperty( 'letter-spacing', to + 'px', 'important' );
								}
							} );
						}
					);
				}
			);

		} );
	}
); // jQuery( document ).ready
assets/js/admin.js000064400000002527151213254210010112 0ustar00/* global ajaxurl */
jQuery( document ).ready( function() {

	const menuGetHelpLink = jQuery('a[href="https://docs.fontsplugin.com"]');
	menuGetHelpLink.attr('target', '_blank');

	// Hook into the "notice-dismiss-welcome" class we added to the notice, so
	// Only listen to YOUR notices being dismissed
	jQuery( document ).on(
		'click',
		'.ogf-send-guide-button',
		function() {
			// Make an AJAX call
			// Since WP 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
			jQuery.ajax(
				ajaxurl,
				{
					type: 'POST',
					data: {
						action: 'ogf_dismiss_guide',
					},
					complete: function() {
						location.reload();
					}
				}
			);
		}
	);

	// Hook into the "notice-dismiss-welcome" class we added to the notice, so
	// Only listen to YOUR notices being dismissed
	jQuery( document ).on(
		'click',
		'.notice-dismiss-dc .notice-dismiss',
		function() {
			// Read the "data-notice" information to track which notice
			// is being dismissed and send it via AJAX
			const type = jQuery( this ).closest( '.notice-dismiss-dc' ).data( 'notice' );
			// Make an AJAX call
			// Since WP 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
			jQuery.ajax(
				ajaxurl,
				{
					type: 'POST',
					data: {
						action: 'ogf_dismiss_notice',
						type: type,
					},
				}
			);
		}
	);
} );
assets/js/customizer-repeater.js000064400000006075151213254220013036 0ustar00/* global ogf_repeater */

jQuery( document ).ready( function() {
	const themeControls = jQuery( '#customize-theme-controls' );

	/**
   * This adds a new box to repeater
   */
	themeControls.on( 'click', '.customizer-repeater-new-field', function() {
		const parent = jQuery( this ).closest( '.customize-control' );

		if ( typeof parent !== 'undefined' ) {
			/* Clone the first box*/
			const field = parent.find( '.customizer-repeater-general-control-repeater-container:first' ).clone( true, true );

			if ( typeof field !== 'undefined' ) {
				/*Show delete box button because it's not the first box*/
				field.find( '#ogf-repeater-control-remove-field' ).show();

				/*Remove value from text field*/
				field.find( '.customizer-repeater-control' ).val( '' );

				/*Append new box*/
				parent.find( '.customizer-repeater-general-control-repeater-container:first' ).parent().append( field );

				/*Refresh values*/
				customizerRepeaterRefreshValues();
			}
		}
		return false;
	} );

	themeControls.on( 'click', '#ogf-repeater-control-remove-field', function() {
		const control = jQuery( this ).closest( '.customizer-repeater-general-control-repeater-container' );
		if ( typeof control !== 'undefined' ) {
			control.hide( 250, function() {
				control.remove();
				customizerRepeaterRefreshValues();
			} );
		}
		return false;
	} );

	themeControls.on( 'keyup', '.customizer-repeater-control', function() {
		customizerRepeaterRefreshValues();
	} );

	/**
   * Save elements and refresh the customizer.
   */
	themeControls.on( 'click', '.ogf_save_elements_button', function() {
		jQuery.when( wp.customize.previewer.save() ).done( function() {
			window.location.href = ogf_repeater.return_url;
		} );
	} );
} );

function customizerRepeaterRefreshValues() {

	const entityMap = {
		'&': '&amp;',
		'<': '&lt;',
		'>': '&gt;',
		'"': '&quot;',
		'\'': '&#39;',
		'/': '&#x2F;',
	};

	function escapeHtml( string ) {
		//noinspection JSUnresolvedFunction
		string = String( string ).replace( new RegExp( '\r?\n', 'g' ), '<br />' );
		string = String( string ).replace( /\\/g, '&#92;' );
		return String( string ).replace( /[&<>"'\/]/g, function( s ) {
			return entityMap[ s ];
		} );
	}

	jQuery( '.customizer-repeater-general-control-repeater' ).each( function() {
		const values = [];
		jQuery( this ).find( '.customizer-repeater-general-control-repeater-container' ).each( function() {
			let label = jQuery( this ).find( '.customizer-repeater-label-control' ).val();
			const description = jQuery( this ).find( '.customizer-repeater-description-control' ).val();
			const selectors = jQuery( this ).find( '.customizer-repeater-selectors-control' ).val();

			if ( label !== '' || description !== '' || selectors !== '' ) {
				label = ( label !== '' ? label : selectors );
				values.push( {
					label: escapeHtml( label ),
					description: escapeHtml( description ),
					selectors: escapeHtml( selectors ),
				} );
			}
		} );
		jQuery( this ).find( '.customizer-repeater-collector' ).val( JSON.stringify( values ) );
		jQuery( this ).find( '.customizer-repeater-collector' ).trigger( 'change' );
	} );
}
assets/js/panels.js000064400000005736151213254220010312 0ustar00( function( $ ) {
	const api = wp.customize;

	api.bind(
		'pane-contents-reflowed',
		function() {
			// Reflow panels
			const panels = [];

			api.panel.each(
				function( panel ) {
					if (
						'ogf_panel' !== panel.params.type ||
						'undefined' === typeof panel.params.panel
					) {
						return;
					}
					panels.push( panel );
				}
			);

			panels.sort( api.utils.prioritySort ).reverse();

			$.each(
				panels,
				function( i, panel ) {
					const parentContainer = $( '#sub-accordion-panel-' + panel.params.panel );
					parentContainer.children( '#accordion-section-ogf_basic' ).after( panel.headContainer );
				}
			);
		}
	);

	// Extend Panel
	const _panelEmbed = wp.customize.Panel.prototype.embed;
	const _panelIsContextuallyActive = wp.customize.Panel.prototype.isContextuallyActive;
	const _panelAttachEvents = wp.customize.Panel.prototype.attachEvents;

	wp.customize.Panel = wp.customize.Panel.extend(
		{
			attachEvents: function() {
				if (
					'ogf_panel' !== this.params.type ||
					'undefined' === typeof this.params.panel
				) {
					_panelAttachEvents.call( this );
					return;
				}

				_panelAttachEvents.call( this );

				const panel = this;

				panel.expanded.bind(
					function( expanded ) {
						const parent = api.panel( panel.params.panel );

						if ( expanded ) {
							parent.contentContainer.addClass( 'current-panel-parent' );
						} else {
							parent.contentContainer.removeClass( 'current-panel-parent' );
						}
					}
				);

				panel.container.find( '.customize-panel-back' )
					.off( 'click keydown' )
					.on(
						'click keydown',
						function( event ) {
							if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
								return;
							}

							event.preventDefault(); // Keep this AFTER the key filter above

							if ( panel.expanded() ) {
								api.panel( panel.params.panel ).expand();
							}
						}
					);
			},
			embed: function() {
				if (
					'ogf_panel' !== this.params.type ||
					'undefined' === typeof this.params.panel
				) {
					_panelEmbed.call( this );
					return;
				}

				_panelEmbed.call( this );

				const panel = this;
				const parentContainer = $( '#sub-accordion-panel-' + this.params.panel );

				parentContainer.append( panel.headContainer );
			},
			isContextuallyActive: function() {
				if (
					'ogf_panel' !== this.params.type
				) {
					return _panelIsContextuallyActive.call( this );
				}

				const panel = this;
				const children = this._children( 'panel', 'section' );

				api.panel.each(
					function( child ) {
						if ( ! child.params.panel ) {
							return;
						}

						if ( child.params.panel !== panel.id ) {
							return;
						}

						children.push( child );
					}
				);

				children.sort( api.utils.prioritySort );

				let activeCount = 0;

				_( children ).each(
					function( child ) {
						if ( child.active() && child.isContextuallyActive() ) {
							activeCount += 1;
						}
					}
				);

				return ( activeCount !== 0 );
			},

		}
	);
}( jQuery ) );
assets/js/customize-controls.js000064400000026465151213254220012715 0ustar00/* global ogf_font_variants, ogf_font_array, ajaxurl, fontsReset, location */
( function( api ) {
	api.controlConstructor[ 'ogf-typography' ] = api.Control.extend(
		{
			ready: function() {
				const control = this;
				const controlClass = '.customize-control-ogf-typography';
				const footerActions = jQuery( '#customize-footer-actions' );

				// Do stuff when device icons are clicked
				jQuery( control.selector + ' .ogf-device-controls > div' ).on( 'click', function( event ) {
					var device = jQuery( this ).data( 'option' );
					wp.customize.previewedDevice.set( device );

					jQuery( controlClass + ' .ogf-device-controls div' ).each( function() {
						var _this = jQuery( this );

						if ( device === _this.attr( 'data-option' ) ) {
							_this.addClass( 'selected' );
							_this.siblings().removeClass( 'selected' );
						}
					} );

				});

				// Set the selected devices in our control when the Customizer devices are clicked
				footerActions.find( '.devices button' ).on( 'click', function() {
					var device = jQuery( this ).data( 'device' );

					jQuery( controlClass + ' .ogf-device-controls div' ).each( function() {
						var _this = jQuery( this );

						if ( device === _this.attr( 'data-option' ) ) {
							_this.addClass( 'selected' );
							_this.siblings().removeClass( 'selected' );
						}
					} );
				});

				// Load the Google Font for the preview.
				function addGoogleFont( fontName ) {
					const font = ogf_font_array[ fontName ];
					const weights = jQuery.map(
						font.v,
						function( value, key ) {
							return key;
						}
					);
					const weightsURL = weights.join( ',' );
					const fontURL = font.f.replace( / /g, '+' ) + ':' + weightsURL;
					wp.customize.previewer.send( 'olympusFontURL', '<link href=\'https://fonts.googleapis.com/css?family=' + fontURL + '\' rel=\'stylesheet\' type=\'text/css\'>' );
				}

				function isSystemFont( fontID ) {
					if ( fontID.indexOf( 'sf-' ) !== -1 ) {
						return true;
					}
					return false;
				}

				function isTypekitFont( fontID ) {
					if ( fontID.indexOf( 'tk-' ) !== -1 ) {
						return true;
					}
					return false;
				}

				function isCustomFont( fontID ) {
					if ( fontID.indexOf( 'cf-' ) !== -1 ) {
						return true;
					}
					return false;
				}

				// Load the font-weights for the newly selected font.
				control.container.on(
					'change',
					'.typography-font-family select',
					function() {
						const value = jQuery( this ).val();
						control.settings.family.set( value );
						const weightsSelect = jQuery( '.typography-font-weight select' );

						if ( value === 'default' || isSystemFont( value ) || isCustomFont( value ) ) {

							const defaultWeights = {
								0: "- Default -",
								100: "Thin",
								200: "Extra Light",
								300: "Light",
								400: "Normal",
								500: "Medium",
								600: "SemiBold",
								700: "Bold",
								800: "Extra Bold",
								900: "Black",
							}

							// replace the 'Font Weight' select field values.
							weightsSelect.empty();
							jQuery.each(
								defaultWeights,
								function( key, val ) {
									weightsSelect.append(
										jQuery( '<option></option>' )
											.attr( 'value', key ).text( val )
									);
								}
							);
						} else if ( isTypekitFont( value ) ) {
							const font = ogf_typekit_fonts[ value ];
							const newWeights = font.variants;
							newWeights.unshift("0");

							// remove variants the font doesn't support.
							var finalWeights = new Object();
							newWeights.forEach( function(i) {
								finalWeights[i] = ogf_font_variants[i];
							});

							const weightsSelect = jQuery( '.typography-font-weight select' );
							weightsSelect.empty();
							jQuery.each(
								finalWeights,
								function( key, val ) {
									weightsSelect.append(
										jQuery( '<option></option>' )
											.attr( 'value', key ).text( val )
									);
								}
							);

						} else {
							// Add Google Font enqueue to head of customizer.
							addGoogleFont( value );

							const font = ogf_font_array[ value ];
							const newWeights = font.v;
							newWeights[0] = "0";

							// remove variants the font doesn't support.
							var finalWeights = new Object();
							Object.keys(newWeights).forEach( function(val, i) {
								if ( ! val.endsWith('0i') ) {
									finalWeights[val] = ogf_font_variants[val];
								}
							});

							// replace the 'Font Weight' select field values.
							const weightsSelect = jQuery( '.typography-font-weight select' );
							weightsSelect.empty();
							jQuery.each(
								finalWeights,
								function( key, val ) {
									weightsSelect.append(
										jQuery( '<option></option>' )
											.attr( 'value', key ).text( val )
									);
								}
							);
						}
					}
				);

				// Show advanced settings.
				control.container.on(
					'click',
					'.advanced-button',
					function() {
						jQuery( this ).toggleClass( 'open' );
						jQuery( this ).parent().next( '.advanced-settings-wrapper' ).toggleClass( 'show' );
					}
				);

				// Initialize the wpColorPicker.
				const picker = this.container.find( '.typography-font-color .color-picker-hex' );

				picker.wpColorPicker(
					{
						width : 225,
						change: function() {
							setTimeout(
								function() {
									control.settings.color.set( picker.val() );
								},
								100
							);
						},
						clear: function() {
							control.settings.color.set( picker.val() );
						},
					}
				);

				// Initialize chosen.js
				jQuery( '.ogf-select', control.container ).chosen( { width: '85%' } );

				// Set our slider defaults and initialise the slider
				jQuery( '.slider-custom-control' ).each( function() {
					const sliderValue = jQuery( this ).find( '.customize-control-slider-value' ).val();
					const newSlider = jQuery( this ).find( '.slider' );
					const sliderMinValue = parseFloat( newSlider.attr( 'slider-min-value' ) );
					const sliderMaxValue = parseFloat( newSlider.attr( 'slider-max-value' ) );
					const sliderStepValue = parseFloat( newSlider.attr( 'slider-step-value' ) );

					newSlider.slider( {
						value: sliderValue,
						min: sliderMinValue,
						max: sliderMaxValue,
						step: sliderStepValue,
						slide: function() {
							// Important! When slider stops moving make sure to trigger change event so Customizer knows it has to save the field
							jQuery( this ).parent().find( '.customize-control-slider-value' ).trigger( 'change' );
						},
					} );
				} );

				// Change the value of the input field as the slider is moved
				jQuery( '.slider' ).on( 'slide', function( event, ui ) {
					jQuery( this ).parent().find( '.customize-control-slider-value' ).val( ui.value );
				} );

				// Reset slider and input field back to the default value
				jQuery( '.slider-reset' ).on( 'click', function() {
					const resetValue = jQuery( this ).attr( 'slider-reset-value' );
					jQuery( this ).parent().find( '.customize-control-slider-value' ).val( resetValue );
					jQuery( this ).parent().find( '.customize-control-slider-value' ).trigger( 'change' );
					jQuery( this ).parent().find( '.slider' ).slider( 'value', resetValue );
				} );

				// Update slider if the input field loses focus as it's most likely changed
				jQuery( '.customize-control-slider-value' ).blur( function() {
					let resetValue = jQuery( this ).val();
					const slider = jQuery( this ).parent().find( '.slider' );
					const sliderMinValue = parseInt( slider.attr( 'slider-min-value' ) );
					const sliderMaxValue = parseInt( slider.attr( 'slider-max-value' ) );

					// Make sure our manual input value doesn't exceed the minimum & maxmium values
					if ( resetValue < sliderMinValue ) {
						resetValue = sliderMinValue;
						jQuery( this ).val( resetValue );
					}
					if ( resetValue > sliderMaxValue ) {
						resetValue = sliderMaxValue;
						jQuery( this ).val( resetValue );
					}
					jQuery( this ).parent().find( '.slider' ).slider( 'value', resetValue );
				} );
			},
			/**
			 * Embed the control in the document.
			 *
			 * Override the embed() method to do nothing,
			 * so that the control isn't embedded on load,
			 * unless the containing section is already expanded.
			 *
			 */
			embed: function() {
				const control = this;
				const sectionId = control.section();
				if ( ! sectionId ) {
					return;
				}
				wp.customize.section( sectionId, function( section ) {
					section.expanded.bind( function( expanded ) {
						if ( expanded ) {
							control.actuallyEmbed();
						}
					} );
				} );
			},
			/**
			 * Deferred embedding of control when actually
			 *
			 * This function is called in Section.onChangeExpanded() so the control
			 * will only get embedded when the Section is first expanded.
			 */
			actuallyEmbed: function() {
				const control = this;
				if ( 'resolved' === control.deferred.embedded.state() ) {
					return;
				}
				control.renderContent();
				control.deferred.embedded.resolve(); // This triggers control.ready().
			},
		}
	);

	wp.customize.control( 'ogf_reset_fonts', function( control ) {
		control.container.find( '.button' ).on( 'click', function( event ) {
			event.preventDefault();

			const data = {
				wp_customize: 'on',
				action: 'customizer_reset',
				security: fontsReset.nonce,
			};

			const confirmReset = confirm( fontsReset.confirm );

			if ( ! confirmReset ) {
				return;
			}

			jQuery( this ).attr( 'disabled', 'disabled' );

			jQuery.post( ajaxurl, data, function( result ) {
				wp.customize.state( 'saved' ).set( true );
				location.reload();
			} );
		} );
	} );

	wp.customize.control( 'ogf_clear_cache', function( control ) {
		control.container.find( '.button' ).on( 'click', function( event ) {
			event.preventDefault();

			console.log('clicked clear cache');

			const data = {
				wp_customize: 'on',
				action: 'customizer_clear_cache',
				security: clearCache.nonce,
			};

			jQuery( this ).attr( 'disabled', 'disabled' );

			jQuery.post( ajaxurl, data, function( result ) {
				wp.customize.state( 'saved' ).set( true );
				alert('Cache successfully cleared.');
				location.reload();
			} );
		} );
	} );
}( wp.customize ) );

/* === Checkbox Multiple Control === */
jQuery( document ).ready( function() {
	jQuery( '.customize-multiple-checkbox-control input[type="checkbox"]' ).on( 'change',
		function() {
			const checkboxValues = jQuery( this ).parents( '.customize-control' ).find( 'input[type="checkbox"]:checked' ).map(
				function() {
					return this.value;
				}
			).get().join( ',' );

			jQuery( this ).parents( '.customize-control' ).find( 'input[type="hidden"]' ).val( checkboxValues ).trigger( 'change' );
		}
	);
} );

/* === Optimization Controls === */
jQuery( document ).ready( function() {
	jQuery( '#_customize-input-ogf_host_locally, #_customize-input-ogf_preloading, #_customize-input-ogf_removal, #_customize-input-ogf_rewrite' ).attr( 'disabled', 'true' );
} );

/* === Multiple Fonts Control === */
( function( api ) {
	api.controlConstructor[ 'ogf-typography-multiselect' ] = api.Control.extend( {
		ready: function() {
			const control = this;
			// Initialize chosen.js
			jQuery( '.ogf-select', control.container ).chosen( { width: '85%' } );
			jQuery( 'select', control.container ).on('change',
				function() {
					let selectValue = jQuery( this ).val();
					selectValue = ( null === selectValue ) ? [] : selectValue;
					control.setting.set( selectValue );
				}
			);
		},
	} );
}( wp.customize ) );
assets/css/customize-controls.css000064400000046070151213254220013237 0ustar00.customize-control-checkbox label {
    vertical-align: top;
    font-weight: 600;
}

#customize-theme-controls #sub-accordion-section-ogf_basic,
#customize-theme-controls #sub-accordion-section-ogf_theme,
#customize-theme-controls #sub-accordion-section-ogf_woocommerce,
#customize-theme-controls #sub-accordion-section-ogf_wc_shop,
#customize-theme-controls #sub-accordion-section-ogf_wc_single,
#customize-theme-controls #sub-accordion-section-ogf_wc_block,
#customize-theme-controls #sub-accordion-section-ogf_wc_cart,
#customize-theme-controls #sub-accordion-section-ogf_wc_checkout,
#customize-theme-controls #sub-accordion-section-ogf_custom,
#customize-theme-controls #sub-accordion-section-ogf_advanced__branding,
#customize-theme-controls #sub-accordion-section-ogf_advanced__navigation,
#customize-theme-controls #sub-accordion-section-ogf_advanced__content,
#customize-theme-controls #sub-accordion-section-ogf_advanced__sidebar,
#customize-theme-controls #sub-accordion-section-ogf_advanced__footer,
#customize-theme-controls #sub-accordion-section-ogf_advanced__custom,
#customize-theme-controls #sub-accordion-section-ogf_advanced__css {
	overflow: visible;
}

#accordion-panel-ogf_google_fonts .accordion-section-title {
	padding-left: 42px;
}

#customize-control-ogf_headings_typography .typography-font-size,
#customize-control-ogf_headings_typography .typography-line-height {
	display: none;
}

.customize-control-ogf-typography li.typography-font-family select {
	width: 85%;
}

.customize-control-ogf-typography li.typography-font-style,
.customize-control-ogf-typography li.typography-font-weight {
	width: 50%;
	float: left;
}

.customize-control-ogf-typography li.typography-font-color .wp-picker-clear {
	min-height: 30px;
}

.customize-control-ogf-typography li.typography-font-color,
.customize-control-ogf-typography li.typography-font-size,
.customize-control-ogf-typography li.typography-line-height,
.customize-control-ogf-typography li.typography-letter-spacing {
	clear: both;
	max-width: 94%;
	padding-top: 10px;
}

.customize-control-ogf-typography li.typography-font-style select,
.customize-control-ogf-typography li.typography-font-weight select {
	width: 90%;
}

.customize-control-ogf-typography li.typography-text-decoration select,
.customize-control-ogf-typography li.typography-text-transform select {
    width: 93%;
}

.customize-control-ogf-typography li.typography-font-weight {
	clear: both;
}

.customize-control-ogf-typography li.typography-font-size input,
.customize-control-ogf-typography li.typography-line-height input {
	width: 50px;
	float: right;
}

.customize-control-ogf-typography .advanced-settings-wrapper {
	display: none;
}

.customize-control-ogf-typography .advanced-settings-wrapper.show {
	display: block !important;
	margin-top: 10px;
	background: #dadada;
}

.customize-control-ogf-typography .inner {
	padding: 10px
}

.advanced-settings-wrapper:after {
	content: '';
	display: table;
	clear: both;
}

.advanced-button {
	float: right;
	margin: 0;
	padding-top: 4px;
	padding-bottom: 4px;
	color: #72777c;
	border: none;
	background: 0 0;
	cursor: pointer;
}

.advanced-button:before {
	content: '\f108';
	color: #0284ba;
	background: 0 0;
	font: 400 16px/20px dashicons;
}

.advanced-button.open:before {
	content: '\f142';
	color: #72777c;
	border-radius: 5000px;
	background: #dadada;
	padding: 2px;
}

.customize-control-ogf-typography input[type='range'] {
	width: 90%;
}

.customize-control-ogf-typography .customize-control-notifications-container {
	display: none;
}

/* @group Base */

.chosen-container {
	display: inline-block;
	position: relative;
	vertical-align: middle;
	font-size: 13px;
	-moz-user-select: none;
	-ms-user-select: none;
	-webkit-user-select: none;
	user-select: none;
}

.chosen-container * {
	-webkit-box-sizing: border-box;
			box-sizing: border-box;
}

.chosen-container .chosen-drop {
	z-index: 1010;
	display: none;
	position: absolute;
	top: 100%;
	width: 100%;
	border: 1px solid #aaaaaa;
	border-top: 0;
	background: #ffffff;
	-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
	box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
}

.chosen-container.chosen-with-drop .chosen-drop {
	display: block;
}

.chosen-container a {
	cursor: pointer;
}

.chosen-container .chosen-single .group-name,
.chosen-container .search-choice .group-name {
	margin-right: 4px;
	color: #999999;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 400;
	white-space: nowrap;
}

.chosen-container .chosen-single .group-name:after,
.chosen-container .search-choice .group-name:after {
	content: ':';
	padding-left: 2px;
	vertical-align: top;
}

/* @end */

/* @group Single Chosen */

.chosen-container-single .chosen-single,
.chosen-container-multi .chosen-choices {
	display: block;
	position: relative;
	height: 25px;
	padding: 0 0 0 8px;
	color: #444444;
	overflow: hidden;
	border: 1px solid #aaaaaa;
	border-radius: 5px;
	background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), to(#f4f4f4));
	background: linear-gradient(
	#ffffff 20%,
	#f6f6f6 50%,
	#eeeeee 52%,
	#f4f4f4 100%
	);
	background-color: #ffffff;
	background-clip: padding-box;
	-webkit-box-shadow: 0 0 3px #ffffff inset,
	0 1px 1px rgba(0, 0, 0, 0.1);
			box-shadow: 0 0 3px #ffffff inset,
	0 1px 1px rgba(0, 0, 0, 0.1);
	text-decoration: none;
	line-height: 24px;
	white-space: nowrap;
}

.chosen-container-single .chosen-single input[type='text'] {
	position: absolute;
	width: 0;
	opacity: 0;
	cursor: pointer;
}

.chosen-container-single .chosen-default {
	color: #999999;
}

.chosen-container-single .chosen-single span {
	display: block;
	margin-right: 26px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.chosen-container-single .chosen-single-with-deselect span {
	margin-right: 38px;
}

.chosen-container-single .chosen-single abbr {
	display: block;
	position: absolute;
	top: 6px;
	right: 26px;
	width: 12px;
	height: 12px;
	background: url('../images/chosen-sprite.png') -42px 1px no-repeat;
	font-size: 1px;
}

.chosen-container-single .chosen-single abbr:hover {
	background-position: -42px -10px;
}

.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
	background-position: -42px -10px;
}

.chosen-container-single .chosen-single div {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: 18px;
	height: 100%;
}

.chosen-container-single .chosen-single div b {
	display: block;
	width: 100%;
	height: 100%;
	background: url('../images/chosen-sprite.png') no-repeat 0 2px;
}

.chosen-container-single .chosen-search {
	z-index: 1010;
	position: relative;
	margin: 0;
	padding: 3px 4px;
	white-space: nowrap;
}

.chosen-container-single .chosen-search input[type='text'] {
	width: 100%;
	height: auto;
	margin: 1px 0;
	padding: 4px 20px 4px 5px;
	border: 1px solid #aaaaaa;
	border-radius: 0;
	background: url('../images/chosen-sprite.png') no-repeat 100% -20px;
	outline: 0;
	font-family: sans-serif;
	font-size: 1em;
	line-height: normal;
}

.chosen-container-single .chosen-drop {
	margin-top: -1px;
	border-radius: 0 0 4px 4px;
	background-clip: padding-box;
}

.chosen-container-single.chosen-container-single-nosearch .chosen-search {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

/* @end */

/* @group Results */

.chosen-container .chosen-results {
	position: relative;
	max-height: 240px;
	margin: 0 4px 4px 0;
	padding: 0 0 0 4px;
	color: #444444;
	overflow-x: hidden;
	overflow-y: auto;
}

.chosen-container .chosen-results li {
	display: none;
	margin: 0;
	padding: 5px 6px;
	line-height: 15px;
	word-wrap: break-word;
	list-style: none;
}

.chosen-container .chosen-results li.active-result {
	display: list-item;
	cursor: pointer;
}

.chosen-container .chosen-results li.disabled-result {
	display: list-item;
	color: #cccccc;
	cursor: default;
}

.chosen-container .chosen-results li.highlighted {
	color: #ffffff;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
	background-image: linear-gradient(
	#3875d7 20%,
	#2a62bc 90%
	);
	background-color: #3875d7;
}

.chosen-container .chosen-results li.no-results {
	display: list-item;
	color: #777777;
	background: #f4f4f4;
}

.chosen-container .chosen-results li.group-result {
	display: list-item;
	font-weight: 400;
	cursor: default;
}

.chosen-container .chosen-results li.group-option {
	padding-left: 15px;
}

.chosen-container .chosen-results li em {
	text-decoration: underline;
	font-style: normal;
}

/* @end */

/* @group Multi Chosen */

.chosen-container-multi .chosen-choices {
	position: relative;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0 5px;
	overflow: hidden;
	border: 1px solid #aaaaaa;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
	background-image: linear-gradient(
	#eeeeee 1%,
	#ffffff 15%
	);
	background-color: #ffffff;
	cursor: text;
}

.chosen-container-multi .chosen-choices li {
	float: left;
	list-style: none;
}

.chosen-container-multi .chosen-choices li.search-field {
	margin: 0;
	padding: 0;
	white-space: nowrap;
}

.chosen-container-multi .chosen-choices li.search-field input[type='text'] {
	width: 25px;
	height: 25px;
	margin: 1px 0;
	padding: 0;
	color: #999999;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	outline: 0;
	-webkit-box-shadow: none;
			box-shadow: none;
	font-family: sans-serif;
	font-size: 100%;
	line-height: normal;
}

.chosen-container-multi .chosen-choices li.search-choice {
	position: relative;
	max-width: 100%;
	margin: 3px 5px 3px 0;
	padding: 3px 20px 3px 5px;
	color: #333333;
	border: 1px solid #aaaaaa;
	border-radius: 3px;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eeeeee));
	background-image: linear-gradient(
	#f4f4f4 20%,
	#f0f0f0 50%,
	#e8e8e8 52%,
	#eeeeee 100%
	);
	background-color: #eeeeee;
	background-repeat: repeat-x;
	background-size: 100% 19px;
	background-clip: padding-box;
	-webkit-box-shadow: 0 0 2px #ffffff inset,
	0 1px 0 rgba(0, 0, 0, 0.05);
			box-shadow: 0 0 2px #ffffff inset,
	0 1px 0 rgba(0, 0, 0, 0.05);
	line-height: 13px;
	cursor: default;
}

.chosen-container-multi .chosen-choices li.search-choice span {
	word-wrap: break-word;
}

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
	display: block;
	position: absolute;
	top: 4px;
	right: 3px;
	width: 12px;
	height: 12px;
	background: url('../images/chosen-sprite.png') -42px 1px no-repeat;
	font-size: 1px;
}

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
	background-position: -42px -10px;
}

.chosen-container-multi .chosen-choices li.search-choice-disabled {
	padding-right: 5px;
	color: #666666;
	border: 1px solid #cccccc;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eeeeee));
	background-image: linear-gradient(
	#f4f4f4 20%,
	#f0f0f0 50%,
	#e8e8e8 52%,
	#eeeeee 100%
	);
	background-color: #e4e4e4;
}

.chosen-container-multi .chosen-choices li.search-choice-focus {
	background: #d4d4d4;
}

.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
	background-position: -42px -10px;
}

.chosen-container-multi .chosen-results {
	margin: 0;
	padding: 0;
}

.chosen-container-multi .chosen-drop .result-selected {
	display: list-item;
	color: #cccccc;
	cursor: default;
}

/* @end */

/* @group Active */

.chosen-container-active .chosen-single {
	border: 1px solid #5897fb;
	-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
			box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

.chosen-container-active.chosen-with-drop .chosen-single {
	border: 1px solid #aaaaaa;
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
	background-image: linear-gradient(
	#eeeeee 20%,
	#ffffff 80%
	);
	-webkit-box-shadow: 0 1px 0 #ffffff inset;
			box-shadow: 0 1px 0 #ffffff inset;
}

.chosen-container-active.chosen-with-drop .chosen-single div {
	border-left: none;
	background: transparent;
}

.chosen-container-active.chosen-with-drop .chosen-single div b {
	background-position: -18px 2px;
}

.chosen-container-active .chosen-choices {
	border: 1px solid #5897fb;
	-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
			box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

.chosen-container-active .chosen-choices li.search-field input[type='text'] {
	color: #222222 !important;
}

/* @end */

/* @group Disabled Support */

.chosen-disabled {
	opacity: 0.5 !important;
	cursor: default;
}

.chosen-disabled .chosen-single {
	cursor: default;
}

.chosen-disabled .chosen-choices .search-choice .search-choice-close {
	cursor: default;
}

/* @end */

/* @group Right to Left */

.chosen-rtl {
	text-align: right;
}

.chosen-rtl .chosen-single {
	padding: 0 8px 0 0;
	overflow: visible;
}

.chosen-rtl .chosen-single span {
	margin-right: 0;
	margin-left: 26px;
	direction: rtl;
}

.chosen-rtl .chosen-single-with-deselect span {
	margin-left: 38px;
}

.chosen-rtl .chosen-single div {
	right: auto;
	left: 3px;
}

.chosen-rtl .chosen-single abbr {
	right: auto;
	left: 26px;
}

.chosen-rtl .chosen-choices li {
	float: right;
}

.chosen-rtl .chosen-choices li.search-field input[type='text'] {
	direction: rtl;
}

.chosen-rtl .chosen-choices li.search-choice {
	margin: 3px 5px 3px 0;
	padding: 3px 5px 3px 19px;
}

.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
	right: auto;
	left: 4px;
}

.chosen-rtl.chosen-container-single .chosen-results {
	margin: 0 0 4px 4px;
	padding: 0 4px 0 0;
}

.chosen-rtl .chosen-results li.group-option {
	padding-right: 15px;
	padding-left: 0;
}

.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
	border-right: none;
}

.chosen-rtl .chosen-search input[type='text'] {
	padding: 4px 5px 4px 20px;
	background: url('../images/chosen-sprite.png') no-repeat -30px -20px;
	direction: rtl;
}

.chosen-rtl.chosen-container-single .chosen-single div b {
	background-position: 6px 2px;
}

.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
	background-position: -12px 2px;
}

/* @end */

/* @group Retina compatibility */

@media
  only screen
  and (-webkit-min-device-pixel-ratio : 1.5),
  only screen
  and (min-resolution                 : 144dpi),
  only screen
  and (min-resolution                 : 1.5dppx) {
	.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
	.chosen-container-single .chosen-search input[type='text'],
	.chosen-container-single .chosen-single abbr,
	.chosen-container-single .chosen-single div b,
	.chosen-container .chosen-results-scroll-down span,
	.chosen-container .chosen-results-scroll-up span,
	.chosen-rtl .chosen-search input[type='text'] {
		background-image: url('../images/chosen-sprite@2x.png') !important;
		background-repeat: no-repeat !important;
		background-size: 52px 37px !important;
	}
}

/* @end */

.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent,
#customize-theme-controls .customize-pane-child.current-section-parent {
  -webkit-transform: translateX(-100%);
  -ms-transform: translateX(-100%);
  transform: translateX(-100%);
}

/** Repeater Control **/

.repeater-item {
	background: #ffffff;
	padding: 20px;
	border-radius: .25em;
	border: 1px solid #d6d6d6;
	margin-bottom: 1em;
}

.repeater-item .customize-control {
	float: none
}

 button#ogf-repeater-control-remove-field {
	 background: #bf0000;
   color: white;
   border-radius: .25em;
   border: 0;
   box-shadow: none;
}

.ogf_custom_selectors_actions {
	margin-top: 1em
}

.ogf_save_elements_button {
	float: right
}

/** Range Slider **/

.slider-custom-control {
	margin-bottom: 30px;
}

.slider-custom-control input[type=number]::-webkit-inner-spin-button,
.slider-custom-control input[type=number]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.slider-custom-control  .customize-control-title {
	display: inline-block;
}

.slider-custom-control input[type=number] {
	text-align: right;
	width: 50px;
	float: right;
	-moz-appearance: textfield;
}

.slider-custom-control .slider {
	width: 65%;
	float: left;
	margin: 10px 0 10px 6px;
}

.slider-custom-control .slider-reset {
	float: right;
	cursor: pointer;
}

.slider-custom-control .slider-value {
	border: none;
	text-align: right;
	width: 50px;
	margin-right: 5px;
}

.slider-custom-control .slider-value,
.slider-custom-control .slider-unit {
	float: right;
}

.slider-custom-control .ui-widget.ui-widget-content {
	border: 1px solid #f4f4f4;
}

.slider-custom-control .ui-corner-all,
.slider-custom-control .ui-corner-bottom,
.slider-custom-control .ui-corner-right,
.slider-custom-control .ui-corner-br {
	border-bottom-right-radius: 3px;
}

.slider-custom-control .ui-corner-all,
.slider-custom-control .ui-corner-bottom,
.slider-custom-control .ui-corner-left,
.slider-custom-control .ui-corner-bl {
	border-bottom-left-radius: 3px;
}

.slider-custom-control .ui-corner-all,
.slider-custom-control .ui-corner-top,
.slider-custom-control .ui-corner-right,
.slider-custom-control .ui-corner-tr {
	border-top-right-radius: 3px;
}

.slider-custom-control .ui-corner-all,
.slider-custom-control .ui-corner-top,
.slider-custom-control .ui-corner-left,
.slider-custom-control .ui-corner-tl {
	border-top-left-radius: 3px;
}

.slider-custom-control .ui-widget-content {
	background: #f4f4f4 none repeat scroll 0 0;
	color: #333;
}

.slider-custom-control .ui-slider-horizontal {
	height: 3px;
}

.slider-custom-control .ui-slider {
	position: relative;
	text-align: left;
}

.slider-custom-control .ui-state-default,
.slider-custom-control .ui-widget-content .ui-state-default,
.slider-custom-control .ui-widget-header .ui-state-default,
.slider-custom-control .ui-button,
.slider-custom-control .ui-button.ui-state-disabled:hover,
.slider-custom-control .ui-button.ui-state-disabled:active {
	background: #2885bb none repeat scroll 0 0;
	border: 1px solid #2885bb;
	color: #454545;
	font-weight: 400;
}

.slider-custom-control .ui-slider-horizontal .ui-slider-handle {
	margin-left: -7px;
	top: -7px;
	border-radius: 50%;
}

.slider-custom-control .ui-slider .ui-slider-handle {
	cursor: pointer;
	height: 14px;
	position: absolute;
	width: 14px;
	z-index: 2;
}

.slider-custom-control .dashicons-image-rotate {
	color: #989898;
	font-size: 16px;
	margin-top: 3px;
}

.slider-custom-control .dashicons-image-rotate:hover {
	color: #a7a7a7;
}

/** Upsell Button **/

.ogf-upsell {
	background: white;
	padding: 25px;
	margin-top: 25px;
	box-shadow: 0px 2px 6px 2px #00000017;
	border-top: 2px solid #bd3737;
}

.upsell__title {
	margin-top: 0;
	font-size: 14px;
}

.upsell__button {
	margin-top: 1em !important;
	background: #bd3737 !important;
  border-color: #bd3737 !important;
}

/** Customizer Icon **/

#accordion-panel-ogf_google_fonts .accordion-section-title,
#accordion-panel-ogf_google_fonts .accordion-section-title:hover {
	background-image: url('../images/fontsplugin-icon.png') !important;
	background-repeat: no-repeat !important;
	background-size: 16px !important;
	background-position: 15px 50% !important;
}

.customize-control-ogf-typography .customize-control-title {
	font-size: 13px;
}
assets/images/chosen-sprite@2x.png000064400000001342151213254220013153 0ustar00�PNG


IHDRhJ�q��IDATh�횿o�@�#�P	� �����?!d�ԅ�sft⇿'R�J0�#[���Ɉ��+��������P����{R�W%����ދ��1�e,�J4�h��'�Y�2�Ny�H%?��/�4��
L�j�[��	-�85H�q���H�����qȱ�s���6�C+�%0��`QW�X����O�5��
�]:ڿ��h���Ig���7�oi����
1n� ���f���Hn�'
�!-��
hjh؝l�n��zH���A��oj��Q�FEæ�����hH
'��wԲt�c �8�H۪�/�4��
L�j��`$�8�� q�iD�S %N��9 �J�1Sp̶�;X�k}\kN[�[�t���������k�%��s�F<Uk��}dvǢ�W���b��?�O/n&�
�0p)/��Pyf'��~�|��|+a�C�˒�bKq��SB>��p��3�K�X��R~����C�gY�Ƭ��,�9���A%w;8Q�h�H�,�]n�p��Y��>�$�c
��)�ƒ�K�hw~��S�ʼn�q��P�*�w�Ҷ�����X�y{$���u�%�&�Z����'������(�8�؜��֜�b��ҍ၊�5R6�emP�0�<�F�-F��
i��#�	��z�H�|��Y��JZ�\N��IEND�B`�assets/images/chosen-sprite.png000064400000001032151213254220012575 0ustar00�PNG


IHDR4%��^�IDATH�헱kSQƯ
.-����=�$�b�o�$((T�Hw��*����"nupA�@ P�Apq�J$p!P��M1��.�����;���=��\D�.Y�n0��@}�DMF���>Fb��1���
�c�	!6�1r��b�%G���I��J(v��fFy�O����H4B c�1�}��^��4��5Fo��G�X�ٝv�U�n�(�R�s�p����v��*��8sP���*�c�O�TQWŬ���j1Q�H}����T��+���}��֕d�/���L�Lc�F�6�˔�7��,9ʼ1IkJ�(�dJj��Lc�^��z*"Hu�j)�׿���,?<��._1�a�������°x�	/b�}�T!�����i?O�u�	oc\������eN��c:�99�\@�s� uZ���q��|yp�k�a�����6��B|���1��G����gq�u����p�+���[�*y���IEND�B`�assets/images/fontsplugin-icon.png000064400000001164151213254220013316 0ustar00�PNG


IHDR  szz�tEXtSoftwareAdobe ImageReadyq�e<IDATx�엻JA�gwC$��xoxA��`�/�`����(����ॵ���X�N;�F+41�͎��'0��шi������ew��sVK3Y���"O����U�\��ѽsf���8I�_p��r � 
�9�EB��moog�H��L��l���8�Y��;}�(�l�$��k:��C.��L\�1L�Kp�iM�%Zk��O�I��!x�4���'�*�Ѵ���o��R��KoI+��v��s�_D�u0D��NT�J�c�G�)o�6إ>�&����+�q�h"�!,�r��^V�Dse�]D�˗�R�?<B��P��i���_$��L"��Q�L�*�hAp����>��0���u��&��4��ը�@HX�~x���K�&���!����EZ����_��<���ݤ��������>ʦ���)����L�C+�b��d
~(��R.�"��r�s�J���yu�(~ vA�y9)'#�d���i�|	0/Y�����IEND�B`�readme.txt000064400000011732151213254220006543 0ustar00=== Fonts Plugin | Use Google Fonts, Adobe Fonts or Upload Fonts ===
Contributors: DannyCooper, googlefonts, fontsplugin
Tags: google fonts, typekit fonts, adobe fonts, upload fonts, custom fonts
Donate link: https://fontsplugin.com/#pricing
Requires at least: 4.0
Tested up to: 6.6
License: GPLv2 or later
Stable tag: 3.7.8

The easiest to customize fonts in WordPress. Optimized for Speed. 1000+ font choices. Supports Google Fonts, Adobe Fonts and Upload Fonts.

== Description ==
The [Google Fonts](https://fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=intro) library currently contains 1455 unique fonts. This plugin allows you to easily use any of them on your WordPress website.

You're not stuck with one font for the entire website, you can easily choose one font for headings and another for your content.

It's hard to know which font will look good on your website, that's why we've included a live preview feature. That means you can test each font and see a live preview of how it will look with your content instantly.

Once you've found a combination you love, you can press save and make the changes publicly visible.

The full Google Fonts library can be found here - [Google Fonts](https://fonts.google.com)

= Plugin Features =

* **Live Customizer Preview:** Choose and preview fonts in real time using the WordPress Customizer.
* **Over 1000+ Google Fonts** to choose from.
* **Adobe Fonts (Typekit)** integration.
* Works with any WordPress Theme. No coding required.
* Easy One-Click Updates.
* WooCommerce support.
* Translation Ready.
* SSL and HTTPS compatible.
* Efficient Font Loading using a single request.
* **SEO-Friendly** (Search Engine Optimization).
* Tested with **PHP7** and **PHP8**.
* Selective Font Loading.
* Preconnect Resource Hints.
* Host Google Fonts Locally.
* Upload Custom Fonts.
* Font Size, Weight, Color and Line Height Typography Settings.

> Note: some features are Premium. Which means you need to upgrade to unlock those features. You can upgrade here: [Fonts Plugin Pro](https://fontsplugin.com/pro-upgrade/?utm_source=wporg&utm_medium=readme&utm_campaign=upsell)

[A comparison of free and pro features.](https://fontsplugin.com/free-vs-pro/)

= Plugin Compatibility =

Fonts Plugin will work with all WordPress themes and has been specifically tested with the following:

* All StudioPress and Genesis Themes
* Twenty Seventeen
* Twenty Nineteen
* Twenty Twenty
* ThemeGrill
* LyraThemes
* ThemeIsle

### Further Reading

For more info on Fonts Plugin, check out the following:

* [Documentation](https://docs.fontsplugin.com/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [Font Combinations](https://fontsplugin.com/font-combinations/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [Google Fonts Checker](https://fontsplugin.com/google-fonts-checker/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [How to Use Google Fonts in WordPress](https://fontsplugin.com/wordpress-google-fonts/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [Google Fonts in Beaver Builder](https://docs.fontsplugin.com/integrations/beaver-builder/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [Google Fonts in Elementor](https://docs.fontsplugin.com/integrations/elementor/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)
* [Google Fonts in WPBakery](https://docs.fontsplugin.com/integrations/wpbakery/?utm_source=wporg&utm_medium=readme&utm_campaign=docs)

= Bugs =
If you find an issue with Fonts Plugin, let us know [here](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)!

= Fonts Plugin Gutenberg Block =
Add some flair to your content with our new Gutenberg block.

* 1000+ Google Fonts available in the editor.
* Font size, variant and line-height settings.
* Text-align: left, right or center.
* Adobe Fonts (Typekit) support.

= Contributions =
Anyone is welcome to contribute to Fonts Plugin.

There are various ways you can contribute:

1. Raise an [Issue](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)
2. Translate the Fonts Plugin into [different languages](https://translate.wordpress.org/projects/wp-plugins/olympus-google-fonts/)
3. Provide feedback and suggestions on [enhancements](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)

== Installation ==
Upload Fonts Plugin, activate it, and you're done!

Navigate to wp-admin -> Appearance -> Customize and you will see a new tab named 'Fonts Plugin'

== Frequently Asked Questions ==

= Will my theme work with Fonts Plugin? =

We are 99.99% certain it will, if it doesn't then please create a [support ticket](https://wordpress.org/support/plugin/olympus-google-fonts#new-post).

== Screenshots ==

1. Instant Live Preview - Google Fonts for WordPress
2. Customizer Settings Search - Google Fonts for WordPress
3. Customizer Settings Font Weight and Style Typography Settings

== Changelog ==

[See changelog.txt for the complete Fonts Plugin changelog.](https://raw.githubusercontent.com/dannycooper/olympus-google-fonts/master/changelog.txt)
.stylelintrc000064400000001616151213254230007123 0ustar00{
  "extends": "stylelint-config-recommended",
  "rules": {
    "at-rule-no-unknown": [
      true,
      {
        "ignoreAtRules": ["extends"]
      }
    ],
    "block-no-empty": null,
    "rule-empty-line-before": "always",
    "font-weight-notation": "numeric",
    "shorthand-property-no-redundant-values": true,
    "number-no-trailing-zeros": true,
    "unit-case": "lower",
    "property-case": "lower",
    "declaration-colon-space-before": "never",
    "declaration-colon-space-after": "always",
    "declaration-block-semicolon-newline-after": "always",
    "block-closing-brace-newline-after": "always",
    "selector-list-comma-newline-before": "never-multi-line",
    "selector-list-comma-newline-after": "always",
    "selector-list-comma-space-before": "never",
    "max-empty-lines": 1,
    "selector-combinator-space-after": "always",
    "selector-combinator-space-before": "always",
  }
}
includes/customizer/settings.php000064400000026412151213254230013132 0ustar00<?php
/**
 * Register the customizer settings.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Register the custom Typography control.
 *
 * @param object $wp_customize Access to the $wp_customize object.
 */
function ogf_register_typography_control( $wp_customize ) {
	if ( ! class_exists( 'OGF_Customize_Typography_Control' ) ) {
		require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-typography-control.php';
		$wp_customize->register_control_type( 'OGF_Customize_Typography_Control' );
	}
}
add_action( 'customize_register', 'ogf_register_typography_control', 10 );

/**
 * An array containing the customizer sections, settings and controls.
 *
 * @param object $wp_customize Access to the $wp_customize object.
 */
function ogf_customize_register( $wp_customize ) {
	require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-multiple-fonts-control.php';
	require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-repeater-control.php';
	require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-upsell-control.php';
	require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-multiple-checkbox-control.php';

	$wp_customize->register_control_type( 'OGF_Customize_Multiple_Fonts_Control' );
	$wp_customize->register_control_type( 'OGF_Customize_Multiple_Checkbox_Control' );

	$wp_customize->add_setting(
		'ogf_custom_selectors',
		array(
			'transport' => 'postMessage',
		)
	);

	$wp_customize->add_control(
		new OGF_Customize_Repeater_Control(
			$wp_customize,
			'ogf_custom_selectors',
			array(
				'label'   => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
				'section' => 'ogf_custom',
			)
		)
	);

	$wp_customize->add_setting(
		'ogf_load_fonts',
		array(
			'transport' => 'postMessage',
		)
	);

	$wp_customize->add_control(
		new OGF_Customize_Multiple_Fonts_Control(
			$wp_customize,
			'ogf_load_fonts',
			array(
				'label'       => esc_html__( 'Load Fonts Only', 'olympus-google-fonts' ),
				'description' => esc_html__( 'Load fonts but don\'t automatically assign them to an element.', 'olympus-google-fonts' ),
				'section'     => 'ogf_advanced__css',
				'type'        => 'ogf-typography-multiselect',
			)
		)
	);

	/**
	 * Build customizer controls.
	 *
	 * @param array $elements array of elements to build controls based on.
	 */
	function ogf_build_customizer_controls( $elements ) {
		global $wp_customize;

		foreach ( $elements as $id => $values ) {
			$wp_customize->add_setting(
				$id . '_font',
				array(
					'default'   => 'default',
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_weight',
				array(
					'default'   => '0',
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_style',
				array(
					'default'   => 'default',
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_size',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_size_tablet',
				array(
					'transport' => 'refresh',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_size_mobile',
				array(
					'transport' => 'refresh',
				)
			);

			$wp_customize->add_setting(
				$id . '_line_height',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_line_height_tablet',
				array(
					'transport' => 'refresh',
				)
			);

			$wp_customize->add_setting(
				$id . '_line_height_mobile',
				array(
					'transport' => 'refresh',
				)
			);

			$wp_customize->add_setting(
				$id . '_font_color',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_letter_spacing',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_text_transform',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_setting(
				$id . '_text_decoration',
				array(
					'transport' => 'postMessage',
				)
			);

			$wp_customize->add_control(
				new OGF_Customize_Typography_Control(
					$wp_customize,
					$id . '_typography',
					array(
						'priority'    => ( isset( $values['priority'] ) ? absint( $values['priority'] ) : 10 ),
						'label'       => ( isset( $values['label'] ) ? esc_attr( $values['label'] ) : '' ),
						'description' => ( isset( $values['description'] ) ? esc_attr( $values['description'] ) : '' ),
						'section'     => ( isset( $values['section'] ) ? esc_attr( $values['section'] ) : '' ),
						'type'        => 'ogf-typography',
						'settings'    =>
							apply_filters(
								'ogf_typography_control_settings',
								array(
									'family'             => $id . '_font',
									'weight'             => $id . '_font_weight',
									'style'              => $id . '_font_style',
									'size'               => $id . '_font_size',
									'size_tablet'        => $id . '_font_size_tablet',
									'size_mobile'        => $id . '_font_size_mobile',
									'line_height'        => $id . '_line_height',
									'line_height_tablet' => $id . '_line_height_tablet',
									'line_height_mobile' => $id . '_line_height_mobile',
									'color'              => $id . '_font_color',
									'letter_spacing'     => $id . '_letter_spacing',
									'text_transform'     => $id . '_text_transform',
								),
								$id
							),
					)
				)
			);
		}
	}

	ogf_build_customizer_controls( ogf_get_elements() );
	ogf_build_customizer_controls( ogf_get_custom_elements() );

	$wp_customize->add_setting(
		'ogf_force_styles',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'wp_validate_boolean',
		)
	);

	$wp_customize->add_control(
		'force_styles',
		array(
			'label'       => esc_html__( 'Force Styles?', 'olympus-google-fonts' ),
			'description' => esc_html__( 'If your choices are not displaying correctly, check this box.', 'olympus-google-fonts' ),
			'section'     => 'ogf_debugging',
			'settings'    => 'ogf_force_styles',
			'type'        => 'checkbox',
		)
	);

	$wp_customize->add_setting(
		'ogf_disable_post_level_controls',
		array(
			'default'           => '',
			'transport'         => 'postMessage',
			'sanitize_callback' => 'wp_validate_boolean',
		)
	);

	$wp_customize->add_control(
		'ogf_disable_post_level_controls',
		array(
			'label'       => esc_html__( 'Disable Editor Controls', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Remove font controls from the individual post editor screen (Gutenberg and Classic).', 'olympus-google-fonts' ),
			'section'     => 'ogf_debugging',
			'settings'    => 'ogf_disable_post_level_controls',
			'type'        => 'checkbox',
		)
	);

	$wp_customize->add_setting(
		'ogf_use_px',
		array(
			'default'           => 'true',
			'transport'         => 'postMessage',
			'sanitize_callback' => 'wp_validate_boolean',
		)
	);

	$wp_customize->add_control(
		'ogf_use_px',
		array(
			'label'       => esc_html__( 'Use px Font Sizes', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Replace the default (pt) font sizes with px values in the Classic Editor.', 'olympus-google-fonts' ),
			'section'     => 'ogf_debugging',
			'settings'    => 'ogf_use_px',
			'type'        => 'checkbox',
		)
	);

	$wp_customize->add_setting(
		'ogf_font_display',
		array(
			'sanitize_callback' => 'ogf_sanitize_select',
			'default'           => 'swap',
		)
	);

	$wp_customize->add_control(
		'ogf_font_display',
		array(
			'label'       => esc_html__( 'Font Display', 'olympus-google-fonts' ),
			'description' => '<a href = "https: //fontsplugin.com/google-fonts-font-display-swap/#values">' . esc_html__( 'Learn more →', 'olympus-google-fonts' ) . '</a>',
			'type'        => 'select',
			'section'     => 'ogf_debugging',
			'choices'     => array(
				'swap'     => esc_html__( 'Swap', 'olympus-google-fonts' ),
				'block'    => esc_html__( 'Block', 'olympus-google-fonts' ),
				'fallback' => esc_html__( 'Fallback', 'olympus-google-fonts' ),
				'optional' => esc_html__( 'Optional', 'olympus-google-fonts' ),
			),
		)
	);

	$fonts   = new OGF_Fonts();
	$subsets = array();

	if ( $fonts->has_google_fonts() ) {

		// Build the selective font loading controls.
		foreach ( $fonts->choices as $font_id ) {
			if ( ! ogf_is_google_font( $font_id ) ) {
				continue;
			}

			$weights      = $fonts->get_font_weights( $font_id );
			$name         = $fonts->get_font_name( $font_id );
			$all_variants = ogf_font_variants();
			$new_variants = array();

			foreach ( $weights as $key => $value ) {
				$new_variants[ $key ] = $all_variants[ $key ];
			}

			// remove the 'default' value.
			unset( $new_variants[0] );

			$wp_customize->add_setting(
				$font_id . '_weights',
				array(
					'default'   => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', '100i', '200i', '300i', '400i', '500i', '600i', '700i', '800i', '900i' ),
					'transport' => 'refresh',
				)
			);

			$input_attrs = array();

			if ( ! defined( 'OGF_PRO' ) ) {
				$input_attrs = array(
					'disabled' => false,
				);
			}

			$wp_customize->add_control(
				new OGF_Customize_Multiple_Checkbox_Control(
					$wp_customize,
					$font_id . '_weights',
					array(
						'label'       => $name,
						'section'     => 'ogf_font_loading',
						'choices'     => $new_variants,
						'input_attrs' => $input_attrs,
						'type'        => 'ogf-multiple-checkbox',
					)
				)
			);

			$subsets = array_merge( $subsets, $fonts->get_font_subsets( $font_id ) );
		}

		$wp_customize->add_setting(
			'fpp_disable_subsets',
			array(
				'default'   => array(),
				'transport' => 'refresh',
			)
		);

		if ( defined( 'OGF_PRO' ) ) {
			$wp_customize->add_control(
				new OGF_Customize_Multiple_Checkbox_Control(
					$wp_customize,
					'fpp_disable_subsets',
					array(
						'label'   => 'Remove Subsets',
						'section' => 'ogf_font_subsets',
						'choices' => array_unique( $subsets ),
						'type'    => 'ogf-multiple-checkbox',
					)
				)
			);
		}
	}

	$upsell_locations = array(
		'ogf_basic',
		'ogf_advanced',
		'ogf_advanced__branding',
		'ogf_advanced__navigation',
		'ogf_advanced__content',
		'ogf_advanced__sidebar',
		'ogf_advanced__footer',
		'ogf_font_loading',
		'ogf_debugging',
		'ogf_optimization',
	);

	foreach ( $upsell_locations as $loc ) {
		if ( defined( 'OGF_PRO' ) ) {
			return;
		}

		$wp_customize->add_setting( 'ogf_upsell_' . $loc );

		$wp_customize->add_control(
			new OGF_Customize_Upsell_Control(
				$wp_customize,
				'ogf_upsell_' . $loc,
				array(
					'section'  => $loc,
					'priority' => 120,
					'type'     => 'ogf-upsell',
				)
			)
		);
	}
}
add_action( 'customize_register', 'ogf_customize_register', 20 );

/**
 * Sanitize value from select field.
 *
 * @param string $input The selected input.
 * @param object $setting The setting.
 * @return bool
 */
function ogf_sanitize_select( $input, $setting ) {
	// Ensure input is a slug.
	$input = sanitize_key( $input );

	// Get list of choices from the control associated with the setting.
	$choices = $setting->manager->get_control( $setting->id )->choices;

	// If the input is a valid key, return it; otherwise, return the default.
	return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}
includes/customizer/panels.php000064400000014435151213254230012556 0ustar00<?php
/**
 * Add multi-level panel functionality.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Enqueue customizer JS.
 */
function ogf_panels_customize_controls_scripts() {
	wp_enqueue_script( 'ogf-panels', OGF_DIR_URL . 'assets/js/panels.js', array(), '1.0', true );
}
add_action( 'customize_controls_enqueue_scripts', 'ogf_panels_customize_controls_scripts' );

/**
 * Register the multi-level panels.
 *
 * @param object $wp_customize Access to the $wp_customize object.
 */
function ogf_panels_customize_register( $wp_customize ) {
	require_once OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-panel.php';
	$wp_customize->register_panel_type( 'OGF_Customize_Panel' );

	$ogf_panel = new OGF_Customize_Panel(
		$wp_customize,
		'ogf_google_fonts',
		array(
			'title'    => esc_html__( 'Fonts Plugin', 'olympus-google-fonts' ),
			'priority' => 1,
		)
	);
	$wp_customize->add_panel( $ogf_panel );

	$wp_customize->add_section(
		'ogf_theme',
		array(
			'title' => esc_html__( 'Theme Settings', 'olympus-google-fonts' ),
			'panel' => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_section(
		'ogf_basic',
		array(
			'title' => __( 'Basic Settings', 'olympus-google-fonts' ),
			'panel' => 'ogf_google_fonts',
		)
	);

	$ogf_advanced_panel = new OGF_Customize_Panel(
		$wp_customize,
		'ogf_advanced',
		array(
			'title' => __( 'Advanced Settings', 'olympus-google-fonts' ),
			'panel' => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_panel( $ogf_advanced_panel );

	$wp_customize->add_section(
		'ogf_custom',
		array(
			'title'       => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
			/* Translators: %s Custom Elements Customizer Panel URL */
			'description' => sprintf( __( 'Define your Custom Elements here and then customize them under <a href="%s">Advanced Settings &rarr; Custom Elements</a>.', 'olympus-google-fonts' ), esc_url( admin_url( '/customize.php?autofocus[section]=ogf_advanced__custom' ) ) ),
			'panel'       => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_section(
		'ogf_font_loading',
		array(
			'title'       => esc_html__( 'Font Loading', 'olympus-google-fonts' ),
			'description' => __( 'Optimize your site\'s performance by unchecking any font weights you don\'t need.', 'olympus-google-fonts' ),
			'panel'       => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_section(
		'ogf_font_subsets',
		array(
			'title'       => esc_html__( 'Font Subsets', 'olympus-google-fonts' ),
			'description' => 'Optimize your site\'s performance by removing font subsets that you don\'t need.',
			'panel'       => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_section(
		'ogf_debugging',
		array(
			'title' => esc_html__( 'Debugging', 'olympus-google-fonts' ),
			'panel' => 'ogf_google_fonts',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__custom',
		array(
			'title'       => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
			/* Translators: %s Custom Elements Customizer Panel URL */
			'description' => sprintf( __( 'Custom Elements allow you to apply Google Fonts to any part of your website, they can be setup under <a href="%s">Google Fonts &rarr; Custom Elements</a>.', 'olympus-google-fonts' ), esc_url( admin_url( '/customize.php?autofocus[section]=ogf_custom' ) ) ),
			'panel'       => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__theme',
		array(
			'title' => esc_html__( 'Theme Elements', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__branding',
		array(
			'title' => esc_html__( 'Branding', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__navigation',
		array(
			'title' => esc_html__( 'Navigation', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__content',
		array(
			'title' => esc_html__( 'Content', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__sidebar',
		array(
			'title' => esc_html__( 'Sidebar', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__footer',
		array(
			'title' => esc_html__( 'Footer', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	$wp_customize->add_section(
		'ogf_advanced__css',
		array(
			'title' => esc_html__( 'Load Fonts Only', 'olympus-google-fonts' ),
			'panel' => 'ogf_advanced',
		)
	);

	if ( ogf_is_woocommerce_activated() ) {
		$ogf_woocommerce_panel = new OGF_Customize_Panel(
			$wp_customize,
			'ogf_woocommerce',
			array(
				'title' => __( 'WooCommerce', 'olympus-google-fonts' ),
				'panel' => 'ogf_google_fonts',
			)
		);

		$wp_customize->add_panel( $ogf_woocommerce_panel );

		$wp_customize->add_section(
			'ogf_wc_shop',
			array(
				'title' => esc_html__( 'WooCommerce Shop Page', 'olympus-google-fonts' ),
				'panel' => 'ogf_woocommerce',
			)
		);
		$wp_customize->add_section(
			'ogf_wc_single',
			array(
				'title' => esc_html__( 'WooCommerce Single Product', 'olympus-google-fonts' ),
				'panel' => 'ogf_woocommerce',
			)
		);
		$wp_customize->add_section(
			'ogf_wc_block',
			array(
				'title' => esc_html__( 'WooCommerce Blocks', 'olympus-google-fonts' ),
				'panel' => 'ogf_woocommerce',
			)
		);
		$wp_customize->add_section(
			'ogf_wc_cart',
			array(
				'title' => esc_html__( 'WooCommerce Cart', 'olympus-google-fonts' ),
				'panel' => 'ogf_woocommerce',
			)
		);
		$wp_customize->add_section(
			'ogf_wc_checkout',
			array(
				'title' => esc_html__( 'WooCommerce Checkout', 'olympus-google-fonts' ),
				'panel' => 'ogf_woocommerce',
			)
		);
	}

	if ( ogf_is_memberpress_courses_activated() ) {
		$ogf_memberspress_courses_panel = new OGF_Customize_Panel(
			$wp_customize,
			'ogf_memberpress',
			array(
				'title' => __( 'MemberPress', 'olympus-google-fonts' ),
				'panel' => 'ogf_google_fonts',
			)
		);

		$wp_customize->add_panel( $ogf_memberspress_courses_panel );

		$wp_customize->add_section(
			'ogf_memberpress_courses',
			array(
				'title' => esc_html__( 'MemberPress Courses', 'olympus-google-fonts' ),
				'panel' => 'ogf_memberpress',
			)
		);
	}
}
add_action( 'customize_register', 'ogf_panels_customize_register' );
includes/customizer/class-ogf-optimization-controls.php000064400000010211151213254230017523 0ustar00<?php
/**
 * Build the customizer controls for Optimization options.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2019, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * OGF_Optimization_Controls Class.
 */
class OGF_Optimization_Controls {

	/**
	 * The constructor.
	 */
	public function __construct() {

		if ( DEFINED( 'OGF_PRO' ) ) {
			return;
		}

		add_action( 'customize_register', array( $this, 'register_settings' ) );
		add_action( 'customize_register', array( $this, 'register_section' ) );
		add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue' ), 100 );
	}

	/**
	 * Register control scripts/styles.
	 */
	public function customize_controls_enqueue() {
		wp_enqueue_script( 'ogf-customize-controls', esc_url( OGF_DIR_URL . 'assets/js/customize-controls.js' ), array( 'customize-controls' ), OGF_VERSION, true );
	}

	/**
	 * Register the Customizer section.
	 *
	 * @param WP_Customize_Manager $wp_customize the Customizer object.
	 */
	public function register_section( $wp_customize ) {
		$wp_customize->add_section(
			'ogf_optimization',
			array(
				'title'       => __( 'Optimization', 'olympus-google-fonts' ),
				'description' => __( '<p>Optimize the delivery of font files for improved performance and user-privacy.</p><p>Upgrade to <a href="https://fontsplugin.com/pro-upgrade/?utm_source=plugin&utm_medium=customizer&utm_campaign=ogf_optimization_intro">Fonts Plugin Pro</a> to unlock these features.</p>', 'olympus-google-fonts' ),
				'panel'       => 'ogf_google_fonts',
			)
		);
	}

	/**
	 * Register the Customizer setting.
	 *
	 * @param WP_Customize_Manager $wp_customize the Customizer object.
	 */
	public function register_settings( $wp_customize ) {

		$site_url = site_url( '', 'https' );
		$url      = preg_replace( '(^https?://)', '', $site_url );

		// Add an option to disable the logo.
		$wp_customize->add_setting(
			'ogf_host_locally',
			array(
				'default'   => false,
				'transport' => 'postMessage',
			)
		);

		$wp_customize->add_control(
			'ogf_host_locally',
			array(
				'label'       => esc_html__( 'Host Google Fonts Locally', 'olympus-google-fonts' ),
				'description' => sprintf( esc_html__( 'Fonts will be served from %s instead of fonts.googleapis.com.', 'olympus-google-fonts' ), $url ),
				'section'     => 'ogf_optimization',
				'type'        => 'checkbox',
				'settings'    => 'ogf_host_locally',
			)
		);

		$wp_customize->add_setting(
			'ogf_use_woff2',
			array(
				'default'   => false,
				'transport' => 'postMessage',
			)
		);

		$wp_customize->add_setting(
			'ogf_preloading',
			array(
				'default'   => false,
				'transport' => 'postMessage',
			)
		);

		$wp_customize->add_control(
			'ogf_preloading',
			array(
				'label'       => esc_html__( 'Enable Preloading', 'olympus-google-fonts' ),
				'description' => esc_html__( 'Add preload resource hints.', 'olympus-google-fonts' ),
				'section'     => 'ogf_optimization',
				'type'        => 'checkbox',
				'settings'    => 'ogf_preloading',
			)
		);

		$wp_customize->add_setting(
			'ogf_removal',
			array(
				'default'   => false,
				'transport' => 'postMessage',
			)
		);

		$wp_customize->add_control(
			'ogf_removal',
			array(
				'label'       => esc_html__( 'Remove External Fonts', 'olympus-google-fonts' ),
				'description' => esc_html__( 'Remove Google Fonts loaded by other plugins and your theme.', 'olympus-google-fonts' ),
				'section'     => 'ogf_optimization',
				'type'        => 'checkbox',
				'settings'    => 'ogf_removal',
			)
		);

		$wp_customize->add_setting(
			'ogf_rewrite',
			array(
				'default'   => false,
				'transport' => 'postMessage',
			)
		);

		$wp_customize->add_control(
			'ogf_rewrite',
			array(
				'label'       => esc_html__( 'Rewrite External Fonts', 'olympus-google-fonts' ),
				'description' => esc_html__( 'Convert fonts added by your theme and plugins to be locally hosted on your domain.', 'olympus-google-fonts' ),
				'section'     => 'ogf_optimization',
				'type'        => 'checkbox',
				'settings'    => 'ogf_rewrite',
			)
		);
	}
}

$ogf_optimization_controls = new OGF_Optimization_Controls();
includes/customizer/output-css.php000064400000017644151213254230013427 0ustar00<?php
/**
 * Output the Google Fonts CSS.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Output the font CSS to wp_head.
 */
function ogf_output_css() {
	?>
	<!-- Fonts Plugin CSS - https://fontsplugin.com/ -->
	<style>
		<?php
		do_action( 'ogf_inline_styles' );
		foreach ( ogf_get_elements() as $id => $values ) {
			ogf_generate_css( $values['selectors'], $id );
		}
		foreach ( ogf_get_custom_elements() as $id => $values ) {
			ogf_generate_css( $values['selectors'], $id );
		}
		do_action( 'ogf_after_inline_styles' );
		?>
	</style>
	<!-- Fonts Plugin CSS -->
	<?php
}
add_action( 'wp_head', 'ogf_output_css', 1000 );

/**
 * Return the CSS for enqueuing Custom Font Uploads.
 *
 * @return string @font-face output.
 */
function ogf_return_custom_font_css() {
	$fonts = OGF_Fonts_Taxonomy::get_fonts();

	$css = '';

	foreach ( $fonts as $font => $data ) {
		$font_family = $data['files']['family'] ? esc_attr( $data['files']['family'] ) : $font;
		$files       = $data['files'];

		if ( $files['woff'] || $files['woff2'] || $files['ttf'] || $files['otf'] ) {
			$css .= "@font-face {font-family:'" . $font_family . "';";

			if ( $data['files']['weight'] ) {
				$css .= 'font-weight:' . esc_attr( $data['files']['weight'] ) . ';';
			}

			if ( $data['files']['style'] ) {
				$css .= 'font-style:' . esc_attr( $data['files']['style'] ) . ';';
			}

			$arr = array();

			if ( $data['files']['woff'] ) {
				$arr[] = "url('" . esc_url( $data['files']['woff'] ) . "') format('woff')";
			}
			if ( $data['files']['woff2'] ) {
				$arr[] = "url('" . esc_url( $data['files']['woff2'] ) . "') format('woff2')";
			}
			if ( $data['files']['ttf'] ) {
				$arr[] = "url('" . esc_url( $data['files']['ttf'] ) . "') format('truetype')";
			}
			if ( $data['files']['otf'] ) {
				$arr[] = "url('" . esc_url( $data['files']['otf'] ) . "') format('opentype')";
			}

			$css .= 'src:' . join( ',', $arr ) . ';}';
		}
	}

	return $css;
}

/**
 * Echo ogf_return_custom_font_css
 */
function ogf_echo_custom_font_css() {
	echo ogf_return_custom_font_css();
}
add_action( 'ogf_inline_styles', 'ogf_echo_custom_font_css', 2, 0 );
add_action( 'ogf_gutenberg_inline_styles', 'ogf_echo_custom_font_css', 2 );

/**
 * Helper function to build the CSS styles.
 *
 * @param string $selector    The CSS selector to apply the styles to.
 * @param string $option_name The option name to pull from the database.
 */
function ogf_generate_css( $selector, $option_name ) {
	$family          = get_theme_mod( $option_name . '_font', false );
	$font_size       = get_theme_mod( $option_name . '_font_size', false );
	$line_height     = get_theme_mod( $option_name . '_line_height', false );
	$weight          = get_theme_mod( $option_name . '_font_weight', false );
	$style           = get_theme_mod( $option_name . '_font_style', false );
	$color           = get_theme_mod( $option_name . '_font_color', false );
	$text_transform  = get_theme_mod( $option_name . '_text_transform', false );
	$letter_spacing  = get_theme_mod( $option_name . '_letter_spacing', false );
	$text_decoration = get_theme_mod( $option_name . '_text_decoration', false );

	$return = '';

	if ( ( $family !== 'default' && $family ) ||
		( $line_height !== '0' && $line_height ) ||
		( $weight !== '0' && $weight ) ||
		( $style !== 'default' && $style ) ||
		$font_size || $letter_spacing || $text_transform ||
		$color || $text_decoration
	) {
		$return .= $selector . ' {' . PHP_EOL;

		// Return font-family CSS.
		if ( false !== $family && 'default' !== $family ) {
			$stack = ogf_build_font_stack( $family );

			if ( ! empty( $stack ) ) {
				$return .= sprintf(
					'font-family: %s;' . PHP_EOL,
					$stack . ogf_is_forced()
				);
			}
		}

		// Return font-size CSS.
		if ( $font_size ) {
			$return .= sprintf(
				'font-size: %s;' . PHP_EOL,
				floatval( $font_size ) . 'px' . ogf_is_forced()
			);
		}

		// Return font line-height CSS.
		if ( $line_height && '0' !== $line_height ) {
			$return .= sprintf(
				'line-height: %s;' . PHP_EOL,
				floatval( $line_height ) . ogf_is_forced()
			);
		}

		// Return font-style CSS.
		if ( $style && 'default' !== $style ) {
			$return .= sprintf(
				'font-style: %s;' . PHP_EOL,
				esc_attr( $style ) . ogf_is_forced()
			);
		}

		// Return font-weight CSS.
		if ( $weight && '0' !== $weight ) {
			$return .= sprintf(
				'font-weight: %s;' . PHP_EOL,
				absint( $weight ) . ogf_is_forced()
			);
		}

		// Return font-color CSS.
		if ( $color ) {
			$return .= sprintf(
				'color: %s;' . PHP_EOL,
				esc_attr( $color ) . ogf_is_forced()
			);
		}

		// Return font-color CSS.
		if ( $letter_spacing ) {
			$return .= sprintf(
				'letter-spacing: %s;' . PHP_EOL,
				esc_attr( $letter_spacing ) . 'px' . ogf_is_forced()
			);
		}

		// Return text-transform CSS.
		if ( $text_transform ) {
			$return .= sprintf(
				'text-transform: %s;' . PHP_EOL,
				esc_attr( $text_transform ) . ogf_is_forced()
			);
		}

		// Return text-decoration CSS.
		if ( $text_decoration ) {
			$return .= sprintf(
				'text-decoration: %s;' . PHP_EOL,
				esc_attr( $text_decoration ) . ogf_is_forced()
			);
		}

		$return .= ' }' . PHP_EOL;

		echo wp_kses_post( $return );
	}
}

/**
 * Build a font stack using the users font choice.
 *
 * @param  string $font_id The users font choice.
 * @return string The built font stack.
 */
function ogf_build_font_stack( $font_id ) {

	$stack = 'sans-serif';

	if ( strpos( $font_id, 'sf-' ) !== false ) {
		$system_fonts = ogf_system_fonts();
		$font_id      = str_replace( 'sf-', '', $font_id );

		if ( array_key_exists( $font_id, $system_fonts ) ) {
			$stack = $system_fonts[ $font_id ]['stack'];
		}
	} elseif ( strpos( $font_id, 'cf-' ) !== false ) {
		$custom_fonts = ogf_custom_fonts();
		$font_id      = str_replace( 'cf-', '', $font_id );

		if ( array_key_exists( $font_id, $custom_fonts ) ) {
			if ( ! empty( $custom_fonts[ $font_id ]['family'] ) ) {
				$font = $custom_fonts[ $font_id ]['family'];
			} else {
				$font = $custom_fonts[ $font_id ]['stack'];
			}
			$stack = '"' . $font . '"';
		}
	} elseif ( strpos( $font_id, 'tk-' ) !== false ) {
		$typekit_fonts = ogf_typekit_fonts();

		if ( array_key_exists( $font_id, $typekit_fonts ) ) {
			$stack = $typekit_fonts[ $font_id ]['stack'];
		}
	} else {
		$google_fonts = ogf_fonts_array();

		if ( array_key_exists( $font_id, $google_fonts ) ) {
			$stack = '"' . $google_fonts[ $font_id ]['f'] . '"';
		}
	}

	return apply_filters( "ogf_{$font_id}_stack", $stack );
}

/**
 * Check if the styles should be forced.
 *
 * @return string
 */
function ogf_is_forced() {
	if ( 1 === (int) get_theme_mod( 'ogf_force_styles' ) ) {
		return ' !important';
	}
	return '';
}

/**
 * Helper function to build the CSS variables.
 */
function ogf_generate_css_variables() {
	$body_font     = get_theme_mod( 'ogf_body_font', 'default' );
	$headings_font = get_theme_mod( 'ogf_headings_font', 'default' );
	$inputs_font   = get_theme_mod( 'ogf_inputs_font', 'default' );

	if ( $body_font === 'default' && $headings_font === 'default' && $inputs_font === 'default' ) {
		return;
	}

	$css = ':root {' . PHP_EOL;

	if ( $body_font && $body_font !== 'default' ) {
		$body_font_stack = str_replace( '"', '', ogf_build_font_stack( $body_font ) );

		$css .= '--font-base: ' . esc_attr( $body_font_stack ) . ';' . PHP_EOL;
	}
	if ( $headings_font && $headings_font !== 'default' ) {
		$headings_font_stack = str_replace( '"', '', ogf_build_font_stack( $headings_font ) );

		$css .= '--font-headings: ' . esc_attr( $headings_font_stack ) . ';' . PHP_EOL;
	}
	if ( $inputs_font && $inputs_font !== 'default' ) {
		$inputs_font_stack = str_replace( '"', '', ogf_build_font_stack( $inputs_font ) );

		$css .= '--font-input: ' . esc_attr( $inputs_font_stack ) . ';' . PHP_EOL;
	}

	$css .= '}' . PHP_EOL;

	echo $css;
}

add_action( 'ogf_inline_styles', 'ogf_generate_css_variables', 1 );
add_action( 'ogf_gutenberg_inline_styles', 'ogf_generate_css_variables', 1 );
includes/customizer/controls/class-ogf-customize-multiple-checkbox-control.php000064400000004604151213254230024125 0ustar00<?php
/**
 * Multiple Checkbox Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Multi check control
 */
class OGF_Customize_Multiple_Checkbox_Control extends WP_Customize_Control {
	/**
	 * The control type.
	 *
	 * @var string
	 */
	public $type = 'ogf-multiple-checkbox';
	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {
		wp_enqueue_script( 'ogf-multiple-checkbox', OGF_DIR_URL . 'assets/js/multiple-checkbox.js', array( 'jquery' ), OGF_VERSION, true );
	}
	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @see WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		} else {
			$this->json['default'] = $this->setting->default;
		}
		$this->json['value']      = $this->value();
		$this->json['choices']    = $this->choices;
		$this->json['link']       = $this->get_link();
		$this->json['id']         = $this->id;
		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}
	}

	/**
	 * Overwrite this method as we are rendering the template with JS.
	 */
	protected function render_content() {}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see WP_Customize_Control::print_template()
	 */
	protected function content_template() {
		?>
		<# if ( ! data.choices ) { return; } #>

		<# if ( data.label ) { #>
			<span class="customize-control-title">{{ data.label }}</span>
		<# } #>

		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>

		<ul>
			<# for ( key in data.choices ) { #>
				<li>
					<label>
						<input {{{ data.inputAttrs }}} type="checkbox" value="{{ key }}"
							<# if ( _.contains( data.value, key ) ) { #> checked<# } #>
						/>
						{{ data.choices[ key ] }}
					</label>
				</li>
			<# } #>
		</ul>
		<?php
	}
}
includes/customizer/controls/class-ogf-customize-panel.php000064400000002046151213254240020126 0ustar00<?php
/**
 * Customize Repeater Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Extend the core panel Class.
 */
class OGF_Customize_Panel extends WP_Customize_Panel {

	/**
	 * The parent panel ID.
	 *
	 * @var string
	 */
	public $panel;

	/**
	 * Type of this panel.
	 *
	 * @var string
	 */
	public $type = 'ogf_panel';

	/**
	 * Gather the parameters passed to client JavaScript via JSON.
	 *
	 * @return array
	 */
	public function json() {
		$array                   = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'type', 'panel' ) );
		$array['title']          = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) );
		$array['content']        = $this->get_content();
		$array['active']         = $this->active();
		$array['instanceNumber'] = $this->instance_number;
		return $array;
	}
}
includes/customizer/controls/class-ogf-customize-upsell-control.php000064400000002347151213254240022015 0ustar00<?php
/**
 * Upsell Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Upsell control
 */
class OGF_Customize_Upsell_Control extends WP_Customize_Control {

	/**
	 * The control type.
	 *
	 * @var string
	 */
	public $type = 'ogf-upsell';

	/**
	 * Render the control's content.
	 */
	public function render_content() {
		?>
		<div class="ogf-upsell">
			<h2 class="upsell__title"><?php esc_html_e( 'Upgrade to Fonts Plugin Pro', 'olympus-google-fonts' ); ?></h2>
			<ul>
				<li><?php esc_html_e( '✅ Unlock Font Size & Color', 'olympus-google-fonts' ); ?></li>
				<li><?php esc_html_e( '⚡️ Optimized Font Loading', 'olympus-google-fonts' ); ?></li>
				<li><?php esc_html_e( '📦 Host Fonts Locally', 'olympus-google-fonts' ); ?></li>
			</ul>
			<a class="upsell__button button button-primary" href="https://fontsplugin.com/pro-upgrade/?utm_source=plugin&utm_medium=customizer&utm_campaign=<?php echo esc_attr( $this->section ); ?>" target="_blank"><?php esc_html_e( 'Learn More', 'olympus-google-fonts' ); ?></a>
		</div>
		<?php
	}
}
includes/customizer/controls/class-ogf-customize-typography-control.php000064400000022726151213254240022722 0ustar00<?php
/**
 * Typography Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Typography control class.
 */
class OGF_Customize_Typography_Control extends WP_Customize_Control {
	/**
	 * The type of customize control being rendered.
	 *
	 * @var string
	 */
	public $type = 'ogf-typography';

	/**
	 * Array
	 *
	 * @var array
	 */
	public $l10n = array();

	/**
	 * Set up our control.
	 *
	 * @param object $manager Customizer manager.
	 * @param string $id      Control ID.
	 * @param array  $args    Arguments to override class property defaults.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		// Let the parent class do its thing.
		parent::__construct( $manager, $id, $args );
		// Make sure we have labels.
		$this->l10n = wp_parse_args(
			$this->l10n,
			array(
				'family'         => esc_html__( 'Font Family', 'olympus-google-fonts' ),
				'weight'         => esc_html__( 'Font Weight', 'olympus-google-fonts' ),
				'style'          => esc_html__( 'Font Style', 'olympus-google-fonts' ),
				'size'           => esc_html__( 'Font Size (px)', 'olympus-google-fonts' ),
				'line_height'    => esc_html__( 'Line Height', 'olympus-google-fonts' ),
				'color'          => esc_html__( 'Color', 'olympus-google-fonts' ),
				'letter_spacing' => esc_html__( 'Letter Spacing (px)', 'olympus-google-fonts' ),
				'text_transform' => esc_html__( 'Text Transform', 'olympus-google-fonts' ),
			)
		);
	}

	/**
	 * Enqueue scripts/styles for the color picker.
	 */
	public function enqueue() {
		wp_enqueue_script( 'wp-color-picker' );
		wp_enqueue_style( 'wp-color-picker' );
		wp_enqueue_script( 'chosen', esc_url( OGF_DIR_URL . 'assets/js/chosen.min.js' ), array( 'jquery' ), OGF_VERSION, true );
	}

	/**
	 * Add custom parameters to pass to the JS via JSON.
	 */
	public function to_json() {
		parent::to_json();
		// Loop through each of the settings and set up the data for it.
		foreach ( $this->settings as $setting_key => $setting_id ) {
			$this->json[ $setting_key ] = array(
				'link'  => $this->get_link( $setting_key ),
				'value' => $this->value( $setting_key ),
				'label' => isset( $this->l10n[ $setting_key ] ) ? $this->l10n[ $setting_key ] : '',
			);

			if ( 'weight' === $setting_key ) {
				$this->json[ $setting_key ]['choices'] = $this->get_font_weight_choices( $this->value( 'family' ) );
			}
			if ( 'style' === $setting_key ) {
				$this->json[ $setting_key ]['choices'] = $this->get_font_style_choices();
			}
			if ( 'text_transform' === $setting_key ) {
				$this->json[ $setting_key ]['choices'] = $this->get_text_transform_choices();
			}
		}
	}

	/**
	 * Overwrite this method as we are rendering the template with JS.
	 *
	 * @return void
	 */
	protected function render_content() {}

	/**
	 * Underscore JS template to handle the control's output.
	 */
	public function content_template() {
		?>

		<# if ( data.label ) { #>
			<span class="customize-control-title">{{ data.label }}</span>
		<# } #>

		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>

		<ul>

		<# if ( data.family && typeof ogf_font_array != 'undefined' ) { #>
			<li class="typography-font-family">

				<# if ( data.family.label ) { #>
					<span class="customize-control-title">{{ data.family.label }}</span>
				<# } #>

				<select class="ogf-select" {{{ data.family.link }}}>
					<option value="default">
						<?php esc_html_e( 'Default Font', 'olympus-google-fonts' ); ?>
					</option>
					<# if ( ! _.isEmpty( ogf_custom_fonts_unique ) ) { #>
						<option disabled><?php esc_html_e( '- Custom Fonts -', 'olympus-google-fonts' ); ?></option>
						<# _.each( ogf_custom_fonts_unique, function( font_data, font_id ) { #>
							<option value="cf-{{ font_id }}" <# if ( font_id === font_data ) { #> selected="selected" <# } #>>{{ font_data }}</option>
						<# } ) #>
					<# } #>
					<# if ( ! _.isEmpty( ogf_typekit_fonts ) ) { #>
						<option disabled><?php esc_html_e( '- Typekit Fonts -', 'olympus-google-fonts' ); ?></option>
						<# _.each( ogf_typekit_fonts, function( font_data, font_id ) { #>
							<option value="{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.label }}</option>
						<# } ) #>
					<# } #>
					<option disabled><?php esc_html_e( '- System Fonts -', 'olympus-google-fonts' ); ?></option>
					<# _.each( ogf_system_fonts, function( font_data, font_id ) { #>
						<option value="sf-{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.label }}</option>
					<# } ) #>
					<option disabled><?php esc_html_e( '- Google Fonts -', 'olympus-google-fonts' ); ?></option>
					<# _.each( ogf_font_array, function( font_data, font_id ) { #>
						<option value="{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.f }}</option>
					<# } ) #>
				</select>
				<button type="button" class="advanced-button">
					<span class="screen-reader-text"><?php esc_html_e( 'Advanced', 'olympus-google-fonts' ); ?></span>
				</button>
			</li>
		<# } #>
		<div class="advanced-settings-wrapper">
			<div class="inner">
			<# if ( data.weight && data.weight.choices ) { #>
				<li class="typography-font-weight">
					<# if ( data.weight.label ) { #>
						<span class="customize-control-title">{{ data.weight.label }}</span>
					<# } #>
					<select {{{ data.weight.link }}}>
						<# _.each( data.weight.choices, function( label, choice ) { #>
							<option value="{{ choice }}" <# if ( choice === data.weight.value ) { #> selected="selected" <# } #>>{{ label }}</option>
						<# } ) #>
					</select>
				</li>
			<# } #>

			<# if ( data.style && data.style.choices ) { #>
				<li class="typography-font-style">
					<# if ( data.style.label ) { #>
						<span class="customize-control-title">{{ data.style.label }}</span>
					<# } #>
					<select {{{ data.style.link }}}>
						<# _.each( data.style.choices, function( label, choice ) { #>
							<option value="{{ choice }}" <# if ( choice === data.style.value ) { #> selected="selected" <# } #>>{{ label }}</option>
						<# } ) #>
					</select>
				</li>
			<# } #>

		</div>
		</div>
		</ul>
		<?php
	}

	/**
	 * Returns the available font weights.
	 *
	 * @param string $font User's font choice.
	 * @return array Available font variants.
	 */
	public function get_font_weight_choices( $font ) {
		$variants_to_remove = array(
			'100i' => esc_html__( 'Thin Italic', 'olympus-google-fonts' ),
			'200i' => esc_html__( 'Extra Light Italic', 'olympus-google-fonts' ),
			'300i' => esc_html__( 'Light Italic', 'olympus-google-fonts' ),
			'400i' => esc_html__( 'Normal Italic', 'olympus-google-fonts' ),
			'500i' => esc_html__( 'Medium Italic', 'olympus-google-fonts' ),
			'600i' => esc_html__( 'Semi Bold Italic', 'olympus-google-fonts' ),
			'700i' => esc_html__( 'Bold Italic', 'olympus-google-fonts' ),
			'800i' => esc_html__( 'Extra Bold Italic', 'olympus-google-fonts' ),
			'900i' => esc_html__( 'Ultra Bold Italic', 'olympus-google-fonts' ),
		);

		$all_variants = ogf_font_variants();

		if ( 'default' === $font ) {
			return array_diff( $all_variants, $variants_to_remove );
		}

		if ( ogf_is_google_font( $font ) ) {
			$fonts_array       = ogf_fonts_array();
			$variants          = $fonts_array[ $font ]['v'];
			$new_variants['0'] = esc_html__( '- Default -', 'olympus-google-fonts' );

			$diff = array_diff_key( $variants, $variants_to_remove );

			foreach ( $diff as $key => $value ) {
				$new_variants[ $key ] = $all_variants[ $key ];
			}

			return $new_variants;
		}

		if ( ogf_is_typekit_font( $font ) ) {
			$fonts_array = ogf_typekit_fonts();

			if ( ! array_key_exists( $font, $fonts_array ) ) {
				return array();
			}

			$variants          = $fonts_array[ $font ]['variants'];
			$new_variants['0'] = esc_html__( '- Default -', 'olympus-google-fonts' );

			foreach ( $variants as $variant ) {
				$new_variants[ $variant ] = $all_variants[ $variant ];
			}

			return $new_variants;
		}

		$choices = array(
			'0'   => esc_html__( '- Default -', 'olympus-google-fonts' ),
			'400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
			'700' => esc_html__( 'Bold', 'olympus-google-fonts' ),
		);

		return apply_filters( 'ogf_default_font_weight_choices', $choices );
	}

	/**
	 * Returns the available font styles.
	 *
	 * @return array CSS font-style values.
	 */
	public function get_font_style_choices() {
		$choices = array(
			'default' => esc_html__( '- Default -', 'olympus-google-fonts' ),
			'normal'  => esc_html__( 'Normal', 'olympus-google-fonts' ),
			'italic'  => esc_html__( 'Italic', 'olympus-google-fonts' ),
			'oblique' => esc_html__( 'Oblique', 'olympus-google-fonts' ),
		);

		return apply_filters( 'ogf_default_font_style_choices', $choices );
	}

	/**
	 * Returns the available text-transform values.
	 *
	 * @return array CSS text-transform values.
	 */
	public function get_text_transform_choices() {
		$choices = array(
			''           => esc_html__( '- Default -', 'olympus-google-fonts' ),
			'capitalize' => esc_html__( 'Capitalize', 'olympus-google-fonts' ),
			'uppercase'  => esc_html__( 'Uppercase', 'olympus-google-fonts' ),
			'lowercase'  => esc_html__( 'Lowercase', 'olympus-google-fonts' ),
			'none'       => esc_html__( 'None', 'olympus-google-fonts' ),
		);

		return apply_filters( 'ogf_default_text_transform_choices', $choices );
	}
}
includes/customizer/controls/class-ogf-customize-multiple-fonts-control.php000064400000003547151213254240023476 0ustar00<?php
/**
 * Fonts Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Fonts control class.
 */
class OGF_Customize_Multiple_Fonts_Control extends WP_Customize_Control {

	/**
	 * The type of customize control being rendered.
	 *
	 * @var string
	 */
	public $type = 'ogf-typography-multiselect';

	/**
	 * Enqueue scripts/styles for the color picker.
	 */
	public function enqueue() {
		wp_enqueue_script( 'chosen', esc_url( OGF_DIR_URL . 'assets/js/chosen.min.js' ), array( 'jquery' ), OGF_VERSION, true );
	}

	/**
	 * Add custom parameters to pass to the JS via JSON.
	 */
	public function to_json() {
		parent::to_json();
		// The setting value.
		$this->json['id']    = $this->id;
		$this->json['value'] = $this->value();
		$this->json['link']  = $this->get_link();
	}

	/**
	 * Overwrite this method as we are rendering the template with JS.
	 *
	 * @access protected
	 * @since 1.0
	 * @return void
	 */
	protected function render_content() {}

	/**
	 * Underscore JS template to handle the control's output.
	 */
	public function content_template() {
		?>
		<# if ( data.label ) { #>
			<span class="customize-control-title">{{ data.label }}</span>
		<# } #>

		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>

		<# if ( typeof ogf_font_array != 'undefined' ) { #>
			<select data-placeholder="<?php esc_attr_e( 'Choose some fonts...', 'olympus-google-fonts' ); ?>" multiple class="ogf-select" {{{ data.link }}}>
				<# _.each( ogf_font_array, function( font_data, font_id ) { #>
					<option value="{{ font_id }}">{{ font_data.f }}</option>
				<# } ) #>
			</select>
		<# } #>

		<?php
	}
}
includes/customizer/controls/class-ogf-customize-repeater-control.php000064400000013065151213254240022317 0ustar00<?php
/**
 * Customize Repeater Custom Control
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Repeater control
 */
class OGF_Customize_Repeater_Control extends WP_Customize_Control {

	/**
	 * The type of customize control being rendered.
	 *
	 * @var string
	 */
	public $type = 'ogf-repeater';

	/**
	 * Enqueue scripts/styles for the control.
	 */
	public function enqueue() {
		wp_enqueue_script( 'customizer-repeater-script', OGF_DIR_URL . 'assets/js/customizer-repeater.js', array( 'jquery', 'jquery-ui-draggable', 'wp-color-picker' ), OGF_VERSION, true );
		$ogf_repeater = array( 'return_url' => esc_url( admin_url( '/customize.php?autofocus[section]=ogf_custom' ) ) );
		wp_localize_script( 'customizer-repeater-script', 'ogf_repeater', $ogf_repeater );
	}

	/**
	 * Render the control.
	 */
	public function render_content() {
		// Get default options.
		$default = json_decode( $this->setting->default );
		// Get values (json format).
		$values = $this->value();
		// Decode values.
		$json = json_decode( $values );
		if ( ! is_array( $json ) ) {
			$json = array( $values );
		} ?>

		<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
		<div class="customizer-repeater-general-control-repeater">
			<?php
			if ( ( 1 === count( $json ) && '' === $json[0] ) || empty( $json ) ) {
				if ( ! empty( $default ) ) {
					$this->iterate_array( $default );
					?>
					<input type="hidden"
					id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-collector" <?php esc_attr( $this->link() ); ?>
					class="customizer-repeater-collector"
					value="<?php echo esc_textarea( wp_json_encode( $default ) ); ?>"/>
					<?php
				} else {
					$this->iterate_array();
					?>
					<input type="hidden"
					id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-collector" <?php esc_attr( $this->link() ); ?>
					class="customizer-repeater-collector"/>
					<?php
				}
			} else {
				$this->iterate_array( $json );
				?>
				<input type="hidden" id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-collector" <?php esc_attr( $this->link() ); ?>
				class="customizer-repeater-collector" value="<?php echo esc_textarea( $this->value() ); ?>"/>
				<?php
			}
			?>
		</div>
		<div class="ogf_custom_selectors_actions clear">
			<button type="button" class="button add_field customizer-repeater-new-field">
				<?php echo esc_html__( 'Add New', 'olympus-google-fonts' ); ?>
			</button>
			<button type="button" class="button button-primary ogf_save_elements_button">
				<?php echo esc_html__( 'Save Elements', 'olympus-google-fonts' ); ?>
			</button>
		</div>
		<?php
	}

	/**
	 * Iterate through the array of values.
	 *
	 * @param array $array The array.
	 */
	private function iterate_array( $array = array() ) {
		// Counter that helps checking if the box is first and should have the delete button disabled.
		$count = 0;
		if ( ! empty( $array ) ) {
			foreach ( $array as $icon ) {
				?>
				<div class="customizer-repeater-general-control-repeater-container">
					<?php $this->input_control( $icon, $count ); ?>
				</div>

				<?php
				++$count;
			}
		} else {
			?>
			<div class="customizer-repeater-general-control-repeater-container">
				<?php $this->input_control(); ?>
			</div>
			<?php
		}
	}
	/**
	 * Input Control
	 *
	 * @param object $values Values for the controls.
	 * @param int    $count  Count how many controls have been displayed so far.
	 */
	private function input_control( $values = '', $count = 0 ) {
		$label       = ( isset( $values->label ) ? $values->label : '' );
		$description = ( isset( $values->description ) ? $values->description : '' );
		$selectors   = ( isset( $values->selectors ) ? $values->selectors : '' );
		$display     = ( 0 === $count ? 'none' : 'block' );
		?>
		<ul class="repeater-item clear">
			<li class="customize-control customize-control-text">
				<label for="customizer-repeater-label-control" class="customize-control-title">
					<?php esc_html_e( 'Label', 'olympus-google-fonts' ); ?>
				</label>
				<input
					type="text"
					value="<?php echo esc_attr( $label ); ?>"
					class="customizer-repeater-control customizer-repeater-label-control"
					placeholder="<?php esc_html_e( 'Label', 'olympus-google-fonts' ); ?>"
				/>
			</li>
			<li class="customize-control customize-control-text">
				<label for="customizer-repeater-description-control" class="customize-control-title">
					<?php esc_html_e( 'Description', 'olympus-google-fonts' ); ?>
				</label>
				<input
					type="text"
					value="<?php echo esc_attr( $description ); ?>"
					class="customizer-repeater-control customizer-repeater-description-control"
					placeholder="<?php esc_html_e( 'Description', 'olympus-google-fonts' ); ?>"
				/>
			</li>
			<li class="customize-control customize-control-text">
				<label for="customizer-repeater-selector-control" class="customize-control-title">
					<?php esc_html_e( 'Selectors', 'olympus-google-fonts' ); ?>
				</label>
				<input
					type="text"
					value="<?php echo esc_attr( $selectors ); ?>"
					class="customizer-repeater-control customizer-repeater-selectors-control"
					placeholder="<?php esc_html_e( 'Add your selectors...', 'olympus-google-fonts' ); ?>"
				/>
			</li>
			<button type="button" id="ogf-repeater-control-remove-field" class="button" style="display: <?php echo esc_attr( $display ); ?>">
				<?php esc_html_e( 'Delete field', 'olympus-google-fonts' ); ?>
			</button>
		</ul>
		<?php
	}
}
includes/class-ogf-fonts.php000064400000013141151213254240012067 0ustar00<?php
/**
 * Build the URL to load the chosen Google Fonts.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * This class builds the Google Fonts URL.
 */
class OGF_Fonts {
	/**
	 * All Google Fonts.
	 *
	 * @var array
	 */
	public static $google_fonts = array();

	/**
	 * The users font choices.
	 *
	 * @var array
	 */
	public $choices = array();

	/**
	 * Let's get started.
	 */
	public function __construct() {
		self::$google_fonts = ogf_fonts_array();
		$this->get_choices();
	}

	/**
	 * Get the users font choices.
	 */
	public function get_choices() {
		$elements = array_keys( ogf_get_elements() );

		foreach ( $elements as $element ) {
			if ( get_theme_mod( $element . '_font' ) && get_theme_mod( $element . '_font' ) !== 'default' ) {
				$this->choices[] = get_theme_mod( $element . '_font' );
			}
		}

		$elements = array_keys( ogf_get_custom_elements() );

		foreach ( $elements as $element ) {
			if ( get_theme_mod( $element . '_font' ) && get_theme_mod( $element . '_font' ) !== 'default' ) {
				$this->choices[] = get_theme_mod( $element . '_font' );
			}
		}

		$load_fonts_css = get_theme_mod( 'ogf_load_fonts', array() );

		if ( is_array( $load_fonts_css ) ) {
			foreach ( $load_fonts_css as $key => $value ) {
				$this->choices[] = $value;
			}
		}
	}

	/**
	 * Make the font name safe for use in URLs
	 *
	 * @param string $font The font we are getting the id of.
	 */
	public function get_font_id( $font ) {
		return str_replace( ' ', '+', $font );
	}

	/**
	 * Get the font weights from ID.
	 *
	 * @param string $font_id The font ID.
	 */
	public function get_font_weights( $font_id ) {
		$weights = self::$google_fonts[ $font_id ]['v'];

		if ( ! is_array( $weights ) ) {
			return array();
		}

		unset( $weights['0'] );

		return $weights;
	}

	/**
	 * Get the font subsets from ID.
	 *
	 * @param string $font_id The font ID.
	 */
	public function get_font_subsets( $font_id ) {
		$subsets = self::$google_fonts[ $font_id ]['s'];

		if ( ! is_array( $subsets ) ) {
			return array();
		}

		// We need both the key and value to be the subset name.
		$combined = array_combine( $subsets, $subsets );
		unset( $combined['latin'] );
		return $combined;
	}

	/**
	 * Get the font name from ID.
	 *
	 * @param string $font_id The font ID.
	 */
	public function get_font_name( $font_id ) {
		if ( array_key_exists( $font_id, self::$google_fonts ) ) {
			return self::$google_fonts[ $font_id ]['f'];
		} else {
			return __( 'Font Missing', 'olympus-google-fonts' );
		}
	}

	/**
	 * DEPRECATED use has_google_fonts() instead.
	 */
	public function has_custom_fonts() {
		return $this->has_google_fonts();
	}

	/**
	 * Helper to check if the user is using any Google fonts.
	 */
	public function has_google_fonts() {
		if ( empty( $this->choices ) ) {
			return false;
		}

		foreach ( $this->choices as $choice ) {
			if ( ogf_is_google_font( $choice ) ) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Remove the font variants the user has chosen not to load.
	 *
	 * @param string $font_id The font ID.
	 * @param array  $weights The font weights.
	 * @return array
	 */
	public function filter_selected_weights( $font_id, $weights ) {
		unset( $weights['0'] );

		$selected_weights = get_theme_mod( $font_id . '_weights', false );

		if ( ! $selected_weights ) {
			return $weights;
		}

		return array_intersect_key( $weights, array_flip( $selected_weights ) );
	}

	/**
	 * Get contents from remote URL.
	 *
	 * @param string $url The Google Fonts URL.
	 *
	 * @return string
	 */
	public function get_remote_url_contents( $url ) {
		$user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0';

		// Get the response.
		$response = wp_remote_get( $url, array( 'user-agent' => $user_agent ) );

		// Early exit if there was an error.
		if ( is_wp_error( $response ) ) {
			return '';
		}
		if ( wp_remote_retrieve_response_code( $response ) !== 200 ) {
			return '';
		}

		// Get the CSS from our response.
		$contents = wp_remote_retrieve_body( $response );

		return $contents;
	}

	/**
	 * Store CSS from URL provided.
	 *
	 * @param string $url The Google Fonts URL.
	 *
	 * @return string
	 */
	public function stored_css( $url ) {
		$url_to_id         = md5( $url );
		$external_font_css = get_transient( 'ogf_external_font_css_' . $url_to_id );

		if ( false === ( $external_font_css ) ) {
			// It wasn't there, so regenerate the data and save the transient.
			$external_font_css  = '/* Cached: ' . date( 'F j, Y \a\t g:ia' ) . ' */' . PHP_EOL;
			$external_font_css .= $this->get_remote_url_contents( $url ) . PHP_EOL;
			set_transient( 'ogf_external_font_css_' . $url_to_id, $external_font_css, DAY_IN_SECONDS );
		}

		return $external_font_css;
	}

	/**
	 * Return the Google Fonts URL.
	 *
	 * @return false|string
	 */
	public function build_url() {
		$families = array();

		if ( empty( $this->choices ) ) {
			return false;
		}

		$fonts = array_unique( $this->choices );

		foreach ( $fonts as $font_id ) {
			// Check the users choice is a real font.
			if ( array_key_exists( $font_id, self::$google_fonts ) ) {
				$font_id_for_url = $this->get_font_id( self::$google_fonts[ $font_id ]['f'] );

				$weights = $this->filter_selected_weights( $font_id, self::$google_fonts[ $font_id ]['v'] );

				$families[] = $font_id_for_url . ':' . implode( ',', array_keys( $weights ) );
			}
		}

		$query_args = array(
			'family'  => implode( '|', $families ),
			'display' => get_theme_mod( 'ogf_font_display', 'swap' ),
		);

		return add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
	}
}
includes/class-ogf-notifications.php000064400000016530151213254240013614 0ustar00<?php
/**
 * Notification class.
 * Prompts users to give a review of the plugin on WordPress.org after a period of usage.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

if ( ! class_exists( 'OGF_Notifications' ) ) :
	/**
	 * The feedback.
	 */
	class OGF_Notifications {

		/**
		 * Slug.
		 *
		 * @var string $slug
		 */
		private $slug;

		/**
		 * Name.
		 *
		 * @var string $name
		 */
		private $name;

		/**
		 * Time limit.
		 *
		 * @var int $time_limit
		 */
		private $time_limit;

		/**
		 * No Bug Option.
		 *
		 * @var string $nobug_option
		 */
		public $nobug_option;

		/**
		 * Activation Date Option.
		 *
		 * @var string $date_option
		 */
		public $date_option;

		/**
		 * Class constructor.
		 *
		 * @param array $args Arguments.
		 */
		public function __construct( $args ) {
			$this->slug         = $args['slug'];
			$this->name         = $args['name'];
			$this->date_option  = 'ogf_activation_date';
			$this->nobug_option = $this->slug . '_no_bug';
			if ( isset( $args['time_limit'] ) ) {
				$this->time_limit = $args['time_limit'];
			} else {
				$this->time_limit = WEEK_IN_SECONDS;
			}
			// Add actions.
			add_action( 'admin_init', array( $this, 'check_installation_date' ) );
			add_action( 'admin_init', array( $this, 'set_no_bug' ), 5 );
		}

		/**
		 * Seconds to words.
		 *
		 * @param int $seconds Seconds in time.
		 * @return string
		 */
		public function seconds_to_words( $seconds ) {
			// Get the years.
			$years = absint( $seconds / YEAR_IN_SECONDS ) % 100;
			if ( $years > 0 ) {
				/* translators: Number of years */
				return sprintf( _n( 'a year', '%s years', $years, 'olympus-google-fonts' ), $years );
			}
			// Get the weeks.
			$weeks = absint( intval( $seconds ) / WEEK_IN_SECONDS ) % 52;
			if ( $weeks > 1 ) {
				/* translators: Number of weeks */
				return sprintf( _n( 'a week', '%s weeks', $weeks, 'olympus-google-fonts' ), $weeks );
			}
			// Get the days.
			$days = absint( intval( $seconds ) / DAY_IN_SECONDS ) % 7;
			if ( $days > 1 ) {
				/* translators: Number of days */
				return sprintf( _n( '%s day', '%s days', $days, 'olympus-google-fonts' ), $days );
			}

			return sprintf( _n( '%s second', '%s seconds', $seconds, 'olympus-google-fonts' ), intval( $seconds ) );
		}

		/**
		 * Check date on admin initiation and add to admin notice if it was more than the time limit.
		 */
		public function check_installation_date() {
			if ( ! get_site_option( $this->nobug_option ) || false === get_site_option( $this->nobug_option ) ) {
				add_site_option( $this->date_option, time() );
				// Retrieve the activation date.
				$install_date = get_site_option( $this->date_option );
				// If difference between install date and now is greater than time limit, then display notice.
				if ( ( time() - $install_date ) > $this->time_limit ) {
					add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
				}
			}
		}

		/**
		 * Display the admin notice.
		 */
		public function display_admin_notice() {
			if ( is_plugin_active( 'google-fonts-pro/google-fonts-pro.php' ) ) {
				return;
			}
			?>

			<style>
			.notice.ogf-notice {
				border-left-color: #008ec2 !important;
				padding: 20px;
			}
			.rtl .notice.ogf-notice {
				border-right-color: #008ec2 !important;
			}
			.notice.notice.ogf-notice .ogf-notice-inner {
				display: table;
				width: 100%;
			}
			.notice.ogf-notice .ogf-notice-inner .ogf-notice-icon,
			.notice.ogf-notice .ogf-notice-inner .ogf-notice-content,
			.notice.ogf-notice .ogf-notice-inner .ogf-install-now {
				display: table-cell;
				vertical-align: middle;
			}
			.notice.ogf-notice .ogf-notice-icon {
				color: #509ed2;
				font-size: 50px;
				width: 60px;
			}
			.notice.ogf-notice .ogf-notice-icon img {
				width: 64px;
			}
			.notice.ogf-notice .ogf-notice-content {
				padding: 0 40px 0 20px;
			}
			.notice.ogf-notice p {
				padding: 0;
				margin: 0;
				max-width: 640px;
			}
			.notice.ogf-notice h3 {
				margin: 0 0 5px;
			}
			.notice.ogf-notice .ogf-install-now {
				text-align: center;
			}
			.notice.ogf-notice .ogf-install-now .ogf-install-button {
				padding: 6px 50px;
				height: auto;
				line-height: 20px;
			}
			.notice.ogf-notice a.no-thanks {
				display: block;
				margin-top: 10px;
				color: #72777c;
				text-decoration: none;
			}
			.notice.ogf-notice a.no-thanks:hover {
				color: #444;
			}
			@media (max-width: 767px) {
				.notice.notice.ogf-notice .ogf-notice-inner {
					display: block;
				}
				.notice.ogf-notice {
					padding: 20px !important;
				}
				.notice.ogf-notice .ogf-notice-inner {
					display: block;
				}
				.notice.ogf-notice .ogf-notice-inner .ogf-notice-content {
					display: block;
					padding: 0;
				}
				.notice.ogf-notice .ogf-notice-inner .ogf-notice-icon {
					display: none;
				}
				.notice.ogf-notice .ogf-notice-inner .ogf-install-now {
					margin-top: 20px;
					display: block;
					text-align: left;
				}
				.notice.ogf-notice .ogf-notice-inner .no-thanks {
					display: inline-block;
					margin-left: 15px;
				}
			}
			</style>
			<?php
			$this->review();
		}

		/**
		 * Output review content.
		 */
		public function review() {
			$no_bug_url = wp_nonce_url( admin_url( '?' . $this->nobug_option . '=true' ), 'ogf-notification-nonce' );
			$time       = $this->seconds_to_words( time() - get_site_option( $this->date_option ) );
			?>
			<div class="notice updated ogf-notice">
				<div class="ogf-notice-inner">
					<div class="ogf-notice-icon">
						<img src="https://ps.w.org/olympus-google-fonts/assets/icon-256x256.jpg" alt="<?php echo esc_attr__( 'Google Fonts WordPress Plugin', 'olympus-google-fonts' ); ?>" />
					</div>
					<div class="ogf-notice-content">
						<h3><?php echo esc_html__( 'Are you enjoying using Google Fonts?', 'olympus-google-fonts' ); ?></h3>
						<p>
							<?php
							/* translators: 1. Name, 2. Time */
							printf( __( 'You have been using <strong>%1$s</strong> for %2$s now! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'olympus-google-fonts' ), esc_html( $this->name ), esc_html( $time ) );
							?>
						</p>
					</div>
					<div class="ogf-install-now">
						<?php printf( '<a href="%1$s" class="button button-primary ogf-install-button" target="_blank">%2$s</a>', esc_url( 'https://wordpress.org/support/view/plugin-reviews/olympus-google-fonts#new-post' ), esc_html__( 'Leave a Review', 'olympus-google-fonts' ) ); ?>
						<a href="<?php echo esc_url( $no_bug_url ); ?>" class="no-thanks"><?php echo esc_html__( 'No thanks / I already have', 'olympus-google-fonts' ); ?></a>
					</div>
				</div>
			</div>
			<?php
		}

		/**
		 * Set the plugin to no longer bug users if user asks not to be.
		 */
		public function set_no_bug() {
			// Bail out if not on correct page.
			if ( ! isset( $_GET['_wpnonce'] ) || ( ! wp_verify_nonce( $_GET['_wpnonce'], 'ogf-notification-nonce' ) || ! is_admin() || ! isset( $_GET[ $this->nobug_option ] ) || ! current_user_can( 'manage_options' ) ) ) {
				return;
			}
			add_site_option( $this->nobug_option, true );
		}
	}
endif;

/*
* Instantiate the OGF_Notifications class.
*/
new OGF_Notifications(
	array(
		'slug'       => 'ogf',
		'name'       => __( 'Google Fonts for WordPress', 'olympus-google-fonts' ),
		'time_limit' => WEEK_IN_SECONDS,
	)
);
includes/class-ogf-reset.php000064400000005232151213254240012062 0ustar00<?php
/**
 * Reset fonts class.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

if ( ! class_exists( 'OGF_Reset' ) ) :
	/**
	 * The 'Reset Fonts' class.
	 */
	class OGF_Reset {

		/**
		 * WP_Customize object.
		 *
		 * @var WP_Customize_Manager
		 */
		private $wp_customize;

		/**
		 * Class constructor.
		 */
		public function __construct() {
			add_action( 'customize_register', array( $this, 'customize_register' ) );
			add_action( 'wp_ajax_customizer_reset', array( $this, 'ajax_customizer_reset' ) );
			add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_scripts' ), 101 );
		}

		/**
		 * Add localize script to assets/js/customize-controls.js.
		 */
		public function customize_scripts() {
			wp_localize_script(
				'ogf-customize-controls',
				'fontsReset',
				array(
					'confirm' => esc_html__( 'This will reset all fonts set by this plugin to their defaults. This action can not be reversed.', 'olympus-google-fonts' ),
					'nonce'   => wp_create_nonce( 'ogf_reset' ),
				)
			);
		}

		/**
		 * Store a reference to `WP_Customize_Manager` instance
		 *
		 * @param Object $wp_customize Global $wp_customize object.
		 */
		public function customize_register( $wp_customize ) {
			$wp_customize->add_control(
				'ogf_reset_fonts',
				array(
					'type'        => 'button',
					'label'       => __( 'Reset All Fonts', 'olympus-google-fonts' ),
					'description' => __( 'This will reset all fonts set by this plugin to their defaults. This action can not be reversed.', 'olympus-google-fonts' ),
					'settings'    => array(),
					'priority'    => 100,
					'section'     => 'ogf_debugging',
					'input_attrs' => array(
						'value' => __( 'Reset All Fonts', 'olympus-google-fonts' ),
						'class' => 'button button-link-delete',
					),
				)
			);
		}

		/**
		 * The reset AJAX request handler.
		 */
		public function ajax_customizer_reset() {
			if ( ! check_ajax_referer( 'ogf_reset', 'security' ) ) {
				wp_send_json_error( 'invalid_nonce' );
			}

			$this->reset_customizer();

			wp_send_json_success();
		}

		/**
		 * Perform the reset.
		 */
		public function reset_customizer() {
			$settings = ogf_get_elements();
			foreach ( $settings as $key => $value ) {
				set_theme_mod( $key . '_font', null );
				set_theme_mod( $key . '_font_weight', null );
				set_theme_mod( $key . '_font_style', null );
				set_theme_mod( $key . '_font_size', null );
				set_theme_mod( $key . '_font_color', null );
				set_theme_mod( $key . '_line_height', null );
			}
		}
	}
endif;

/*
 * Instantiate the OGF_Reset class.
 */
new OGF_Reset();
includes/class-ogf-typekit.php000064400000024401151213254240012430 0ustar00<?php
/**
 * Fonts Plugin Typekit class.
 *
 * @package olympus-google-fonts
 */

/**
 * Create the admin pages.
 */
class OGF_Typekit {

	/**
	 * Start up
	 */
	public function __construct() {
		add_action( 'admin_menu', array( $this, 'add_settings_page' ) );
		add_action( 'admin_init', array( $this, 'register_settings' ) );
		add_action( 'admin_head', array( $this, 'get_kits' ) );
		add_action( 'admin_head', array( $this, 'css_styles' ) );
		add_action( 'admin_head', array( $this, 'manage_kits' ) );
		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_css' ) );
		add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_css' ) );
	}

	/**
	 * Add submenu page to Fonts Plugin menu.
	 */
	public function add_settings_page() {
		add_submenu_page(
			'fonts-plugin',
			__( 'Adobe Fonts', 'olympus-google-fonts' ),
			__( 'Adobe Fonts', 'olympus-google-fonts' ),
			'manage_options',
			'fonts-plugin-typekit',
			array( $this, 'render_settings_page' )
		);
	}

	/**
	 * Register the settings and sections.
	 */
	public function register_settings() {
		register_setting( 'fonts-plugin', 'fp-typekit' );

		add_settings_section( 'section-1', __( 'Configuration', 'olympus-google-fonts' ), array( $this, 'render_config_section' ), 'fonts-plugin-typekit' );
		add_settings_section( 'section-2', __( 'Results', 'olympus-google-fonts' ), array( $this, 'render_results_section' ), 'fonts-plugin-typekit' );
		add_settings_field( 'api_key', __( 'API Key', 'olympus-google-fonts' ), array( $this, 'render_settings' ), 'fonts-plugin-typekit', 'section-1' );
	}

	/**
	 * Render the Typekit submenu page.
	 */
	public function render_settings_page() {
		?>
		<h2><?php esc_html_e( 'Adobe Fonts (Typekit) Configuration', 'olympus-google-fonts' ); ?></h2>
		<form action="options.php" method="post">
		<?php
		settings_fields( 'fonts-plugin' );
		do_settings_sections( 'fonts-plugin-typekit' );
		if ( get_option( 'fp-typekit-data', false ) ) {
			echo '<a class="button button-primary" href="' . wp_nonce_url( admin_url( 'admin.php?page=fonts-plugin-typekit&action=reset' ), 'ogf-typekit-reset' ) . '">' . esc_html__( 'Refresh Fonts', 'olympus-google-fonts' ) . '</a>';
		}
		?>
		</form>
		<?php
	}

	/**
	 * Render the settings intro section of the Typekit page.
	 */
	public function render_config_section() {
		_e( '<p>You can retrieve your Adobe Fonts API Key here: <a target="_blank" href="https://fonts.adobe.com/account/tokens">https://fonts.adobe.com/account/tokens</a></p>', 'olympus-google-fonts' );
	}

	/**
	 * Render the Typekit settings.
	 */
	public function render_settings() {
		echo '<input type="text" name="fp-typekit[api_key]" value="' . esc_attr( $this->get_api_key() ) . '" />';
		echo '<input name="submit" class="button button-primary" type="submit" value="' . esc_attr__( 'Save', 'olympus-google-fonts' ) . '" />';
	}

	/**
	 * Render the results section of the admin page.
	 */
	public function render_results_section() {

		$kits = get_option( 'fp-typekit-data' );

		if ( ! is_array( $kits ) ) {
			if ( $this->get_api_key() ) {
				esc_html_e( 'There is a problem connecting to the API. Please check your API Key.', 'olympus-google-fonts' );
			} else {
				esc_html_e( 'Enter your Adobe Fonts API Key to retrieve the fonts.', 'olympus-google-fonts' );
			}
			return;
		}

		echo '<p>' . esc_html__( 'The following data was retrieved from the Typekit API:', 'olympus-google-fonts' ) . '</p>';
		echo '<ul class="fp-typekit-results">';

		foreach ( $kits as $id => $kit ) {
			echo '<li><strong>' . esc_html__( 'Kit: ', 'olympus-google-fonts' ) . '</strong>' . esc_attr( $id ) . '</li><ul>';

			$status = ( $kit['enabled'] ? esc_html__( 'Enabled', 'olympus-google-fonts' ) : esc_html__( 'Disabled', 'olympus-google-fonts' ) );

			echo '<li><strong>Status:</strong> ' . $status . '</li>';
			foreach ( $kit['families'] as $family ) {
				echo '<li><strong>' . esc_html__( 'Font Family: ', 'olympus-google-fonts' ) . '</strong>' . esc_attr( $family['label'] ) . '</li>';
			}

			if ( $kit['enabled'] ) {
				echo '<li><a href="' . wp_nonce_url( admin_url( 'admin.php?page=fonts-plugin-typekit&action=disable&kit_id=' . $id ), 'ogf-typekit-disable' ) . '">' . esc_html__( 'Disable Kit', 'olympus-google-fonts' ) . '</a></li>';
			} else {
				echo '<li><a href="' . wp_nonce_url( admin_url( 'admin.php?page=fonts-plugin-typekit&action=enable&kit_id=' . $id ), 'ogf-typekit-enable' ) . '">' . esc_html__( 'Enable Kit', 'olympus-google-fonts' ) . '</a></li>';
			}
			echo '</ul>';
		}
		echo '</ul>';
	}

	/**
	 * Retrieve the API key from the database if it exists.
	 */
	public function get_api_key() {
		$settings = get_option( 'fp-typekit', array() );

		if ( ! array_key_exists( 'api_key', $settings ) ) {
			return false;
		}

		return $settings['api_key'];
	}

	/**
	 * Quickly add inline CSS styles.
	 */
	public function css_styles() {
		if ( get_current_screen()->id !== 'fonts-plugin_page_fonts-plugin-typekit' ) {
			return;
		}
		echo '<style>.fp-typekit-results > ul {padding: 0 0 .5rem .5rem}</style>';
	}

	/**
	 * Get kits from Typekit API.
	 */
	public function get_kits() {

		// Reset the data if the user has clicked the button.
		if ( current_user_can('administrator') && isset( $_GET['action'] ) && $_GET['action'] === 'reset' ) {
			if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce($_GET['_wpnonce'], 'ogf-typekit-reset')) {
				return;
			}

			update_option( 'fp-typekit-data', false );
		}

		// Only perform action on the Fonts Plugin Typekit Page.
		if ( get_current_screen()->id !== 'fonts-plugin_page_fonts-plugin-typekit' ) {
			return;
		}

		// If data exists we don't need to query the API.
		if ( get_option( 'fp-typekit-data', false ) ) {
			return;
		}

		if ( ! $this->get_api_key() ) {
			return;
		}

		$url       = 'https://typekit.com/api/v1/json/kits/';
		$curl_args = array();
		$response  = wp_remote_request( $url . '?token=' . esc_attr( $this->get_api_key() ), $curl_args );

		if ( wp_remote_retrieve_response_code( $response ) != '200' ) {
			return;
		}

		$response_body = json_decode( wp_remote_retrieve_body( $response ) );
		$kits          = array();

		if ( is_array( $response_body->kits ) ) {
			// loop through the kits object.
			foreach ( $response_body->kits as $kit ) {
				// perform an API request for the individual kit.
				$data = $this->get_kit_from_api( $kit->id );

				if ( $data ) {
					// Enable kits by default.
					$kits[ $kit->id ]['enabled'] = true;
					// loop through the kit and standardize the data.
					foreach ( $data->families as $family ) {
						$kits[ $kit->id ]['families'][] = array(
							'label'    => $family->name,
							'id'       => $family->slug,
							'variants' => array_map( array( $this, 'standardize_variant_names' ), $family->variations ),
							'stack'    => $family->css_stack,
						);
					}
				}
			}
		}
		// Save the results so we don't need to query the API again.
		update_option( 'fp-typekit-data', $kits );
	}

	/**
	 * Get kit data from API.
	 *
	 * @param string $kit_id The Kit ID we are looking for.
	 */
	public function get_kit_from_api( $kit_id ) {
		$url       = 'https://typekit.com/api/v1/json/kits/' . esc_attr( $kit_id ) . '?token=' . esc_attr( $this->get_api_key() );
		$curl_args = array();
		$response  = wp_remote_request( $url, $curl_args );

		if ( wp_remote_retrieve_response_code( $response ) === 200 ) {
			$response_body = json_decode( wp_remote_retrieve_body( $response ) );
			return $response_body->kit;
		}

		return false;
	}

	/**
	 * Get kit data from API.
	 */
	public function manage_kits() {
		// Only perform action on the Fonts Plugin Typekit Page.
		if ( get_current_screen()->id !== 'fonts-plugin_page_fonts-plugin-typekit' ) {
			return;
		}

		if ( ! isset( $_GET['action'] ) ) {
			return;
		}

		// Reset the data if the user has clicked the button.
		if ( $_GET['action'] === 'disable' && isset( $_GET['kit_id'] ) ) {
			if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce($_GET['_wpnonce'], 'ogf-typekit-disable')) {
				return;
			}

			$kit_id = sanitize_text_field( $_GET['kit_id'] );
			$data                       = get_option( 'fp-typekit-data', array() );
			$data[ $kit_id ]['enabled'] = false;
			update_option( 'fp-typekit-data', $data );
		}

		// Reset the data if the user has clicked the button.
		if ( $_GET['action'] === 'enable' && isset( $_GET['kit_id'] ) ) {
			if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce($_GET['_wpnonce'], 'ogf-typekit-enable')) {
				return;
			}

			$kit_id = sanitize_text_field( $_GET['kit_id'] );
			$data                       = get_option( 'fp-typekit-data', array() );
			$data[ $kit_id ]['enabled'] = true;
			update_option( 'fp-typekit-data', $data );
		}
	}

	/**
	 * Use the Fonts Plugin naming convention instead of Typekit's.
	 *
	 * @param string $variant The variant to standarize.
	 */
	public function standardize_variant_names( $variant ) {
		$variants_key = array(
			'n1' => '100',
			'n2' => '200',
			'n3' => '300',
			'n4' => '400',
			'n5' => '500',
			'n6' => '600',
			'n7' => '700',
			'n8' => '800',
			'n9' => '900',
			'i1' => '100i',
			'i2' => '200i',
			'i3' => '300i',
			'i4' => '400i',
			'i5' => '500i',
			'i6' => '600i',
			'i7' => '700i',
			'i8' => '800i',
			'i9' => '900i',
		);

		if ( array_key_exists( $variant, $variants_key ) ) {
			return $variants_key[ $variant ];
		} else {
			return $variant;
		}
	}

	/**
	 * Get Typekit fonts array.
	 */
	public static function get_fonts() {
		$fonts = array();
		$kits  = get_option( 'fp-typekit-data', array() );
		if ( ! is_array( $kits ) ) {
			return $fonts;
		}

		foreach ( $kits as $kit ) {
			if ( ! $kit['enabled'] ) {
				continue;
			}
			foreach ( $kit['families'] as $family ) {
				$fonts[ 'tk-' . $family['id'] ] = array(
					'id'       => $family['id'],
					'label'    => $family['label'],
					'variants' => $family['variants'],
					'stack'    => $family['stack'],
				);
			}
		}
		return $fonts;
	}

	/**
	 * Enqueue typekit CSS files.
	 */
	public function enqueue_css() {
		$typekit_data = get_option( 'fp-typekit-data', array() );

		if ( is_array( $typekit_data ) ) {
			foreach ( $typekit_data as $id => $values ) {

				// skip if the kit is disabled.
				if ( $values['enabled'] === false ) {
					continue;
				}

				$clean_id = sanitize_text_field( $id );

				wp_enqueue_style( 'typekit-' . $clean_id, 'https://use.typekit.com/' . $clean_id . '.css', array(), OGF_VERSION );
			}
		}
	}
}

new OGF_Typekit();
includes/class-ogf-classic-editor.php000064400000015723151213254240013653 0ustar00<?php
/**
 * Add Google Fonts dropdown to the classic editor.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
	/**
	 * The 'Classic Editor' class.
	 */
	class OGF_Classic_Editor {

		/**
		 * OGF_Fonts object.
		 *
		 * @var object
		 */
		private $ogf_fonts;

		/**
		 * Array of system fonts.
		 *
		 * @var array
		 */
		private $system_fonts;

		/**
		 * Array of custom fonts.
		 *
		 * @var array
		 */
		private $custom_fonts;

		/**
		 * Array of typekit fonts.
		 *
		 * @var array
		 */
		private $typekit_fonts;

		/**
		 * Class constructor.
		 */
		public function __construct() {
			if ( true === get_theme_mod( 'ogf_disable_post_level_controls', false ) ) {
				return;
			}

			$this->ogf_fonts     = new OGF_Fonts();
			$this->system_fonts  = ogf_system_fonts();
			$this->custom_fonts  = ogf_custom_fonts();
			$this->typekit_fonts = ogf_typekit_fonts();

			add_filter( 'tiny_mce_before_init', array( $this, 'add_font_sizes' ) );
			add_filter( 'mce_buttons', array( $this, 'tinymce_add_buttons' ), 1 );
			add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_custom_options' ), 100 );
			add_filter( 'ogf_classic_font_formats', array( $this, 'tinymce_add_fonts' ), 100 );
			add_action( 'admin_init', array( $this, 'google_fonts_enqueue' ) );
			add_action( 'admin_init', array( $this, 'typekit_fonts_enqueue' ) );
		}

		/**
		 * Add Formats to TinyMCE
		 * - https://developer.wordpress.org/reference/hooks/tiny_mce_before_init/
		 * - https://codex.wordpress.org/Plugin_API/Filter_Reference/tiny_mce_before_init
		 *
		 * @param array $args   - Arguments used to initialize the tinyMCE
		 *
		 * @return array $args  - Modified arguments
		 */
		function add_font_sizes( $args ) {
			if ( true === get_theme_mod( 'ogf_use_px', true ) ) {
				$args['fontsize_formats'] = '6px 7px 8px 9px 10px 11px 12px 13px 14px 15px 16px 17px 18px 19px 20px 21px 22px 23px 24px 25px 26px 27px 28px 29px 30px 31px 32px 33px 34px 35px 36px 37px 38px 39px 40px 41px 42px 43px 44px 45px 46px 47px 48px 49px 50px 51px 52px 53px 55px 55px 56px 57px 58px 59px 60px 61px 62px 63px 66px 65px 66px 67px 68px 69px 70px 71px 72px 73px 77px 75px 76px 77px 78px 79px 80px';
			}

			return apply_filters( 'ogf_classic_font_sizes', $args );
		}

		/**
		 * Add buttons to the editor.
		 *
		 * @param array $buttons Tiny MCE buttons array.
		 * @return array Modified Tiny MCE buttons array.
		 */
		public function tinymce_add_buttons( $buttons ) {
			return array_merge(
				array( 'fontselect', 'fontsizeselect' ),
				$buttons
			);
		}

		/**
		 * Customize the Tiny MCE settings.
		 *
		 * @param array $opt Tiny MCE options.
		 * @return array Modified Tiny MCE options.
		 */
		public function tinymce_custom_options( $opt ) {
			$base_type     = get_theme_mod( 'ogf_body_font' );
			$headings_type = get_theme_mod( 'ogf_headings_font' );

			if ( ogf_is_custom_font( $base_type ) ) {
				$name = str_replace( 'cf-', '', $base_type );
				$font = OGF_Fonts_Taxonomy::get_by_name($name);
				$base_type = ! empty( $font['family'] ) ? $font['family'] : $name;
			} elseif ( ogf_is_system_font( $base_type ) ) {
				$base_type = str_replace( 'sf-', '', $base_type );
				$base_type = $this->typekit_fonts[ $base_type ]['stack'] ?? $base_type;
			} elseif ( ogf_is_google_font( $base_type ) ) {
				$base_type = $this->ogf_fonts->get_font_name( $base_type );
			} elseif ( ogf_is_typekit_font( $base_type ) ) {
				$base_type = $this->typekit_fonts[ $base_type ]['stack'] ?? $base_type;
			}

			if ( ogf_is_custom_font( $headings_type ) ) {
				$name = str_replace( 'cf-', '', $headings_type );
				$font = OGF_Fonts_Taxonomy::get_by_name($name);
				$headings_type = ! empty( $font['family'] ) ? $font['family'] : $name;
			} elseif ( ogf_is_system_font( $headings_type ) ) {
				$headings_type = str_replace( 'sf-', '', $headings_type );
				$headings_type = $this->system_fonts[ $headings_type ]['stack'] ?? $headings_type;
			} elseif ( ogf_is_google_font( $headings_type ) ) {
				$headings_type = $this->ogf_fonts->get_font_name( $headings_type );
			} elseif ( ogf_is_typekit_font( $headings_type ) ) {
				$headings_type = $this->typekit_fonts[ $headings_type ]['label'] ?? $headings_type;
			}

			$opt['font_formats'] = apply_filters( 'ogf_classic_font_formats', 'Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;' );

			if ( ! isset( $opt['content_style'] ) ) {
				$opt['content_style'] = '';
			}

			if ( $base_type !== 'default' ) {
				$opt['content_style'] .= 'body#tinymce, body#tinymce p { font-family: ' . str_replace( '"', '\'', $base_type ) . ' !important; }';
			}
			if ( $headings_type !== 'default' ) {
				$opt['content_style'] .= '#tinymce h1, #tinymce h2, #tinymce h3, #tinymce h4, #tinymce h5, #tinymce h6 { font-family: ' . str_replace( '"', '\'', $headings_type ) . ' !important; }';
			}

			$opt['content_style'] .= ogf_return_custom_font_css();
			return $opt;
		}

		/**
		 * Add fonts to the classic editor list.
		 *
		 * @param string $old_default The default fonts.
		 * @return string Modified fonts string.
		 */
		public function tinymce_add_fonts( $old_default ) {
			$new_default = '';
			$choices     = $this->ogf_fonts->choices;
			foreach ( array_unique( $choices ) as $font ) {
				if ( ogf_is_google_font( $font ) ) {
					$new_default .= $this->ogf_fonts->get_font_name( $font ) . '=' . $this->ogf_fonts->get_font_name( $font ) . ';';
				}
			}

			foreach ( $this->custom_fonts as $font ) {
				$stack = ! empty( $font['family'] ) ? $font['family'] : $font['stack'];

				$new_default .= $font['label'] . '=' . $stack . ';';
			}

			foreach ( $this->typekit_fonts as $font ) {
				$new_default .= $font['label'] . '=' . str_replace( '"', '', $font['stack'] ) . ';';
			}

			$new_default .= $old_default;
			return $new_default;
		}

		/**
		 * Enqueue the Google Fonts in TinyMCE.
		 */
		public function google_fonts_enqueue() {
			global $editor_styles;
			if ( $this->ogf_fonts->has_google_fonts() ) {
				$editor_styles[] = $this->ogf_fonts->build_url();
			}
		}

		/**
		 * Enqueue the Typekit Fonts in TinyMCE.
		 */
		public function typekit_fonts_enqueue() {
			global $editor_styles;

			$typekit_data = get_option( 'fp-typekit-data', array() );

			if ( is_array( $typekit_data ) ) {
				foreach ( $typekit_data as $id => $values ) {
					// skip if the kit is disabled.
					if ( $values['enabled'] === false ) {
						continue;
					}

					$editor_styles[] = esc_url( 'https://use.typekit.com/' . $id . '.css' );
				}
			}
		}
	}
endif;

/*
 * Instantiate the OGF_Classic_Editor class.
 */
new OGF_Classic_Editor();
includes/class-ogf-fonts-taxonomy.php000064400000010777151213254250013760 0ustar00<?php
/**
 * Custom Fonts Upload Taxonomy
 *
 * @package olympus-google-fonts
 */

/**
 * OGF_Fonts_Taxonomy
 */
class OGF_Fonts_Taxonomy {
	/**
	 * Instance of OGF_Fonts_Taxonomy
	 *
	 * @var object OGF_Fonts_Taxonomy
	 */
	private static $instance = null;

	/**
	 * Fonts
	 *
	 * @var array $fonts
	 */
	public static $fonts = null;

	/**
	 * Capability required for this menu to be displayed
	 *
	 * @var string $capability
	 */
	public static $capability = 'edit_theme_options';

	/**
	 * Register Taxonomy
	 *
	 * @var string $register_taxonomy
	 */
	public static $taxonomy_slug = 'ogf_custom_fonts';

	/**
	 * Instance of OGF_Fonts_Taxonomy.
	 *
	 * @return object Class object.
	 */
	public static function get_instance() {
		if ( ! isset( self::$instance ) ) {
			self::$instance = new self();
		}

		return self::$instance;
	}

	/**
	 * Constructor.
	 */
	public function __construct() {
		$this->register_fonts_taxonomy();
	}

	/**
	 * Register custom font taxonomy
	 */
	public function register_fonts_taxonomy() {
		$labels = array(
			'name'              => __( 'Custom Fonts', 'olympus-google-fonts' ),
			'singular_name'     => __( 'Font', 'olympus-google-fonts' ),
			'menu_name'         => _x( 'Custom Fonts', 'Admin menu name', 'olympus-google-fonts' ),
			'search_items'      => __( 'Search Fonts', 'olympus-google-fonts' ),
			'all_items'         => __( 'All Fonts', 'olympus-google-fonts' ),
			'parent_item'       => __( 'Parent Font', 'olympus-google-fonts' ),
			'parent_item_colon' => __( 'Parent Font:', 'olympus-google-fonts' ),
			'edit_item'         => __( 'Edit Font', 'olympus-google-fonts' ),
			'update_item'       => __( 'Update Font', 'olympus-google-fonts' ),
			'add_new_item'      => __( 'Add New Font', 'olympus-google-fonts' ),
			'new_item_name'     => __( 'New Font Name', 'olympus-google-fonts' ),
			'not_found'         => __( 'No fonts found', 'olympus-google-fonts' ),
		);

		$args = array(
			'hierarchical'      => false,
			'labels'            => $labels,
			'public'            => false,
			'show_in_nav_menus' => false,
			'show_ui'           => true,
			'capabilities'      => array( self::$capability ),
			'query_var'         => false,
			'rewrite'           => false,
		);

		register_taxonomy(
			self::$taxonomy_slug,
			array(),
			$args
		);
	}

	/**
	 * Default fonts
	 *
	 * @param array $fonts fonts array of fonts.
	 * @return array
	 */
	protected static function default_args( $fonts ) {
		return wp_parse_args(
			$fonts,
			array(
				'woff'    => '',
				'woff2'   => '',
				'ttf'     => '',
				'otf'     => '',
				'weight'  => '',
				'style'   => '',
				'family'  => '',
				'preload' => '1',
			)
		);
	}

	/**
	 * Get fonts
	 *
	 * @return array $fonts fonts array of fonts.
	 */
	public static function get_fonts() {

		if ( is_null( self::$fonts ) ) {
			self::$fonts = array();

			$terms = get_terms(
				self::$taxonomy_slug,
				array(
					'hide_empty' => false,
				)
			);

			if ( ! empty( $terms ) ) {
				foreach ( $terms as $term ) {
					self::$fonts[ $term->slug ]['id']    = $term->slug;
					self::$fonts[ $term->slug ]['label'] = $term->name;
					self::$fonts[ $term->slug ]['stack'] = $term->slug;
					self::$fonts[ $term->slug ]['files'] = self::get_font_data( $term->term_id );
					self::$fonts[ $term->slug ]['family'] = self::$fonts[ $term->slug ]['files']['family'];

				}
			}
		}
		return self::$fonts;
	}

	/**
	 * Get font data from name
	 *
	 * @param string $name custom font name.
	 * @return array $font_data custom font data.
	 */
	public static function get_by_name( $name ) {

		$term = get_term_by('name', $name, self::$taxonomy_slug);

		if ( ! $term ) {
			return false;
		}

		$font_data = self::get_font_data( $term->term_id );

		return $font_data;
	}

	/**
	 * Get font links
	 *
	 * @param int $term_id custom font term id.
	 * @return array $links custom font data links.
	 */
	public static function get_font_data( $term_id ) {
		$data = get_option( 'taxonomy_' . self::$taxonomy_slug . "_{$term_id}", array() );
		return self::default_args( $data );
	}

	/**
	 * Update font data from name
	 *
	 * @param array $posted custom font data.
	 * @param int   $term_id custom font term id.
	 */
	public static function update_font_data( $posted, $term_id ) {
		$data = self::get_font_data( $term_id );
		foreach ( array_keys( $data ) as $key ) {
			if ( isset( $posted[ $key ] ) ) {
				$data[ $key ] = $posted[ $key ];
			} else {
				$data[ $key ] = '';
			}
		}
		update_option( 'taxonomy_' . self::$taxonomy_slug . "_{$term_id}", $data );
	}
}

OGF_Fonts_Taxonomy::get_instance();
includes/class-ogf-welcome.php000064400000005376151213254250012405 0ustar00<?php
/**
 * Welcome Notice Class.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

if ( ! class_exists( 'OGF_Welcome' ) ) :
	/**
	 * The welcome.
	 */
	class OGF_Welcome {

		/**
		 * Slug.
		 *
		 * @var string $slug
		 */
		private $slug;

		/**
		 * Message.
		 *
		 * @var string $message
		 */
		private $message;

		/**
		 * Type.
		 *
		 * @var string $type
		 */
		private $type;

		/**
		 * Class constructor.
		 *
		 * @param string $slug Slug.
		 * @param string $message Message.
		 * @param string $type Type.
		 */
		public function __construct( $slug, $message, $type = 'success' ) {

			if ( ! is_admin() ) {
				return;
			}

			$this->slug    = $slug;
			$this->message = $message;
			$this->type    = $type;

			// Add actions.
			add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
			add_action( 'wp_ajax_ogf_dismiss_notice', array( $this, 'dismiss_notice' ) );
			add_action( 'admin_init', array( $this, 'dismiss_notice_backup' ) );
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
		}

		/**
		 * Enqeue the styles and scripts.
		 */
		public function enqueue() {
			wp_enqueue_script( 'ogf-admin', esc_url( OGF_DIR_URL . 'assets/js/admin.js' ), array( 'jquery' ), OGF_VERSION, false );
		}

		/**
		 * AJAX handler to store the state of dismissible notices.
		 */
		public function dismiss_notice() {
			if ( isset( $_POST['type'] ) ) {
				// Pick up the notice "type" - passed via jQuery (the "data-notice" attribute on the notice).
				$type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
				update_option( 'dismissed-' . $type, true );
			}
		}

		/**
		 * Backup method to remove notice.
		 */
		public function dismiss_notice_backup() {
			if ( isset( $_GET['dismiss_ogf_welcome'] ) ) {
				update_option( 'dismissed-' . $this->slug, true );
			}
		}

		/**
		 * Display the admin notice.
		 */
		public function display_admin_notice() {
			if ( get_option( 'dismissed-' . $this->slug, false ) ) {
				return;
			}
			?>

			<div class="notice notice-<?php echo esc_attr( $this->type ); ?> is-dismissible notice-dismiss-dc" data-notice="<?php echo esc_attr( $this->slug ); ?>">
				<p>
					<?php
						echo $this->message; // WPCS: XSS ok.
					?>
				</p>
			</div>
			<?php
		}
	}
endif;

$message = sprintf(
	// translators: %s Link to Google Fonts customizer panel.
	__( 'Thank you for installing <strong>Google Fonts for WordPress</strong>! Configure your fonts here: <a href="%s">WordPress Customizer</a>', 'olympus-google-fonts' ),
	esc_url( admin_url( '/customize.php?autofocus[panel]=ogf_google_fonts' ) )
);

/*
* Instantiate the OGF_Welcome class.
*/
new OGF_Welcome( 'ogf-welcome', $message, 'success' );
includes/functions.php000064400000041044151213254250011076 0ustar00<?php
/**
 * Helper functions.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * An array of user-defined elements that can be customized using the plugin.
 *
 * @return array An array of user-defined elements.
 */
function ogf_get_custom_elements() {
	$theme_mod = get_theme_mod( 'ogf_custom_selectors', false );

	if ( ! $theme_mod ) {
		return array();
	}

	$custom_selectors = json_decode( $theme_mod, true );

	foreach ( $custom_selectors as &$selector ) {
		$selector['section'] = 'ogf_advanced__custom';
	}

	return $custom_selectors;
}

/**
 * An array of elements that can be customized using the plugin.
 *
 * @return array Elements the plugin can target.
 */
function ogf_get_elements() {
	$elements = array(
		'ogf_body'              => array(
			'label'       => esc_html__( 'Base Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your content.', 'olympus-google-fonts' ),
			'section'     => 'ogf_basic',
			'selectors'   => 'body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer',
		),
		'ogf_headings'          => array(
			'label'       => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_basic',
			'selectors'   => '#site-title, .site-title, #site-title a, .site-title a, .entry-title, .entry-title a, h1, h2, h3, h4, h5, h6, .widget-title, .elementor-heading-title',
		),
		'ogf_inputs'            => array(
			'label'       => esc_html__( 'Buttons and Inputs Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your input fields and buttons.', 'olympus-google-fonts' ),
			'section'     => 'ogf_basic',
			'selectors'   => 'button, .button, input, select, textarea, .wp-block-button, .wp-block-button__link',
		),
		'ogf_site_title'        => array(
			'label'       => esc_html__( 'Site Title Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your site title.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__branding',
			'selectors'   => '#site-title, .site-title, #site-title a, .site-title a, #site-logo, #site-logo a, #logo, #logo a, .logo, .logo a, .wp-block-site-title, .wp-block-site-title a',
		),
		'ogf_site_description'  => array(
			'label'       => esc_html__( 'Site Description Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your site description.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__branding',
			'selectors'   => '#site-description, .site-description, #site-tagline, .site-tagline, .wp-block-site-tagline',
		),
		'ogf_site_navigation'   => array(
			'label'       => esc_html__( 'Navigation Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your site navigation.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__navigation',
			'selectors'   => '.menu, .page_item a, .menu-item a, .wp-block-navigation, .wp-block-navigation-item__content',
		),
		'ogf_post_page_content' => array(
			'label'       => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your post and page content.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content, .entry-content p, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .excerpt, .excerpt p, .type-post p, .type-page p, .wp-block-post-content, .wp-block-post-excerpt, .elementor, .elementor p',
		),
		'ogf_post_page_h1'      => array(
			'label'       => esc_html__( 'Title and H1 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your title and H1 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.wp-block-post-title, .wp-block-post-title a, .entry-title, .entry-title a, .post-title, .post-title a, .page-title, .entry-content h1, #content h1, .type-post h1, .type-page h1, .elementor h1',
		),
		'ogf_post_page_h2'      => array(
			'label'       => esc_html__( 'H2 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your H2 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content h2, .post-content h2, .page-content h2, #content h2, .type-post h2, .type-page h2, .elementor h2',
		),
		'ogf_post_page_h3'      => array(
			'label'       => esc_html__( 'H3 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your H3 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content h3, .post-content h3, .page-content h3, #content h3, .type-post h3, .type-page h3, .elementor h3',
		),
		'ogf_post_page_h4'      => array(
			'label'       => esc_html__( 'H4 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your H4 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content h4, .post-content h4, .page-content h4, #content h4, .type-post h4, .type-page h4, .elementor h4',
		),
		'ogf_post_page_h5'      => array(
			'label'       => esc_html__( 'H5 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your H5 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content h5, .post-content h5, .page-content h5, #content h5, .type-post h5, .type-page h5, .elementor h5',
		),
		'ogf_post_page_h6'      => array(
			'label'       => esc_html__( 'H6 Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your H6 headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => '.entry-content h6, .post-content h6, .page-content h6, #content h6, .type-post h6, .type-page h6, .elementor h6',
		),
		'ogf_lists'             => array(
			'label'       => esc_html__( 'Lists', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for lists.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => 'ul, ol, ul li, ol li, li',
		),
		'ogf_blockquotes'       => array(
			'label'       => esc_html__( 'Quotes', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for quotations.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__content',
			'selectors'   => 'blockquote, .wp-block-quote, blockquote p, .wp-block-quote p',
		),
		'ogf_sidebar_headings'  => array(
			'label'       => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your sidebar headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__sidebar',
			'selectors'   => '.widget-title, .widget-area h1, .widget-area h2, .widget-area h3, .widget-area h4, .widget-area h5, .widget-area h6, #secondary h1, #secondary h2, #secondary h3, #secondary h4, #secondary h5, #secondary h6',
		),
		'ogf_sidebar_content'   => array(
			'label'       => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your sidebar content.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__sidebar',
			'selectors'   => '.widget-area, .widget, .sidebar, #sidebar, #secondary',
		),
		'ogf_footer_headings'   => array(
			'label'       => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your footer headings.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__footer',
			'selectors'   => 'footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, .footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6, #footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6',
		),
		'ogf_footer_content'    => array(
			'label'       => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
			'description' => esc_html__( 'Select and configure the font for your footer content.', 'olympus-google-fonts' ),
			'section'     => 'ogf_advanced__footer',
			'selectors'   => 'footer, #footer, .footer, .site-footer',
		),
	);

	return apply_filters( 'ogf_elements', $elements );
}

/**
 * Return an array of all available Google Fonts.
 *
 * @return array All Google Fonts.
 */
function ogf_fonts_array() {
	$fonts = array();

	$fonts_json = file_get_contents( OGF_DIR_PATH . '/blocks/src/google-fonts/fonts.json' );

	// Change the object to a multidimensional array.
	$fonts_array = json_decode( $fonts_json, true );

	// Format the variants array for easier use.
	foreach ( $fonts_array as $key => $font ) {
		$fonts_array[ $key ] = $font;
	}

	// Change the array key to the font's ID.
	foreach ( $fonts_array as $font ) {
		$id                = trim( strtolower( str_replace( ' ', '-', $font['f'] ) ) );
		$fonts[ $id ]      = $font;
		$fonts[ $id ]['v'] = array_flip( $fonts[ $id ]['v'] );
	}

	return $fonts;
}

/**
 * Return a array of custom fonts.
 *
 * @return array User uploaded fonts.
 */
function ogf_custom_fonts() {
	return OGF_Fonts_Taxonomy::get_fonts();
}

/**
 * Return a array of custom fonts.
 * Without duplicate font-family.
 *
 * @return array User uploaded fonts.
 */
function ogf_custom_fonts_unique() {
	$fonts = OGF_Fonts_Taxonomy::get_fonts();
	$new_fonts = [];
	foreach ( $fonts as $key => $value ) {
		if ( $value['family'] ) {
			$new_fonts[$key] = $value['family'];
		} else {
			$new_fonts[$key] = $value['label'];
		}
	}
	return array_unique( $new_fonts );
}

/**
 * Return a array of typekit fonts.
 *
 * @return array Typekit fonts.
 */
function ogf_typekit_fonts() {
	return OGF_Typekit::get_fonts();
}

/**
 * Return a array of system fonts.
 *
 * @return array System fonts.
 */
function ogf_system_fonts() {
	$system_fonts = array(
		'arial'           => array(
			'id'    => 'arial',
			'label' => esc_html__( 'Arial', 'olympus-google-fonts' ),
			'stack' => 'Arial, Helvetica Neue, Helvetica, sans-serif',
		),
		'calibri'         => array(
			'id'    => 'calibri',
			'label' => esc_html__( 'Calibri', 'olympus-google-fonts' ),
			'stack' => 'Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif',
		),
		'century-gothic'  => array(
			'id'    => 'century-gothic',
			'label' => esc_html__( 'Century Gothic', 'olympus-google-fonts' ),
			'stack' => 'Century Gothic, CenturyGothic, AppleGothic, sans-serif',
		),
		'consolas'        => array(
			'id'    => 'consolas',
			'label' => esc_html__( 'Consolas', 'olympus-google-fonts' ),
			'stack' => 'Consolas, monaco, monospace',
		),
		'courier-new'     => array(
			'id'    => 'courier-new',
			'label' => esc_html__( 'Courier New', 'olympus-google-fonts' ),
			'stack' => 'Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace',
		),
		'helvetica'       => array(
			'id'    => 'helvetica',
			'label' => esc_html__( 'Helvetica Neue', 'olympus-google-fonts' ),
			'stack' => 'Helvetica Neue, Helvetica, Arial, sans-serif',
		),
		'georgia'         => array(
			'id'    => 'georgia',
			'label' => esc_html__( 'Georgia', 'olympus-google-fonts' ),
			'stack' => 'Georgia, Times, Times New Roman, serif',
		),
		'futura'          => array(
			'id'    => 'futura',
			'label' => esc_html__( 'Futura', 'olympus-google-fonts' ),
			'stack' => 'Futura, Trebuchet MS, Arial, sans-serif',
		),
		'lucida-grande'   => array(
			'id'    => 'lucida-grande',
			'label' => esc_html__( 'Lucida Grande', 'olympus-google-fonts' ),
			'stack' => 'Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif',
		),
		'segoe-ui'        => array(
			'id'    => 'segoe-ui',
			'label' => esc_html__( 'Segoe UI', 'olympus-google-fonts' ),
			'stack' => 'Segoe UI, Frutiger, Frutiger Linotype, Dejavu Sans, Helvetica Neue, Arial, sans-serif',
		),
		'tahoma'          => array(
			'id'    => 'tahoma',
			'label' => esc_html__( 'Tahoma', 'olympus-google-fonts' ),
			'stack' => 'Tahoma, Verdana, Segoe, sans-serif',
		),
		'times-new-roman' => array(
			'id'    => 'times-new-roman',
			'label' => esc_html__( 'Times New Roman', 'olympus-google-fonts' ),
			'stack' => 'TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif',
		),
		'trebuchet'       => array(
			'id'    => 'trebuchet',
			'label' => esc_html__( 'Trebuchet MS', 'olympus-google-fonts' ),
			'stack' => 'Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif',
		),
		'palatino'        => array(
			'id'    => 'palatino',
			'label' => esc_html__( 'Palatino', 'olympus-google-fonts' ),
			'stack' => 'Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif',
		),
		'verdana'         => array(
			'id'    => 'verdana',
			'label' => esc_html__( 'Verdana', 'olympus-google-fonts' ),
			'stack' => 'Verdana, Geneva, sans-serif',
		),
	);

	$filtered_system_fonts = apply_filters( 'ogf_system_fonts', $system_fonts );

	return $filtered_system_fonts;
}

/**
 * Return the full range of font variants.
 *
 * @return array Font variants.
 */
function ogf_font_variants() {
	return array(
		'0'    => esc_html__( '- Default -', 'olympus-google-fonts' ),
		'100'  => esc_html__( 'Thin', 'olympus-google-fonts' ),
		'200'  => esc_html__( 'Extra Light', 'olympus-google-fonts' ),
		'300'  => esc_html__( 'Light', 'olympus-google-fonts' ),
		'400'  => esc_html__( 'Normal', 'olympus-google-fonts' ),
		'500'  => esc_html__( 'Medium', 'olympus-google-fonts' ),
		'600'  => esc_html__( 'Semi Bold', 'olympus-google-fonts' ),
		'700'  => esc_html__( 'Bold', 'olympus-google-fonts' ),
		'800'  => esc_html__( 'Extra Bold', 'olympus-google-fonts' ),
		'900'  => esc_html__( 'Ultra Bold', 'olympus-google-fonts' ),
		'100i' => esc_html__( 'Thin Italic', 'olympus-google-fonts' ),
		'200i' => esc_html__( 'Extra Light Italic', 'olympus-google-fonts' ),
		'300i' => esc_html__( 'Light Italic', 'olympus-google-fonts' ),
		'400i' => esc_html__( 'Normal Italic', 'olympus-google-fonts' ),
		'500i' => esc_html__( 'Medium Italic', 'olympus-google-fonts' ),
		'600i' => esc_html__( 'Semi Bold Italic', 'olympus-google-fonts' ),
		'700i' => esc_html__( 'Bold Italic', 'olympus-google-fonts' ),
		'800i' => esc_html__( 'Extra Bold Italic', 'olympus-google-fonts' ),
		'900i' => esc_html__( 'Ultra Bold Italic', 'olympus-google-fonts' ),
	);
}

/**
 * Check if a font is a system font (not Google Font).
 *
 * @param string $font_id The ID of the font to check.
 * @return bool
 */
function ogf_is_system_font( $font_id ) {
	if ( ! is_string( $font_id ) ) {
		return false;
	}

	if ( strpos( $font_id, 'sf-' ) === 0 ) {
		return true;
	}
	return false;
}

/**
 * Check if a font is a custom font (not Google Font).
 *
 * @param string $font_id The ID of the font to check.
 * @return bool
 */
function ogf_is_custom_font( $font_id ) {
	if ( ! is_string( $font_id ) ) {
		return false;
	}

	if ( strpos( $font_id, 'cf-' ) === 0 ) {
		return true;
	}
	return false;
}

/**
 * Check if a font is a Typekit font (not Google Font).
 *
 * @param string $font_id The ID of the font to check.
 * @return bool
 */
function ogf_is_typekit_font( $font_id ) {
	if ( ! is_string( $font_id ) ) {
		return false;
	}

	if ( strpos( $font_id, 'tk-' ) === 0 ) {
		return true;
	}
	return false;
}

/**
 * Check if a font is a Google font.
 *
 * @param string $font_id The ID of the font to check.
 * @return bool
 */
function ogf_is_google_font( $font_id ) {
	if ( ! is_string( $font_id ) ) {
		return false;
	}

	if ( array_key_exists( $font_id, OGF_Fonts::$google_fonts ) ) {
		return true;
	}

	return false;
}

/**
 * Check if WooCommerce is activated.
 */
function ogf_is_woocommerce_activated() {
	if ( class_exists( 'woocommerce' ) ) {
		return true;
	} else {
		return false;
	}
}

/**
 * Check if MemberPress Courses is activated.
 */
function ogf_is_memberpress_courses_activated() {
	include_once ABSPATH . 'wp-admin/includes/plugin.php';

	if ( is_plugin_active( 'memberpress-courses/main.php' ) ) {
		return true;
	} else {
		return false;
	}
}

/**
 * Check if Fonts Plugin Pro is activated.
 */
function ogf_is_fpp_activated() {
	if ( function_exists( 'fonts_plugin_pro_init' ) ) {
		return true;
	} else {
		return false;
	}
}
includes/class-ogf-clear-cache.php000064400000005305151213254250013071 0ustar00<?php
/**
 * Reset fonts class.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

if ( ! class_exists( 'OGF_Clear_Cache' ) ) :
	/**
	 * The 'Reset Fonts' class.
	 */
	class OGF_Clear_Cache {

		/**
		 * WP_Customize object.
		 *
		 * @var WP_Customize_Manager
		 */
		private $wp_customize;

		/**
		 * Class constructor.
		 */
		public function __construct() {
			add_action( 'customize_register', array( $this, 'customize_register' ) );
			add_action( 'wp_ajax_customizer_clear_cache', array( $this, 'ajax_customizer_clear_cache' ) );
			add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_scripts' ), 101 );
		}

		/**
		 * Add localize script to assets/js/customize-controls.js.
		 */
		public function customize_scripts() {
			wp_localize_script(
				'ogf-customize-controls',
				'clearCache',
				array(
					'confirm' => esc_html__( 'This will clear the local font cache.', 'olympus-google-fonts' ),
					'nonce'   => wp_create_nonce( 'ogf_clear_cache' ),
				)
			);
		}

		/**
		 * Store a reference to `WP_Customize_Manager` instance
		 *
		 * @param Object $wp_customize Global $wp_customize object.
		 */
		public function customize_register( $wp_customize ) {
			$this->wp_customize = $wp_customize;

			$wp_customize->add_control(
				'ogf_clear_cache',
				array(
					'type'        => 'button',
					'label'       => __( 'Clear Font Cache', 'olympus-google-fonts' ),
					'description' => __( 'This will clear the local font cache.', 'olympus-google-fonts' ),
					'settings'    => array(),
					'priority'    => 100,
					'section'     => 'ogf_debugging',
					'input_attrs' => array(
						'value' => __( 'Clear Cache', 'olympus-google-fonts' ),
						'class' => 'button button-link-delete',
					),
				)
			);
		}

		/**
		 * The Clear Cache AJAX request handler.
		 */
		public function ajax_customizer_clear_cache() {
			if ( ! $this->wp_customize->is_preview() ) {
				wp_send_json_error( 'not_preview' );
			}

			if ( ! check_ajax_referer( 'ogf_clear_cache', 'security' ) ) {
				wp_send_json_error( 'invalid_nonce' );
			}

			$this->clear();

			wp_send_json_success();
		}

		/**
		 * Perform the Cache Clear.
		 */
		public function clear() {
			$fonts = new OGF_Fonts();

			if ( $fonts->has_google_fonts() ) {
				$url       = $fonts->build_url();
				$url_to_id = md5( $url );
				delete_transient( 'ogf_external_font_css_' . $url_to_id );
			}

			if ( class_exists( 'FPP_Host_Google_Fonts_Locally' ) ) {
				$loader = new FPP_Host_Google_Fonts_Locally();
				$loader->delete_fonts_folder();
			}
		}
	}
endif;

/*
 * Instantiate the OGF_Clear_Cache class.
 */
new OGF_Clear_Cache();
includes/class-ogf-dashboard-widget.php000064400000006066151213254250014157 0ustar00<?php
/**
 * Dashboard Widget
 *
 * @package olympus-google-fonts
 */

/**
 * Class ogf_dashboard_widget
 */
class OGF_Dashboard_Widget {

	/**
	 * Constructor
	 *
	 * Add the action to the constructor.
	 */
	public function __construct() {
		add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widget' ) );
	}

	/**
	 * Add Dashboard Widget
	 *
	 * @since 2.3.10
	 */
	public function add_dashboard_widget() {
		wp_add_dashboard_widget(
			'ogf-rss-feed',
			esc_html__( 'Typography News from Fonts Plugin', 'olympus-google-fonts' ),
			array(
				$this,
				'display_rss_dashboard_widget',
			)
		);
	}

	/**
	 * Show Widget
	 */
	public function show_widget() {
		$show = true;

		if ( apply_filters( 'ogf_show_news', true ) === false ) {
			// API filter hook to disable showing dashboard widget.
			return false;
		}

		return $show;
	}

	/**
	 * Display RSS Dashboard Widget
	 */
	public function display_rss_dashboard_widget() {
		// check if the user has chosen not to display this widget through screen options.
		$current_screen = get_current_screen();
		$hidden_widgets = get_user_meta( get_current_user_id(), 'metaboxhidden_' . $current_screen->id );
		if ( $hidden_widgets && count( $hidden_widgets ) > 0 && is_array( $hidden_widgets[0] ) && in_array( 'ogf-rss-feed', $hidden_widgets[0], true ) ) {
			return;
		}

		$rss_items = array(
			'first'  => array(
				'url'     => 'https://fontsplugin.com/speed-up-wordpress/',
				'title'   => 'How To Speed Up WordPress (A Non-Technical Guide)',
				'date'    => 'Nov 16th 2020',
				'content' => 'You hate slow websites, your visitors do too. Studies have shown that 47% of users expect pages to load in two seconds or less. ...',
			),
			'second' => array(
				'url'     => 'https://fontsplugin.com/disable-google-fonts/',
				'title'   => 'How to Disable Google Fonts in WordPress',
				'date'    => 'Aug 10th 2019',
				'content' => 'Google Fonts can be a great addition to your website that considerably improves your typography. However, they do add an externa...',
			),
			'third'  => array(
				'url'     => 'https://fontsplugin.com/how-to-download-google-fonts/',
				'title'   => 'How To Download Google Fonts',
				'date'    => 'May 29th 2019',
				'content' => 'Google Fonts are free for both personal and commercial use. That means you can download and use them in your projects without ha...',
			),
			'fourth' => array(
				'url'     => 'https://fontsplugin.com/google-fonts-univers/',
				'title'   => 'Google Fonts Similar to Univers',
				'date'    => 'May 29th 2019',
				'content' => 'Released in 1957, Univers is a sans-serif font designed by Adrian Frutiger and released by his employer Deberny & Peignot. ...',
			),
		);
		?>
		<ul>
			<?php
			foreach ( $rss_items as $item ) {
				?>
				<li>
					<a class="rsswidget" target="_blank" href="<?php echo esc_url( $item['url'] ); ?>">
						<?php echo esc_html( $item['title'] ); ?>
					</a>
					<div class="rssSummary ogf_news">
						<?php echo wp_kses_post( $item['content'] ); ?>
					</div>
				</li>
				<?php
			}
			?>
		</ul>
		<?php
	}
}

new OGF_Dashboard_Widget();
includes/gutenberg/output-css.php000064400000012714151213254250013200 0ustar00<?php
/**
 * Output the Google Fonts CSS in Gutenberg.
 *
 * @package   olympus-google-fonts
 * @copyright Copyright (c) 2020, Fonts Plugin
 * @license   http://opensource.org/licenses/gpl-2.0.php GNU Public License
 */

/**
 * Enqueue the Google Fonts URL.
 */
function ogf_gutenberg_enqueue_fonts() {
	$fonts = new OGF_Fonts();

	if ( $fonts->has_google_fonts() ) {
		$url = $fonts->build_url();
		wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
	}
}
add_action( 'enqueue_block_editor_assets', 'ogf_gutenberg_enqueue_fonts' );

/**
 * Output the font CSS to wp_head.
 */
function ogf_gutenberg_output_css() {
	// Only load on Gutenberg-enabled pages.
	global $current_screen;
	$current_screen = get_current_screen();
	if ( ! method_exists( $current_screen, 'is_block_editor' ) || ! $current_screen->is_block_editor() ) {
			return;
	}
	?>
		<!-- Fonts Plugin Gutenberg CSS - https://fontsplugin.com/ -->
		<style>
			<?php
				do_action( 'ogf_gutenberg_inline_styles' );
				echo ogf_gutenberg_build_css();
			?>
		</style>
		<!-- Fonts Plugin Gutenberg CSS -->
	<?php
}
add_action( 'admin_head', 'ogf_gutenberg_output_css' );

function ogf_gutenberg_build_css() {
	$elements = array(
		'ogf_body'              => array(
			'selectors' => '.editor-styles-wrapper p, .editor-styles-wrapper h2, .editor-styles-wrapper h3, .editor-styles-wrapper h4, .editor-styles-wrapper h5, .editor-styles-wrapper h6, #editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input',
		),
		'ogf_headings'          => array(
			'selectors' => '#editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input, .editor-styles-wrapper h1, .editor-styles-wrapper h2, .editor-styles-wrapper h3, .editor-styles-wrapper h4, .editor-styles-wrapper h5, .editor-styles-wrapper h6',
		),
		'ogf_post_page_content' => array(
			'selectors' => '.editor-styles-wrapper p',
		),
		'ogf_post_page_h1'      => array(
			'selectors' => '#editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input, .editor-styles-wrapper h1',
		),
		'ogf_post_page_h2'      => array(
			'selectors' => '.editor-styles-wrapper h2',
		),
		'ogf_post_page_h3'      => array(
			'selectors' => '.editor-styles-wrapper h3',
		),
		'ogf_post_page_h4'      => array(
			'selectors' => '.editor-styles-wrapper h4',
		),
		'ogf_post_page_h5'      => array(
			'selectors' => '.editor-styles-wrapper h5',
		),
		'ogf_post_page_h6'      => array(
			'selectors' => '.editor-styles-wrapper h6',
		),
		'ogf_site_title'        => array(
			'selectors' => '.editor-styles-wrapper .wp-block-site-title',
		),
		'ogf_site_navigation'   => array(
			'selectors' => '.editor-styles-wrapper .wp-block-navigation-item',
		),
	);

	$elements = apply_filters( 'ogf_gutenberg_elements', $elements );
	$array    = array();
	foreach ( $elements as $id => $values ) {
		$array[] = ogf_generate_css_gutenberg( $values['selectors'], $id );
	}

	return implode( ' ', $array );
}

/**
 * Helper function to build the CSS styles.
 *
 * @param string $selector    The CSS selector to apply the styles to.
 * @param string $option_name The option name to pull from the database.
 */
function ogf_generate_css_gutenberg( $selector, $option_name ) {

	$family      = get_theme_mod( $option_name . '_font', false );
	$font_size   = get_theme_mod( $option_name . '_font_size', false );
	$line_height = get_theme_mod( $option_name . '_line_height', false );
	$weight      = get_theme_mod( $option_name . '_font_weight', false );
	$style       = get_theme_mod( $option_name . '_font_style', false );
	$color       = get_theme_mod( $option_name . '_font_color', false );

	$return = '';

	if ( ( $family !== 'default' && $family ) ||
			( $line_height !== '0' && $line_height ) ||
			( $weight !== '0' && $weight ) ||
			( $style !== 'default' && $style ) ||
				$font_size ||
				$color ) {
		$return .= $selector . ' {' . PHP_EOL;

		// Return font-family CSS.
		if ( false !== $family && 'default' !== $family ) {
			$stack = ogf_build_font_stack( $family );

			if ( ! empty( $stack ) ) {
				$return .= sprintf(
					'font-family: %s;' . PHP_EOL,
					$stack
				);
			}
		}

		// Return font-size CSS.
		if ( $font_size ) {
			$return .= sprintf(
				'font-size: %s;' . PHP_EOL,
				floatval( $font_size ) . 'px'
			);
		}

		// Return font line-height CSS.
		if ( $line_height && '0' !== $line_height ) {
			$return .= sprintf(
				'line-height: %s;' . PHP_EOL,
				floatval( $line_height )
			);
		}

		// Return font-style CSS.
		if ( $style && 'default' !== $style ) {
			$return .= sprintf(
				'font-style: %s;' . PHP_EOL,
				esc_attr( $style )
			);
		}

		// Return font-weight CSS.
		if ( $weight && '0' !== $weight ) {
			$return .= sprintf(
				'font-weight: %s;' . PHP_EOL,
				absint( $weight )
			);
		}

		// Return font-color CSS.
		if ( $color ) {
			$return .= sprintf(
				'color: %s;' . PHP_EOL,
				esc_attr( $color )
			);
		}

		$return .= ' }' . PHP_EOL;

		return wp_kses_post( $return );
	}
}

/**
 * Modify the Editor settings by adding custom styles.
 *
 * @param array  $editor_settings An array containing the current Editor settings.
 * @param string $editor_context  The context of the editor.
 *
 * @return array Modified editor settings with the added custom CSS style.
 */
function ogf_add_styles_to_site_editor( $editor_settings, $editor_context ) {
	$editor_settings['styles'][] = array(
		'css' => ogf_gutenberg_build_css(),
	);

	return $editor_settings;
}
add_filter( 'block_editor_settings_all', 'ogf_add_styles_to_site_editor', 10, 2 );

F1le Man4ger