summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/vendor')
-rw-r--r--plugins/jetpack/vendor/autoload.php2
-rw-r--r--plugins/jetpack/vendor/autoload_packages.php122
-rw-r--r--plugins/jetpack/vendor/composer/ClassLoader.php157
-rw-r--r--plugins/jetpack/vendor/composer/InstalledVersions.php337
-rw-r--r--plugins/jetpack/vendor/composer/autoload_classmap.php217
-rw-r--r--plugins/jetpack/vendor/composer/autoload_files.php6
-rw-r--r--plugins/jetpack/vendor/composer/autoload_namespaces.php1
-rw-r--r--plugins/jetpack/vendor/composer/autoload_real.php23
-rw-r--r--plugins/jetpack/vendor/composer/autoload_static.php242
-rw-r--r--plugins/jetpack/vendor/composer/installed.json2401
-rw-r--r--plugins/jetpack/vendor/composer/installed.php320
-rw-r--r--plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php593
-rw-r--r--plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php21
-rw-r--r--plugins/jetpack/vendor/composer/platform_check.php26
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php147
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php90
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php90
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-container.php150
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php76
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php86
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php99
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php194
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php93
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php153
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php164
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php92
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php164
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php69
-rwxr-xr-xplugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md31
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE13
-rwxr-xr-xplugins/jetpack/vendor/nojimage/twitter-text-php/README.md148
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php47
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php100
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json76
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php934
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php215
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php29
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php572
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php190
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php203
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php190
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php838
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php191
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php1646
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php258
45 files changed, 10876 insertions, 940 deletions
diff --git a/plugins/jetpack/vendor/autoload.php b/plugins/jetpack/vendor/autoload.php
index 09a57b54..689d3a5f 100644
--- a/plugins/jetpack/vendor/autoload.php
+++ b/plugins/jetpack/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0::getLoader();
+return ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::getLoader();
diff --git a/plugins/jetpack/vendor/autoload_packages.php b/plugins/jetpack/vendor/autoload_packages.php
index 70bd4cfe..43d65ad7 100644
--- a/plugins/jetpack/vendor/autoload_packages.php
+++ b/plugins/jetpack/vendor/autoload_packages.php
@@ -1,125 +1,13 @@
<?php
/**
- * This file `autoload_packages.php`was generated by automattic/jetpack-autoloader.
- *
- * From your plugin include this file with:
- * require_once . plugin_dir_path( __FILE__ ) . '/vendor/autoload_packages.php';
+ * This file was automatically generated by automattic/jetpack-autoloader.
*
* @package automattic/jetpack-autoloader
*/
-// phpcs:disable PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound
-// phpcs:disable PHPCompatibility.Keywords.NewKeywords.t_namespaceFound
-// phpcs:disable PHPCompatibility.Keywords.NewKeywords.t_ns_cFound
-
-namespace Automattic\Jetpack\Autoloader;
-
-if ( ! function_exists( __NAMESPACE__ . '\enqueue_package_class' ) ) {
- global $jetpack_packages_classes;
-
- if ( ! is_array( $jetpack_packages_classes ) ) {
- $jetpack_packages_classes = array();
- }
- /**
- * Adds the version of a package to the $jetpack_packages global array so that
- * the autoloader is able to find it.
- *
- * @param string $class_name Name of the class that you want to autoload.
- * @param string $version Version of the class.
- * @param string $path Absolute path to the class so that we can load it.
- */
- function enqueue_package_class( $class_name, $version, $path ) {
- global $jetpack_packages_classes;
-
- if ( ! isset( $jetpack_packages_classes[ $class_name ] ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
- }
- // If we have a @dev version set always use that one!
- if ( 'dev-' === substr( $jetpack_packages_classes[ $class_name ]['version'], 0, 4 ) ) {
- return;
- }
-
- // Always favour the @dev version. Since that version is the same as bleeding edge.
- // We need to make sure that we don't do this in production!
- if ( 'dev-' === substr( $version, 0, 4 ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
-
- return;
- }
- // Set the latest version!
- if ( version_compare( $jetpack_packages_classes[ $class_name ]['version'], $version, '<' ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
- }
- }
-}
-
-if ( ! function_exists( __NAMESPACE__ . '\autoloader' ) ) {
- /**
- * Used for autoloading jetpack packages.
- *
- * @param string $class_name Class Name to load.
- */
- function autoloader( $class_name ) {
- global $jetpack_packages_classes;
-
- if ( isset( $jetpack_packages_classes[ $class_name ] ) ) {
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- if ( function_exists( 'did_action' ) && ! did_action( 'plugins_loaded' ) ) {
- _doing_it_wrong(
- esc_html( $class_name ),
- sprintf(
- /* translators: %s Name of a PHP Class */
- esc_html__( 'Not all plugins have loaded yet but we requested the class %s', 'jetpack' ),
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- $class_name
- ),
- esc_html( $jetpack_packages_classes[ $class_name ]['version'] )
- );
- }
- }
-
- if ( file_exists( $jetpack_packages_classes[ $class_name ]['path'] ) ) {
- require_once $jetpack_packages_classes[ $class_name ]['path'];
-
- return true;
- }
- }
-
- return false;
- }
-
- // Add the jetpack autoloader.
- spl_autoload_register( __NAMESPACE__ . '\autoloader' );
-}
-/**
- * Prepare all the classes for autoloading.
- */
-function enqueue_packages_3ddf029ed8348ddcc3b8bc31397b655d() {
- $class_map = require_once dirname( __FILE__ ) . '/composer/autoload_classmap_package.php';
- foreach ( $class_map as $class_name => $class_info ) {
- enqueue_package_class( $class_name, $class_info['version'], $class_info['path'] );
- }
-
- $autoload_file = __DIR__ . '/composer/autoload_files.php';
- $includeFiles = file_exists( $autoload_file )
- ? require $autoload_file
- : array();
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
- foreach ( $includeFiles as $fileIdentifier => $file ) {
- if ( empty( $GLOBALS['__composer_autoload_files'][ $fileIdentifier ] ) ) {
- require $file;
+ // phpcs:ignore
- $GLOBALS['__composer_autoload_files'][ $fileIdentifier ] = true;
- }
- }
-}
-enqueue_packages_3ddf029ed8348ddcc3b8bc31397b655d();
+require_once __DIR__ . '/jetpack-autoloader/class-autoloader.php';
+Autoloader::init();
diff --git a/plugins/jetpack/vendor/composer/ClassLoader.php b/plugins/jetpack/vendor/composer/ClassLoader.php
index fce8549f..0cd6055d 100644
--- a/plugins/jetpack/vendor/composer/ClassLoader.php
+++ b/plugins/jetpack/vendor/composer/ClassLoader.php
@@ -37,57 +37,130 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
- * @see http://www.php-fig.org/psr/psr-0/
- * @see http://www.php-fig.org/psr/psr-4/
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
+ /** @var ?string */
+ private $vendorDir;
+
// PSR-4
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<string, int>>
+ */
private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<int, string>>
+ */
private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
private $fallbackDirsPsr4 = array();
// PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<string, string[]>>
+ */
private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
private $fallbackDirsPsr0 = array();
+ /** @var bool */
private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array<string, string>
+ */
private $classMap = array();
+
+ /** @var bool */
private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array<string, bool>
+ */
private $missingClasses = array();
+
+ /** @var ?string */
private $apcuPrefix;
+ /**
+ * @var self[]
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param ?string $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ /**
+ * @return string[]
+ */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
- return call_user_func_array('array_merge', $this->prefixesPsr0);
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, array<int, string>>
+ */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-var array<string, string>
+ */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array<string, string> $classMap
+ *
+ * @return void
*/
public function addClassMap(array $classMap)
{
@@ -102,9 +175,11 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
*/
public function add($prefix, $paths, $prepend = false)
{
@@ -147,11 +222,13 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
@@ -195,8 +272,10 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 base directories
+ *
+ * @return void
*/
public function set($prefix, $paths)
{
@@ -211,10 +290,12 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -234,6 +315,8 @@ class ClassLoader
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
+ *
+ * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -256,6 +339,8 @@ class ClassLoader
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
+ *
+ * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -276,6 +361,8 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
+ *
+ * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@@ -296,25 +383,44 @@ class ClassLoader
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
}
/**
* Unregisters this instance as an autoloader.
+ *
+ * @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
- * @return bool|null True if loaded, null otherwise
+ * @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
@@ -323,6 +429,8 @@ class ClassLoader
return true;
}
+
+ return null;
}
/**
@@ -367,6 +475,21 @@ class ClassLoader
return $file;
}
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -438,6 +561,10 @@ class ClassLoader
* Scope isolated include.
*
* Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ * @private
*/
function includeFile($file)
{
diff --git a/plugins/jetpack/vendor/composer/InstalledVersions.php b/plugins/jetpack/vendor/composer/InstalledVersions.php
new file mode 100644
index 00000000..7c5502ca
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/InstalledVersions.php
@@ -0,0 +1,337 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ * Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ */
+class InstalledVersions
+{
+ private static $installed;
+ private static $canGetVendors;
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints($constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = require __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+ $installed[] = self::$installed;
+
+ return $installed;
+ }
+}
diff --git a/plugins/jetpack/vendor/composer/autoload_classmap.php b/plugins/jetpack/vendor/composer/autoload_classmap.php
index 7e8f8308..f7fb81c7 100644
--- a/plugins/jetpack/vendor/composer/autoload_classmap.php
+++ b/plugins/jetpack/vendor/composer/autoload_classmap.php
@@ -6,80 +6,151 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'Automattic\\Jetpack\\Abtest' => $vendorDir . '/automattic/jetpack-abtest/src/class-abtest.php',
- 'Automattic\\Jetpack\\Assets' => $vendorDir . '/automattic/jetpack-assets/src/class-assets.php',
- 'Automattic\\Jetpack\\Assets\\Logo' => $vendorDir . '/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => $baseDir . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php',
+ 'Automattic\\Jetpack\\Abtest' => $baseDir . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php',
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => $baseDir . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php',
+ 'Automattic\\Jetpack\\Assets' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php',
+ 'Automattic\\Jetpack\\Assets\\Logo' => $baseDir . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\Assets\\Semver' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php',
'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php',
'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php',
- 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => $vendorDir . '/automattic/jetpack-backup/src/class-helper-script-manager.php',
- 'Automattic\\Jetpack\\Config' => $vendorDir . '/automattic/jetpack-config/src/class-config.php',
- 'Automattic\\Jetpack\\Connection\\Client' => $vendorDir . '/automattic/jetpack-connection/src/class-client.php',
- 'Automattic\\Jetpack\\Connection\\Manager' => $vendorDir . '/automattic/jetpack-connection/src/class-manager.php',
- 'Automattic\\Jetpack\\Connection\\Manager_Interface' => $vendorDir . '/automattic/jetpack-connection/src/interface-manager.php',
- 'Automattic\\Jetpack\\Connection\\REST_Connector' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-connector.php',
- 'Automattic\\Jetpack\\Connection\\Utils' => $vendorDir . '/automattic/jetpack-connection/src/class-utils.php',
- 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
- 'Automattic\\Jetpack\\Constants' => $vendorDir . '/automattic/jetpack-constants/src/class-constants.php',
- 'Automattic\\Jetpack\\Error' => $vendorDir . '/automattic/jetpack-error/src/class-error.php',
- 'Automattic\\Jetpack\\JITM' => $vendorDir . '/automattic/jetpack-jitm/src/class-jitm.php',
- 'Automattic\\Jetpack\\Partner' => $vendorDir . '/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php',
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php',
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Blocks' => $baseDir . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php',
+ 'Automattic\\Jetpack\\Composer\\Manager' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-manager.php',
+ 'Automattic\\Jetpack\\Composer\\Plugin' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Config' => $baseDir . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php',
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Manager' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php',
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php',
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php',
+ 'Automattic\\Jetpack\\Connection\\Secrets' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php',
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php',
+ 'Automattic\\Jetpack\\Connection\\Tokens' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php',
+ 'Automattic\\Jetpack\\Connection\\Urls' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php',
+ 'Automattic\\Jetpack\\Connection\\Utils' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php',
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
+ 'Automattic\\Jetpack\\Constants' => $baseDir . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php',
+ 'Automattic\\Jetpack\\Device_Detection' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php',
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php',
+ 'Automattic\\Jetpack\\Error' => $baseDir . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php',
+ 'Automattic\\Jetpack\\Heartbeat' => $baseDir . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php',
+ 'Automattic\\Jetpack\\Identity_Crisis' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php',
+ 'Automattic\\Jetpack\\JITMS\\JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php',
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => $baseDir . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php',
+ 'Automattic\\Jetpack\\Licensing' => $baseDir . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php',
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => $baseDir . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php',
+ 'Automattic\\Jetpack\\Partner' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Partner_Coupon' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php',
+ 'Automattic\\Jetpack\\Password_Checker' => $baseDir . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php',
'Automattic\\Jetpack\\Plugin\\Tracking' => $baseDir . '/src/class-tracking.php',
- 'Automattic\\Jetpack\\Roles' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php',
- 'Automattic\\Jetpack\\Status' => $vendorDir . '/automattic/jetpack-status/src/class-status.php',
- 'Automattic\\Jetpack\\Sync\\Actions' => $vendorDir . '/automattic/jetpack-sync/src/class-actions.php',
- 'Automattic\\Jetpack\\Sync\\Codec_Interface' => $vendorDir . '/automattic/jetpack-sync/src/interface-codec.php',
- 'Automattic\\Jetpack\\Sync\\Defaults' => $vendorDir . '/automattic/jetpack-sync/src/class-defaults.php',
- 'Automattic\\Jetpack\\Sync\\Functions' => $vendorDir . '/automattic/jetpack-sync/src/class-functions.php',
- 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => $vendorDir . '/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
- 'Automattic\\Jetpack\\Sync\\Listener' => $vendorDir . '/automattic/jetpack-sync/src/class-listener.php',
- 'Automattic\\Jetpack\\Sync\\Lock' => $vendorDir . '/automattic/jetpack-sync/src/class-lock.php',
- 'Automattic\\Jetpack\\Sync\\Main' => $vendorDir . '/automattic/jetpack-sync/src/class-main.php',
- 'Automattic\\Jetpack\\Sync\\Modules' => $vendorDir . '/automattic/jetpack-sync/src/class-modules.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-attachments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-callables.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-comments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-constants.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-full-sync.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Import' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-import.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-menus.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-meta.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Module' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-module.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-network-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Options' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-plugins.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-posts.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-protect.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-stats.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-term-relationships.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-terms.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-themes.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-updates.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Users' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-woocommerce.php',
- 'Automattic\\Jetpack\\Sync\\Queue' => $vendorDir . '/automattic/jetpack-sync/src/class-queue.php',
- 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => $vendorDir . '/automattic/jetpack-sync/src/class-queue-buffer.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore' => $vendorDir . '/automattic/jetpack-sync/src/class-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => $vendorDir . '/automattic/jetpack-sync/src/interface-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Sender' => $vendorDir . '/automattic/jetpack-sync/src/class-sender.php',
- 'Automattic\\Jetpack\\Sync\\Server' => $vendorDir . '/automattic/jetpack-sync/src/class-server.php',
- 'Automattic\\Jetpack\\Sync\\Settings' => $vendorDir . '/automattic/jetpack-sync/src/class-settings.php',
- 'Automattic\\Jetpack\\Sync\\Simple_Codec' => $vendorDir . '/automattic/jetpack-sync/src/class-simple-codec.php',
- 'Automattic\\Jetpack\\Sync\\Users' => $vendorDir . '/automattic/jetpack-sync/src/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Utils' => $vendorDir . '/automattic/jetpack-sync/src/class-utils.php',
- 'Automattic\\Jetpack\\Terms_Of_Service' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
- 'Automattic\\Jetpack\\Tracking' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php',
- 'JetpackTracking' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
- 'Jetpack_Client' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-client.php',
- 'Jetpack_IXR_Client' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
- 'Jetpack_IXR_ClientMulticall' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
- 'Jetpack_Options' => $vendorDir . '/automattic/jetpack-options/legacy/class-jetpack-options.php',
- 'Jetpack_Signature' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
- 'Jetpack_Sync_Actions' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
- 'Jetpack_Sync_Modules' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
- 'Jetpack_Sync_Settings' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
- 'Jetpack_Tracks_Client' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
- 'Jetpack_Tracks_Event' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
- 'Jetpack_XMLRPC_Server' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Automattic\\Jetpack\\Redirect' => $baseDir . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php',
+ 'Automattic\\Jetpack\\Roles' => $baseDir . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php',
+ 'Automattic\\Jetpack\\Search\\Helper' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php',
+ 'Automattic\\Jetpack\\Search\\Module_Control' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php',
+ 'Automattic\\Jetpack\\Search\\Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php',
+ 'Automattic\\Jetpack\\Search\\Plan' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php',
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Search\\Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php',
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php',
+ 'Automattic\\Jetpack\\Status' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php',
+ 'Automattic\\Jetpack\\Status\\Host' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php',
+ 'Automattic\\Jetpack\\Sync\\Actions' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php',
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Defaults' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php',
+ 'Automattic\\Jetpack\\Sync\\Functions' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php',
+ 'Automattic\\Jetpack\\Sync\\Health' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php',
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Listener' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php',
+ 'Automattic\\Jetpack\\Sync\\Lock' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php',
+ 'Automattic\\Jetpack\\Sync\\Main' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php',
+ 'Automattic\\Jetpack\\Sync\\Modules' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php',
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Sync\\Queue' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php',
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Sender' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Server' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php',
+ 'Automattic\\Jetpack\\Sync\\Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php',
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Utils' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php',
+ 'Automattic\\Jetpack\\Terms_Of_Service' => $baseDir . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
+ 'Automattic\\Jetpack\\Tracking' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php',
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+ 'JetpackTracking' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
+ 'Jetpack_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php',
+ 'Jetpack_IXR_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
+ 'Jetpack_IXR_ClientMulticall' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
+ 'Jetpack_Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php',
+ 'Jetpack_Signature' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
+ 'Jetpack_Sync_Actions' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
+ 'Jetpack_Sync_Modules' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
+ 'Jetpack_Sync_Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
+ 'Jetpack_Tracks_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
+ 'Jetpack_Tracks_Event' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
+ 'Jetpack_XMLRPC_Server' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Twitter\\Text\\Autolink' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php',
+ 'Twitter\\Text\\Configuration' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php',
+ 'Twitter\\Text\\EmojiRegex' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php',
+ 'Twitter\\Text\\Extractor' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php',
+ 'Twitter\\Text\\HitHighlighter' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php',
+ 'Twitter\\Text\\ParseResults' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php',
+ 'Twitter\\Text\\Parser' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php',
+ 'Twitter\\Text\\Regex' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php',
+ 'Twitter\\Text\\StringUtils' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php',
+ 'Twitter\\Text\\TldLists' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php',
+ 'Twitter\\Text\\Validator' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php',
);
diff --git a/plugins/jetpack/vendor/composer/autoload_files.php b/plugins/jetpack/vendor/composer/autoload_files.php
index 0d7f6fca..61d2a978 100644
--- a/plugins/jetpack/vendor/composer/autoload_files.php
+++ b/plugins/jetpack/vendor/composer/autoload_files.php
@@ -6,7 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'bce4ecd6aabb2a2948e06d0e2c4ea9a6' => $vendorDir . '/automattic/jetpack-connection/legacy/load-ixr.php',
- 'd4eb94df91a729802d18373ee8cdc79f' => $vendorDir . '/automattic/jetpack-backup/actions.php',
- '009de6aaa0d497eacea41fab13fc05f1' => $vendorDir . '/automattic/jetpack-compat/functions.php',
+ '3773ef3f09c37da5478d578e32b03a4b' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/actions.php',
+ 'd4eb94df91a729802d18373ee8cdc79f' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/actions.php',
+ '009de6aaa0d497eacea41fab13fc05f1' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/functions.php',
);
diff --git a/plugins/jetpack/vendor/composer/autoload_namespaces.php b/plugins/jetpack/vendor/composer/autoload_namespaces.php
index b7fc0125..53e84e22 100644
--- a/plugins/jetpack/vendor/composer/autoload_namespaces.php
+++ b/plugins/jetpack/vendor/composer/autoload_namespaces.php
@@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
+ 'Twitter\\Text\\' => array($vendorDir . '/nojimage/twitter-text-php/lib'),
);
diff --git a/plugins/jetpack/vendor/composer/autoload_real.php b/plugins/jetpack/vendor/composer/autoload_real.php
index 0f957592..e7a173b9 100644
--- a/plugins/jetpack/vendor/composer/autoload_real.php
+++ b/plugins/jetpack/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
+class ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5
{
private static $loader;
@@ -13,21 +13,26 @@ class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
}
}
+ /**
+ * @return \Composer\Autoload\ClassLoader
+ */
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
- spl_autoload_unregister(array('ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0', 'loadClassLoader'));
+ require __DIR__ . '/platform_check.php';
+
+ spl_autoload_register(array('ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5', 'loadClassLoader'), true, true);
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ spl_autoload_unregister(array('ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
- require_once __DIR__ . '/autoload_static.php';
+ require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@@ -39,19 +44,19 @@ class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
$loader->register(true);
if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$files;
+ $includeFiles = Composer\Autoload\ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequireb971f5b5f09f65d7b815d2961dc675a0($fileIdentifier, $file);
+ composerRequiref11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5($fileIdentifier, $file);
}
return $loader;
}
}
-function composerRequireb971f5b5f09f65d7b815d2961dc675a0($fileIdentifier, $file)
+function composerRequiref11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
diff --git a/plugins/jetpack/vendor/composer/autoload_static.php b/plugins/jetpack/vendor/composer/autoload_static.php
index ce37ceaf..b5f147a9 100644
--- a/plugins/jetpack/vendor/composer/autoload_static.php
+++ b/plugins/jetpack/vendor/composer/autoload_static.php
@@ -4,12 +4,12 @@
namespace Composer\Autoload;
-class ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0
+class ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5
{
public static $files = array (
- 'bce4ecd6aabb2a2948e06d0e2c4ea9a6' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/load-ixr.php',
- 'd4eb94df91a729802d18373ee8cdc79f' => __DIR__ . '/..' . '/automattic/jetpack-backup/actions.php',
- '009de6aaa0d497eacea41fab13fc05f1' => __DIR__ . '/..' . '/automattic/jetpack-compat/functions.php',
+ '3773ef3f09c37da5478d578e32b03a4b' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/actions.php',
+ 'd4eb94df91a729802d18373ee8cdc79f' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/actions.php',
+ '009de6aaa0d497eacea41fab13fc05f1' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/functions.php',
);
public static $prefixLengthsPsr4 = array (
@@ -26,91 +26,173 @@ class ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0
),
);
+ public static $prefixesPsr0 = array (
+ 'T' =>
+ array (
+ 'Twitter\\Text\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib',
+ ),
+ ),
+ );
+
public static $classMap = array (
- 'Automattic\\Jetpack\\Abtest' => __DIR__ . '/..' . '/automattic/jetpack-abtest/src/class-abtest.php',
- 'Automattic\\Jetpack\\Assets' => __DIR__ . '/..' . '/automattic/jetpack-assets/src/class-assets.php',
- 'Automattic\\Jetpack\\Assets\\Logo' => __DIR__ . '/..' . '/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php',
+ 'Automattic\\Jetpack\\Abtest' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php',
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php',
+ 'Automattic\\Jetpack\\Assets' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php',
+ 'Automattic\\Jetpack\\Assets\\Logo' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\Assets\\Semver' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php',
'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php',
'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php',
- 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => __DIR__ . '/..' . '/automattic/jetpack-backup/src/class-helper-script-manager.php',
- 'Automattic\\Jetpack\\Config' => __DIR__ . '/..' . '/automattic/jetpack-config/src/class-config.php',
- 'Automattic\\Jetpack\\Connection\\Client' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-client.php',
- 'Automattic\\Jetpack\\Connection\\Manager' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-manager.php',
- 'Automattic\\Jetpack\\Connection\\Manager_Interface' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/interface-manager.php',
- 'Automattic\\Jetpack\\Connection\\REST_Connector' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-rest-connector.php',
- 'Automattic\\Jetpack\\Connection\\Utils' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-utils.php',
- 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
- 'Automattic\\Jetpack\\Constants' => __DIR__ . '/..' . '/automattic/jetpack-constants/src/class-constants.php',
- 'Automattic\\Jetpack\\Error' => __DIR__ . '/..' . '/automattic/jetpack-error/src/class-error.php',
- 'Automattic\\Jetpack\\JITM' => __DIR__ . '/..' . '/automattic/jetpack-jitm/src/class-jitm.php',
- 'Automattic\\Jetpack\\Partner' => __DIR__ . '/..' . '/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/ManifestGenerator.php',
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php',
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Blocks' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php',
+ 'Automattic\\Jetpack\\Composer\\Manager' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-manager.php',
+ 'Automattic\\Jetpack\\Composer\\Plugin' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Config' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php',
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Manager' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php',
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php',
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php',
+ 'Automattic\\Jetpack\\Connection\\Secrets' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php',
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php',
+ 'Automattic\\Jetpack\\Connection\\Tokens' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php',
+ 'Automattic\\Jetpack\\Connection\\Urls' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php',
+ 'Automattic\\Jetpack\\Connection\\Utils' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php',
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
+ 'Automattic\\Jetpack\\Constants' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php',
+ 'Automattic\\Jetpack\\Device_Detection' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php',
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php',
+ 'Automattic\\Jetpack\\Error' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php',
+ 'Automattic\\Jetpack\\Heartbeat' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php',
+ 'Automattic\\Jetpack\\Identity_Crisis' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php',
+ 'Automattic\\Jetpack\\JITMS\\JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php',
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php',
+ 'Automattic\\Jetpack\\Licensing' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php',
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php',
+ 'Automattic\\Jetpack\\Partner' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Partner_Coupon' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php',
+ 'Automattic\\Jetpack\\Password_Checker' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php',
'Automattic\\Jetpack\\Plugin\\Tracking' => __DIR__ . '/../..' . '/src/class-tracking.php',
- 'Automattic\\Jetpack\\Roles' => __DIR__ . '/..' . '/automattic/jetpack-roles/src/class-roles.php',
- 'Automattic\\Jetpack\\Status' => __DIR__ . '/..' . '/automattic/jetpack-status/src/class-status.php',
- 'Automattic\\Jetpack\\Sync\\Actions' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-actions.php',
- 'Automattic\\Jetpack\\Sync\\Codec_Interface' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/interface-codec.php',
- 'Automattic\\Jetpack\\Sync\\Defaults' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-defaults.php',
- 'Automattic\\Jetpack\\Sync\\Functions' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-functions.php',
- 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
- 'Automattic\\Jetpack\\Sync\\Listener' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-listener.php',
- 'Automattic\\Jetpack\\Sync\\Lock' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-lock.php',
- 'Automattic\\Jetpack\\Sync\\Main' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-main.php',
- 'Automattic\\Jetpack\\Sync\\Modules' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-modules.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-attachments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-callables.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-comments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-constants.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-full-sync.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Import' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-import.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-menus.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-meta.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Module' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-module.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-network-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Options' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-plugins.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-posts.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-protect.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-stats.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-term-relationships.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-terms.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-themes.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-updates.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Users' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-woocommerce.php',
- 'Automattic\\Jetpack\\Sync\\Queue' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-queue.php',
- 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-queue-buffer.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/interface-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Sender' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-sender.php',
- 'Automattic\\Jetpack\\Sync\\Server' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-server.php',
- 'Automattic\\Jetpack\\Sync\\Settings' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-settings.php',
- 'Automattic\\Jetpack\\Sync\\Simple_Codec' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-simple-codec.php',
- 'Automattic\\Jetpack\\Sync\\Users' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Utils' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-utils.php',
- 'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/..' . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
- 'Automattic\\Jetpack\\Tracking' => __DIR__ . '/..' . '/automattic/jetpack-tracking/src/class-tracking.php',
- 'JetpackTracking' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
- 'Jetpack_Client' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-client.php',
- 'Jetpack_IXR_Client' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
- 'Jetpack_IXR_ClientMulticall' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
- 'Jetpack_Options' => __DIR__ . '/..' . '/automattic/jetpack-options/legacy/class-jetpack-options.php',
- 'Jetpack_Signature' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
- 'Jetpack_Sync_Actions' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
- 'Jetpack_Sync_Modules' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
- 'Jetpack_Sync_Settings' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
- 'Jetpack_Tracks_Client' => __DIR__ . '/..' . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
- 'Jetpack_Tracks_Event' => __DIR__ . '/..' . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
- 'Jetpack_XMLRPC_Server' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Automattic\\Jetpack\\Redirect' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php',
+ 'Automattic\\Jetpack\\Roles' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php',
+ 'Automattic\\Jetpack\\Search\\Helper' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php',
+ 'Automattic\\Jetpack\\Search\\Module_Control' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php',
+ 'Automattic\\Jetpack\\Search\\Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php',
+ 'Automattic\\Jetpack\\Search\\Plan' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php',
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Search\\Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php',
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php',
+ 'Automattic\\Jetpack\\Status' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php',
+ 'Automattic\\Jetpack\\Status\\Host' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php',
+ 'Automattic\\Jetpack\\Sync\\Actions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php',
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Defaults' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php',
+ 'Automattic\\Jetpack\\Sync\\Functions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php',
+ 'Automattic\\Jetpack\\Sync\\Health' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php',
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Listener' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php',
+ 'Automattic\\Jetpack\\Sync\\Lock' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php',
+ 'Automattic\\Jetpack\\Sync\\Main' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php',
+ 'Automattic\\Jetpack\\Sync\\Modules' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php',
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Sync\\Queue' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php',
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Sender' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Server' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php',
+ 'Automattic\\Jetpack\\Sync\\Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php',
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Utils' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php',
+ 'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
+ 'Automattic\\Jetpack\\Tracking' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php',
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ 'JetpackTracking' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
+ 'Jetpack_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php',
+ 'Jetpack_IXR_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
+ 'Jetpack_IXR_ClientMulticall' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
+ 'Jetpack_Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php',
+ 'Jetpack_Signature' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
+ 'Jetpack_Sync_Actions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
+ 'Jetpack_Sync_Modules' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
+ 'Jetpack_Sync_Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
+ 'Jetpack_Tracks_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
+ 'Jetpack_Tracks_Event' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
+ 'Jetpack_XMLRPC_Server' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Twitter\\Text\\Autolink' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php',
+ 'Twitter\\Text\\Configuration' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php',
+ 'Twitter\\Text\\EmojiRegex' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php',
+ 'Twitter\\Text\\Extractor' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php',
+ 'Twitter\\Text\\HitHighlighter' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php',
+ 'Twitter\\Text\\ParseResults' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php',
+ 'Twitter\\Text\\Parser' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php',
+ 'Twitter\\Text\\Regex' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php',
+ 'Twitter\\Text\\StringUtils' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php',
+ 'Twitter\\Text\\TldLists' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php',
+ 'Twitter\\Text\\Validator' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixDirsPsr4;
+ $loader->prefixesPsr0 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixesPsr0;
+ $loader->classMap = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$classMap;
}, null, ClassLoader::class);
}
diff --git a/plugins/jetpack/vendor/composer/installed.json b/plugins/jetpack/vendor/composer/installed.json
index eabb2133..414fda0a 100644
--- a/plugins/jetpack/vendor/composer/installed.json
+++ b/plugins/jetpack/vendor/composer/installed.json
@@ -1,642 +1,1759 @@
-[
- {
- "name": "automattic/jetpack-abtest",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-abtest.git",
- "reference": "faed5181e0dbe596b7e083e40affceed686928ba"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-abtest/zipball/faed5181e0dbe596b7e083e40affceed686928ba",
- "reference": "faed5181e0dbe596b7e083e40affceed686928ba",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-error": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Provides an interface to the WP.com A/B tests."
- },
- {
- "name": "automattic/jetpack-assets",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-assets.git",
- "reference": "157b2d4adfddc7cc395929b6a0de8ab43bc52155"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/157b2d4adfddc7cc395929b6a0de8ab43bc52155",
- "reference": "157b2d4adfddc7cc395929b6a0de8ab43bc52155",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev"
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Asset management utilities for Jetpack ecosystem packages"
- },
- {
- "name": "automattic/jetpack-autoloader",
- "version": "v1.4.0",
- "version_normalized": "1.4.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-autoloader.git",
- "reference": "3cb0ad8496d04a648435ebee7c2a652c80eaf550"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/3cb0ad8496d04a648435ebee7c2a652c80eaf550",
- "reference": "3cb0ad8496d04a648435ebee7c2a652c80eaf550",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-22T17:49:03+00:00",
- "type": "composer-plugin",
- "extra": {
- "class": "Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin"
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Automattic\\Jetpack\\Autoloader\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Creates a custom autoloader for a plugin or theme."
- },
- {
- "name": "automattic/jetpack-backup",
- "version": "v1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-backup.git",
- "reference": "ea2aaa9be3697d8b885a74a11411c7818fba5a75"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-backup/zipball/ea2aaa9be3697d8b885a74a11411c7818fba5a75",
- "reference": "ea2aaa9be3697d8b885a74a11411c7818fba5a75",
- "shasum": ""
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "actions.php"
- ],
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Tools to assist with backing up Jetpack sites."
- },
- {
- "name": "automattic/jetpack-compat",
- "version": "v1.0.5",
- "version_normalized": "1.0.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-compat.git",
- "reference": "2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-compat/zipball/2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf",
- "reference": "2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "functions.php"
- ],
- "classmap": [
- "legacy"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Compatibility layer with previous versions of Jetpack"
- },
- {
- "name": "automattic/jetpack-config",
- "version": "v1.1.0",
- "version_normalized": "1.1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-config.git",
- "reference": "df7cfce4231fb50e8cd433a6ccf52e99a269c16c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-config/zipball/df7cfce4231fb50e8cd433a6ccf52e99a269c16c",
- "reference": "df7cfce4231fb50e8cd433a6ccf52e99a269c16c",
- "shasum": ""
- },
- "time": "2020-01-21T22:42:22+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Jetpack configuration package that initializes other packages and configures Jetpack's functionality. Can be used as a base for all variants of Jetpack package usage."
- },
- {
- "name": "automattic/jetpack-connection",
- "version": "v1.8.0",
- "version_normalized": "1.8.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-connection.git",
- "reference": "e9e898ca3acb174a418637cac69355d6aad89762"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/e9e898ca3acb174a418637cac69355d6aad89762",
- "reference": "e9e898ca3acb174a418637cac69355d6aad89762",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-roles": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:20:58+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "legacy/load-ixr.php"
- ],
- "classmap": [
- "legacy",
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything needed to connect to the Jetpack infrastructure"
- },
- {
- "name": "automattic/jetpack-constants",
- "version": "v1.1.3",
- "version_normalized": "1.1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-constants.git",
- "reference": "5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a",
- "reference": "5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A wrapper for defining constants in a more testable way."
- },
- {
- "name": "automattic/jetpack-error",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-error.git",
- "reference": "2128dd5a666154506727010350518529cc87b23d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-error/zipball/2128dd5a666154506727010350518529cc87b23d",
- "reference": "2128dd5a666154506727010350518529cc87b23d",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Jetpack Error - a wrapper around WP_Error."
- },
- {
- "name": "automattic/jetpack-jitm",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-jitm.git",
- "reference": "3d8419a38d5ea45c174f98a30e0420011e4bc01c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-jitm/zipball/3d8419a38d5ea45c174f98a30e0420011e4bc01c",
- "reference": "3d8419a38d5ea45c174f98a30e0420011e4bc01c",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-assets": "@dev",
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-logo": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-tracking": "@dev"
- },
- "require-dev": {
- "mockery/mockery": "^1.2",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-21T22:42:22+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Just in time messages for Jetpack"
- },
- {
- "name": "automattic/jetpack-logo",
- "version": "v1.1.4",
- "version_normalized": "1.1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-logo.git",
- "reference": "7da178a529f772cddfd0bbf1775eb30a852739c2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-logo/zipball/7da178a529f772cddfd0bbf1775eb30a852739c2",
- "reference": "7da178a529f772cddfd0bbf1775eb30a852739c2",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A logo for Jetpack"
- },
- {
- "name": "automattic/jetpack-options",
- "version": "v1.1.2",
- "version_normalized": "1.1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-options.git",
- "reference": "cc81a75b7b3fecd1155a517a057ca74975ca8b5d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/cc81a75b7b3fecd1155a517a057ca74975ca8b5d",
- "reference": "cc81a75b7b3fecd1155a517a057ca74975ca8b5d",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev"
- },
- "require-dev": {
- "10up/wp_mock": "0.4.2",
- "phpunit/phpunit": "7.*.*"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "legacy"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A wrapper for wp-options to manage specific Jetpack options."
- },
- {
- "name": "automattic/jetpack-partner",
- "version": "v1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-partner.git",
- "reference": "866dfe161654acd18115b94aa117186f53a6ee6d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-partner/zipball/866dfe161654acd18115b94aa117186f53a6ee6d",
- "reference": "866dfe161654acd18115b94aa117186f53a6ee6d",
- "shasum": ""
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "mockery/mockery": "^1.2",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Support functions for Jetpack hosting partners."
- },
- {
- "name": "automattic/jetpack-roles",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-roles.git",
- "reference": "0cdcff4fdc489c79f20a361c084ec48e326ce483"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/0cdcff4fdc489c79f20a361c084ec48e326ce483",
- "reference": "0cdcff4fdc489c79f20a361c084ec48e326ce483",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Utilities, related with user roles and capabilities."
- },
- {
- "name": "automattic/jetpack-status",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-status.git",
- "reference": "c688b03859381e66164c821971e851408a5e232a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/c688b03859381e66164c821971e851408a5e232a",
- "reference": "c688b03859381e66164c821971e851408a5e232a",
- "shasum": ""
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Used to retrieve information about the current status of Jetpack and the site overall."
- },
- {
- "name": "automattic/jetpack-sync",
- "version": "dev-fork/jetpack-sync-v1.7.4+vip",
- "version_normalized": "dev-fork/jetpack-sync-v1.7.4+vip",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-sync.git",
- "reference": "070a46e38d34a0ceba15b9d4b0de115fbe76b20f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-sync/zipball/070a46e38d34a0ceba15b9d4b0de115fbe76b20f",
- "reference": "070a46e38d34a0ceba15b9d4b0de115fbe76b20f",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-roles": "@dev",
- "automattic/jetpack-status": "@dev"
- },
- "time": "2020-02-14T17:53:00+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything needed to allow syncing to the WP.com infrastructure."
- },
- {
- "name": "automattic/jetpack-terms-of-service",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
- "reference": "fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952",
- "reference": "fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-status": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-15T16:03:27+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything need to manage the terms of service state"
- },
- {
- "name": "automattic/jetpack-tracking",
- "version": "v1.2.2",
- "version_normalized": "1.2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-tracking.git",
- "reference": "d337a8f4234c684e80a43ff9ad3051a46a1f35d6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/d337a8f4234c684e80a43ff9ad3051a46a1f35d6",
- "reference": "d337a8f4234c684e80a43ff9ad3051a46a1f35d6",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-terms-of-service": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "legacy",
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Tracking for Jetpack"
- }
-]
+{
+ "packages": [
+ {
+ "name": "automattic/jetpack-a8c-mc-stats",
+ "version": "v1.4.11",
+ "version_normalized": "1.4.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-a8c-mc-stats.git",
+ "reference": "6e7d7c8b9c996f04978b834e4c3484bd2d916998"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-a8c-mc-stats/zipball/6e7d7c8b9c996f04978b834e4c3484bd2d916998",
+ "reference": "6e7d7c8b9c996f04978b834e4c3484bd2d916998",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:24+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-a8c-mc-stats",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-a8c-mc-stats/tree/v1.4.11"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-a8c-mc-stats"
+ },
+ {
+ "name": "automattic/jetpack-abtest",
+ "version": "v1.9.18",
+ "version_normalized": "1.9.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-abtest.git",
+ "reference": "8ad2e2685a1370f080c403095bad009b2f87370e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-abtest/zipball/8ad2e2685a1370f080c403095bad009b2f87370e",
+ "reference": "8ad2e2685a1370f080c403095bad009b2f87370e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-error": "^1.3"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:59+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-abtest",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-abtest/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Provides an interface to the WP.com A/B tests.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-abtest/tree/v1.9.18"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-abtest"
+ },
+ {
+ "name": "automattic/jetpack-admin-ui",
+ "version": "v0.2.1",
+ "version_normalized": "0.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-admin-ui.git",
+ "reference": "ce6964700c9698f9ea8c0a00120f1fbbd755de57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-admin-ui/zipball/ce6964700c9698f9ea8c0a00120f1fbbd755de57",
+ "reference": "ce6964700c9698f9ea8c0a00120f1fbbd755de57",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:25+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-admin-ui",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-admin-ui/compare/${old}...${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.2.x-dev"
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-admin-menu.php"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Generic Jetpack wp-admin UI elements",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-admin-ui/tree/v0.2.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-admin-ui"
+ },
+ {
+ "name": "automattic/jetpack-assets",
+ "version": "v1.16.1",
+ "version_normalized": "1.16.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-assets.git",
+ "reference": "5a6959969bed4559e080269cafbd69d476249822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/5a6959969bed4559e080269cafbd69d476249822",
+ "reference": "5a6959969bed4559e080269cafbd69d476249822",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "wikimedia/testing-access-wrapper": "^1.0 | ^2.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-05T21:46:22+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-assets",
+ "textdomain": "jetpack-assets",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.16.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Asset management utilities for Jetpack ecosystem packages",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-assets/tree/v1.16.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-assets"
+ },
+ {
+ "name": "automattic/jetpack-autoloader",
+ "version": "v2.10.11",
+ "version_normalized": "2.10.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-autoloader.git",
+ "reference": "924226c0a9e2f9b0be022fc6bab2a90f5e610ef3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/924226c0a9e2f9b0be022fc6bab2a90f5e610ef3",
+ "reference": "924226c0a9e2f9b0be022fc6bab2a90f5e610ef3",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:27+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "autotagger": true,
+ "class": "Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin",
+ "mirror-repo": "Automattic/jetpack-autoloader",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-autoloader/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.10.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/AutoloadGenerator.php"
+ ],
+ "psr-4": {
+ "Automattic\\Jetpack\\Autoloader\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Creates a custom autoloader for a plugin or theme.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-autoloader/tree/v2.10.11"
+ },
+ "install-path": "../automattic/jetpack-autoloader"
+ },
+ {
+ "name": "automattic/jetpack-backup",
+ "version": "v1.2.0",
+ "version_normalized": "1.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-backup.git",
+ "reference": "55054e3fe2c0450d4738b3dcce547d26ee82faa1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-backup/zipball/55054e3fe2c0450d4738b3dcce547d26ee82faa1",
+ "reference": "55054e3fe2c0450d4738b3dcce547d26ee82faa1",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-sync": "^1.28"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:11+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-backup",
+ "textdomain": "jetpack-backup-pkg",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-backup/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tools to assist with backing up Jetpack sites.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-backup/tree/v1.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-backup"
+ },
+ {
+ "name": "automattic/jetpack-blocks",
+ "version": "v1.4.9",
+ "version_normalized": "1.4.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-blocks.git",
+ "reference": "ac699666f0bd01c4f74f9fa339a553e466a8b987"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-blocks/zipball/ac699666f0bd01c4f74f9fa339a553e466a8b987",
+ "reference": "ac699666f0bd01c4f74f9fa339a553e466a8b987",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:28+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-blocks",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-blocks/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Register and manage blocks within a plugin. Used to manage block registration, enqueues, and more.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-blocks/tree/v1.4.9"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-blocks"
+ },
+ {
+ "name": "automattic/jetpack-compat",
+ "version": "v1.6.8",
+ "version_normalized": "1.6.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-compat.git",
+ "reference": "38da6f2769a2438d192cde43343f3b9fdb517df1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-compat/zipball/38da6f2769a2438d192cde43343f3b9fdb517df1",
+ "reference": "38da6f2769a2438d192cde43343f3b9fdb517df1",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2021-12-14T17:53:46+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-compat",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-compat/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "classmap": [
+ "legacy"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Compatibility layer with previous versions of Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-compat/tree/v1.6.8"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-compat"
+ },
+ {
+ "name": "automattic/jetpack-composer-plugin",
+ "version": "v1.0.1",
+ "version_normalized": "1.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-composer-plugin.git",
+ "reference": "27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-composer-plugin/zipball/27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86",
+ "reference": "27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.1.0"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "composer/composer": "2.2.3",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:31+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Automattic\\Jetpack\\Composer\\Plugin",
+ "mirror-repo": "Automattic/jetpack-composer-plugin",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-composer-plugin/compare/v${old}...v${new}"
+ },
+ "autotagger": true,
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A custom installer plugin for Composer to move Jetpack packages out of `vendor/` so WordPress's translation infrastructure will find their strings.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-composer-plugin/tree/v1.0.1"
+ },
+ "install-path": "../automattic/jetpack-composer-plugin"
+ },
+ {
+ "name": "automattic/jetpack-config",
+ "version": "v1.6.0",
+ "version_normalized": "1.6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-config.git",
+ "reference": "1d46f87df9167a03960d708ce767d0efdfc855cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-config/zipball/1d46f87df9167a03960d708ce767d0efdfc855cf",
+ "reference": "1d46f87df9167a03960d708ce767d0efdfc855cf",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:11:32+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-config",
+ "textdomain": "jetpack-config",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-config/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack configuration package that initializes other packages and configures Jetpack's functionality. Can be used as a base for all variants of Jetpack package usage.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-config/tree/v1.6.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-config"
+ },
+ {
+ "name": "automattic/jetpack-connection",
+ "version": "v1.34.0",
+ "version_normalized": "1.34.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-connection.git",
+ "reference": "14545cff5de0384e8ced64bb161e814e657efebf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/14545cff5de0384e8ced64bb161e814e657efebf",
+ "reference": "14545cff5de0384e8ced64bb161e814e657efebf",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-heartbeat": "^1.4",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-redirect": "^1.7",
+ "automattic/jetpack-roles": "^1.4",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-terms-of-service": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:56+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-connection",
+ "textdomain": "jetpack-connection",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.34.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy",
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to connect to the Jetpack infrastructure",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-connection/tree/v1.34.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-connection"
+ },
+ {
+ "name": "automattic/jetpack-connection-ui",
+ "version": "v2.3.0",
+ "version_normalized": "2.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-connection-ui.git",
+ "reference": "375ea7b050b2dc98a06fc317dae8441dc1eacba8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection-ui/zipball/375ea7b050b2dc98a06fc317dae8441dc1eacba8",
+ "reference": "375ea7b050b2dc98a06fc317dae8441dc1eacba8",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-device-detection": "^1.4",
+ "automattic/jetpack-identity-crisis": "^0.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:12:08+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-connection-ui",
+ "textdomain": "jetpack-connection-ui",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-connection-ui/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack Connection UI",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-connection-ui/tree/v2.3.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-connection-ui"
+ },
+ {
+ "name": "automattic/jetpack-constants",
+ "version": "v1.6.14",
+ "version_normalized": "1.6.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-constants.git",
+ "reference": "93af2a61eceaabd16c432451cc33f7c9074efa81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/93af2a61eceaabd16c432451cc33f7c9074efa81",
+ "reference": "93af2a61eceaabd16c432451cc33f7c9074efa81",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:33+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-constants",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-constants/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A wrapper for defining constants in a more testable way.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-constants/tree/v1.6.14"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-constants"
+ },
+ {
+ "name": "automattic/jetpack-device-detection",
+ "version": "v1.4.11",
+ "version_normalized": "1.4.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-device-detection.git",
+ "reference": "ab5ce7e487de9c9a13456d4aecdb7789f92f818d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-device-detection/zipball/ab5ce7e487de9c9a13456d4aecdb7789f92f818d",
+ "reference": "ab5ce7e487de9c9a13456d4aecdb7789f92f818d",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:34+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-device-detection",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-device-detection/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A way to detect device types based on User-Agent header.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-device-detection/tree/v1.4.11"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-device-detection"
+ },
+ {
+ "name": "automattic/jetpack-error",
+ "version": "v1.3.12",
+ "version_normalized": "1.3.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-error.git",
+ "reference": "005bf60c2d533b3d169d6688360aaf034e7fc456"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-error/zipball/005bf60c2d533b3d169d6688360aaf034e7fc456",
+ "reference": "005bf60c2d533b3d169d6688360aaf034e7fc456",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:35+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-error",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-error/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack Error - a wrapper around WP_Error.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-error/tree/v1.3.12"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-error"
+ },
+ {
+ "name": "automattic/jetpack-heartbeat",
+ "version": "v1.4.0",
+ "version_normalized": "1.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-heartbeat.git",
+ "reference": "c35053475b1cb7363aee847e0d025f0a043dc3d5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-heartbeat/zipball/c35053475b1cb7363aee847e0d025f0a043dc3d5",
+ "reference": "c35053475b1cb7363aee847e0d025f0a043dc3d5",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-options": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:11:47+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-heartbeat",
+ "textdomain": "jetpack-heartbeat",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-heartbeat/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "This adds a cronjob that sends a batch of internal automattic stats to wp.com once a day",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-heartbeat/tree/v1.4.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-heartbeat"
+ },
+ {
+ "name": "automattic/jetpack-identity-crisis",
+ "version": "v0.6.1",
+ "version_normalized": "0.6.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-identity-crisis.git",
+ "reference": "62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-identity-crisis/zipball/62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9",
+ "reference": "62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-logo": "^1.5",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-11T16:37:39+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-identity-crisis",
+ "textdomain": "jetpack-idc",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-identity-crisis.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-identity-crisis/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Identity Crisis.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-identity-crisis/tree/v0.6.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-identity-crisis"
+ },
+ {
+ "name": "automattic/jetpack-jitm",
+ "version": "v2.2.0",
+ "version_normalized": "2.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-jitm.git",
+ "reference": "7ac6dc5ffb274310ddc6d38fc1611af19245dc96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-jitm/zipball/7ac6dc5ffb274310ddc6d38fc1611af19245dc96",
+ "reference": "7ac6dc5ffb274310ddc6d38fc1611af19245dc96",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-device-detection": "^1.4",
+ "automattic/jetpack-logo": "^1.5",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-partner": "^1.6",
+ "automattic/jetpack-redirect": "^1.7",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:02+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-jitm",
+ "textdomain": "jetpack-jitm",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-jitm.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-jitm/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Just in time messages for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-jitm/tree/v2.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-jitm"
+ },
+ {
+ "name": "automattic/jetpack-lazy-images",
+ "version": "v2.1.0",
+ "version_normalized": "2.1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-lazy-images.git",
+ "reference": "5aa6cfed2311fd3eb85d5c61dcf59854c5418380"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-lazy-images/zipball/5aa6cfed2311fd3eb85d5c61dcf59854c5418380",
+ "reference": "5aa6cfed2311fd3eb85d5c61dcf59854c5418380",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:48+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-lazy-images",
+ "textdomain": "jetpack-lazy-images",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-lazy-images/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Speed up your site and create a smoother viewing experience by loading images as visitors scroll down the screen, instead of all at once.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-lazy-images/tree/v2.1.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-lazy-images"
+ },
+ {
+ "name": "automattic/jetpack-licensing",
+ "version": "v1.6.0",
+ "version_normalized": "1.6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-licensing.git",
+ "reference": "cf6c5c97313fcfd2b5497cc3de945e49262f633e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-licensing/zipball/cf6c5c97313fcfd2b5497cc3de945e49262f633e",
+ "reference": "cf6c5c97313fcfd2b5497cc3de945e49262f633e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-options": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:03+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-licensing",
+ "textdomain": "jetpack-licensing",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-licensing/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to manage Jetpack licenses client-side.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-licensing/tree/v1.6.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-licensing"
+ },
+ {
+ "name": "automattic/jetpack-logo",
+ "version": "v1.5.13",
+ "version_normalized": "1.5.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-logo.git",
+ "reference": "0f0a80b3ac89d8d64756a8049903fcedf6f2e887"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-logo/zipball/0f0a80b3ac89d8d64756a8049903fcedf6f2e887",
+ "reference": "0f0a80b3ac89d8d64756a8049903fcedf6f2e887",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:37+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-logo",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-logo/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.5.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A logo for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-logo/tree/v1.5.13"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-logo"
+ },
+ {
+ "name": "automattic/jetpack-my-jetpack",
+ "version": "v0.3.0",
+ "version_normalized": "0.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-my-jetpack.git",
+ "reference": "74179288cb1c3193320618fbc00e35244278ae9f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-my-jetpack/zipball/74179288cb1c3193320618fbc00e35244278ae9f",
+ "reference": "74179288cb1c3193320618fbc00e35244278ae9f",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-admin-ui": "^0.2",
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:04+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-my-jetpack",
+ "textdomain": "jetpack-my-jetpack",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "WP Admin page with information and configuration shared among all Jetpack stand-alone plugins",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-my-jetpack/tree/v0.3.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-my-jetpack"
+ },
+ {
+ "name": "automattic/jetpack-options",
+ "version": "v1.14.2",
+ "version_normalized": "1.14.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-options.git",
+ "reference": "9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2",
+ "reference": "9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:42+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-options",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-options/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.14.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A wrapper for wp-options to manage specific Jetpack options.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-options/tree/v1.14.2"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-options"
+ },
+ {
+ "name": "automattic/jetpack-partner",
+ "version": "v1.6.2",
+ "version_normalized": "1.6.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-partner.git",
+ "reference": "68ff674f5f1301e1016521b58a39d18fe6442407"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-partner/zipball/68ff674f5f1301e1016521b58a39d18fe6442407",
+ "reference": "68ff674f5f1301e1016521b58a39d18fe6442407",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/wordbless": "@dev",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:49+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-partner",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-partner/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Support functions for Jetpack hosting partners.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-partner/tree/v1.6.2"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-partner"
+ },
+ {
+ "name": "automattic/jetpack-password-checker",
+ "version": "v0.2.0",
+ "version_normalized": "0.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-password-checker.git",
+ "reference": "e07ea017e9d13fbb4104e40308dde8413ef6310f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-password-checker/zipball/e07ea017e9d13fbb4104e40308dde8413ef6310f",
+ "reference": "e07ea017e9d13fbb4104e40308dde8413ef6310f",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:38+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-password-checker",
+ "textdomain": "jetpack-password-checker",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-password-checker/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Password Checker.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-password-checker/tree/v0.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-password-checker"
+ },
+ {
+ "name": "automattic/jetpack-redirect",
+ "version": "v1.7.9",
+ "version_normalized": "1.7.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-redirect.git",
+ "reference": "7b7640108a704b6978814e0cfb2e5102d19c7d42"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-redirect/zipball/7b7640108a704b6978814e0cfb2e5102d19c7d42",
+ "reference": "7b7640108a704b6978814e0cfb2e5102d19c7d42",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:51+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-redirect",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-redirect/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.7.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities to build URLs to the jetpack.com/redirect/ service",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-redirect/tree/v1.7.9"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-redirect"
+ },
+ {
+ "name": "automattic/jetpack-roles",
+ "version": "v1.4.13",
+ "version_normalized": "1.4.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-roles.git",
+ "reference": "5d0a94f52de1e44a4537bc736af940f6b178c107"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/5d0a94f52de1e44a4537bc736af940f6b178c107",
+ "reference": "5d0a94f52de1e44a4537bc736af940f6b178c107",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:39+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-roles",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-roles/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities, related with user roles and capabilities.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-roles/tree/v1.4.13"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-roles"
+ },
+ {
+ "name": "automattic/jetpack-search",
+ "version": "v0.4.0",
+ "version_normalized": "0.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-search.git",
+ "reference": "dee991d060e09821b2b4c9927c987a4877c3648e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-search/zipball/dee991d060e09821b2b4c9927c987a4877c3648e",
+ "reference": "dee991d060e09821b2b4c9927c987a4877c3648e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "0.3.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:05+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-search",
+ "textdomain": "jetpack-search-pkg",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-search/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tools to assist with enabling cloud search for Jetpack sites.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-search/tree/v0.4.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-search"
+ },
+ {
+ "name": "automattic/jetpack-status",
+ "version": "v1.9.5",
+ "version_normalized": "1.9.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-status.git",
+ "reference": "6300e03a808ef63dda558f0eb78e39a0e529a274"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/6300e03a808ef63dda558f0eb78e39a0e529a274",
+ "reference": "6300e03a808ef63dda558f0eb78e39a0e529a274",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:43+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-status",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-status/tree/v1.9.5"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-status"
+ },
+ {
+ "name": "automattic/jetpack-sync",
+ "version": "v1.28.0",
+ "version_normalized": "1.28.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-sync.git",
+ "reference": "3c7ce980bde96feaf695f998d5eb9458c9c16732"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-sync/zipball/3c7ce980bde96feaf695f998d5eb9458c9c16732",
+ "reference": "3c7ce980bde96feaf695f998d5eb9458c9c16732",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-heartbeat": "^1.4",
+ "automattic/jetpack-identity-crisis": "^0.6",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-password-checker": "^0.2",
+ "automattic/jetpack-roles": "^1.4",
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:09+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-sync",
+ "textdomain": "jetpack-sync",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-sync/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.28.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to allow syncing to the WP.com infrastructure.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-sync/tree/v1.28.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-sync"
+ },
+ {
+ "name": "automattic/jetpack-terms-of-service",
+ "version": "v1.9.18",
+ "version_normalized": "1.9.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
+ "reference": "46f3ac423d38219d719f0d0a33e7753b6e28d7ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/46f3ac423d38219d719f0d0a33e7753b6e28d7ef",
+ "reference": "46f3ac423d38219d719f0d0a33e7753b6e28d7ef",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:52+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-terms-of-service",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-terms-of-service/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything need to manage the terms of service state",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-terms-of-service/tree/v1.9.18"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-terms-of-service"
+ },
+ {
+ "name": "automattic/jetpack-tracking",
+ "version": "v1.14.0",
+ "version_normalized": "1.14.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-tracking.git",
+ "reference": "b2f869437c42fca557f3450fed0f61ae6162d0bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/b2f869437c42fca557f3450fed0f61ae6162d0bf",
+ "reference": "b2f869437c42fca557f3450fed0f61ae6162d0bf",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-terms-of-service": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:55+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-tracking",
+ "textdomain": "jetpack-tracking",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-tracking/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.14.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy",
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tracking for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-tracking/tree/v1.14.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-tracking"
+ },
+ {
+ "name": "nojimage/twitter-text-php",
+ "version": "v3.1.2",
+ "version_normalized": "3.1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nojimage/twitter-text-php.git",
+ "reference": "979bcf6a92d543b61588c7c0c0a87d0eb473d8f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nojimage/twitter-text-php/zipball/979bcf6a92d543b61588c7c0c0a87d0eb473d8f6",
+ "reference": "979bcf6a92d543b61588c7c0c0a87d0eb473d8f6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-intl": "*",
+ "ext-mbstring": "*",
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "phpunit/phpunit": "4.8.*|5.7.*|6.5.*",
+ "symfony/yaml": "^2.6.0|^3.4.0|^4.4.0|^5.0.0",
+ "twitter/twitter-text": "^3.0.0"
+ },
+ "time": "2021-03-18T11:38:53+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-0": {
+ "Twitter\\Text\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Matt Sanford",
+ "email": "matt@mzsanford.com",
+ "homepage": "http://mzsanford.com"
+ },
+ {
+ "name": "Mike Cochrane",
+ "email": "mikec@mikenz.geek.nz",
+ "homepage": "http://mikenz.geek.nz"
+ },
+ {
+ "name": "Nick Pope",
+ "email": "git@nickpope.me.uk",
+ "homepage": "http://www.nickpope.me.uk"
+ },
+ {
+ "name": "Takashi Nojima",
+ "homepage": "http://php-tips.com"
+ }
+ ],
+ "description": "A library of PHP classes that provide auto-linking and extraction of usernames, lists, hashtags and URLs from tweets.",
+ "homepage": "https://github.com/nojimage/twitter-text-php",
+ "keywords": [
+ "autolink",
+ "extract",
+ "text",
+ "twitter"
+ ],
+ "support": {
+ "issues": "https://github.com/nojimage/twitter-text-php/issues",
+ "source": "https://github.com/nojimage/twitter-text-php/tree/v3.1.2"
+ },
+ "install-path": "../nojimage/twitter-text-php"
+ }
+ ],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/plugins/jetpack/vendor/composer/installed.php b/plugins/jetpack/vendor/composer/installed.php
new file mode 100644
index 00000000..a7b11827
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/installed.php
@@ -0,0 +1,320 @@
+<?php return array(
+ 'root' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'name' => 'automattic/jetpack',
+ 'dev' => false,
+ ),
+ 'versions' => array(
+ 'automattic/jetpack' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-a8c-mc-stats' => array(
+ 'pretty_version' => 'v1.4.11',
+ 'version' => '1.4.11.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-a8c-mc-stats',
+ 'aliases' => array(),
+ 'reference' => '6e7d7c8b9c996f04978b834e4c3484bd2d916998',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-abtest' => array(
+ 'pretty_version' => 'v1.9.18',
+ 'version' => '1.9.18.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-abtest',
+ 'aliases' => array(),
+ 'reference' => '8ad2e2685a1370f080c403095bad009b2f87370e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-admin-ui' => array(
+ 'pretty_version' => 'v0.2.1',
+ 'version' => '0.2.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-admin-ui',
+ 'aliases' => array(),
+ 'reference' => 'ce6964700c9698f9ea8c0a00120f1fbbd755de57',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-assets' => array(
+ 'pretty_version' => 'v1.16.1',
+ 'version' => '1.16.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-assets',
+ 'aliases' => array(),
+ 'reference' => '5a6959969bed4559e080269cafbd69d476249822',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-autoloader' => array(
+ 'pretty_version' => 'v2.10.11',
+ 'version' => '2.10.11.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../automattic/jetpack-autoloader',
+ 'aliases' => array(),
+ 'reference' => '924226c0a9e2f9b0be022fc6bab2a90f5e610ef3',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-backup' => array(
+ 'pretty_version' => 'v1.2.0',
+ 'version' => '1.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-backup',
+ 'aliases' => array(),
+ 'reference' => '55054e3fe2c0450d4738b3dcce547d26ee82faa1',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-blocks' => array(
+ 'pretty_version' => 'v1.4.9',
+ 'version' => '1.4.9.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-blocks',
+ 'aliases' => array(),
+ 'reference' => 'ac699666f0bd01c4f74f9fa339a553e466a8b987',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-compat' => array(
+ 'pretty_version' => 'v1.6.8',
+ 'version' => '1.6.8.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-compat',
+ 'aliases' => array(),
+ 'reference' => '38da6f2769a2438d192cde43343f3b9fdb517df1',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-composer-plugin' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../automattic/jetpack-composer-plugin',
+ 'aliases' => array(),
+ 'reference' => '27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-config' => array(
+ 'pretty_version' => 'v1.6.0',
+ 'version' => '1.6.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-config',
+ 'aliases' => array(),
+ 'reference' => '1d46f87df9167a03960d708ce767d0efdfc855cf',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-connection' => array(
+ 'pretty_version' => 'v1.34.0',
+ 'version' => '1.34.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-connection',
+ 'aliases' => array(),
+ 'reference' => '14545cff5de0384e8ced64bb161e814e657efebf',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-connection-ui' => array(
+ 'pretty_version' => 'v2.3.0',
+ 'version' => '2.3.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-connection-ui',
+ 'aliases' => array(),
+ 'reference' => '375ea7b050b2dc98a06fc317dae8441dc1eacba8',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-constants' => array(
+ 'pretty_version' => 'v1.6.14',
+ 'version' => '1.6.14.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-constants',
+ 'aliases' => array(),
+ 'reference' => '93af2a61eceaabd16c432451cc33f7c9074efa81',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-device-detection' => array(
+ 'pretty_version' => 'v1.4.11',
+ 'version' => '1.4.11.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-device-detection',
+ 'aliases' => array(),
+ 'reference' => 'ab5ce7e487de9c9a13456d4aecdb7789f92f818d',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-error' => array(
+ 'pretty_version' => 'v1.3.12',
+ 'version' => '1.3.12.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-error',
+ 'aliases' => array(),
+ 'reference' => '005bf60c2d533b3d169d6688360aaf034e7fc456',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-heartbeat' => array(
+ 'pretty_version' => 'v1.4.0',
+ 'version' => '1.4.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-heartbeat',
+ 'aliases' => array(),
+ 'reference' => 'c35053475b1cb7363aee847e0d025f0a043dc3d5',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-identity-crisis' => array(
+ 'pretty_version' => 'v0.6.1',
+ 'version' => '0.6.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-identity-crisis',
+ 'aliases' => array(),
+ 'reference' => '62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-jitm' => array(
+ 'pretty_version' => 'v2.2.0',
+ 'version' => '2.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-jitm',
+ 'aliases' => array(),
+ 'reference' => '7ac6dc5ffb274310ddc6d38fc1611af19245dc96',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-lazy-images' => array(
+ 'pretty_version' => 'v2.1.0',
+ 'version' => '2.1.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-lazy-images',
+ 'aliases' => array(),
+ 'reference' => '5aa6cfed2311fd3eb85d5c61dcf59854c5418380',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-licensing' => array(
+ 'pretty_version' => 'v1.6.0',
+ 'version' => '1.6.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-licensing',
+ 'aliases' => array(),
+ 'reference' => 'cf6c5c97313fcfd2b5497cc3de945e49262f633e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-logo' => array(
+ 'pretty_version' => 'v1.5.13',
+ 'version' => '1.5.13.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-logo',
+ 'aliases' => array(),
+ 'reference' => '0f0a80b3ac89d8d64756a8049903fcedf6f2e887',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-my-jetpack' => array(
+ 'pretty_version' => 'v0.3.0',
+ 'version' => '0.3.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-my-jetpack',
+ 'aliases' => array(),
+ 'reference' => '74179288cb1c3193320618fbc00e35244278ae9f',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-options' => array(
+ 'pretty_version' => 'v1.14.2',
+ 'version' => '1.14.2.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-options',
+ 'aliases' => array(),
+ 'reference' => '9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-partner' => array(
+ 'pretty_version' => 'v1.6.2',
+ 'version' => '1.6.2.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-partner',
+ 'aliases' => array(),
+ 'reference' => '68ff674f5f1301e1016521b58a39d18fe6442407',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-password-checker' => array(
+ 'pretty_version' => 'v0.2.0',
+ 'version' => '0.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-password-checker',
+ 'aliases' => array(),
+ 'reference' => 'e07ea017e9d13fbb4104e40308dde8413ef6310f',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-redirect' => array(
+ 'pretty_version' => 'v1.7.9',
+ 'version' => '1.7.9.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-redirect',
+ 'aliases' => array(),
+ 'reference' => '7b7640108a704b6978814e0cfb2e5102d19c7d42',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-roles' => array(
+ 'pretty_version' => 'v1.4.13',
+ 'version' => '1.4.13.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-roles',
+ 'aliases' => array(),
+ 'reference' => '5d0a94f52de1e44a4537bc736af940f6b178c107',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-search' => array(
+ 'pretty_version' => 'v0.4.0',
+ 'version' => '0.4.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-search',
+ 'aliases' => array(),
+ 'reference' => 'dee991d060e09821b2b4c9927c987a4877c3648e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-status' => array(
+ 'pretty_version' => 'v1.9.5',
+ 'version' => '1.9.5.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-status',
+ 'aliases' => array(),
+ 'reference' => '6300e03a808ef63dda558f0eb78e39a0e529a274',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-sync' => array(
+ 'pretty_version' => 'v1.28.0',
+ 'version' => '1.28.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-sync',
+ 'aliases' => array(),
+ 'reference' => '3c7ce980bde96feaf695f998d5eb9458c9c16732',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-terms-of-service' => array(
+ 'pretty_version' => 'v1.9.18',
+ 'version' => '1.9.18.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-terms-of-service',
+ 'aliases' => array(),
+ 'reference' => '46f3ac423d38219d719f0d0a33e7753b6e28d7ef',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-tracking' => array(
+ 'pretty_version' => 'v1.14.0',
+ 'version' => '1.14.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-tracking',
+ 'aliases' => array(),
+ 'reference' => 'b2f869437c42fca557f3450fed0f61ae6162d0bf',
+ 'dev_requirement' => false,
+ ),
+ 'nojimage/twitter-text-php' => array(
+ 'pretty_version' => 'v3.1.2',
+ 'version' => '3.1.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../nojimage/twitter-text-php',
+ 'aliases' => array(),
+ 'reference' => '979bcf6a92d543b61588c7c0c0a87d0eb473d8f6',
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php b/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php
new file mode 100644
index 00000000..3c098c3d
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php
@@ -0,0 +1,593 @@
+<?php
+
+// This file `jetpack_autoload_classmap.php` was auto generated by automattic/jetpack-autoloader.
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php'
+ ),
+ 'Twitter\\Text\\Configuration' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php'
+ ),
+ 'Twitter\\Text\\Autolink' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php'
+ ),
+ 'Twitter\\Text\\TldLists' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php'
+ ),
+ 'Twitter\\Text\\Validator' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php'
+ ),
+ 'Twitter\\Text\\StringUtils' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php'
+ ),
+ 'Twitter\\Text\\ParseResults' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php'
+ ),
+ 'Twitter\\Text\\EmojiRegex' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php'
+ ),
+ 'Twitter\\Text\\Extractor' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php'
+ ),
+ 'Twitter\\Text\\HitHighlighter' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php'
+ ),
+ 'Twitter\\Text\\Regex' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php'
+ ),
+ 'Twitter\\Text\\Parser' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php'
+ ),
+ 'Automattic\\Jetpack\\Plugin\\Tracking' => array(
+ 'version' => 'dev-master',
+ 'path' => $baseDir . '/src/class-tracking.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Settings' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Plan' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Options' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Helper' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Module_Control' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php'
+ ),
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => array(
+ 'version' => '0.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php'
+ ),
+ 'Automattic\\Jetpack\\Licensing' => array(
+ 'version' => '1.6.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php'
+ ),
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => array(
+ 'version' => '2.1.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => array(
+ 'version' => '2.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php'
+ ),
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => array(
+ 'version' => '2.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php'
+ ),
+ 'Automattic\\Jetpack\\Config' => array(
+ 'version' => '1.6.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php'
+ ),
+ 'Jetpack_Sync_Settings' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php'
+ ),
+ 'JetpackTracking' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php'
+ ),
+ 'Jetpack_Sync_Actions' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php'
+ ),
+ 'Jetpack_Client' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php'
+ ),
+ 'Jetpack_Sync_Modules' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php'
+ ),
+ 'Automattic\\Jetpack\\Blocks' => array(
+ 'version' => '1.4.9.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Abtest' => array(
+ 'version' => '1.9.18.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php'
+ ),
+ 'Automattic\\Jetpack\\Composer\\Plugin' => array(
+ 'version' => '1.0.1.0',
+ 'path' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-plugin.php'
+ ),
+ 'Automattic\\Jetpack\\Composer\\Manager' => array(
+ 'version' => '1.0.1.0',
+ 'path' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => array(
+ 'version' => '0.2.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php'
+ ),
+ 'Automattic\\Jetpack\\Partner_Coupon' => array(
+ 'version' => '1.6.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php'
+ ),
+ 'Automattic\\Jetpack\\Partner' => array(
+ 'version' => '1.6.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Server' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Defaults' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Settings' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Health' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Queue' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Lock' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Actions' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Main' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Sender' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Utils' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Functions' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Listener' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php'
+ ),
+ 'Automattic\\Jetpack\\Error' => array(
+ 'version' => '1.3.12.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php'
+ ),
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php'
+ ),
+ 'Automattic\\Jetpack\\Device_Detection' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php'
+ ),
+ 'Automattic\\Jetpack\\Password_Checker' => array(
+ 'version' => '0.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php'
+ ),
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php'
+ ),
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\Identity_Crisis' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php'
+ ),
+ 'Automattic\\Jetpack\\Assets\\Logo' => array(
+ 'version' => '1.5.13.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php'
+ ),
+ 'Jetpack_IXR_ClientMulticall' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php'
+ ),
+ 'Jetpack_Signature' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php'
+ ),
+ 'Jetpack_XMLRPC_Server' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php'
+ ),
+ 'Jetpack_IXR_Client' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Urls' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Plugin' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Client' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Secrets' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Utils' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Tokens' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Manager' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php'
+ ),
+ 'Automattic\\Jetpack\\Redirect' => array(
+ 'version' => '1.7.9.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php'
+ ),
+ 'Automattic\\Jetpack\\Heartbeat' => array(
+ 'version' => '1.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php'
+ ),
+ 'Automattic\\Jetpack\\Roles' => array(
+ 'version' => '1.4.13.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php'
+ ),
+ 'Jetpack_Tracks_Client' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php'
+ ),
+ 'Jetpack_Tracks_Event' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php'
+ ),
+ 'Automattic\\Jetpack\\Tracking' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php'
+ ),
+ 'Automattic\\Jetpack\\Assets' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php'
+ ),
+ 'Automattic\\Jetpack\\Assets\\Semver' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php'
+ ),
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php'
+ ),
+ 'Automattic\\Jetpack\\Terms_Of_Service' => array(
+ 'version' => '1.9.18.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php'
+ ),
+ 'Automattic\\Jetpack\\Status' => array(
+ 'version' => '1.9.5.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php'
+ ),
+ 'Automattic\\Jetpack\\Status\\Host' => array(
+ 'version' => '1.9.5.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php'
+ ),
+ 'Jetpack_Options' => array(
+ 'version' => '1.14.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php'
+ ),
+ 'Automattic\\Jetpack\\Constants' => array(
+ 'version' => '1.6.14.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php'
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php b/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php
new file mode 100644
index 00000000..861e16a0
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php
@@ -0,0 +1,21 @@
+<?php
+
+// This file `jetpack_autoload_filemap.php` was auto generated by automattic/jetpack-autoloader.
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+ '3773ef3f09c37da5478d578e32b03a4b' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/actions.php'
+ ),
+ 'd4eb94df91a729802d18373ee8cdc79f' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/actions.php'
+ ),
+ '009de6aaa0d497eacea41fab13fc05f1' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/functions.php'
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/platform_check.php b/plugins/jetpack/vendor/composer/platform_check.php
new file mode 100644
index 00000000..7f0d16c7
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 50303)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.3". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php
new file mode 100644
index 00000000..652e98e9
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+use Automattic\Jetpack\Autoloader\AutoloadGenerator;
+
+/**
+ * This class selects the package version for the autoloader.
+ */
+class Autoloader_Handler {
+
+ /**
+ * The PHP_Autoloader instance.
+ *
+ * @var PHP_Autoloader
+ */
+ private $php_autoloader;
+
+ /**
+ * The Hook_Manager instance.
+ *
+ * @var Hook_Manager
+ */
+ private $hook_manager;
+
+ /**
+ * The Manifest_Reader instance.
+ *
+ * @var Manifest_Reader
+ */
+ private $manifest_reader;
+
+ /**
+ * The Version_Selector instance.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param PHP_Autoloader $php_autoloader The PHP_Autoloader instance.
+ * @param Hook_Manager $hook_manager The Hook_Manager instance.
+ * @param Manifest_Reader $manifest_reader The Manifest_Reader instance.
+ * @param Version_Selector $version_selector The Version_Selector instance.
+ */
+ public function __construct( $php_autoloader, $hook_manager, $manifest_reader, $version_selector ) {
+ $this->php_autoloader = $php_autoloader;
+ $this->hook_manager = $hook_manager;
+ $this->manifest_reader = $manifest_reader;
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Checks to see whether or not an autoloader is currently in the process of initializing.
+ *
+ * @return bool
+ */
+ public function is_initializing() {
+ // If no version has been set it means that no autoloader has started initializing yet.
+ global $jetpack_autoloader_latest_version;
+ if ( ! isset( $jetpack_autoloader_latest_version ) ) {
+ return false;
+ }
+
+ // When the version is set but the classmap is not it ALWAYS means that this is the
+ // latest autoloader and is being included by an older one.
+ global $jetpack_packages_classmap;
+ if ( empty( $jetpack_packages_classmap ) ) {
+ return true;
+ }
+
+ // Version 2.4.0 added a new global and altered the reset semantics. We need to check
+ // the other global as well since it may also point at initialization.
+ // Note: We don't need to check for the class first because every autoloader that
+ // will set the latest version global requires this class in the classmap.
+ $replacing_version = $jetpack_packages_classmap[ AutoloadGenerator::class ]['version'];
+ if ( $this->version_selector->is_dev_version( $replacing_version ) || version_compare( $replacing_version, '2.4.0.0', '>=' ) ) {
+ global $jetpack_autoloader_loader;
+ if ( ! isset( $jetpack_autoloader_loader ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Activates an autoloader using the given plugins and activates it.
+ *
+ * @param string[] $plugins The plugins to initialize the autoloader for.
+ */
+ public function activate_autoloader( $plugins ) {
+ global $jetpack_packages_psr4;
+ $jetpack_packages_psr4 = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_psr4.php', $jetpack_packages_psr4 );
+
+ global $jetpack_packages_classmap;
+ $jetpack_packages_classmap = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_classmap.php', $jetpack_packages_classmap );
+
+ global $jetpack_packages_filemap;
+ $jetpack_packages_filemap = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_filemap.php', $jetpack_packages_filemap );
+
+ $loader = new Version_Loader(
+ $this->version_selector,
+ $jetpack_packages_classmap,
+ $jetpack_packages_psr4,
+ $jetpack_packages_filemap
+ );
+
+ $this->php_autoloader->register_autoloader( $loader );
+
+ // Now that the autoloader is active we can load the filemap.
+ $loader->load_filemap();
+ }
+
+ /**
+ * Resets the active autoloader and all related global state.
+ */
+ public function reset_autoloader() {
+ $this->php_autoloader->unregister_autoloader();
+ $this->hook_manager->reset();
+
+ // Clear all of the autoloader globals so that older autoloaders don't do anything strange.
+ global $jetpack_autoloader_latest_version;
+ $jetpack_autoloader_latest_version = null;
+
+ global $jetpack_packages_classmap;
+ $jetpack_packages_classmap = array(); // Must be array to avoid exceptions in old autoloaders!
+
+ global $jetpack_packages_psr4;
+ $jetpack_packages_psr4 = array(); // Must be array to avoid exceptions in old autoloaders!
+
+ global $jetpack_packages_filemap;
+ $jetpack_packages_filemap = array(); // Must be array to avoid exceptions in old autoloaders!
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php
new file mode 100644
index 00000000..81320d9c
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+use Automattic\Jetpack\Autoloader\AutoloadGenerator;
+
+/**
+ * This class locates autoloaders.
+ */
+class Autoloader_Locator {
+
+ /**
+ * The object for comparing autoloader versions.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The version selector object.
+ */
+ public function __construct( $version_selector ) {
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Finds the path to the plugin with the latest autoloader.
+ *
+ * @param array $plugin_paths An array of plugin paths.
+ * @param string $latest_version The latest version reference.
+ *
+ * @return string|null
+ */
+ public function find_latest_autoloader( $plugin_paths, &$latest_version ) {
+ $latest_plugin = null;
+
+ foreach ( $plugin_paths as $plugin_path ) {
+ $version = $this->get_autoloader_version( $plugin_path );
+ if ( ! $this->version_selector->is_version_update_required( $latest_version, $version ) ) {
+ continue;
+ }
+
+ $latest_version = $version;
+ $latest_plugin = $plugin_path;
+ }
+
+ return $latest_plugin;
+ }
+
+ /**
+ * Gets the path to the autoloader.
+ *
+ * @param string $plugin_path The path to the plugin.
+ *
+ * @return string
+ */
+ public function get_autoloader_path( $plugin_path ) {
+ return trailingslashit( $plugin_path ) . 'vendor/autoload_packages.php';
+ }
+
+ /**
+ * Gets the version for the autoloader.
+ *
+ * @param string $plugin_path The path to the plugin.
+ *
+ * @return string|null
+ */
+ public function get_autoloader_version( $plugin_path ) {
+ $classmap = trailingslashit( $plugin_path ) . 'vendor/composer/jetpack_autoload_classmap.php';
+ if ( ! file_exists( $classmap ) ) {
+ return null;
+ }
+
+ $classmap = require $classmap;
+ if ( isset( $classmap[ AutoloadGenerator::class ] ) ) {
+ return $classmap[ AutoloadGenerator::class ]['version'];
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php
new file mode 100644
index 00000000..399fc08f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles management of the actual PHP autoloader.
+ */
+class Autoloader {
+
+ /**
+ * Checks to see whether or not the autoloader should be initialized and then initializes it if so.
+ *
+ * @param Container|null $container The container we want to use for autoloader initialization. If none is given
+ * then a container will be created automatically.
+ */
+ public static function init( $container = null ) {
+ // The container holds and manages the lifecycle of our dependencies
+ // to make them easier to work with and increase flexibility.
+ if ( ! isset( $container ) ) {
+ require_once __DIR__ . '/class-container.php';
+ $container = new Container();
+ }
+
+ // phpcs:disable Generic.Commenting.DocComment.MissingShort
+
+ /** @var Autoloader_Handler $autoloader_handler */
+ $autoloader_handler = $container->get( Autoloader_Handler::class );
+
+ // If the autoloader is already initializing it means that it has included us as the latest.
+ $was_included_by_autoloader = $autoloader_handler->is_initializing();
+
+ /** @var Plugin_Locator $plugin_locator */
+ $plugin_locator = $container->get( Plugin_Locator::class );
+
+ /** @var Plugins_Handler $plugins_handler */
+ $plugins_handler = $container->get( Plugins_Handler::class );
+
+ // The current plugin is the one that we are attempting to initialize here.
+ $current_plugin = $plugin_locator->find_current_plugin();
+
+ // The active plugins are those that we were able to discover on the site. This list will not
+ // include mu-plugins, those activated by code, or those who are hidden by filtering. We also
+ // want to take care to not consider the current plugin unknown if it was included by an
+ // autoloader. This avoids the case where a plugin will be marked "active" while deactivated
+ // due to it having the latest autoloader.
+ $active_plugins = $plugins_handler->get_active_plugins( true, ! $was_included_by_autoloader );
+
+ // The cached plugins are all of those that were active or discovered by the autoloader during a previous request.
+ // Note that it's possible this list will include plugins that have since been deactivated, but after a request
+ // the cache should be updated and the deactivated plugins will be removed.
+ $cached_plugins = $plugins_handler->get_cached_plugins();
+
+ // We combine the active list and cached list to preemptively load classes for plugins that are
+ // presently unknown but will be loaded during the request. While this may result in us considering packages in
+ // deactivated plugins there shouldn't be any problems as a result and the eventual consistency is sufficient.
+ $all_plugins = array_merge( $active_plugins, $cached_plugins );
+
+ // In particular we also include the current plugin to address the case where it is the latest autoloader
+ // but also unknown (and not cached). We don't want it in the active list because we don't know that it
+ // is active but we need it in the all plugins list so that it is considered by the autoloader.
+ $all_plugins[] = $current_plugin;
+
+ // We require uniqueness in the array to avoid processing the same plugin more than once.
+ $all_plugins = array_values( array_unique( $all_plugins ) );
+
+ /** @var Latest_Autoloader_Guard $guard */
+ $guard = $container->get( Latest_Autoloader_Guard::class );
+ if ( $guard->should_stop_init( $current_plugin, $all_plugins, $was_included_by_autoloader ) ) {
+ return;
+ }
+
+ // Initialize the autoloader using the handler now that we're ready.
+ $autoloader_handler->activate_autoloader( $all_plugins );
+
+ /** @var Hook_Manager $hook_manager */
+ $hook_manager = $container->get( Hook_Manager::class );
+
+ // Register a shutdown handler to clean up the autoloader.
+ $hook_manager->add_action( 'shutdown', new Shutdown_Handler( $plugins_handler, $cached_plugins, $was_included_by_autoloader ) );
+
+ // phpcs:enable Generic.Commenting.DocComment.MissingShort
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-container.php b/plugins/jetpack/vendor/jetpack-autoloader/class-container.php
new file mode 100644
index 00000000..4a16e48f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-container.php
@@ -0,0 +1,150 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class manages the files and dependencies of the autoloader.
+ */
+class Container {
+
+ /**
+ * Since each autoloader's class files exist within their own namespace we need a map to
+ * convert between the local class and a shared key. Note that no version checking is
+ * performed on these dependencies and the first autoloader to register will be the
+ * one that is utilized.
+ */
+ const SHARED_DEPENDENCY_KEYS = array(
+ Hook_Manager::class => 'Hook_Manager',
+ );
+
+ /**
+ * A map of all the dependencies we've registered with the container and created.
+ *
+ * @var array
+ */
+ protected $dependencies;
+
+ /**
+ * The constructor.
+ */
+ public function __construct() {
+ $this->dependencies = array();
+
+ $this->register_shared_dependencies();
+ $this->register_dependencies();
+ $this->initialize_globals();
+ }
+
+ /**
+ * Gets a dependency out of the container.
+ *
+ * @param string $class The class to fetch.
+ *
+ * @return mixed
+ * @throws \InvalidArgumentException When a class that isn't registered with the container is fetched.
+ */
+ public function get( $class ) {
+ if ( ! isset( $this->dependencies[ $class ] ) ) {
+ throw new \InvalidArgumentException( "Class '$class' is not registered with the container." );
+ }
+
+ return $this->dependencies[ $class ];
+ }
+
+ /**
+ * Registers all of the dependencies that are shared between all instances of the autoloader.
+ */
+ private function register_shared_dependencies() {
+ global $jetpack_autoloader_container_shared;
+ if ( ! isset( $jetpack_autoloader_container_shared ) ) {
+ $jetpack_autoloader_container_shared = array();
+ }
+
+ $key = self::SHARED_DEPENDENCY_KEYS[ Hook_Manager::class ];
+ if ( ! isset( $jetpack_autoloader_container_shared[ $key ] ) ) {
+ require_once __DIR__ . '/class-hook-manager.php';
+ $jetpack_autoloader_container_shared[ $key ] = new Hook_Manager();
+ }
+ $this->dependencies[ Hook_Manager::class ] = &$jetpack_autoloader_container_shared[ $key ];
+ }
+
+ /**
+ * Registers all of the dependencies with the container.
+ */
+ private function register_dependencies() {
+ require_once __DIR__ . '/class-path-processor.php';
+ $this->dependencies[ Path_Processor::class ] = new Path_Processor();
+
+ require_once __DIR__ . '/class-plugin-locator.php';
+ $this->dependencies[ Plugin_Locator::class ] = new Plugin_Locator(
+ $this->get( Path_Processor::class )
+ );
+
+ require_once __DIR__ . '/class-version-selector.php';
+ $this->dependencies[ Version_Selector::class ] = new Version_Selector();
+
+ require_once __DIR__ . '/class-autoloader-locator.php';
+ $this->dependencies[ Autoloader_Locator::class ] = new Autoloader_Locator(
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-php-autoloader.php';
+ $this->dependencies[ PHP_Autoloader::class ] = new PHP_Autoloader();
+
+ require_once __DIR__ . '/class-manifest-reader.php';
+ $this->dependencies[ Manifest_Reader::class ] = new Manifest_Reader(
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-plugins-handler.php';
+ $this->dependencies[ Plugins_Handler::class ] = new Plugins_Handler(
+ $this->get( Plugin_Locator::class ),
+ $this->get( Path_Processor::class )
+ );
+
+ require_once __DIR__ . '/class-autoloader-handler.php';
+ $this->dependencies[ Autoloader_Handler::class ] = new Autoloader_Handler(
+ $this->get( PHP_Autoloader::class ),
+ $this->get( Hook_Manager::class ),
+ $this->get( Manifest_Reader::class ),
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-latest-autoloader-guard.php';
+ $this->dependencies[ Latest_Autoloader_Guard::class ] = new Latest_Autoloader_Guard(
+ $this->get( Plugins_Handler::class ),
+ $this->get( Autoloader_Handler::class ),
+ $this->get( Autoloader_Locator::class )
+ );
+
+ // Register any classes that we will use elsewhere.
+ require_once __DIR__ . '/class-version-loader.php';
+ require_once __DIR__ . '/class-shutdown-handler.php';
+ }
+
+ /**
+ * Initializes any of the globals needed by the autoloader.
+ */
+ private function initialize_globals() {
+ /*
+ * This global was retired in version 2.9. The value is set to 'false' to maintain
+ * compatibility with older versions of the autoloader.
+ */
+ global $jetpack_autoloader_including_latest;
+ $jetpack_autoloader_including_latest = false;
+
+ // Not all plugins can be found using the locator. In cases where a plugin loads the autoloader
+ // but was not discoverable, we will record them in this array to track them as "active".
+ global $jetpack_autoloader_activating_plugins_paths;
+ if ( ! isset( $jetpack_autoloader_activating_plugins_paths ) ) {
+ $jetpack_autoloader_activating_plugins_paths = array();
+ }
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php b/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php
new file mode 100644
index 00000000..0c12bce2
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * Allows the latest autoloader to register hooks that can be removed when the autoloader is reset.
+ */
+class Hook_Manager {
+
+ /**
+ * An array containing all of the hooks that we've registered.
+ *
+ * @var array
+ */
+ private $registered_hooks;
+
+ /**
+ * The constructor.
+ */
+ public function __construct() {
+ $this->registered_hooks = array();
+ }
+
+ /**
+ * Adds an action to WordPress and registers it internally.
+ *
+ * @param string $tag The name of the action which is hooked.
+ * @param callable $callable The function to call.
+ * @param int $priority Used to specify the priority of the action.
+ * @param int $accepted_args Used to specify the number of arguments the callable accepts.
+ */
+ public function add_action( $tag, $callable, $priority = 10, $accepted_args = 1 ) {
+ $this->registered_hooks[ $tag ][] = array(
+ 'priority' => $priority,
+ 'callable' => $callable,
+ );
+
+ add_action( $tag, $callable, $priority, $accepted_args );
+ }
+
+ /**
+ * Adds a filter to WordPress and registers it internally.
+ *
+ * @param string $tag The name of the filter which is hooked.
+ * @param callable $callable The function to call.
+ * @param int $priority Used to specify the priority of the filter.
+ * @param int $accepted_args Used to specify the number of arguments the callable accepts.
+ */
+ public function add_filter( $tag, $callable, $priority = 10, $accepted_args = 1 ) {
+ $this->registered_hooks[ $tag ][] = array(
+ 'priority' => $priority,
+ 'callable' => $callable,
+ );
+
+ add_filter( $tag, $callable, $priority, $accepted_args );
+ }
+
+ /**
+ * Removes all of the registered hooks.
+ */
+ public function reset() {
+ foreach ( $this->registered_hooks as $tag => $hooks ) {
+ foreach ( $hooks as $hook ) {
+ remove_filter( $tag, $hook['callable'], $hook['priority'] );
+ }
+ }
+ $this->registered_hooks = array();
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php b/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
new file mode 100644
index 00000000..606d671b
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class ensures that we're only executing the latest autoloader.
+ */
+class Latest_Autoloader_Guard {
+
+ /**
+ * The Plugins_Handler instance.
+ *
+ * @var Plugins_Handler
+ */
+ private $plugins_handler;
+
+ /**
+ * The Autoloader_Handler instance.
+ *
+ * @var Autoloader_Handler
+ */
+ private $autoloader_handler;
+
+ /**
+ * The Autoloader_locator instance.
+ *
+ * @var Autoloader_Locator
+ */
+ private $autoloader_locator;
+
+ /**
+ * The constructor.
+ *
+ * @param Plugins_Handler $plugins_handler The Plugins_Handler instance.
+ * @param Autoloader_Handler $autoloader_handler The Autoloader_Handler instance.
+ * @param Autoloader_Locator $autoloader_locator The Autoloader_Locator instance.
+ */
+ public function __construct( $plugins_handler, $autoloader_handler, $autoloader_locator ) {
+ $this->plugins_handler = $plugins_handler;
+ $this->autoloader_handler = $autoloader_handler;
+ $this->autoloader_locator = $autoloader_locator;
+ }
+
+ /**
+ * Indicates whether or not the autoloader should be initialized. Note that this function
+ * has the side-effect of actually loading the latest autoloader in the event that this
+ * is not it.
+ *
+ * @param string $current_plugin The current plugin we're checking.
+ * @param string[] $plugins The active plugins to check for autoloaders in.
+ * @param bool $was_included_by_autoloader Indicates whether or not this autoloader was included by another.
+ *
+ * @return bool True if we should stop initialization, otherwise false.
+ */
+ public function should_stop_init( $current_plugin, $plugins, $was_included_by_autoloader ) {
+ global $jetpack_autoloader_latest_version;
+
+ // We need to reset the autoloader when the plugins change because
+ // that means the autoloader was generated with a different list.
+ if ( $this->plugins_handler->have_plugins_changed( $plugins ) ) {
+ $this->autoloader_handler->reset_autoloader();
+ }
+
+ // When the latest autoloader has already been found we don't need to search for it again.
+ // We should take care however because this will also trigger if the autoloader has been
+ // included by an older one.
+ if ( isset( $jetpack_autoloader_latest_version ) && ! $was_included_by_autoloader ) {
+ return true;
+ }
+
+ $latest_plugin = $this->autoloader_locator->find_latest_autoloader( $plugins, $jetpack_autoloader_latest_version );
+ if ( isset( $latest_plugin ) && $latest_plugin !== $current_plugin ) {
+ require $this->autoloader_locator->get_autoloader_path( $latest_plugin );
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php
new file mode 100644
index 00000000..361d5428
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class reads autoloader manifest files.
+ */
+class Manifest_Reader {
+
+ /**
+ * The Version_Selector object.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The Version_Selector object.
+ */
+ public function __construct( $version_selector ) {
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Reads all of the manifests in the given plugin paths.
+ *
+ * @param array $plugin_paths The paths to the plugins we're loading the manifest in.
+ * @param string $manifest_path The path that we're loading the manifest from in each plugin.
+ * @param array $path_map The path map to add the contents of the manifests to.
+ *
+ * @return array $path_map The path map we've built using the manifests in each plugin.
+ */
+ public function read_manifests( $plugin_paths, $manifest_path, &$path_map ) {
+ $file_paths = array_map(
+ function ( $path ) use ( $manifest_path ) {
+ return trailingslashit( $path ) . $manifest_path;
+ },
+ $plugin_paths
+ );
+
+ foreach ( $file_paths as $path ) {
+ $this->register_manifest( $path, $path_map );
+ }
+
+ return $path_map;
+ }
+
+ /**
+ * Registers a plugin's manifest file with the path map.
+ *
+ * @param string $manifest_path The absolute path to the manifest that we're loading.
+ * @param array $path_map The path map to add the contents of the manifest to.
+ */
+ protected function register_manifest( $manifest_path, &$path_map ) {
+ if ( ! is_readable( $manifest_path ) ) {
+ return;
+ }
+
+ $manifest = require $manifest_path;
+ if ( ! is_array( $manifest ) ) {
+ return;
+ }
+
+ foreach ( $manifest as $key => $data ) {
+ $this->register_record( $key, $data, $path_map );
+ }
+ }
+
+ /**
+ * Registers an entry from the manifest in the path map.
+ *
+ * @param string $key The identifier for the entry we're registering.
+ * @param array $data The data for the entry we're registering.
+ * @param array $path_map The path map to add the contents of the manifest to.
+ */
+ protected function register_record( $key, $data, &$path_map ) {
+ if ( isset( $path_map[ $key ]['version'] ) ) {
+ $selected_version = $path_map[ $key ]['version'];
+ } else {
+ $selected_version = null;
+ }
+
+ if ( $this->version_selector->is_version_update_required( $selected_version, $data['version'] ) ) {
+ $path_map[ $key ] = array(
+ 'version' => $data['version'],
+ 'path' => $data['path'],
+ );
+ }
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php b/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php
new file mode 100644
index 00000000..d7d9331f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php
@@ -0,0 +1,194 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles dealing with paths for the autoloader.
+ */
+class Path_Processor {
+ /**
+ * Given a path this will replace any of the path constants with a token to represent it.
+ *
+ * @param string $path The path we want to process.
+ *
+ * @return string The tokenized path.
+ */
+ public function tokenize_path_constants( $path ) {
+ $path = wp_normalize_path( $path );
+
+ $constants = $this->get_normalized_constants();
+ foreach ( $constants as $constant => $constant_path ) {
+ $len = strlen( $constant_path );
+ if ( substr( $path, 0, $len ) !== $constant_path ) {
+ continue;
+ }
+
+ return substr_replace( $path, '{{' . $constant . '}}', 0, $len );
+ }
+
+ return $path;
+ }
+
+ /**
+ * Given a path this will replace any of the path constant tokens with the expanded path.
+ *
+ * @param string $tokenized_path The path we want to process.
+ *
+ * @return string The expanded path.
+ */
+ public function untokenize_path_constants( $tokenized_path ) {
+ $tokenized_path = wp_normalize_path( $tokenized_path );
+
+ $constants = $this->get_normalized_constants();
+ foreach ( $constants as $constant => $constant_path ) {
+ $constant = '{{' . $constant . '}}';
+
+ $len = strlen( $constant );
+ if ( substr( $tokenized_path, 0, $len ) !== $constant ) {
+ continue;
+ }
+
+ return $this->get_real_path( substr_replace( $tokenized_path, $constant_path, 0, $len ) );
+ }
+
+ return $tokenized_path;
+ }
+
+ /**
+ * Given a file and an array of places it might be, this will find the absolute path and return it.
+ *
+ * @param string $file The plugin or theme file to resolve.
+ * @param array $directories_to_check The directories we should check for the file if it isn't an absolute path.
+ *
+ * @return string|false Returns the absolute path to the directory, otherwise false.
+ */
+ public function find_directory_with_autoloader( $file, $directories_to_check ) {
+ $file = wp_normalize_path( $file );
+
+ if ( ! $this->is_absolute_path( $file ) ) {
+ $file = $this->find_absolute_plugin_path( $file, $directories_to_check );
+ if ( ! isset( $file ) ) {
+ return false;
+ }
+ }
+
+ // We need the real path for consistency with __DIR__ paths.
+ $file = $this->get_real_path( $file );
+
+ // phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged
+ $directory = @is_file( $file ) ? dirname( $file ) : $file;
+ if ( ! @is_file( $directory . '/vendor/composer/jetpack_autoload_classmap.php' ) ) {
+ return false;
+ }
+ // phpcs:enable WordPress.PHP.NoSilencedErrors.Discouraged
+
+ return $directory;
+ }
+
+ /**
+ * Fetches an array of normalized paths keyed by the constant they came from.
+ *
+ * @return string[] The normalized paths keyed by the constant.
+ */
+ private function get_normalized_constants() {
+ $raw_constants = array(
+ // Order the constants from most-specific to least-specific.
+ 'WP_PLUGIN_DIR',
+ 'WPMU_PLUGIN_DIR',
+ 'WP_CONTENT_DIR',
+ 'ABSPATH',
+ );
+
+ $constants = array();
+ foreach ( $raw_constants as $raw ) {
+ if ( ! defined( $raw ) ) {
+ continue;
+ }
+
+ $path = wp_normalize_path( constant( $raw ) );
+ if ( isset( $path ) ) {
+ $constants[ $raw ] = $path;
+ }
+ }
+
+ return $constants;
+ }
+
+ /**
+ * Indicates whether or not a path is absolute.
+ *
+ * @param string $path The path to check.
+ *
+ * @return bool True if the path is absolute, otherwise false.
+ */
+ private function is_absolute_path( $path ) {
+ if ( 0 === strlen( $path ) || '.' === $path[0] ) {
+ return false;
+ }
+
+ // Absolute paths on Windows may begin with a drive letter.
+ if ( preg_match( '/^[a-zA-Z]:[\/\\\\]/', $path ) ) {
+ return true;
+ }
+
+ // A path starting with / or \ is absolute; anything else is relative.
+ return ( '/' === $path[0] || '\\' === $path[0] );
+ }
+
+ /**
+ * Given a file and a list of directories to check, this method will try to figure out
+ * the absolute path to the file in question.
+ *
+ * @param string $normalized_path The normalized path to the plugin or theme file to resolve.
+ * @param array $directories_to_check The directories we should check for the file if it isn't an absolute path.
+ *
+ * @return string|null The absolute path to the plugin file, otherwise null.
+ */
+ private function find_absolute_plugin_path( $normalized_path, $directories_to_check ) {
+ // We're only able to find the absolute path for plugin/theme PHP files.
+ if ( ! is_string( $normalized_path ) || '.php' !== substr( $normalized_path, -4 ) ) {
+ return null;
+ }
+
+ foreach ( $directories_to_check as $directory ) {
+ $normalized_check = wp_normalize_path( trailingslashit( $directory ) ) . $normalized_path;
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ if ( @is_file( $normalized_check ) ) {
+ return $normalized_check;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Given a path this will figure out the real path that we should be using.
+ *
+ * @param string $path The path to resolve.
+ *
+ * @return string The resolved path.
+ */
+ private function get_real_path( $path ) {
+ // We want to resolve symbolic links for consistency with __DIR__ paths.
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ $real_path = @realpath( $path );
+ if ( false === $real_path ) {
+ // Let the autoloader deal with paths that don't exist.
+ $real_path = $path;
+ }
+
+ // Using realpath will make it platform-specific so we must normalize it after.
+ if ( $path !== $real_path ) {
+ $real_path = wp_normalize_path( $real_path );
+ }
+
+ return $real_path;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php
new file mode 100644
index 00000000..7fcd3ffe
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles management of the actual PHP autoloader.
+ */
+class PHP_Autoloader {
+
+ /**
+ * Registers the autoloader with PHP so that it can begin autoloading classes.
+ *
+ * @param Version_Loader $version_loader The class loader to use in the autoloader.
+ */
+ public function register_autoloader( $version_loader ) {
+ // Make sure no other autoloaders are registered.
+ $this->unregister_autoloader();
+
+ // Set the global so that it can be used to load classes.
+ global $jetpack_autoloader_loader;
+ $jetpack_autoloader_loader = $version_loader;
+
+ // Ensure that the autoloader is first to avoid contention with others.
+ spl_autoload_register( array( self::class, 'load_class' ), true, true );
+ }
+
+ /**
+ * Unregisters the active autoloader so that it will no longer autoload classes.
+ */
+ public function unregister_autoloader() {
+ // Remove any v2 autoloader that we've already registered.
+ $autoload_chain = spl_autoload_functions();
+ if ( ! $autoload_chain ) {
+ return;
+ }
+ foreach ( $autoload_chain as $autoloader ) {
+ // We can identify a v2 autoloader using the namespace.
+ $namespace_check = null;
+
+ // Functions are recorded as strings.
+ if ( is_string( $autoloader ) ) {
+ $namespace_check = $autoloader;
+ } elseif ( is_array( $autoloader ) && is_string( $autoloader[0] ) ) {
+ // Static method calls have the class as the first array element.
+ $namespace_check = $autoloader[0];
+ } else {
+ // Since the autoloader has only ever been a function or a static method we don't currently need to check anything else.
+ continue;
+ }
+
+ // Check for the namespace without the generated suffix.
+ if ( 'Automattic\\Jetpack\\Autoloader\\jp' === substr( $namespace_check, 0, 32 ) ) {
+ spl_autoload_unregister( $autoloader );
+ }
+ }
+
+ // Clear the global now that the autoloader has been unregistered.
+ global $jetpack_autoloader_loader;
+ $jetpack_autoloader_loader = null;
+ }
+
+ /**
+ * Loads a class file if one could be found.
+ *
+ * Note: This function is static so that the autoloader can be easily unregistered. If
+ * it was a class method we would have to unwrap the object to check the namespace.
+ *
+ * @param string $class_name The name of the class to autoload.
+ *
+ * @return bool Indicates whether or not a class file was loaded.
+ */
+ public static function load_class( $class_name ) {
+ global $jetpack_autoloader_loader;
+ if ( ! isset( $jetpack_autoloader_loader ) ) {
+ return;
+ }
+
+ $file = $jetpack_autoloader_loader->find_class_file( $class_name );
+ if ( ! isset( $file ) ) {
+ return false;
+ }
+
+ require $file;
+ return true;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php b/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php
new file mode 100644
index 00000000..eee5fdfd
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php
@@ -0,0 +1,153 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class scans the WordPress installation to find active plugins.
+ */
+class Plugin_Locator {
+
+ /**
+ * The path processor for finding plugin paths.
+ *
+ * @var Path_Processor
+ */
+ private $path_processor;
+
+ /**
+ * The constructor.
+ *
+ * @param Path_Processor $path_processor The Path_Processor instance.
+ */
+ public function __construct( $path_processor ) {
+ $this->path_processor = $path_processor;
+ }
+
+ /**
+ * Finds the path to the current plugin.
+ *
+ * @return string $path The path to the current plugin.
+ *
+ * @throws \RuntimeException If the current plugin does not have an autoloader.
+ */
+ public function find_current_plugin() {
+ // Escape from `vendor/__DIR__` to root plugin directory.
+ $plugin_directory = dirname( dirname( __DIR__ ) );
+
+ // Use the path processor to ensure that this is an autoloader we're referencing.
+ $path = $this->path_processor->find_directory_with_autoloader( $plugin_directory, array() );
+ if ( false === $path ) {
+ throw new \RuntimeException( 'Failed to locate plugin ' . $plugin_directory );
+ }
+
+ return $path;
+ }
+
+ /**
+ * Checks a given option for plugin paths.
+ *
+ * @param string $option_name The option that we want to check for plugin information.
+ * @param bool $site_option Indicates whether or not we want to check the site option.
+ *
+ * @return array $plugin_paths The list of absolute paths we've found.
+ */
+ public function find_using_option( $option_name, $site_option = false ) {
+ $raw = $site_option ? get_site_option( $option_name ) : get_option( $option_name );
+ if ( false === $raw ) {
+ return array();
+ }
+
+ return $this->convert_plugins_to_paths( $raw );
+ }
+
+ /**
+ * Checks for plugins in the `action` request parameter.
+ *
+ * @param string[] $allowed_actions The actions that we're allowed to return plugins for.
+ *
+ * @return array $plugin_paths The list of absolute paths we've found.
+ */
+ public function find_using_request_action( $allowed_actions ) {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+
+ /**
+ * Note: we're not actually checking the nonce here because it's too early
+ * in the execution. The pluggable functions are not yet loaded to give
+ * plugins a chance to plug their versions. Therefore we're doing the bare
+ * minimum: checking whether the nonce exists and it's in the right place.
+ * The request will fail later if the nonce doesn't pass the check.
+ */
+ if ( empty( $_REQUEST['_wpnonce'] ) ) {
+ return array();
+ }
+
+ $action = isset( $_REQUEST['action'] ) ? wp_unslash( $_REQUEST['action'] ) : false;
+ if ( ! in_array( $action, $allowed_actions, true ) ) {
+ return array();
+ }
+
+ $plugin_slugs = array();
+ switch ( $action ) {
+ case 'activate':
+ case 'deactivate':
+ if ( empty( $_REQUEST['plugin'] ) ) {
+ break;
+ }
+
+ $plugin_slugs[] = wp_unslash( $_REQUEST['plugin'] );
+ break;
+
+ case 'activate-selected':
+ case 'deactivate-selected':
+ if ( empty( $_REQUEST['checked'] ) ) {
+ break;
+ }
+
+ $plugin_slugs = wp_unslash( $_REQUEST['checked'] );
+ break;
+ }
+
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+ return $this->convert_plugins_to_paths( $plugin_slugs );
+ }
+
+ /**
+ * Given an array of plugin slugs or paths, this will convert them to absolute paths and filter
+ * out the plugins that are not directory plugins. Note that array keys will also be included
+ * if they are plugin paths!
+ *
+ * @param string[] $plugins Plugin paths or slugs to filter.
+ *
+ * @return string[]
+ */
+ private function convert_plugins_to_paths( $plugins ) {
+ if ( ! is_array( $plugins ) || empty( $plugins ) ) {
+ return array();
+ }
+
+ // We're going to look for plugins in the standard directories.
+ $path_constants = array( WP_PLUGIN_DIR, WPMU_PLUGIN_DIR );
+
+ $plugin_paths = array();
+ foreach ( $plugins as $key => $value ) {
+ $path = $this->path_processor->find_directory_with_autoloader( $key, $path_constants );
+ if ( $path ) {
+ $plugin_paths[] = $path;
+ }
+
+ $path = $this->path_processor->find_directory_with_autoloader( $value, $path_constants );
+ if ( $path ) {
+ $plugin_paths[] = $path;
+ }
+ }
+
+ return $plugin_paths;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php
new file mode 100644
index 00000000..500a4ab0
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles locating and caching all of the active plugins.
+ */
+class Plugins_Handler {
+ /**
+ * The transient key for plugin paths.
+ */
+ const TRANSIENT_KEY = 'jetpack_autoloader_plugin_paths';
+
+ /**
+ * The locator for finding plugins in different locations.
+ *
+ * @var Plugin_Locator
+ */
+ private $plugin_locator;
+
+ /**
+ * The processor for transforming cached paths.
+ *
+ * @var Path_Processor
+ */
+ private $path_processor;
+
+ /**
+ * The constructor.
+ *
+ * @param Plugin_Locator $plugin_locator The locator for finding active plugins.
+ * @param Path_Processor $path_processor The processor for transforming cached paths.
+ */
+ public function __construct( $plugin_locator, $path_processor ) {
+ $this->plugin_locator = $plugin_locator;
+ $this->path_processor = $path_processor;
+ }
+
+ /**
+ * Gets all of the active plugins we can find.
+ *
+ * @param bool $include_deactivating When true, plugins deactivating this request will be considered active.
+ * @param bool $record_unknown When true, the current plugin will be marked as active and recorded when unknown.
+ *
+ * @return string[]
+ */
+ public function get_active_plugins( $include_deactivating, $record_unknown ) {
+ global $jetpack_autoloader_activating_plugins_paths;
+
+ // We're going to build a unique list of plugins from a few different sources
+ // to find all of our "active" plugins. While we need to return an integer
+ // array, we're going to use an associative array internally to reduce
+ // the amount of time that we're going to spend checking uniqueness
+ // and merging different arrays together to form the output.
+ $active_plugins = array();
+
+ // Make sure that plugins which have activated this request are considered as "active" even though
+ // they probably won't be present in any option.
+ if ( is_array( $jetpack_autoloader_activating_plugins_paths ) ) {
+ foreach ( $jetpack_autoloader_activating_plugins_paths as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+ }
+
+ // This option contains all of the plugins that have been activated.
+ $plugins = $this->plugin_locator->find_using_option( 'active_plugins' );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+
+ // This option contains all of the multisite plugins that have been activated.
+ if ( is_multisite() ) {
+ $plugins = $this->plugin_locator->find_using_option( 'active_sitewide_plugins', true );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+ }
+
+ // These actions contain plugins that are being activated/deactivated during this request.
+ $plugins = $this->plugin_locator->find_using_request_action( array( 'activate', 'activate-selected', 'deactivate', 'deactivate-selected' ) );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+
+ // When the current plugin isn't considered "active" there's a problem.
+ // Since we're here, the plugin is active and currently being loaded.
+ // We can support this case (mu-plugins and non-standard activation)
+ // by adding the current plugin to the active list and marking it
+ // as an unknown (activating) plugin. This also has the benefit
+ // of causing a reset because the active plugins list has
+ // been changed since it was saved in the global.
+ $current_plugin = $this->plugin_locator->find_current_plugin();
+ if ( $record_unknown && ! in_array( $current_plugin, $active_plugins, true ) ) {
+ $active_plugins[ $current_plugin ] = $current_plugin;
+ $jetpack_autoloader_activating_plugins_paths[] = $current_plugin;
+ }
+
+ // When deactivating plugins aren't desired we should entirely remove them from the active list.
+ if ( ! $include_deactivating ) {
+ // These actions contain plugins that are being deactivated during this request.
+ $plugins = $this->plugin_locator->find_using_request_action( array( 'deactivate', 'deactivate-selected' ) );
+ foreach ( $plugins as $path ) {
+ unset( $active_plugins[ $path ] );
+ }
+ }
+
+ // Transform the array so that we don't have to worry about the keys interacting with other array types later.
+ return array_values( $active_plugins );
+ }
+
+ /**
+ * Gets all of the cached plugins if there are any.
+ *
+ * @return string[]
+ */
+ public function get_cached_plugins() {
+ $cached = get_transient( self::TRANSIENT_KEY );
+ if ( ! is_array( $cached ) || empty( $cached ) ) {
+ return array();
+ }
+
+ // We need to expand the tokens to an absolute path for this webserver.
+ return array_map( array( $this->path_processor, 'untokenize_path_constants' ), $cached );
+ }
+
+ /**
+ * Saves the plugin list to the cache.
+ *
+ * @param array $plugins The plugin list to save to the cache.
+ */
+ public function cache_plugins( $plugins ) {
+ // We store the paths in a tokenized form so that that webservers with different absolute paths don't break.
+ $plugins = array_map( array( $this->path_processor, 'tokenize_path_constants' ), $plugins );
+
+ set_transient( self::TRANSIENT_KEY, $plugins );
+ }
+
+ /**
+ * Checks to see whether or not the plugin list given has changed when compared to the
+ * shared `$jetpack_autoloader_cached_plugin_paths` global. This allows us to deal
+ * with cases where the active list may change due to filtering..
+ *
+ * @param string[] $plugins The plugins list to check against the global cache.
+ *
+ * @return bool True if the plugins have changed, otherwise false.
+ */
+ public function have_plugins_changed( $plugins ) {
+ global $jetpack_autoloader_cached_plugin_paths;
+
+ if ( $jetpack_autoloader_cached_plugin_paths !== $plugins ) {
+ $jetpack_autoloader_cached_plugin_paths = $plugins;
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php
new file mode 100644
index 00000000..c2f330af
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles the shutdown of the autoloader.
+ */
+class Shutdown_Handler {
+
+ /**
+ * The Plugins_Handler instance.
+ *
+ * @var Plugins_Handler
+ */
+ private $plugins_handler;
+
+ /**
+ * The plugins cached by this autoloader.
+ *
+ * @var string[]
+ */
+ private $cached_plugins;
+
+ /**
+ * Indicates whether or not this autoloader was included by another.
+ *
+ * @var bool
+ */
+ private $was_included_by_autoloader;
+
+ /**
+ * Constructor.
+ *
+ * @param Plugins_Handler $plugins_handler The Plugins_Handler instance to use.
+ * @param string[] $cached_plugins The plugins cached by the autoloaer.
+ * @param bool $was_included_by_autoloader Indicates whether or not the autoloader was included by another.
+ */
+ public function __construct( $plugins_handler, $cached_plugins, $was_included_by_autoloader ) {
+ $this->plugins_handler = $plugins_handler;
+ $this->cached_plugins = $cached_plugins;
+ $this->was_included_by_autoloader = $was_included_by_autoloader;
+ }
+
+ /**
+ * Handles the shutdown of the autoloader.
+ */
+ public function __invoke() {
+ // Don't save a broken cache if an error happens during some plugin's initialization.
+ if ( ! did_action( 'plugins_loaded' ) ) {
+ // Ensure that the cache is emptied to prevent consecutive failures if the cache is to blame.
+ if ( ! empty( $this->cached_plugins ) ) {
+ $this->plugins_handler->cache_plugins( array() );
+ }
+
+ return;
+ }
+
+ // Load the active plugins fresh since the list we pulled earlier might not contain
+ // plugins that were activated but did not reset the autoloader. This happens
+ // when a plugin is in the cache but not "active" when the autoloader loads.
+ // We also want to make sure that plugins which are deactivating are not
+ // considered "active" so that they will be removed from the cache now.
+ try {
+ $active_plugins = $this->plugins_handler->get_active_plugins( false, ! $this->was_included_by_autoloader );
+ } catch ( \Exception $ex ) {
+ // When the package is deleted before shutdown it will throw an exception.
+ // In the event this happens we should erase the cache.
+ if ( ! empty( $this->cached_plugins ) ) {
+ $this->plugins_handler->cache_plugins( array() );
+ }
+ return;
+ }
+
+ // The paths should be sorted for easy comparisons with those loaded from the cache.
+ // Note we don't need to sort the cached entries because they're already sorted.
+ sort( $active_plugins );
+
+ // We don't want to waste time saving a cache that hasn't changed.
+ if ( $this->cached_plugins === $active_plugins ) {
+ return;
+ }
+
+ $this->plugins_handler->cache_plugins( $active_plugins );
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php
new file mode 100644
index 00000000..21c659ef
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class loads other classes based on given parameters.
+ */
+class Version_Loader {
+
+ /**
+ * The Version_Selector object.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * A map of available classes and their version and file path.
+ *
+ * @var array
+ */
+ private $classmap;
+
+ /**
+ * A map of PSR-4 namespaces and their version and directory path.
+ *
+ * @var array
+ */
+ private $psr4_map;
+
+ /**
+ * A map of all the files that we should load.
+ *
+ * @var array
+ */
+ private $filemap;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The Version_Selector object.
+ * @param array $classmap The verioned classmap to load using.
+ * @param array $psr4_map The versioned PSR-4 map to load using.
+ * @param array $filemap The versioned filemap to load.
+ */
+ public function __construct( $version_selector, $classmap, $psr4_map, $filemap ) {
+ $this->version_selector = $version_selector;
+ $this->classmap = $classmap;
+ $this->psr4_map = $psr4_map;
+ $this->filemap = $filemap;
+ }
+
+ /**
+ * Finds the file path for the given class.
+ *
+ * @param string $class_name The class to find.
+ *
+ * @return string|null $file_path The path to the file if found, null if no class was found.
+ */
+ public function find_class_file( $class_name ) {
+ $data = $this->select_newest_file(
+ isset( $this->classmap[ $class_name ] ) ? $this->classmap[ $class_name ] : null,
+ $this->find_psr4_file( $class_name )
+ );
+ if ( ! isset( $data ) ) {
+ return null;
+ }
+
+ return $data['path'];
+ }
+
+ /**
+ * Load all of the files in the filemap.
+ */
+ public function load_filemap() {
+ if ( empty( $this->filemap ) ) {
+ return;
+ }
+
+ foreach ( $this->filemap as $file_identifier => $file_data ) {
+ if ( empty( $GLOBALS['__composer_autoload_files'][ $file_identifier ] ) ) {
+ require_once $file_data['path'];
+
+ $GLOBALS['__composer_autoload_files'][ $file_identifier ] = true;
+ }
+ }
+ }
+
+ /**
+ * Compares different class sources and returns the newest.
+ *
+ * @param array|null $classmap_data The classmap class data.
+ * @param array|null $psr4_data The PSR-4 class data.
+ *
+ * @return array|null $data
+ */
+ private function select_newest_file( $classmap_data, $psr4_data ) {
+ if ( ! isset( $classmap_data ) ) {
+ return $psr4_data;
+ } elseif ( ! isset( $psr4_data ) ) {
+ return $classmap_data;
+ }
+
+ if ( $this->version_selector->is_version_update_required( $classmap_data['version'], $psr4_data['version'] ) ) {
+ return $psr4_data;
+ }
+
+ return $classmap_data;
+ }
+
+ /**
+ * Finds the file for a given class in a PSR-4 namespace.
+ *
+ * @param string $class_name The class to find.
+ *
+ * @return array|null $data The version and path path to the file if found, null otherwise.
+ */
+ private function find_psr4_file( $class_name ) {
+ if ( ! isset( $this->psr4_map ) ) {
+ return null;
+ }
+
+ // Don't bother with classes that have no namespace.
+ $class_index = strrpos( $class_name, '\\' );
+ if ( ! $class_index ) {
+ return null;
+ }
+ $class_for_path = str_replace( '\\', '/', $class_name );
+
+ // Search for the namespace by iteratively cutting off the last segment until
+ // we find a match. This allows us to check the most-specific namespaces
+ // first as well as minimize the amount of time spent looking.
+ for (
+ $class_namespace = substr( $class_name, 0, $class_index );
+ ! empty( $class_namespace );
+ $class_namespace = substr( $class_namespace, 0, strrpos( $class_namespace, '\\' ) )
+ ) {
+ $namespace = $class_namespace . '\\';
+ if ( ! isset( $this->psr4_map[ $namespace ] ) ) {
+ continue;
+ }
+ $data = $this->psr4_map[ $namespace ];
+
+ foreach ( $data['path'] as $path ) {
+ $path .= '/' . substr( $class_for_path, strlen( $namespace ) ) . '.php';
+ if ( file_exists( $path ) ) {
+ return array(
+ 'version' => $data['version'],
+ 'path' => $path,
+ );
+ }
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php b/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php
new file mode 100644
index 00000000..bcd7e534
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * Used to select package versions.
+ */
+class Version_Selector {
+
+ /**
+ * Checks whether the selected package version should be updated. Composer development
+ * package versions ('9999999-dev' or versions that start with 'dev-') are favored
+ * when the JETPACK_AUTOLOAD_DEV constant is set to true.
+ *
+ * @param String $selected_version The currently selected package version.
+ * @param String $compare_version The package version that is being evaluated to
+ * determine if the version needs to be updated.
+ *
+ * @return bool Returns true if the selected package version should be updated,
+ * else false.
+ */
+ public function is_version_update_required( $selected_version, $compare_version ) {
+ $use_dev_versions = defined( 'JETPACK_AUTOLOAD_DEV' ) && JETPACK_AUTOLOAD_DEV;
+
+ if ( is_null( $selected_version ) ) {
+ return true;
+ }
+
+ if ( $use_dev_versions && $this->is_dev_version( $selected_version ) ) {
+ return false;
+ }
+
+ if ( $this->is_dev_version( $compare_version ) ) {
+ if ( $use_dev_versions ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ if ( version_compare( $selected_version, $compare_version, '<' ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package version is a development version.
+ *
+ * @param String $version The package version.
+ *
+ * @return bool True if the version is a dev version, else false.
+ */
+ public function is_dev_version( $version ) {
+ if ( 'dev-' === substr( $version, 0, 4 ) || '9999999-dev' === $version ) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md b/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md
new file mode 100755
index 00000000..5bf81742
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md
@@ -0,0 +1,31 @@
+# Changes
+
+## 3.1.2
+
+- Hit highlighting: avoid errors with PHP 8.
+
+## 3.0.0
+
+- Pass twitter-text conformance 3.0.0
+- Change default configuration to v3 (emojiParsingEnabled=true)
+- Add t.co with query string support
+- Add Directional Characters support
+
+## 2.0.2
+
+- Pass twitter-text conformance 2.0.5
+- Change default configuration to v2 in `Validator`.
+
+## 2.0.1
+
+- Fixes wrong method call in Extractor::extract() #19
+
+## 2.0.0
+
+- Pass twitter-text conformance 2.0.0
+- Add to required php extension, `mbstring` and `intl`.
+- Add `Parser`, `ParseResults`, `Configuration` class for twitter-text 2.0 "weighted" tweets.
+- Twtter\Text classes no longer extended Regex class.
+- Deprecated `Validator::isValidTweetText()`, `Validator::getTweetLength()`.
+- `Extractor` constractor no longer accepts `$tweet`
+- `Validator` constractor no longer accepts `$tweet` and `$config`. `Validator` constractor only accepts `Configuration` incetance.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE b/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE
new file mode 100644
index 00000000..f9dd53d7
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2010 Mike Cochrane
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md b/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md
new file mode 100755
index 00000000..fde5c7de
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md
@@ -0,0 +1,148 @@
+# Twitter Text (PHP Edition) #
+
+A library of PHP classes that provide auto-linking and extraction of usernames,
+lists, hashtags and URLs from tweets. Originally created from twitter-text-rb
+and twitter-text-java projects by Matt Sanford and ported to PHP by Mike
+Cochrane, this library has been improved and made more complete by Nick Pope.
+
+<p align="center">
+ <a href="https://github.com/nojimage/twitter-text-php/actions/workflows/ci.yml" target="_blank">
+ <img alt="Build Status" src="https://github.com/nojimage/twitter-text-php/actions/workflows/ci.yml/badge.svg">
+ </a>
+ <a href="https://codecov.io/gh/nojimage/twitter-text-php" target="_blank">
+ <img alt="Codecov" src="https://img.shields.io/codecov/c/github/nojimage/twitter-text-php.svg?style=flat-square">
+ </a>
+ <a href="https://packagist.org/packages/nojimage/twitter-text-php" target="_blank">
+ <img alt="Latest Stable Version" src="https://img.shields.io/packagist/v/nojimage/twitter-text-php.svg?style=flat-square">
+ </a>
+</p>
+
+## Requirements ##
+
+- PHP 5.3 or higher
+- ext-mbstring
+- ext-intl
+
+If the necessary extensions are not installed on the server, please install it additionally or use [symfony/polyfill](https://github.com/symfony/polyfill).
+
+## Install ##
+
+You can install this library into your application using [Composer](https://getcomposer.org/).
+
+```
+composer require nojimage/twitter-text-php
+```
+
+### Note for Older Server ###
+
+This library use intl/libICU.
+Some older server and PHP 7.2+ combinations may have deprecated warnings due to older ICU versions. [refs #32](https://github.com/nojimage/twitter-text-php/issues/32)
+
+If you are using RHEL/CentOS 6, installing PHP using [the remi repository](https://rpms.remirepo.net/) is the best choice.
+If you use remi, you can use the new ICU.
+
+## Features ##
+
+### Autolink ##
+
+ - Add links to all matching Twitter usernames (no account verification).
+ - Add links to all user lists (of the form @username/list-name).
+ - Add links to all valid hashtags.
+ - Add links to all URLs.
+ - Support for international character sets.
+
+### Extractor ###
+
+ - Extract mentioned Twitter usernames (from anywhere in the tweet).
+ - Extract replied to Twitter usernames (from start of the tweet).
+ - Extract all user lists (of the form @username/list-name).
+ - Extract all valid hashtags.
+ - Extract all URLs.
+ - Support for international character sets.
+
+### Hit Highlighter ###
+
+ - Highlight text specifed by a range by surrounding with a tag.
+ - Support for highlighting when tweet has already been autolinked.
+ - Support for international character sets.
+
+### Validation ###
+
+ - Validate different twitter text elements.
+ - Support for international character sets.
+
+### Parser ###
+
+- Parses a given tweet text with the weighted character count configuration.
+
+## Length validation ##
+
+twitter-text 3.0 updates the config file with `emojiParsingEnabled` config option.
+When true, twitter-text-php will parse and discount emoji supported by the [Unicode Emoji 11.0](http://www.unicode.org/emoji/charts-11.0) (NOTE: Original [twitter-text](https://github.com/twitter/twitter-text) supported [twemoji library](https://github.com/twitter/twemoji)).
+The length of these emoji will be the default weight (200 or two characters) even if they contain multiple code points combined by zero-width joiners.
+This means that emoji with skin tone and gender modifiers no longer count as more characters than those without such modifiers.
+
+twitter-text 2.0 introduced configuration files that define how Tweets are parsed for length. This allows for backwards compatibility and flexibility going forward.
+Old-style traditional 140-character parsing is defined by the v1.json configuration file, whereas v2.json is updated for "weighted" Tweets where ranges of Unicode code points can have independent weights aside from the default weight.
+The sum of all code points, each weighted appropriately, should not exceed the max weighted length.
+
+Some old methods from twitter-text-php 1.0 have been marked deprecated, such as the `Twitter\Text\Validator::isValidTweetText()`, `Twitter\Text\Validator::getTweetLength()` method. The new API is based on the following method, `Twitter\Text\Parser::parseTweet()`
+
+```(php)
+use Twitter\Text\Parser;
+$parser = new Parser();
+$result = $parser->parseTweet($text);
+```
+
+This method takes a string as input and returns a results object that contains information about the string. `Twitter\Text\ParseResults` object includes:
+
+- `weightedLength`: the overall length of the tweet with code points
+weighted per the ranges defined in the configuration file.
+
+- `permillage`: indicates the proportion (per thousand) of the weighted
+length in comparison to the max weighted length. A value > 1000
+indicates input text that is longer than the allowable maximum.
+
+- `valid`: indicates if input text length corresponds to a valid
+result.
+
+- `displayRangeStart, displayRangeEnd`: An array of two unicode code point
+indices identifying the inclusive start and exclusive end of the
+displayable content of the Tweet. For more information, see
+the description of `display_text_range` here:
+[Tweet updates](https://developer.twitter.com/en/docs/tweets/tweet-updates)
+
+- `validRangeStart, validRangeRnd`: An array of two unicode code point
+indices identifying the inclusive start and exclusive end of the valid
+content of the Tweet. For more information on the extended Tweet
+payload see [Tweet updates](https://developer.twitter.com/en/docs/tweets/tweet-updates)
+
+## Examples ##
+
+For examples, please see `tests/example.php` which you can view in a browser or
+run from the command line.
+
+## Conformance ##
+
+You'll need the test data which is in YAML format from the following
+repository:
+
+ https://github.com/twitter/twitter-text
+
+`twitter/twitter-text` already included in `composer.json`, so you should just need to run:
+
+ curl -s https://getcomposer.org/installer | php
+ php composer.phar install
+
+There are a couple of options for testing conformance:
+
+- Run `phpunit` in from the root folder of the project.
+
+## Thanks & Contributions ##
+
+The bulk of this library is from the heroic efforts of:
+
+ - Matt Sanford (https://github.com/mzsanford): For the orignal Ruby and Java implementions.
+ - Mike Cochrane (https://github.com/mikenz): For the initial PHP code.
+ - Nick Pope (https://github.com/ngnpope): For the bulk of the maintenance work to date.
+ - Takashi Nojima (https://github.com/nojimage): For ongoing maintenance work.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php
new file mode 100644
index 00000000..67ce3c88
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php
@@ -0,0 +1,47 @@
+<?php
+
+require dirname(__DIR__) . '/vendor/autoload.php';
+
+$classFile = dirname(__DIR__) . '/lib/Twitter/Text/EmojiRegex.php';
+$emojiDataUrl = 'https://www.unicode.org/Public/emoji/12.1/emoji-test.txt';
+
+// --
+$emojiData = file($emojiDataUrl);
+$emojiCodes = array_map(function ($line) {
+ $value = preg_replace('/^([0-9A-F]{4,}(?: [0-9A-F]{4,})*)\s*;.*$/u', '$1', trim($line));
+
+ return explode(' ', $value);
+}, array_filter($emojiData, function ($line) {
+ return preg_match('/^[0-9A-F]{2}[0-9A-F]{2,}.*; /', $line);
+}));
+
+// sort code length, reverse®
+usort($emojiCodes, function ($a, $b) {
+ $aLength = count($a);
+ $bLength = count($b);
+ if ($aLength === $bLength) {
+ return 0;
+ }
+
+ return ($bLength < $aLength) ? -1 : 1;
+});
+
+$codeRegexList = array_reduce($emojiCodes, function ($carry, $codes) {
+ $carry[] = implode('', array_map(function ($c) {
+ return sprintf('\x{%s}', strtolower($c));
+ }, $codes));
+
+ return $carry;
+}, array());
+
+$regex = implode('|', $codeRegexList);
+
+echo "\n";
+
+// -- modify class file
+$classContent = file_get_contents($classFile);
+$replacedClassContent = preg_replace('/(\s+const VALID_EMOJI_PATTERN = \')(?:.*)(\';)/', '$1/' . $regex . '/u$2', $classContent);
+
+echo $replacedClassContent;
+
+file_put_contents($classFile, $replacedClassContent);
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php
new file mode 100644
index 00000000..858e0117
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php
@@ -0,0 +1,100 @@
+<?php
+
+$rootDir = dirname(__DIR__);
+require $rootDir . '/vendor/autoload.php';
+
+use Symfony\Component\Yaml\Yaml;
+
+$classFile = $rootDir . '/lib/Twitter/Text/TldLists.php';
+$yamlParseMethod = 'parseFile';
+if (!method_exists('\Symfony\Component\Yaml\Yaml', $yamlParseMethod)) {
+ $yamlParseMethod = 'parse';
+}
+$tlds = Yaml::$yamlParseMethod($rootDir . '/vendor/twitter/twitter-text/conformance/tld_lib.yml');
+
+ob_start();
+echo "<?php\n";
+?>
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright <?= date('Y') ?>, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * TLD Lists
+ */
+final class TldLists
+{
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $gTLDs = array(
+<?php foreach ($tlds['generic'] as $tld) : ?>
+ '<?= $tld ?>',
+<?php endforeach; ?>
+ );
+
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $ccTLDs = array(
+<?php foreach ($tlds['country'] as $tld) : ?>
+ '<?= $tld ?>',
+<?php endforeach; ?>
+ );
+
+ /**
+ * get valid gTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidGTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $gTLD = implode('|', static::$gTLDs);
+ $regex = '(?:(?:' . $gTLD . ')(?=[^0-9a-z@]|$))';
+
+ return $regex;
+ }
+
+ /**
+ * get valid ccTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidCcTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $ccTLD = implode('|', static::$ccTLDs);
+ $regex = '(?:(?:' . $ccTLD . ')(?=[^0-9a-z@]|$))';
+
+ return $regex;
+ }
+}
+<?php
+$content = ob_get_clean();
+
+echo $content;
+
+file_put_contents($classFile, $content);
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json b/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json
new file mode 100644
index 00000000..57131d30
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json
@@ -0,0 +1,76 @@
+{
+ "name": "nojimage/twitter-text-php",
+ "description": "A library of PHP classes that provide auto-linking and extraction of usernames, lists, hashtags and URLs from tweets.",
+ "keywords": ["twitter", "text", "autolink", "extract"],
+ "homepage": "https://github.com/nojimage/twitter-text-php",
+ "type": "library",
+ "license": "Apache-2.0",
+ "authors": [
+ {
+ "name": "Matt Sanford",
+ "email": "matt@mzsanford.com",
+ "homepage": "http://mzsanford.com"
+ },
+ {
+ "name": "Mike Cochrane",
+ "email": "mikec@mikenz.geek.nz",
+ "homepage": "http://mikenz.geek.nz"
+ },
+ {
+ "name": "Nick Pope",
+ "email": "git@nickpope.me.uk",
+ "homepage": "http://www.nickpope.me.uk"
+ },
+ {
+ "name": "Takashi Nojima",
+ "homepage": "http://php-tips.com"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "package",
+ "package": {
+ "name": "twitter/twitter-text",
+ "version": "3.1.0",
+ "source": {
+ "url": "https://github.com/twitter/twitter-text.git",
+ "type": "git",
+ "reference": "v3.1.0"
+ }
+ }
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3",
+ "ext-mbstring": "*",
+ "ext-intl": "*"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "symfony/yaml": "^2.6.0|^3.4.0|^4.4.0|^5.0.0",
+ "phpunit/phpunit": "4.8.*|5.7.*|6.5.*",
+ "twitter/twitter-text": "^3.0.0"
+ },
+ "autoload": {
+ "psr-0": {
+ "Twitter\\Text\\": "lib/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Twitter\\Text\\TestCase\\": "tests/TestCase/"
+ }
+ },
+ "scripts": {
+ "check": [
+ "@cs",
+ "@test",
+ "@tld-test"
+ ],
+ "test": "phpunit --exclude-group deprecated,tld",
+ "deprecated-test": "phpunit --group deprecated",
+ "tld-test": "phpunit --group tld",
+ "cs": "phpcs -psn --standard=PSR12 --extensions=php ./lib ./tests",
+ "cs-fixer": "phpcbf --standard=PSR12 ./lib ./tests"
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php
new file mode 100644
index 00000000..f77d99a3
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php
@@ -0,0 +1,934 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Autolink Class
+ *
+ * Parses tweets and generates HTML anchor tags around URLs, usernames,
+ * username/list pairs and hashtags.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Autolink
+{
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @var string
+ */
+ protected $class_url = '';
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @var string
+ */
+ protected $class_user = 'tweet-url username';
+
+ /**
+ * CSS class for auto-linked list URLs.
+ *
+ * @var string
+ */
+ protected $class_list = 'tweet-url list-slug';
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @var string
+ */
+ protected $class_hash = 'tweet-url hashtag';
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @var string
+ */
+ protected $class_cash = 'tweet-url cashtag';
+
+ /**
+ * URL base for username links (the username without the @ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_user = 'https://twitter.com/';
+
+ /**
+ * URL base for list links (the username/list without the @ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_list = 'https://twitter.com/';
+
+ /**
+ * URL base for hashtag links (the hashtag without the # will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_hash = 'https://twitter.com/search?q=%23';
+
+ /**
+ * URL base for cashtag links (the hashtag without the $ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_cash = 'https://twitter.com/search?q=%24';
+
+ /**
+ * the 'rel' attribute values.
+ *
+ * @var array
+ */
+ protected $rel = array('external', 'nofollow');
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @var string
+ */
+ protected $target = '_blank';
+
+ /**
+ * attribute for invisible span tag
+ *
+ * @var string
+ */
+ protected $invisibleTagAttrs = "style='position:absolute;left:-9999px;'";
+
+ /**
+ * If the at mark '@' should be included in the link (false by default)
+ *
+ * @var bool
+ * @since 3.0.1
+ */
+ protected $usernameIncludeSymbol = false;
+
+ /**
+ * HTML tag to be applied around #/@/# symbols in hashtags/usernames/lists/cashtag
+ *
+ * @var string
+ * @since 3.0.1
+ */
+ protected $symbolTag = '';
+
+ /**
+ * HTML tag to be applied around text part of hashtags/usernames/lists/cashtag
+ *
+ * @var string
+ * @since 3.0.1
+ */
+ protected $textWithSymbolTag = '';
+
+ /**
+ *
+ * @var Extractor
+ */
+ protected $extractor = null;
+
+ /**
+ * The tweet to be used in parsing.
+ *
+ * @var string
+ * @deprecated will be removed
+ */
+ protected $tweet = '';
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param string $tweet [deprecated] The tweet to be converted.
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ *
+ * @see __construct()
+ *
+ * @return Autolink
+ */
+ public static function create($tweet = null, $full_encode = false)
+ {
+ return new static($tweet, $full_encode);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and converted to contain links.
+ *
+ * As the intent is to produce links and output the modified tweet to the
+ * user, we take this opportunity to ensure that we escape user input.
+ *
+ * @see htmlspecialchars()
+ *
+ * @param string $tweet [deprecated] The tweet to be converted.
+ * @param bool $escape [deprecated] Whether to escape the tweet (default: true).
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ */
+ public function __construct($tweet = null, $escape = true, $full_encode = false)
+ {
+ if ($escape && !empty($tweet)) {
+ if ($full_encode) {
+ $this->tweet = htmlentities($tweet, ENT_QUOTES, 'UTF-8', false);
+ } else {
+ $this->tweet = htmlspecialchars($tweet, ENT_QUOTES, 'UTF-8', false);
+ }
+ } else {
+ $this->tweet = $tweet;
+ }
+
+ $this->extractor = Extractor::create();
+ }
+
+ /**
+ * Set CSS class to all link types.
+ *
+ * @param string $v CSS class for links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setToAllLinkClasses($v)
+ {
+ $this->setURLClass($v);
+ $this->setUsernameClass($v);
+ $this->setListClass($v);
+ $this->setHashtagClass($v);
+ $this->setCashtagClass($v);
+
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @return string CSS class for URL links.
+ */
+ public function getURLClass()
+ {
+ return $this->class_url;
+ }
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @param string $v CSS class for URL links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setURLClass($v)
+ {
+ $this->class_url = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @return string CSS class for username links.
+ */
+ public function getUsernameClass()
+ {
+ return $this->class_user;
+ }
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @param string $v CSS class for username links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setUsernameClass($v)
+ {
+ $this->class_user = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked username/list URLs.
+ *
+ * @return string CSS class for username/list links.
+ */
+ public function getListClass()
+ {
+ return $this->class_list;
+ }
+
+ /**
+ * CSS class for auto-linked username/list URLs.
+ *
+ * @param string $v CSS class for username/list links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setListClass($v)
+ {
+ $this->class_list = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @return string CSS class for hashtag links.
+ */
+ public function getHashtagClass()
+ {
+ return $this->class_hash;
+ }
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @param string $v CSS class for hashtag links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setHashtagClass($v)
+ {
+ $this->class_hash = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @return string CSS class for cashtag links.
+ */
+ public function getCashtagClass()
+ {
+ return $this->class_cash;
+ }
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @param string $v CSS class for cashtag links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setCashtagClass($v)
+ {
+ $this->class_cash = trim($v);
+ return $this;
+ }
+
+ /**
+ * Whether to include the value 'nofollow' in the 'rel' attribute.
+ *
+ * @return bool Whether to add 'nofollow' to the 'rel' attribute.
+ */
+ public function getNoFollow()
+ {
+ return in_array('nofollow', $this->rel, true);
+ }
+
+ /**
+ * Whether to include the value 'nofollow' in the 'rel' attribute.
+ *
+ * @param bool $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setNoFollow($v)
+ {
+ if ($v && !$this->getNoFollow()) {
+ $this->setRel('nofollow', true);
+ }
+ if (!$v && $this->getNoFollow()) {
+ $this->rel = array_filter($this->rel, function ($r) {
+ return $r !== 'nofollow';
+ });
+ }
+
+ return $this;
+ }
+
+ /**
+ * Whether to include the value 'external' in the 'rel' attribute.
+ *
+ * Often this is used to be matched on in JavaScript for dynamically adding
+ * the 'target' attribute which is deprecated in HTML 4.01. In HTML 5 it has
+ * been undeprecated and thus the 'target' attribute can be used. If this is
+ * set to false then the 'target' attribute will be output.
+ *
+ * @return bool Whether to add 'external' to the 'rel' attribute.
+ */
+ public function getExternal()
+ {
+ return in_array('external', $this->rel, true);
+ }
+
+ /**
+ * Whether to include the value 'external' in the 'rel' attribute.
+ *
+ * Often this is used to be matched on in JavaScript for dynamically adding
+ * the 'target' attribute which is deprecated in HTML 4.01. In HTML 5 it has
+ * been undeprecated and thus the 'target' attribute can be used. If this is
+ * set to false then the 'target' attribute will be output.
+ *
+ * @param bool $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setExternal($v)
+ {
+ if ($v && !$this->getExternal()) {
+ $this->setRel('external', true);
+ }
+ if (!$v && $this->getExternal()) {
+ $this->rel = array_filter($this->rel, function ($r) {
+ return $r !== 'external';
+ });
+ }
+
+ return $this;
+ }
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @return string The value to add to the 'target' attribute.
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @param string $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setTarget($v)
+ {
+ $this->target = trim($v);
+ return $this;
+ }
+
+ /**
+ * @return bool
+ * @since 3.0.1
+ */
+ public function isUsernameIncludeSymbol()
+ {
+ return $this->usernameIncludeSymbol;
+ }
+
+ /**
+ * Set if the at mark '@' should be included in the link (false by default)
+ *
+ * @param bool $usernameIncludeSymbol if username includes symbol
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setUsernameIncludeSymbol($usernameIncludeSymbol)
+ {
+ $this->usernameIncludeSymbol = $usernameIncludeSymbol;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 3.0.1
+ */
+ public function getSymbolTag()
+ {
+ return $this->symbolTag;
+ }
+
+ /**
+ * Set HTML tag to be applied around #/@/# symbols in hashtags/usernames/lists/cashtag
+ *
+ * @param string $symbolTag HTML tag without bracket. e.g., 'b' or 's'
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setSymbolTag($symbolTag)
+ {
+ $this->symbolTag = $symbolTag;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 3.0.1
+ */
+ public function getTextWithSymbolTag()
+ {
+ return $this->textWithSymbolTag;
+ }
+
+ /**
+ * Set HTML tag to be applied around text part of hashtags/usernames/lists/cashtag
+ *
+ * @param string $textWithSymbolTag HTML tag without bracket. e.g., 'b' or 's'
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setTextWithSymbolTag($textWithSymbolTag)
+ {
+ $this->textWithSymbolTag = $textWithSymbolTag;
+
+ return $this;
+ }
+
+ /**
+ * Autolink with entities
+ *
+ * @param string $tweet
+ * @param array $entities
+ * @return string
+ * @since 1.1.0
+ */
+ public function autoLinkEntities($tweet = null, $entities = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+
+ $text = '';
+ $beginIndex = 0;
+ foreach ($entities as $entity) {
+ $text .= StringUtils::substr($tweet, $beginIndex, $entity['indices'][0] - $beginIndex);
+
+ if (isset($entity['url'])) {
+ $text .= $this->linkToUrl($entity);
+ } elseif (isset($entity['hashtag'])) {
+ $text .= $this->linkToHashtag($entity, $tweet);
+ } elseif (isset($entity['screen_name'])) {
+ $text .= $this->linkToMentionAndList($entity, $tweet);
+ } elseif (isset($entity['cashtag'])) {
+ $text .= $this->linkToCashtag($entity, $tweet);
+ }
+ $beginIndex = $entity['indices'][1];
+ }
+ $text .= StringUtils::substr($tweet, $beginIndex, StringUtils::strlen($tweet));
+ return $text;
+ }
+
+ /**
+ * Auto-link hashtags, URLs, usernames and lists, with JSON entities.
+ *
+ * @param string The tweet to be converted
+ * @param mixed The entities info
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkWithJson($tweet = null, $json = null)
+ {
+ // concatenate entities
+ $entities = array();
+ if (is_object($json)) {
+ $json = $this->object2array($json);
+ }
+ if (is_array($json)) {
+ $entities = call_user_func_array('array_merge', $json);
+ }
+
+ // map JSON entity to twitter-text entity
+ foreach ($entities as $idx => $entity) {
+ if (!empty($entity['text'])) {
+ $entities[$idx]['hashtag'] = $entity['text'];
+ }
+ }
+
+ $entities = $this->extractor->removeOverlappingEntities($entities);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * convert Object to Array
+ *
+ * @param mixed $obj
+ * @return array
+ */
+ protected function object2array($obj)
+ {
+ $array = (array) $obj;
+ foreach ($array as $key => $var) {
+ if (is_object($var) || is_array($var)) {
+ $array[$key] = $this->object2array($var);
+ }
+ }
+ return $array;
+ }
+
+ /**
+ * Auto-link hashtags, URLs, usernames and lists.
+ *
+ * @param string The tweet to be converted
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLink($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractURLWithoutProtocol(false)->extractEntitiesWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link the @username and @username/list references in the provided text. Links to @username references will
+ * have the usernameClass CSS classes added. Links to @username/list references will have the listClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkUsernamesAndLists($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractMentionsOrListsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link #hashtag references in the provided Tweet text. The #hashtag links will have the hashtagClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkHashtags($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractHashtagsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link URLs in the Tweet text provided.
+ * <p/>
+ * This only auto-links URLs with protocol.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkURLs($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractURLWithoutProtocol(false)->extractURLsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link $cashtag references in the provided Tweet text. The $cashtag links will have the cashtagClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkCashtags($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractCashtagsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ public function linkToUrl($entity)
+ {
+ if (!empty($this->class_url)) {
+ $attributes['class'] = $this->class_url;
+ }
+ $attributes['href'] = $entity['url'];
+ $linkText = $this->escapeHTML($entity['url']);
+
+ if (!empty($entity['display_url']) && !empty($entity['expanded_url'])) {
+ // Goal: If a user copies and pastes a tweet containing t.co'ed link, the resulting paste
+ // should contain the full original URL (expanded_url), not the display URL.
+ //
+ // Method: Whenever possible, we actually emit HTML that contains expanded_url, and use
+ // font-size:0 to hide those parts that should not be displayed (because they are not part of display_url).
+ // Elements with font-size:0 get copied even though they are not visible.
+ // Note that display:none doesn't work here. Elements with display:none don't get copied.
+ //
+ // Additionally, we want to *display* ellipses, but we don't want them copied. To make this happen we
+ // wrap the ellipses in a tco-ellipsis class and provide an onCopy handler that sets display:none on
+ // everything with the tco-ellipsis class.
+ //
+ // As an example: The user tweets "hi http://longdomainname.com/foo"
+ // This gets shortened to "hi http://t.co/xyzabc", with display_url = "…nname.com/foo"
+ // This will get rendered as:
+ // <span class='tco-ellipsis'> <!-- This stuff should get displayed but not copied -->
+ // …
+ // <!-- There's a chance the onCopy event handler might not fire. In case that happens,
+ // we include an &nbsp; here so that the … doesn't bump up against the URL and ruin it.
+ // The &nbsp; is inside the tco-ellipsis span so that when the onCopy handler *does*
+ // fire, it doesn't get copied. Otherwise the copied text would have two spaces in a row,
+ // e.g. "hi http://longdomainname.com/foo".
+ // <span style='font-size:0'>&nbsp;</span>
+ // </span>
+ // <span style='font-size:0'> <!-- This stuff should get copied but not displayed -->
+ // http://longdomai
+ // </span>
+ // <span class='js-display-url'> <!-- This stuff should get displayed *and* copied -->
+ // nname.com/foo
+ // </span>
+ // <span class='tco-ellipsis'> <!-- This stuff should get displayed but not copied -->
+ // <span style='font-size:0'>&nbsp;</span>
+ // …
+ // </span>
+ //
+ // Exception: pic.twitter.com images, for which
+ // expandedUrl = "https://twitter.com/#!/username/status/1234/photo/1
+ // For those URLs, display_url is not a substring of expanded_url, so we don't do anything
+ //special to render the elided parts.
+ // For a pic.twitter.com URL, the only elided part will be the "https://", so this is fine.
+ $displayURL = $entity['display_url'];
+ $expandedURL = $entity['expanded_url'];
+ $displayURLSansEllipses = preg_replace('/…/u', '', $displayURL);
+ $diplayURLIndexInExpandedURL = mb_strpos($expandedURL, $displayURLSansEllipses);
+
+ if ($diplayURLIndexInExpandedURL !== false) {
+ $beforeDisplayURL = mb_substr($expandedURL, 0, $diplayURLIndexInExpandedURL);
+ $afterDisplayURL = mb_substr(
+ $expandedURL,
+ $diplayURLIndexInExpandedURL + mb_strlen($displayURLSansEllipses)
+ );
+ $precedingEllipsis = (preg_match('/\A…/u', $displayURL)) ? '…' : '';
+ $followingEllipsis = (preg_match('/…\z/u', $displayURL)) ? '…' : '';
+
+ $invisibleSpan = "<span {$this->invisibleTagAttrs}>";
+
+ $linkText = "<span class='tco-ellipsis'>{$precedingEllipsis}{$invisibleSpan}&nbsp;</span></span>";
+ $linkText .= "{$invisibleSpan}{$this->escapeHTML($beforeDisplayURL)}</span>";
+ $linkText .= "<span class='js-display-url'>{$this->escapeHTML($displayURLSansEllipses)}</span>";
+ $linkText .= "{$invisibleSpan}{$this->escapeHTML($afterDisplayURL)}</span>";
+ $linkText .= "<span class='tco-ellipsis'>{$invisibleSpan}&nbsp;</span>{$followingEllipsis}</span>";
+ } else {
+ $linkText = $entity['display_url'];
+ }
+ $attributes['title'] = $entity['expanded_url'];
+ } elseif (!empty($entity['display_url'])) {
+ $linkText = $entity['display_url'];
+ }
+
+ return $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToHashtag($entity, $tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+
+ $attributes = array();
+ $class = array();
+ $hash = StringUtils::substr($tweet, $entity['indices'][0], 1);
+ $linkText = $entity['hashtag'];
+
+ $attributes['href'] = $this->url_base_hash . $entity['hashtag'];
+ $attributes['title'] = '#' . $entity['hashtag'];
+ if (!empty($this->class_hash)) {
+ $class[] = $this->class_hash;
+ }
+ if (preg_match(Regex::getRtlCharsMatcher(), $linkText)) {
+ $class[] = 'rtl';
+ }
+ if (!empty($class)) {
+ $attributes['class'] = implode(' ', $class);
+ }
+
+ return $this->linkToTextWithSymbol($entity, $hash, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToMentionAndList($entity, $tweet)
+ {
+ $attributes = array();
+ $symbol = StringUtils::substr($tweet, $entity['indices'][0], 1);
+
+ if (!empty($entity['list_slug'])) {
+ # Replace the list and username
+ $linkText = $entity['screen_name'] . $entity['list_slug'];
+ $class = $this->class_list;
+ $url = $this->url_base_list . $linkText;
+ } else {
+ # Replace the username
+ $linkText = $entity['screen_name'];
+ $class = $this->class_user;
+ $url = $this->url_base_user . $linkText;
+ }
+ if (!empty($class)) {
+ $attributes['class'] = $class;
+ }
+ $attributes['href'] = $url;
+
+ return $this->linkToTextWithSymbol($entity, $symbol, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToCashtag($entity, $tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $attributes = array();
+ $dollar = StringUtils::substr($tweet, $entity['indices'][0], 1);
+ $linkText = $entity['cashtag'];
+ $attributes['href'] = $this->url_base_cash . $entity['cashtag'];
+ $attributes['title'] = '$' . $linkText;
+ if (!empty($this->class_cash)) {
+ $attributes['class'] = $this->class_cash;
+ }
+
+ return $this->linkToTextWithSymbol($entity, $dollar, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $text
+ * @param array $attributes
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToText(array $entity, $text, $attributes = array())
+ {
+ $rel = $this->getRel();
+ if ($rel !== '') {
+ $attributes['rel'] = $rel;
+ }
+ if ($this->target) {
+ $attributes['target'] = $this->target;
+ }
+ $link = '<a';
+ foreach ($attributes as $key => $val) {
+ $link .= ' ' . $key . '="' . $this->escapeHTML($val) . '"';
+ }
+ $link .= '>' . $text . '</a>';
+ return $link;
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $symbol
+ * @param string $linkText
+ * @param array $attributes
+ * @return string
+ * @since 3.0.1
+ */
+ protected function linkToTextWithSymbol(array $entity, $symbol, $linkText, array $attributes)
+ {
+ $includeSymbol = $this->usernameIncludeSymbol || !preg_match('/[@@]/u', $symbol);
+
+ if (!empty($this->symbolTag)) {
+ $symbol = sprintf('<%1$s>%2$s</%1$s>', $this->symbolTag, $symbol);
+ }
+ if (!empty($this->textWithSymbolTag)) {
+ $linkText = sprintf('<%1$s>%2$s</%1$s>', $this->textWithSymbolTag, $linkText);
+ }
+
+ if (!$includeSymbol) {
+ return $symbol . $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ $linkText = $symbol . $linkText;
+
+ return $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ /**
+ * get rel attribute
+ *
+ * @return string
+ */
+ public function getRel()
+ {
+ $rel = $this->rel;
+ $rel = array_unique($rel);
+
+ return implode(' ', $rel);
+ }
+
+ /**
+ * Set rel attribute.
+ *
+ * This method override setExternal/setNoFollow setting.
+ *
+ * @param string[]|string $rel the rel attribute
+ * @param bool $merge if true, merge rel attributes instead replace.
+ * @return $this
+ */
+ public function setRel($rel, $merge = false)
+ {
+ if (is_string($rel)) {
+ $rel = explode(' ', $rel);
+ }
+
+ $this->rel = $merge ? array_unique(array_merge($this->rel, $rel)) : $rel;
+
+ return $this;
+ }
+
+ /**
+ * html escape
+ *
+ * @param string $text
+ * @return string
+ */
+ protected function escapeHTML($text)
+ {
+ return htmlspecialchars($text, ENT_QUOTES, 'UTF-8', false);
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
new file mode 100644
index 00000000..d1073026
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
@@ -0,0 +1,215 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text Configuration
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ *
+ * @property int $version
+ * @property int $maxWeightedTweetLength
+ * @property int $scale
+ * @property int $defaultWeight
+ * @property bool $emojiParsingEnabled
+ * @property int $transformedURLLength
+ * @property array $ranges
+ */
+class Configuration
+{
+ /**
+ * configuration from v3.json
+ *
+ * @var array
+ */
+ private static $v3Config = array(
+ 'version' => 3,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'emojiParsingEnabled' => true,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v2.json
+ *
+ * @var array
+ */
+ private static $v2Config = array(
+ 'version' => 2,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v1.json
+ *
+ * @var array
+ */
+ private static $v1Config = array(
+ 'version' => 1,
+ 'maxWeightedTweetLength' => 140,
+ 'scale' => 1,
+ 'defaultWeight' => 1,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(),
+ );
+
+ /**
+ * @var array
+ */
+ private $config;
+
+ /**
+ * construct
+ *
+ * @param array $config
+ */
+ public function __construct(array $config = null)
+ {
+ if ($config === null) {
+ $config = static::$v3Config;
+ }
+
+ $this->config = $config;
+ }
+
+ /**
+ * property accessor
+ *
+ * @param string $name
+ * @return mixed
+ */
+ public function __get($name)
+ {
+ return isset($this->config[$name]) ? $this->config[$name] : null;
+ }
+
+ /**
+ * convert to array
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ return $this->config;
+ }
+
+ /**
+ * Create configuration from json string
+ *
+ * @param string $json as configuration
+ * @return Configuration
+ */
+ public static function fromJson($json)
+ {
+ return new Configuration(json_decode($json, true));
+ }
+
+ /**
+ * Get twitter-text 1.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v1()
+ {
+ return new self(static::$v1Config);
+ }
+
+ /**
+ * Get twitter-text 2.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v2()
+ {
+ return new self(static::$v2Config);
+ }
+
+ /**
+ * maxWeightedTweetLength * scale
+ *
+ * @return int
+ */
+ public function getScaledMaxWeightedTweetLength()
+ {
+ return $this->maxWeightedTweetLength * $this->scale;
+ }
+
+ /**
+ * transformedURLLength * scale
+ *
+ * @return int
+ */
+ public function getScaledTransformedURLLength()
+ {
+ return $this->transformedURLLength * $this->scale;
+ }
+
+ /**
+ * Get whether emoji parsing is enabled.
+ *
+ * @return bool `true` if emoji parsing is enabled, otherwise `false`.
+ */
+ public function getEmojiParsingEnabled()
+ {
+ return (bool)$this->emojiParsingEnabled;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php
new file mode 100644
index 00000000..95ae4c46
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2020, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * EmojiRegex
+ *
+ * @link http://unicode.org/Public/emoji/12.1/
+ * @link https://unicode.org/emoji/charts-12.1/full-emoji-list.html
+ */
+class EmojiRegex
+{
+ /**
+ * Valid emoji codes
+ *
+ * build from http://unicode.org/Public/emoji/12.1/
+ *
+ * @var string
+ * @link http://unicode.org/Public/emoji/12.1/
+ */
+ const VALID_EMOJI_PATTERN = '/\x{1f468}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f469}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0077}\x{e006c}\x{e0073}\x{e007f}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0065}\x{e006e}\x{e0067}\x{e007f}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f469}|\x{1f468}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0073}\x{e0063}\x{e0074}\x{e007f}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f469}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f468}|\x{1f468}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f468}|\x{1f471}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f473}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f473}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f473}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f481}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f481}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f481}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f646}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f64b}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f64b}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f646}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f645}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f46e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f938}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f938}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f469}|\x{1f468}\x{200d}\x{2764}\x{200d}\x{1f468}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f468}|\x{1f9db}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f466}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f441}\x{fe0f}\x{200d}\x{1f5e8}\x{fe0f}|\x{1f9db}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}|\x{1f9db}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9db}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f9db}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f9db}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f939}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9db}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f3cb}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2708}|\x{1f468}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fb}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{2708}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fb}\x{200d}\x{1f527}|\x{1f468}\x{1f3ff}\x{200d}\x{1f527}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fc}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f373}|\x{1f469}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f373}|\x{1f469}\x{1f3fc}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f373}|\x{1f469}\x{1f3fd}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f373}|\x{1f469}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{2708}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f469}\x{1f3fe}\x{200d}\x{2708}|\x{1f468}\x{1f3ff}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fe}\x{200d}\x{1f373}|\x{1f468}\x{1f3fd}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{2708}|\x{1f468}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f468}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f527}|\x{1f468}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fc}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fd}\x{200d}\x{2708}|\x{1f468}\x{1f3fe}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f527}|\x{1f469}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f468}\x{1f3ff}\x{200d}\x{2708}|\x{1f469}\x{200d}\x{2708}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f527}|\x{1f469}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fb}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f469}\x{1f3fc}\x{200d}\x{1f527}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2640}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f527}|\x{1f469}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f527}|\x{1f469}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f469}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f469}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f9d1}\x{200d}\x{2708}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f477}\x{1f3ff}\x{200d}\x{2640}|\x{1f469}\x{1f3ff}\x{200d}\x{2708}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2640}|\x{1f9de}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2642}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2642}|\x{1f9b8}\x{200d}\x{2640}\x{fe0f}|\x{1f9de}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2640}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2640}|\x{1f9df}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2640}|\x{1f9b9}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2640}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2642}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2642}|\x{1f9b9}\x{200d}\x{2640}\x{fe0f}|\x{1f9df}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2640}|\x{1f487}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2640}|\x{1f487}\x{1f3fe}\x{200d}\x{2640}|\x{1f487}\x{1f3fd}\x{200d}\x{2640}|\x{1f487}\x{1f3fc}\x{200d}\x{2640}|\x{1f487}\x{1f3fb}\x{200d}\x{2640}|\x{1f487}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2642}|\x{1f487}\x{1f3fe}\x{200d}\x{2642}|\x{1f487}\x{1f3fc}\x{200d}\x{2642}|\x{1f486}\x{1f3fb}\x{200d}\x{2642}|\x{1f487}\x{1f3fb}\x{200d}\x{2642}|\x{1f487}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2640}|\x{1f486}\x{1f3fe}\x{200d}\x{2640}|\x{1f486}\x{1f3fd}\x{200d}\x{2640}|\x{1f486}\x{1f3fc}\x{200d}\x{2640}|\x{1f486}\x{1f3fb}\x{200d}\x{2640}|\x{1f486}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2642}|\x{1f486}\x{1f3fe}\x{200d}\x{2642}|\x{1f486}\x{1f3fd}\x{200d}\x{2642}|\x{1f486}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2640}|\x{1f473}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{1f3ff}\x{200d}\x{2642}|\x{1f9da}\x{1f3fd}\x{200d}\x{2640}|\x{1f9da}\x{1f3fe}\x{200d}\x{2640}|\x{1f9da}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2640}|\x{1f9db}\x{1f3fb}\x{200d}\x{2642}|\x{1f9db}\x{1f3fc}\x{200d}\x{2642}|\x{1f9db}\x{1f3fd}\x{200d}\x{2642}|\x{1f9db}\x{1f3fe}\x{200d}\x{2642}|\x{1f9db}\x{200d}\x{2640}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2640}|\x{1f9db}\x{1f3fb}\x{200d}\x{2640}|\x{1f9db}\x{1f3fc}\x{200d}\x{2640}|\x{1f9db}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{1f3fe}\x{200d}\x{2640}|\x{1f9db}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2640}|\x{1f9dc}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2642}|\x{1f9dc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2642}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2642}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2642}|\x{1f9da}\x{1f3fc}\x{200d}\x{2640}|\x{1f9dd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2640}|\x{1f9dd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2640}|\x{1f9da}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2642}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2642}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2642}|\x{1f9da}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2642}|\x{1f9da}\x{1f3fc}\x{200d}\x{2642}|\x{1f9da}\x{1f3fd}\x{200d}\x{2642}|\x{1f9da}\x{1f3fe}\x{200d}\x{2642}|\x{1f9da}\x{1f3ff}\x{200d}\x{2642}|\x{1f473}\x{1f3fe}\x{200d}\x{2640}|\x{1f473}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f680}|\x{1f46e}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{1f692}|\x{1f469}\x{1f3ff}\x{200d}\x{1f692}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2642}|\x{1f46e}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2642}|\x{1f46e}\x{1f3fc}\x{200d}\x{2642}|\x{1f46e}\x{1f3fd}\x{200d}\x{2642}|\x{1f46e}\x{1f3fe}\x{200d}\x{2642}|\x{1f46e}\x{1f3ff}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fc}\x{200d}\x{1f692}|\x{1f46e}\x{1f3fb}\x{200d}\x{2640}|\x{1f46e}\x{1f3fc}\x{200d}\x{2640}|\x{1f46e}\x{1f3fd}\x{200d}\x{2640}|\x{1f46e}\x{1f3fe}\x{200d}\x{2640}|\x{1f46e}\x{1f3ff}\x{200d}\x{2640}|\x{1f9ce}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2640}|\x{1f575}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2640}|\x{1f575}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fd}\x{200d}\x{1f692}|\x{1f469}\x{1f3fb}\x{200d}\x{1f692}|\x{1f575}\x{1f3fd}\x{200d}\x{2642}|\x{1f469}\x{1f3fd}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f680}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f680}|\x{1f468}\x{1f3fc}\x{200d}\x{1f680}|\x{1f468}\x{1f3fd}\x{200d}\x{1f680}|\x{1f468}\x{1f3fe}\x{200d}\x{1f680}|\x{1f468}\x{1f3ff}\x{200d}\x{1f680}|\x{1f469}\x{1f3fb}\x{200d}\x{1f680}|\x{1f469}\x{1f3fc}\x{200d}\x{1f680}|\x{1f469}\x{1f3fe}\x{200d}\x{1f680}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2642}|\x{1f469}\x{1f3ff}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f692}|\x{1f9ce}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f692}|\x{1f468}\x{1f3fc}\x{200d}\x{1f692}|\x{1f468}\x{1f3fd}\x{200d}\x{1f692}|\x{1f468}\x{1f3fe}\x{200d}\x{1f692}|\x{1f468}\x{1f3ff}\x{200d}\x{1f692}|\x{1f575}\x{1f3fc}\x{200d}\x{2642}|\x{1f575}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2640}|\x{1f477}\x{1f3fd}\x{200d}\x{2642}|\x{1f477}\x{1f3fe}\x{200d}\x{2642}|\x{1f477}\x{1f3ff}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2640}|\x{1f477}\x{1f3fc}\x{200d}\x{2640}|\x{1f477}\x{1f3fd}\x{200d}\x{2640}|\x{1f477}\x{1f3fe}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f373}|\x{1f9cd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2640}|\x{1f477}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b6}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3fb}\x{200d}\x{2642}|\x{1f473}\x{1f3fc}\x{200d}\x{2642}|\x{1f473}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{1f3ff}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2642}|\x{1f575}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{1f3fb}\x{200d}\x{2642}|\x{1f575}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2640}|\x{1f575}\x{1f3fb}\x{200d}\x{2640}|\x{1f575}\x{1f3fc}\x{200d}\x{2640}|\x{1f575}\x{1f3fd}\x{200d}\x{2640}|\x{1f575}\x{1f3fe}\x{200d}\x{2640}|\x{1f575}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{1f3fc}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2642}|\x{1f482}\x{1f3fe}\x{200d}\x{2642}|\x{1f482}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2640}|\x{1f482}\x{1f3fc}\x{200d}\x{2640}|\x{1f482}\x{1f3fd}\x{200d}\x{2640}|\x{1f482}\x{1f3fe}\x{200d}\x{2640}|\x{1f482}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2642}|\x{1f468}\x{1f3fc}\x{200d}\x{1f373}|\x{1f647}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cc}\x{fe0f}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2640}|\x{1f3cc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2642}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2640}|\x{1f6a3}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2642}|\x{1f3c4}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2642}|\x{1f471}\x{1f3fb}\x{200d}\x{2642}|\x{1f471}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f373}|\x{1f471}\x{1f3fe}\x{200d}\x{2642}|\x{1f471}\x{1f3ff}\x{200d}\x{2642}|\x{1f3cc}\x{fe0f}\x{200d}\x{2642}|\x{1f3cc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2642}|\x{1f471}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2642}|\x{1f64d}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2642}|\x{1f64d}\x{1f3fc}\x{200d}\x{2642}|\x{1f64d}\x{1f3fd}\x{200d}\x{2642}|\x{1f64d}\x{1f3fe}\x{200d}\x{2642}|\x{1f64d}\x{1f3ff}\x{200d}\x{2642}|\x{1f64d}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2640}|\x{1f64d}\x{1f3fc}\x{200d}\x{2640}|\x{1f64d}\x{1f3fd}\x{200d}\x{2640}|\x{1f64d}\x{1f3fe}\x{200d}\x{2640}|\x{1f471}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f471}\x{1f3fd}\x{200d}\x{2640}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f471}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2640}|\x{1f471}\x{1f3fc}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2640}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2642}|\x{1f93e}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2642}|\x{1f93e}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fd}\x{200d}\x{2642}|\x{1f93e}\x{1f3fc}\x{200d}\x{2642}|\x{1f93e}\x{1f3fb}\x{200d}\x{2642}|\x{1f93e}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2640}|\x{1f93d}\x{1f3fe}\x{200d}\x{2640}|\x{1f93d}\x{1f3fd}\x{200d}\x{2640}|\x{1f93d}\x{1f3fc}\x{200d}\x{2640}|\x{1f93d}\x{1f3fb}\x{200d}\x{2640}|\x{1f93d}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fc}\x{200d}\x{2640}|\x{1f93d}\x{1f3fd}\x{200d}\x{2642}|\x{1f93d}\x{1f3fc}\x{200d}\x{2642}|\x{1f93d}\x{1f3fb}\x{200d}\x{2642}|\x{1f93d}\x{200d}\x{2642}\x{fe0f}|\x{1f93c}\x{200d}\x{2640}\x{fe0f}|\x{1f93c}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2640}|\x{1f938}\x{1f3fe}\x{200d}\x{2640}|\x{1f938}\x{1f3fd}\x{200d}\x{2640}|\x{1f938}\x{1f3fc}\x{200d}\x{2640}|\x{1f938}\x{1f3fb}\x{200d}\x{2640}|\x{1f938}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2642}|\x{1f938}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fb}\x{200d}\x{2640}|\x{1f93e}\x{1f3fd}\x{200d}\x{2640}|\x{1f938}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2642}|\x{1f3f4}\x{200d}\x{2620}\x{fe0f}|\x{1f3f3}\x{fe0f}\x{200d}\x{1f308}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2640}|\x{1f441}\x{200d}\x{1f5e8}\x{fe0f}|\x{1f441}\x{fe0f}\x{200d}\x{1f5e8}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2642}|\x{1f93e}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2642}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2640}|\x{1f939}\x{1f3fe}\x{200d}\x{2640}|\x{1f939}\x{1f3fd}\x{200d}\x{2640}|\x{1f939}\x{1f3fc}\x{200d}\x{2640}|\x{1f939}\x{1f3fb}\x{200d}\x{2640}|\x{1f939}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2642}|\x{1f939}\x{1f3fe}\x{200d}\x{2642}|\x{1f939}\x{1f3fd}\x{200d}\x{2642}|\x{1f939}\x{1f3fc}\x{200d}\x{2642}|\x{1f939}\x{1f3fb}\x{200d}\x{2642}|\x{1f939}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2640}|\x{1f938}\x{1f3fd}\x{200d}\x{2642}|\x{1f938}\x{1f3fb}\x{200d}\x{2642}|\x{1f3ca}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2642}|\x{1f3cb}\x{fe0f}\x{200d}\x{2642}|\x{1f3cb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2640}|\x{26f9}\x{1f3fe}\x{200d}\x{2640}|\x{26f9}\x{1f3fd}\x{200d}\x{2640}|\x{26f9}\x{1f3fc}\x{200d}\x{2640}|\x{26f9}\x{1f3fb}\x{200d}\x{2640}|\x{26f9}\x{fe0f}\x{200d}\x{2640}|\x{26f9}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2642}|\x{26f9}\x{1f3fe}\x{200d}\x{2642}|\x{26f9}\x{1f3fc}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2642}|\x{26f9}\x{1f3fb}\x{200d}\x{2642}|\x{26f9}\x{fe0f}\x{200d}\x{2642}|\x{26f9}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2642}|\x{1f938}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2640}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b5}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b5}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2640}|\x{1f3cb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b4}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b4}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2640}|\x{1f3cb}\x{fe0f}\x{200d}\x{2640}|\x{1f64d}\x{1f3ff}\x{200d}\x{2640}|\x{1f471}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2640}|\x{1f468}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fd}\x{200d}\x{2642}|\x{1f937}\x{1f3fe}\x{200d}\x{2642}|\x{1f937}\x{1f3ff}\x{200d}\x{2642}|\x{1f937}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fb}\x{200d}\x{2640}|\x{1f937}\x{1f3fc}\x{200d}\x{2640}|\x{1f937}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fe}\x{200d}\x{2640}|\x{1f937}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{2695}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f937}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2695}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2695}|\x{1f468}\x{200d}\x{2695}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fb}\x{200d}\x{2695}|\x{1f468}\x{1f3fc}\x{200d}\x{2695}|\x{1f468}\x{1f3fd}\x{200d}\x{2695}|\x{1f468}\x{1f3fe}\x{200d}\x{2695}|\x{1f468}\x{1f3ff}\x{200d}\x{2695}|\x{1f469}\x{200d}\x{2695}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f937}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fb}\x{200d}\x{2695}|\x{1f926}\x{1f3fc}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{2696}|\x{1f926}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f926}\x{1f3fb}\x{200d}\x{2642}|\x{1f926}\x{1f3fc}\x{200d}\x{2642}|\x{1f926}\x{1f3fd}\x{200d}\x{2642}|\x{1f926}\x{1f3fe}\x{200d}\x{2642}|\x{1f926}\x{1f3ff}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f373}|\x{1f926}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f373}|\x{1f926}\x{1f3fd}\x{200d}\x{2640}|\x{1f469}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f926}\x{1f3fe}\x{200d}\x{2640}|\x{1f926}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f937}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2640}|\x{1f469}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fc}\x{200d}\x{2695}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fd}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3ff}\x{200d}\x{2696}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fe}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f9d1}\x{200d}\x{2696}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2696}|\x{1f469}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{2696}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2696}|\x{1f468}\x{1f3fb}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f469}\x{200d}\x{2696}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2696}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fd}\x{200d}\x{2695}|\x{1f468}\x{1f3fe}\x{200d}\x{1f393}|\x{1f469}\x{1f3fe}\x{200d}\x{2695}|\x{1f468}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f469}\x{1f3ff}\x{200d}\x{2695}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f468}\x{1f3fb}\x{200d}\x{1f393}|\x{1f468}\x{1f3fc}\x{200d}\x{1f393}|\x{1f468}\x{1f3fd}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f468}\x{1f3ff}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f393}|\x{1f469}\x{1f3fd}\x{200d}\x{1f393}|\x{1f469}\x{1f3fe}\x{200d}\x{1f393}|\x{1f469}\x{1f3ff}\x{200d}\x{1f393}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f468}\x{1f3fe}\x{200d}\x{2696}|\x{1f481}\x{1f3fd}\x{200d}\x{2642}|\x{1f646}\x{1f3fe}\x{200d}\x{2640}|\x{1f646}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2640}|\x{1f46f}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2640}|\x{1f46f}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2640}|\x{1f481}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2642}|\x{1f481}\x{1f3fc}\x{200d}\x{2642}|\x{1f481}\x{1f3fe}\x{200d}\x{2642}|\x{1f646}\x{1f3fc}\x{200d}\x{2640}|\x{1f481}\x{1f3ff}\x{200d}\x{2642}|\x{1f481}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2640}|\x{1f64e}\x{1f3fb}\x{200d}\x{2640}|\x{1f481}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f373}|\x{1f481}\x{1f3fc}\x{200d}\x{2640}|\x{1f481}\x{1f3fd}\x{200d}\x{2640}|\x{1f481}\x{1f3fe}\x{200d}\x{2640}|\x{1f481}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2640}|\x{1f646}\x{1f3fd}\x{200d}\x{2640}|\x{1f646}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2642}|\x{1f645}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2642}|\x{1f645}\x{1f3fc}\x{200d}\x{2642}|\x{1f645}\x{1f3fd}\x{200d}\x{2642}|\x{1f645}\x{1f3fe}\x{200d}\x{2642}|\x{1f645}\x{1f3ff}\x{200d}\x{2642}|\x{1f645}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2642}|\x{1f645}\x{1f3fb}\x{200d}\x{2640}|\x{1f645}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2640}|\x{1f645}\x{1f3fe}\x{200d}\x{2640}|\x{1f64e}\x{1f3fe}\x{200d}\x{2640}|\x{1f645}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2642}|\x{1f646}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2640}|\x{1f646}\x{1f3fb}\x{200d}\x{2642}|\x{1f646}\x{1f3fc}\x{200d}\x{2642}|\x{1f646}\x{1f3fd}\x{200d}\x{2642}|\x{1f646}\x{1f3fe}\x{200d}\x{2642}|\x{1f646}\x{1f3ff}\x{200d}\x{2642}|\x{1f646}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2640}|\x{1f64b}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2642}|\x{1f647}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2642}|\x{1f64e}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c3}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f647}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2642}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f647}\x{1f3fb}\x{200d}\x{2642}|\x{1f647}\x{1f3fc}\x{200d}\x{2642}|\x{1f647}\x{1f3fd}\x{200d}\x{2642}|\x{1f647}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2640}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f647}\x{1f3fb}\x{200d}\x{2640}|\x{1f647}\x{1f3fc}\x{200d}\x{2640}|\x{1f64e}\x{1f3fc}\x{200d}\x{2642}|\x{1f64e}\x{1f3fb}\x{200d}\x{2642}|\x{1f64e}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2640}|\x{1f647}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2640}|\x{1f647}\x{1f3ff}\x{200d}\x{2640}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2640}|\x{1f64e}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2642}|\x{1f64b}\x{1f3fd}\x{200d}\x{2642}|\x{1f64b}\x{1f3fe}\x{200d}\x{2642}|\x{1f64b}\x{1f3ff}\x{200d}\x{2642}|\x{1f64b}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2640}|\x{1f64b}\x{1f3fc}\x{200d}\x{2640}|\x{1f64b}\x{1f3fd}\x{200d}\x{2640}|\x{1f64b}\x{1f3fe}\x{200d}\x{2640}|\x{1f64b}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2642}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2642}|\x{1f64e}\x{1f3ff}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f373}|\x{1f3f4}\x{200d}\x{2620}|\x{1f939}\x{200d}\x{2642}|\x{1f3f3}\x{200d}\x{1f308}|\x{1f469}\x{200d}\x{1f466}|\x{0039}\x{fe0f}\x{20e3}|\x{1f9d8}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f466}|\x{1f415}\x{200d}\x{1f9ba}|\x{0023}\x{fe0f}\x{20e3}|\x{002a}\x{fe0f}\x{20e3}|\x{0030}\x{fe0f}\x{20e3}|\x{0031}\x{fe0f}\x{20e3}|\x{0032}\x{fe0f}\x{20e3}|\x{0038}\x{fe0f}\x{20e3}|\x{0033}\x{fe0f}\x{20e3}|\x{1f9dc}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f467}|\x{0035}\x{fe0f}\x{20e3}|\x{0036}\x{fe0f}\x{20e3}|\x{0037}\x{fe0f}\x{20e3}|\x{1f939}\x{200d}\x{2640}|\x{0034}\x{fe0f}\x{20e3}|\x{1f9df}\x{200d}\x{2640}|\x{1f93e}\x{200d}\x{2640}|\x{1f3c3}\x{200d}\x{2640}|\x{1f486}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2640}|\x{1f487}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9bd}|\x{1f487}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2642}|\x{1f3c3}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2640}|\x{1f9ce}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2642}|\x{1f46f}\x{200d}\x{2642}|\x{1f46f}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2642}|\x{1f3cc}\x{200d}\x{2642}|\x{1f9ce}\x{200d}\x{2642}|\x{1f9d7}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f9bd}|\x{1f486}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9af}|\x{1f6b5}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f9bc}|\x{1f93e}\x{200d}\x{2642}|\x{1f9dd}\x{200d}\x{2642}|\x{1f93d}\x{200d}\x{2640}|\x{1f93d}\x{200d}\x{2642}|\x{1f93c}\x{200d}\x{2640}|\x{1f93c}\x{200d}\x{2642}|\x{1f938}\x{200d}\x{2640}|\x{1f938}\x{200d}\x{2642}|\x{1f9dd}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f9af}|\x{1f469}\x{200d}\x{1f9bc}|\x{1f9d1}\x{200d}\x{1f9bd}|\x{1f6b5}\x{200d}\x{2642}|\x{1f6b4}\x{200d}\x{2640}|\x{1f6b4}\x{200d}\x{2642}|\x{1f3cb}\x{200d}\x{2640}|\x{1f3cb}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f9af}|\x{26f9}\x{200d}\x{2640}|\x{1f9de}\x{200d}\x{2642}|\x{1f9de}\x{200d}\x{2640}|\x{26f9}\x{200d}\x{2642}|\x{1f9df}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f9bc}|\x{1f3cc}\x{200d}\x{2640}|\x{1f9dc}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9b0}|\x{1f468}\x{200d}\x{1f9b1}|\x{1f468}\x{200d}\x{1f9b3}|\x{1f468}\x{200d}\x{1f9b2}|\x{1f9d1}\x{200d}\x{1f33e}|\x{1f468}\x{200d}\x{1f33e}|\x{1f469}\x{200d}\x{1f33e}|\x{1f9d1}\x{200d}\x{1f373}|\x{1f468}\x{200d}\x{1f373}|\x{1f469}\x{200d}\x{1f373}|\x{1f9d1}\x{200d}\x{1f527}|\x{1f9d1}\x{200d}\x{1f9b0}|\x{1f469}\x{200d}\x{2696}|\x{1f469}\x{200d}\x{1f9b1}|\x{1f9d1}\x{200d}\x{1f9b1}|\x{1f469}\x{200d}\x{1f9b3}|\x{1f9d1}\x{200d}\x{1f9b3}|\x{1f469}\x{200d}\x{1f9b2}|\x{1f9d1}\x{200d}\x{1f9b2}|\x{1f471}\x{200d}\x{2640}|\x{1f471}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f527}|\x{1f9d1}\x{200d}\x{1f3ed}|\x{1f468}\x{200d}\x{1f9b0}|\x{1f481}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{2695}|\x{1f647}\x{200d}\x{2640}|\x{1f647}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2640}|\x{1f937}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2640}|\x{1f473}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2640}|\x{1f9cf}\x{200d}\x{2642}|\x{1f937}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{2695}|\x{1f481}\x{200d}\x{2640}|\x{1f469}\x{200d}\x{2695}|\x{1f9d1}\x{200d}\x{1f393}|\x{1f468}\x{200d}\x{1f393}|\x{1f64b}\x{200d}\x{2640}|\x{1f64b}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f393}|\x{1f9d1}\x{200d}\x{1f3eb}|\x{1f468}\x{200d}\x{1f3eb}|\x{1f469}\x{200d}\x{1f3eb}|\x{1f9d1}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{1f3ed}|\x{1f469}\x{200d}\x{1f527}|\x{1f477}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f680}|\x{1f64e}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f3ed}|\x{1f9da}\x{200d}\x{2642}|\x{1f9da}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f3a8}|\x{1f468}\x{200d}\x{1f3a8}|\x{1f469}\x{200d}\x{1f3a8}|\x{1f9d1}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{2708}|\x{1f469}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{1f680}|\x{1f575}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f680}|\x{1f441}\x{200d}\x{1f5e8}|\x{1f9d1}\x{200d}\x{1f692}|\x{1f64d}\x{200d}\x{2640}|\x{1f9db}\x{200d}\x{2642}|\x{1f9db}\x{200d}\x{2640}|\x{1f64d}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f692}|\x{1f46e}\x{200d}\x{2640}|\x{1f46e}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f692}|\x{1f64e}\x{200d}\x{2640}|\x{1f469}\x{200d}\x{1f3a4}|\x{1f575}\x{200d}\x{2640}|\x{1f482}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f4bc}|\x{1f468}\x{200d}\x{1f4bc}|\x{1f469}\x{200d}\x{1f4bc}|\x{1f9b8}\x{200d}\x{2642}|\x{1f9b8}\x{200d}\x{2640}|\x{1f646}\x{200d}\x{2640}|\x{1f646}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f3a4}|\x{1f468}\x{200d}\x{1f52c}|\x{1f482}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f52c}|\x{1f469}\x{200d}\x{1f52c}|\x{1f9d1}\x{200d}\x{1f3a4}|\x{1f9b9}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f4bb}|\x{1f645}\x{200d}\x{2640}|\x{1f645}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f4bb}|\x{1f469}\x{200d}\x{1f4bb}|\x{1f9d9}\x{200d}\x{2640}|\x{1f9b9}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2642}|\x{1f6cc}\x{1f3ff}|\x{1f6cc}\x{1f3fd}|\x{1f6c0}\x{1f3ff}|\x{1f6cc}\x{1f3fc}|\x{1f6cc}\x{1f3fb}|\x{1f1f0}\x{1f1ee}|\x{1f6c0}\x{1f3fe}|\x{1f6c0}\x{1f3fd}|\x{1f6cc}\x{1f3fe}|\x{2763}\x{fe0f}|\x{1f1f0}\x{1f1ed}|\x{1f1ec}\x{1f1e7}|\x{1f46b}\x{1f3fb}|\x{1f1eb}\x{1f1f2}|\x{1f46d}\x{1f3ff}|\x{1f1eb}\x{1f1f4}|\x{1f1eb}\x{1f1f7}|\x{1f1ec}\x{1f1e6}|\x{1f1ec}\x{1f1e9}|\x{1f1eb}\x{1f1ef}|\x{1f46d}\x{1f3fe}|\x{1f1ec}\x{1f1ea}|\x{1f1ec}\x{1f1eb}|\x{1f1ec}\x{1f1ec}|\x{1f1ec}\x{1f1ed}|\x{1f1ec}\x{1f1ee}|\x{1f1eb}\x{1f1f0}|\x{2620}\x{fe0f}|\x{1f1ec}\x{1f1f1}|\x{1f1ea}\x{1f1ea}|\x{1f1e9}\x{1f1f2}|\x{1f46b}\x{1f3fe}|\x{1f1e9}\x{1f1f4}|\x{1f1e9}\x{1f1ff}|\x{1f1ea}\x{1f1e6}|\x{1f1ea}\x{1f1e8}|\x{1f46b}\x{1f3fd}|\x{1f1eb}\x{1f1ee}|\x{1f1ea}\x{1f1ec}|\x{1f1ea}\x{1f1ed}|\x{1f1ea}\x{1f1f7}|\x{1f1ea}\x{1f1f8}|\x{1f1ea}\x{1f1f9}|\x{1f46b}\x{1f3fc}|\x{1f1ea}\x{1f1fa}|\x{1f46d}\x{1f3fd}|\x{1f1ec}\x{1f1f2}|\x{1f1f0}\x{1f1ec}|\x{1f1ee}\x{1f1f6}|\x{1f6c0}\x{1f3fb}|\x{1f1ee}\x{1f1f1}|\x{1f1ee}\x{1f1f2}|\x{2764}\x{fe0f}|\x{1f1ee}\x{1f1f3}|\x{1f1ee}\x{1f1f4}|\x{1f1ee}\x{1f1f7}|\x{1f1ee}\x{1f1e9}|\x{1f1ee}\x{1f1f8}|\x{1f1ee}\x{1f1f9}|\x{1f1ef}\x{1f1ea}|\x{1f1ef}\x{1f1f2}|\x{1f1ef}\x{1f1f4}|\x{1f1ef}\x{1f1f5}|\x{1f1f0}\x{1f1ea}|\x{1f1ee}\x{1f1ea}|\x{1f1ee}\x{1f1e8}|\x{1f1ec}\x{1f1f3}|\x{1f1ec}\x{1f1fa}|\x{1f1ec}\x{1f1f5}|\x{1f1ec}\x{1f1f6}|\x{1f46d}\x{1f3fc}|\x{1f1ec}\x{1f1f7}|\x{1f1ec}\x{1f1f8}|\x{1f1ec}\x{1f1f9}|\x{1f1ec}\x{1f1fc}|\x{1f1ed}\x{1f1fa}|\x{1f46d}\x{1f3fb}|\x{1f1ec}\x{1f1fe}|\x{1f1ed}\x{1f1f0}|\x{1f1ed}\x{1f1f2}|\x{1f1ed}\x{1f1f3}|\x{1f1ed}\x{1f1f7}|\x{1f1ed}\x{1f1f9}|\x{1f6c0}\x{1f3fc}|\x{1f5ef}\x{fe0f}|\x{1f1f0}\x{1f1f2}|\x{1f93d}\x{1f3fd}|\x{1f448}\x{1f3fe}|\x{1f448}\x{1f3ff}|\x{1f1f2}\x{1f1f1}|\x{1f449}\x{1f3fb}|\x{1f449}\x{1f3fc}|\x{1f93d}\x{1f3ff}|\x{1f93d}\x{1f3fe}|\x{1f93d}\x{1f3fc}|\x{1f448}\x{1f3fc}|\x{1f93d}\x{1f3fb}|\x{1f1f2}\x{1f1f2}|\x{1f449}\x{1f3fd}|\x{1f449}\x{1f3fe}|\x{1f449}\x{1f3ff}|\x{1f1f2}\x{1f1f3}|\x{1f1f2}\x{1f1f4}|\x{1f446}\x{1f3fb}|\x{1f448}\x{1f3fd}|\x{1f448}\x{1f3fb}|\x{1f446}\x{1f3fd}|\x{1f918}\x{1f3fc}|\x{1f93e}\x{1f3fb}|\x{1f1f2}\x{1f1eb}|\x{1f91f}\x{1f3fd}|\x{1f91f}\x{1f3fe}|\x{1f91f}\x{1f3ff}|\x{1f1f2}\x{1f1ec}|\x{1f918}\x{1f3fb}|\x{1f918}\x{1f3fd}|\x{1f1f2}\x{1f1f0}|\x{1f918}\x{1f3fe}|\x{1f918}\x{1f3ff}|\x{1f1f2}\x{1f1ed}|\x{1f919}\x{1f3fb}|\x{1f919}\x{1f3fc}|\x{1f919}\x{1f3fd}|\x{1f919}\x{1f3fe}|\x{1f919}\x{1f3ff}|\x{1f446}\x{1f3fc}|\x{1f446}\x{1f3fe}|\x{1f93e}\x{1f3fd}|\x{1f44d}\x{1f3fd}|\x{1f938}\x{1f3fd}|\x{1f938}\x{1f3fc}|\x{1f938}\x{1f3fb}|\x{1f1f2}\x{1f1f8}|\x{1f1f2}\x{1f1f9}|\x{1f44d}\x{1f3fb}|\x{1f44d}\x{1f3fc}|\x{1f44d}\x{1f3fe}|\x{1f938}\x{1f3ff}|\x{1f44d}\x{1f3ff}|\x{1f1f2}\x{1f1fa}|\x{1f44e}\x{1f3fb}|\x{1f44e}\x{1f3fc}|\x{1f44e}\x{1f3fd}|\x{1f44e}\x{1f3fe}|\x{1f44e}\x{1f3ff}|\x{1f1f2}\x{1f1fb}|\x{1f938}\x{1f3fe}|\x{261d}\x{1f3ff}|\x{1f446}\x{1f3ff}|\x{1f447}\x{1f3fb}|\x{1f1f2}\x{1f1f5}|\x{1f595}\x{1f3fb}|\x{1f595}\x{1f3fc}|\x{1f595}\x{1f3fd}|\x{1f595}\x{1f3fe}|\x{1f595}\x{1f3ff}|\x{1f1f2}\x{1f1f6}|\x{1f447}\x{1f3fc}|\x{261d}\x{1f3fe}|\x{1f447}\x{1f3fd}|\x{1f447}\x{1f3fe}|\x{1f447}\x{1f3ff}|\x{261d}\x{fe0f}|\x{1f1f2}\x{1f1f7}|\x{261d}\x{1f3fb}|\x{261d}\x{1f3fc}|\x{261d}\x{1f3fd}|\x{1f93e}\x{1f3fc}|\x{1f93e}\x{1f3fe}|\x{1f1f0}\x{1f1f3}|\x{1f590}\x{fe0f}|\x{1f9d8}\x{1f3ff}|\x{1f9d8}\x{1f3fe}|\x{1f9d8}\x{1f3fd}|\x{1f9d8}\x{1f3fc}|\x{1f9d8}\x{1f3fb}|\x{1f1f1}\x{1f1f7}|\x{1f91a}\x{1f3ff}|\x{1f1f1}\x{1f1f8}|\x{1f91a}\x{1f3fd}|\x{1f590}\x{1f3fb}|\x{1f590}\x{1f3fc}|\x{1f590}\x{1f3fd}|\x{1f590}\x{1f3fe}|\x{1f590}\x{1f3ff}|\x{1f1f1}\x{1f1f9}|\x{270b}\x{1f3fb}|\x{270b}\x{1f3fc}|\x{1f91a}\x{1f3fe}|\x{1f91a}\x{1f3fc}|\x{270b}\x{1f3fe}|\x{1f1f1}\x{1f1e6}|\x{1f1f0}\x{1f1f5}|\x{1f1f0}\x{1f1f7}|\x{1f1f0}\x{1f1fc}|\x{1f1f0}\x{1f1fe}|\x{1f5e8}\x{fe0f}|\x{1f1f0}\x{1f1ff}|\x{1f1e9}\x{1f1ef}|\x{1f1f1}\x{1f1e7}|\x{1f91a}\x{1f3fb}|\x{1f1f1}\x{1f1e8}|\x{1f1f1}\x{1f1ee}|\x{1f44b}\x{1f3fb}|\x{1f44b}\x{1f3fc}|\x{1f44b}\x{1f3fd}|\x{1f44b}\x{1f3fe}|\x{1f44b}\x{1f3ff}|\x{1f1f1}\x{1f1f0}|\x{270b}\x{1f3fd}|\x{270b}\x{1f3ff}|\x{1f93e}\x{1f3ff}|\x{270c}\x{1f3ff}|\x{1f90f}\x{1f3ff}|\x{270c}\x{fe0f}|\x{1f1f2}\x{1f1e8}|\x{270c}\x{1f3fb}|\x{270c}\x{1f3fc}|\x{270c}\x{1f3fd}|\x{270c}\x{1f3fe}|\x{1f1f2}\x{1f1e9}|\x{1f90f}\x{1f3fd}|\x{1f91e}\x{1f3fb}|\x{1f91e}\x{1f3fc}|\x{1f91e}\x{1f3fd}|\x{1f91e}\x{1f3fe}|\x{1f91e}\x{1f3ff}|\x{1f1f2}\x{1f1ea}|\x{1f91f}\x{1f3fb}|\x{1f91f}\x{1f3fc}|\x{1f90f}\x{1f3fe}|\x{1f90f}\x{1f3fc}|\x{1f1f1}\x{1f1fa}|\x{1f44c}\x{1f3fd}|\x{1f596}\x{1f3fb}|\x{1f596}\x{1f3fc}|\x{1f596}\x{1f3fd}|\x{1f596}\x{1f3fe}|\x{1f596}\x{1f3ff}|\x{1f1f1}\x{1f1fb}|\x{1f44c}\x{1f3fb}|\x{1f44c}\x{1f3fc}|\x{1f939}\x{1f3ff}|\x{1f90f}\x{1f3fb}|\x{1f939}\x{1f3fe}|\x{1f939}\x{1f3fd}|\x{1f939}\x{1f3fc}|\x{1f939}\x{1f3fb}|\x{1f1f1}\x{1f1fe}|\x{1f44c}\x{1f3fe}|\x{1f44c}\x{1f3ff}|\x{1f1f2}\x{1f1e6}|\x{1f1e9}\x{1f1f0}|\x{1f1e7}\x{1f1f6}|\x{1f1e9}\x{1f1ec}|\x{1f5dc}\x{fe0f}|\x{26a0}\x{fe0f}|\x{26e9}\x{fe0f}|\x{26b1}\x{fe0f}|\x{26b0}\x{fe0f}|\x{1f3d9}\x{fe0f}|\x{2668}\x{fe0f}|\x{1f6cb}\x{fe0f}|\x{1f6cf}\x{fe0f}|\x{2697}\x{fe0f}|\x{26d3}\x{fe0f}|\x{1f3ce}\x{fe0f}|\x{2696}\x{fe0f}|\x{1f3cd}\x{fe0f}|\x{2699}\x{fe0f}|\x{1f3d8}\x{fe0f}|\x{1f6e1}\x{fe0f}|\x{1f6e3}\x{fe0f}|\x{1f6e4}\x{fe0f}|\x{1f6e2}\x{fe0f}|\x{2694}\x{fe0f}|\x{1f5e1}\x{fe0f}|\x{1f6e0}\x{fe0f}|\x{2692}\x{fe0f}|\x{26cf}\x{fe0f}|\x{1f6f3}\x{fe0f}|\x{26f4}\x{fe0f}|\x{1f5dd}\x{fe0f}|\x{1f6e5}\x{fe0f}|\x{2708}\x{fe0f}|\x{1f3da}\x{fe0f}|\x{2622}\x{fe0f}|\x{1f5d1}\x{fe0f}|\x{2199}\x{fe0f}|\x{2721}\x{fe0f}|\x{1f549}\x{fe0f}|\x{269b}\x{fe0f}|\x{1f9dc}\x{1f3ff}|\x{2935}\x{fe0f}|\x{2934}\x{fe0f}|\x{21aa}\x{fe0f}|\x{1f37d}\x{fe0f}|\x{21a9}\x{fe0f}|\x{2194}\x{fe0f}|\x{2195}\x{fe0f}|\x{2196}\x{fe0f}|\x{2b05}\x{fe0f}|\x{1f5fa}\x{fe0f}|\x{1f3d4}\x{fe0f}|\x{1f3d7}\x{fe0f}|\x{2b07}\x{fe0f}|\x{26f0}\x{fe0f}|\x{2198}\x{fe0f}|\x{1f3d5}\x{fe0f}|\x{27a1}\x{fe0f}|\x{1f3d6}\x{fe0f}|\x{1f3dc}\x{fe0f}|\x{2197}\x{fe0f}|\x{1f3dd}\x{fe0f}|\x{1f3de}\x{fe0f}|\x{2b06}\x{fe0f}|\x{1f3df}\x{fe0f}|\x{1f3db}\x{fe0f}|\x{2623}\x{fe0f}|\x{1f6e9}\x{fe0f}|\x{1f5c4}\x{fe0f}|\x{262f}\x{fe0f}|\x{1f5a5}\x{fe0f}|\x{26f1}\x{fe0f}|\x{2744}\x{fe0f}|\x{2603}\x{fe0f}|\x{2604}\x{fe0f}|\x{1f56f}\x{fe0f}|\x{1f4fd}\x{fe0f}|\x{1f39e}\x{fe0f}|\x{1f397}\x{fe0f}|\x{1f39f}\x{fe0f}|\x{1f396}\x{fe0f}|\x{1f5b2}\x{fe0f}|\x{1f5b1}\x{fe0f}|\x{2328}\x{fe0f}|\x{1f5a8}\x{fe0f}|\x{260e}\x{fe0f}|\x{1f5de}\x{fe0f}|\x{26f8}\x{fe0f}|\x{1f39b}\x{fe0f}|\x{1f39a}\x{fe0f}|\x{1f399}\x{fe0f}|\x{1f579}\x{fe0f}|\x{2660}\x{fe0f}|\x{2665}\x{fe0f}|\x{2666}\x{fe0f}|\x{2663}\x{fe0f}|\x{265f}\x{fe0f}|\x{1f5bc}\x{fe0f}|\x{26d1}\x{fe0f}|\x{1f576}\x{fe0f}|\x{1f6cd}\x{fe0f}|\x{2602}\x{fe0f}|\x{1f32c}\x{fe0f}|\x{1f5c3}\x{fe0f}|\x{2712}\x{fe0f}|\x{1f6f0}\x{fe0f}|\x{2702}\x{fe0f}|\x{1f6ce}\x{fe0f}|\x{1f587}\x{fe0f}|\x{23f1}\x{fe0f}|\x{23f2}\x{fe0f}|\x{1f570}\x{fe0f}|\x{1f5d3}\x{fe0f}|\x{1f5d2}\x{fe0f}|\x{1f5c2}\x{fe0f}|\x{1f58d}\x{fe0f}|\x{1f58c}\x{fe0f}|\x{1f58a}\x{fe0f}|\x{1f58b}\x{fe0f}|\x{270f}\x{fe0f}|\x{1f32b}\x{fe0f}|\x{1f5f3}\x{fe0f}|\x{1f321}\x{fe0f}|\x{2600}\x{fe0f}|\x{2709}\x{fe0f}|\x{2601}\x{fe0f}|\x{26c8}\x{fe0f}|\x{1f324}\x{fe0f}|\x{1f325}\x{fe0f}|\x{1f326}\x{fe0f}|\x{1f327}\x{fe0f}|\x{1f328}\x{fe0f}|\x{1f3f7}\x{fe0f}|\x{1f329}\x{fe0f}|\x{1f32a}\x{fe0f}|\x{2638}\x{fe0f}|\x{271d}\x{fe0f}|\x{1f1e9}\x{1f1ea}|\x{1f1e7}\x{1f1e6}|\x{270a}\x{1f3fc}|\x{1f1e7}\x{1f1f4}|\x{1f1e7}\x{1f1f3}|\x{1f1e7}\x{1f1f2}|\x{1f1e7}\x{1f1f1}|\x{1f1e7}\x{1f1ef}|\x{1f1e7}\x{1f1ee}|\x{1f1e7}\x{1f1ed}|\x{1f1e7}\x{1f1ec}|\x{1f1e7}\x{1f1eb}|\x{1f1e7}\x{1f1ea}|\x{1f1e7}\x{1f1e9}|\x{1f1e7}\x{1f1e7}|\x{1f1e6}\x{1f1ff}|\x{1f1e7}\x{1f1f8}|\x{1f1e6}\x{1f1fd}|\x{1f1e6}\x{1f1fc}|\x{1f1e6}\x{1f1fa}|\x{1f1e6}\x{1f1f9}|\x{1f1e6}\x{1f1f8}|\x{1f1e6}\x{1f1f7}|\x{1f1e6}\x{1f1f6}|\x{1f1e6}\x{1f1f4}|\x{1f1e6}\x{1f1f2}|\x{1f1e6}\x{1f1f1}|\x{1f1e6}\x{1f1ee}|\x{1f1e6}\x{1f1ec}|\x{1f1e6}\x{1f1eb}|\x{1f1e6}\x{1f1ea}|\x{1f1e7}\x{1f1f7}|\x{1f1e7}\x{1f1f9}|\x{1f1e6}\x{1f1e8}|\x{1f46c}\x{1f3fd}|\x{1f46b}\x{1f3ff}|\x{1f1e8}\x{1f1ff}|\x{1f46c}\x{1f3fb}|\x{1f1e8}\x{1f1fe}|\x{1f1e8}\x{1f1fd}|\x{1f1e8}\x{1f1fc}|\x{1f1e8}\x{1f1fb}|\x{1f1e8}\x{1f1fa}|\x{1f46c}\x{1f3fc}|\x{1f1e8}\x{1f1f7}|\x{1f1e8}\x{1f1f5}|\x{1f1e8}\x{1f1f4}|\x{1f1e8}\x{1f1f3}|\x{1f1e8}\x{1f1f2}|\x{1f1e8}\x{1f1f1}|\x{1f1e7}\x{1f1fb}|\x{2639}\x{fe0f}|\x{1f1e8}\x{1f1f0}|\x{1f1e8}\x{1f1ee}|\x{1f1e8}\x{1f1ed}|\x{1f46c}\x{1f3fe}|\x{1f1e8}\x{1f1ec}|\x{1f1e8}\x{1f1eb}|\x{1f1e8}\x{1f1e9}|\x{1f1e8}\x{1f1e8}|\x{1f1e8}\x{1f1e6}|\x{1f46c}\x{1f3ff}|\x{1f1e7}\x{1f1ff}|\x{1f1e7}\x{1f1fe}|\x{1f1e7}\x{1f1fc}|\x{1f1e6}\x{1f1e9}|\x{1f5e3}\x{fe0f}|\x{2626}\x{fe0f}|\x{267b}\x{fe0f}|\x{00a9}\x{fe0f}|\x{3030}\x{fe0f}|\x{2049}\x{fe0f}|\x{2618}\x{fe0f}|\x{203c}\x{fe0f}|\x{2747}\x{fe0f}|\x{2734}\x{fe0f}|\x{2733}\x{fe0f}|\x{303d}\x{fe0f}|\x{2716}\x{fe0f}|\x{2714}\x{fe0f}|\x{2611}\x{fe0f}|\x{1f336}\x{fe0f}|\x{269c}\x{fe0f}|\x{267e}\x{fe0f}|\x{2122}\x{fe0f}|\x{2695}\x{fe0f}|\x{2642}\x{fe0f}|\x{2640}\x{fe0f}|\x{23cf}\x{fe0f}|\x{23fa}\x{fe0f}|\x{23f9}\x{fe0f}|\x{23f8}\x{fe0f}|\x{23ee}\x{fe0f}|\x{25c0}\x{fe0f}|\x{23ef}\x{fe0f}|\x{23ed}\x{fe0f}|\x{25b6}\x{fe0f}|\x{262e}\x{fe0f}|\x{262a}\x{fe0f}|\x{00ae}\x{fe0f}|\x{1f3f5}\x{fe0f}|\x{1f3f3}\x{fe0f}|\x{1f171}\x{fe0f}|\x{25ab}\x{fe0f}|\x{25aa}\x{fe0f}|\x{25fb}\x{fe0f}|\x{25fc}\x{fe0f}|\x{3299}\x{fe0f}|\x{3297}\x{fe0f}|\x{1f43f}\x{fe0f}|\x{1f237}\x{fe0f}|\x{1f202}\x{fe0f}|\x{1f17f}\x{fe0f}|\x{1f17e}\x{fe0f}|\x{24c2}\x{fe0f}|\x{1f54a}\x{fe0f}|\x{2139}\x{fe0f}|\x{1f170}\x{fe0f}|\x{0023}\x{20e3}|\x{0039}\x{20e3}|\x{0038}\x{20e3}|\x{0037}\x{20e3}|\x{0036}\x{20e3}|\x{0035}\x{20e3}|\x{0034}\x{20e3}|\x{0033}\x{20e3}|\x{0032}\x{20e3}|\x{0031}\x{20e3}|\x{1f577}\x{fe0f}|\x{1f578}\x{fe0f}|\x{0030}\x{20e3}|\x{002a}\x{20e3}|\x{263a}\x{fe0f}|\x{270a}\x{1f3fb}|\x{1f573}\x{fe0f}|\x{270a}\x{1f3fd}|\x{1f647}\x{1f3fc}|\x{1f1f9}\x{1f1f1}|\x{1f9da}\x{1f3fe}|\x{1f3c3}\x{1f3fb}|\x{1f9da}\x{1f3ff}|\x{1f9dd}\x{1f3ff}|\x{1f3c3}\x{1f3fc}|\x{1f9dd}\x{1f3fe}|\x{1f3c3}\x{1f3fd}|\x{1f3c3}\x{1f3fe}|\x{1f3c3}\x{1f3ff}|\x{1f647}\x{1f3fe}|\x{1f9dd}\x{1f3fd}|\x{1f647}\x{1f3fd}|\x{1f9dd}\x{1f3fc}|\x{1f9da}\x{1f3fc}|\x{1f647}\x{1f3fb}|\x{1f9dd}\x{1f3fb}|\x{1f1f9}\x{1f1f0}|\x{1f9cf}\x{1f3ff}|\x{1f1ff}\x{1f1fc}|\x{1f9db}\x{1f3fb}|\x{1f9db}\x{1f3fc}|\x{1f9db}\x{1f3fd}|\x{1f9db}\x{1f3fe}|\x{1f9db}\x{1f3ff}|\x{1f9cf}\x{1f3fe}|\x{1f9cf}\x{1f3fd}|\x{1f9cf}\x{1f3fc}|\x{1f9da}\x{1f3fd}|\x{1f647}\x{1f3ff}|\x{1f9cf}\x{1f3fb}|\x{1f1f9}\x{1f1f4}|\x{1f9ce}\x{1f3fc}|\x{1f9ce}\x{1f3fd}|\x{1f9ce}\x{1f3fe}|\x{1f9ce}\x{1f3ff}|\x{1f575}\x{1f3fb}|\x{1f1f9}\x{1f1f7}|\x{1f9d9}\x{1f3fd}|\x{1f575}\x{fe0f}|\x{1f46e}\x{1f3ff}|\x{1f46e}\x{1f3fe}|\x{1f46e}\x{1f3fd}|\x{1f46e}\x{1f3fc}|\x{1f46e}\x{1f3fb}|\x{1f937}\x{1f3ff}|\x{1f1f9}\x{1f1f2}|\x{1f937}\x{1f3fe}|\x{1f937}\x{1f3fd}|\x{1f9d9}\x{1f3fe}|\x{1f937}\x{1f3fc}|\x{1f937}\x{1f3fb}|\x{1f1f9}\x{1f1f3}|\x{1f9d9}\x{1f3ff}|\x{1f926}\x{1f3ff}|\x{1f926}\x{1f3fe}|\x{1f1ff}\x{1f1f2}|\x{1f926}\x{1f3fd}|\x{1f926}\x{1f3fc}|\x{1f9da}\x{1f3fb}|\x{1f926}\x{1f3fb}|\x{1f9dc}\x{1f3fb}|\x{1f9dc}\x{1f3fc}|\x{1f9d9}\x{1f3fc}|\x{1f645}\x{1f3ff}|\x{1f1f9}\x{1f1e6}|\x{1f9d6}\x{1f3fb}|\x{1f9d6}\x{1f3fc}|\x{1f9d6}\x{1f3fd}|\x{1f9d6}\x{1f3fe}|\x{1f9d6}\x{1f3ff}|\x{1f1f8}\x{1f1ff}|\x{1f646}\x{1f3ff}|\x{1f646}\x{1f3fe}|\x{1f646}\x{1f3fd}|\x{1f646}\x{1f3fc}|\x{1f646}\x{1f3fb}|\x{1f1f8}\x{1f1fe}|\x{1f645}\x{1f3fe}|\x{1f481}\x{1f3fc}|\x{1f645}\x{1f3fd}|\x{1f645}\x{1f3fc}|\x{1f645}\x{1f3fb}|\x{1f1f8}\x{1f1fd}|\x{1f64e}\x{1f3ff}|\x{1f64e}\x{1f3fe}|\x{1f64e}\x{1f3fd}|\x{1f64e}\x{1f3fc}|\x{1f64e}\x{1f3fb}|\x{1f1f8}\x{1f1fb}|\x{1f9d7}\x{1f3fb}|\x{1f9d7}\x{1f3fc}|\x{1f9d7}\x{1f3fd}|\x{1f9d7}\x{1f3fe}|\x{1f481}\x{1f3fb}|\x{1f481}\x{1f3fd}|\x{1f9dc}\x{1f3fd}|\x{1f483}\x{1f3fe}|\x{1f1f9}\x{1f1ef}|\x{1f64b}\x{1f3ff}|\x{1f9dc}\x{1f3fe}|\x{1f64b}\x{1f3fe}|\x{1f64b}\x{1f3fd}|\x{1f64b}\x{1f3fc}|\x{1f64b}\x{1f3fb}|\x{1f1f9}\x{1f1ed}|\x{1f481}\x{1f3ff}|\x{1f1f9}\x{1f1ec}|\x{1f483}\x{1f3fb}|\x{1f483}\x{1f3fc}|\x{1f483}\x{1f3fd}|\x{1f483}\x{1f3ff}|\x{1f481}\x{1f3fe}|\x{1f1f9}\x{1f1eb}|\x{1f57a}\x{1f3fb}|\x{1f57a}\x{1f3fc}|\x{1f57a}\x{1f3fd}|\x{1f57a}\x{1f3fe}|\x{1f57a}\x{1f3ff}|\x{1f574}\x{fe0f}|\x{1f1f9}\x{1f1e9}|\x{1f574}\x{1f3fb}|\x{1f574}\x{1f3fc}|\x{1f574}\x{1f3fd}|\x{1f574}\x{1f3fe}|\x{1f574}\x{1f3ff}|\x{1f1f9}\x{1f1e8}|\x{1f9ce}\x{1f3fb}|\x{270a}\x{1f3fe}|\x{1f1f8}\x{1f1f9}|\x{1f6b6}\x{1f3fc}|\x{1f47c}\x{1f3fe}|\x{1f47c}\x{1f3ff}|\x{1f1fb}\x{1f1f3}|\x{1f9d5}\x{1f3ff}|\x{1f385}\x{1f3fb}|\x{1f9d5}\x{1f3fe}|\x{1f9d5}\x{1f3fd}|\x{1f9d5}\x{1f3fc}|\x{1f9d5}\x{1f3fb}|\x{1f1fa}\x{1f1fe}|\x{1f385}\x{1f3fc}|\x{1f1fa}\x{1f1f8}|\x{1f6b6}\x{1f3fb}|\x{1f6b6}\x{1f3fd}|\x{1f47c}\x{1f3fd}|\x{1f6b6}\x{1f3fe}|\x{1f6b6}\x{1f3ff}|\x{1f385}\x{1f3fd}|\x{1f472}\x{1f3ff}|\x{1f472}\x{1f3fe}|\x{1f472}\x{1f3fd}|\x{1f472}\x{1f3fc}|\x{1f472}\x{1f3fb}|\x{1f1fa}\x{1f1f3}|\x{1f473}\x{1f3ff}|\x{1f473}\x{1f3fe}|\x{1f385}\x{1f3fe}|\x{1f473}\x{1f3fd}|\x{1f1fa}\x{1f1ff}|\x{1f47c}\x{1f3fc}|\x{1f473}\x{1f3fb}|\x{1f487}\x{1f3fd}|\x{1f470}\x{1f3fe}|\x{1f470}\x{1f3ff}|\x{1f470}\x{1f3fc}|\x{1f1fb}\x{1f1e8}|\x{1f930}\x{1f3fb}|\x{1f930}\x{1f3fc}|\x{1f930}\x{1f3fd}|\x{1f930}\x{1f3fe}|\x{1f930}\x{1f3ff}|\x{1f470}\x{1f3fb}|\x{1f1fb}\x{1f1e6}|\x{1f487}\x{1f3ff}|\x{1f487}\x{1f3fe}|\x{1f487}\x{1f3fc}|\x{1f47c}\x{1f3fb}|\x{1f487}\x{1f3fb}|\x{1f1fb}\x{1f1ea}|\x{1f935}\x{1f3ff}|\x{1f1fb}\x{1f1ec}|\x{1f931}\x{1f3fb}|\x{1f931}\x{1f3fc}|\x{1f935}\x{1f3fe}|\x{1f935}\x{1f3fd}|\x{1f931}\x{1f3fd}|\x{1f935}\x{1f3fc}|\x{1f931}\x{1f3fe}|\x{1f935}\x{1f3fb}|\x{1f931}\x{1f3ff}|\x{1f1fb}\x{1f1ee}|\x{1f473}\x{1f3fc}|\x{1f385}\x{1f3ff}|\x{1f9d9}\x{1f3fb}|\x{1f9b9}\x{1f3fb}|\x{1f477}\x{1f3fd}|\x{1f9b8}\x{1f3fb}|\x{1f9b8}\x{1f3fc}|\x{1f9b8}\x{1f3fd}|\x{1f477}\x{1f3fc}|\x{1f477}\x{1f3fb}|\x{1f1fd}\x{1f1f0}|\x{1f1f9}\x{1f1fc}|\x{1f482}\x{1f3ff}|\x{1f9b8}\x{1f3fe}|\x{1f9b8}\x{1f3ff}|\x{1f1fe}\x{1f1ea}|\x{1f1fe}\x{1f1f9}|\x{1f482}\x{1f3fe}|\x{1f477}\x{1f3fe}|\x{1f482}\x{1f3fd}|\x{1f9b9}\x{1f3fc}|\x{1f482}\x{1f3fc}|\x{1f9b9}\x{1f3fd}|\x{1f482}\x{1f3fb}|\x{1f1f9}\x{1f1fb}|\x{1f575}\x{1f3ff}|\x{1f575}\x{1f3fe}|\x{1f9b9}\x{1f3fe}|\x{1f9b9}\x{1f3ff}|\x{1f575}\x{1f3fd}|\x{1f575}\x{1f3fc}|\x{1f1ff}\x{1f1e6}|\x{1f1f9}\x{1f1f9}|\x{1f1fc}\x{1f1f8}|\x{1f477}\x{1f3ff}|\x{1f1fa}\x{1f1f2}|\x{1f936}\x{1f3fe}|\x{1f478}\x{1f3ff}|\x{1f478}\x{1f3fe}|\x{1f478}\x{1f3fd}|\x{1f478}\x{1f3fc}|\x{1f1fb}\x{1f1fa}|\x{1f478}\x{1f3fb}|\x{1f1fa}\x{1f1ec}|\x{1f934}\x{1f3ff}|\x{1f936}\x{1f3fb}|\x{1f936}\x{1f3fc}|\x{1f936}\x{1f3fd}|\x{1f934}\x{1f3fe}|\x{1f934}\x{1f3fd}|\x{1f934}\x{1f3fc}|\x{1f1f9}\x{1f1ff}|\x{1f1fa}\x{1f1e6}|\x{1f936}\x{1f3ff}|\x{1f9cd}\x{1f3fb}|\x{1f9cd}\x{1f3fc}|\x{1f486}\x{1f3ff}|\x{1f9cd}\x{1f3fd}|\x{1f9cd}\x{1f3fe}|\x{1f486}\x{1f3fe}|\x{1f9cd}\x{1f3ff}|\x{1f486}\x{1f3fd}|\x{1f486}\x{1f3fc}|\x{1f486}\x{1f3fb}|\x{1f934}\x{1f3fb}|\x{1f1fc}\x{1f1eb}|\x{1f9d7}\x{1f3ff}|\x{1f470}\x{1f3fd}|\x{1f64d}\x{1f3ff}|\x{1f1f5}\x{1f1f8}|\x{1f6b4}\x{1f3fd}|\x{1f1f5}\x{1f1f9}|\x{1f3ca}\x{1f3fb}|\x{1f6b4}\x{1f3fc}|\x{1f3ca}\x{1f3fc}|\x{1f6b4}\x{1f3fb}|\x{1f3ca}\x{1f3fd}|\x{1f1f3}\x{1f1ea}|\x{1f3ca}\x{1f3fe}|\x{1f1f3}\x{1f1eb}|\x{1f450}\x{1f3fb}|\x{1f450}\x{1f3fc}|\x{1f3ca}\x{1f3ff}|\x{1f450}\x{1f3fd}|\x{1f1f5}\x{1f1f7}|\x{1f1f5}\x{1f1fc}|\x{1f443}\x{1f3fd}|\x{1f932}\x{1f3fe}|\x{1f443}\x{1f3fb}|\x{1f64d}\x{1f3fe}|\x{1f443}\x{1f3fc}|\x{1f932}\x{1f3fd}|\x{1f932}\x{1f3fc}|\x{1f932}\x{1f3fb}|\x{1f1f5}\x{1f1f3}|\x{1f443}\x{1f3fe}|\x{1f1f3}\x{1f1ec}|\x{1f443}\x{1f3ff}|\x{1f450}\x{1f3ff}|\x{1f1f5}\x{1f1f2}|\x{1f450}\x{1f3fe}|\x{1f441}\x{fe0f}|\x{1f1f5}\x{1f1fe}|\x{1f9bb}\x{1f3ff}|\x{1f1f7}\x{1f1fa}|\x{1f466}\x{1f3fd}|\x{1f64c}\x{1f3fe}|\x{1f466}\x{1f3fe}|\x{1f64c}\x{1f3fd}|\x{1f466}\x{1f3ff}|\x{1f3cb}\x{fe0f}|\x{1f467}\x{1f3fb}|\x{1f466}\x{1f3fb}|\x{1f64c}\x{1f3fc}|\x{1f6a3}\x{1f3ff}|\x{1f64c}\x{1f3fb}|\x{1f6a3}\x{1f3fe}|\x{1f6a3}\x{1f3fd}|\x{1f6a3}\x{1f3fc}|\x{1f466}\x{1f3fc}|\x{1f1f7}\x{1f1f8}|\x{1f6b4}\x{1f3fe}|\x{1f476}\x{1f3fe}|\x{1f1f6}\x{1f1e6}|\x{1f1f7}\x{1f1ea}|\x{1f476}\x{1f3fb}|\x{1f476}\x{1f3fc}|\x{1f476}\x{1f3fd}|\x{1f6b4}\x{1f3ff}|\x{1f476}\x{1f3ff}|\x{1f9d2}\x{1f3ff}|\x{1f1f7}\x{1f1f4}|\x{1f64c}\x{1f3ff}|\x{1f9d2}\x{1f3fb}|\x{1f9d2}\x{1f3fc}|\x{1f9d2}\x{1f3fd}|\x{1f9d2}\x{1f3fe}|\x{1f1f5}\x{1f1f1}|\x{1f9bb}\x{1f3fe}|\x{1f6a3}\x{1f3fb}|\x{270d}\x{1f3fd}|\x{1f485}\x{1f3fb}|\x{1f4aa}\x{1f3fd}|\x{1f1f3}\x{1f1f5}|\x{270d}\x{1f3ff}|\x{270d}\x{1f3fe}|\x{1f4aa}\x{1f3fe}|\x{1f4aa}\x{1f3ff}|\x{1f3cb}\x{1f3ff}|\x{1f1f4}\x{1f1f2}|\x{1f1f5}\x{1f1e6}|\x{270d}\x{1f3fc}|\x{1f1f5}\x{1f1ea}|\x{1f9b5}\x{1f3fb}|\x{1f9b5}\x{1f3fc}|\x{1f4aa}\x{1f3fc}|\x{1f4aa}\x{1f3fb}|\x{270d}\x{1f3fb}|\x{1f933}\x{1f3fc}|\x{1f485}\x{1f3fd}|\x{1f485}\x{1f3fe}|\x{1f485}\x{1f3ff}|\x{1f1f3}\x{1f1fa}|\x{1f1f3}\x{1f1f7}|\x{1f933}\x{1f3fb}|\x{1f933}\x{1f3fd}|\x{1f3cb}\x{1f3fe}|\x{1f3cb}\x{1f3fb}|\x{1f933}\x{1f3fe}|\x{1f933}\x{1f3ff}|\x{1f1f3}\x{1f1ff}|\x{1f3cb}\x{1f3fc}|\x{1f3cb}\x{1f3fd}|\x{1f9b5}\x{1f3fd}|\x{1f9b5}\x{1f3fe}|\x{1f9bb}\x{1f3fd}|\x{1f64f}\x{1f3fb}|\x{1f1f5}\x{1f1ed}|\x{1f442}\x{1f3fb}|\x{1f442}\x{1f3fc}|\x{1f64f}\x{1f3fc}|\x{1f442}\x{1f3fd}|\x{1f442}\x{1f3fe}|\x{1f442}\x{1f3ff}|\x{1f9b6}\x{1f3fe}|\x{1f1f5}\x{1f1f0}|\x{1f1f3}\x{1f1f1}|\x{1f1f3}\x{1f1ee}|\x{1f9bb}\x{1f3fb}|\x{1f9bb}\x{1f3fc}|\x{1f932}\x{1f3ff}|\x{1f9b6}\x{1f3ff}|\x{1f64f}\x{1f3fd}|\x{1f1f3}\x{1f1f4}|\x{26f9}\x{1f3ff}|\x{1f9b5}\x{1f3ff}|\x{1f1f5}\x{1f1eb}|\x{270d}\x{fe0f}|\x{1f9b6}\x{1f3fb}|\x{1f9b6}\x{1f3fc}|\x{1f9b6}\x{1f3fd}|\x{26f9}\x{1f3fe}|\x{26f9}\x{fe0f}|\x{26f9}\x{1f3fd}|\x{26f9}\x{1f3fc}|\x{1f64f}\x{1f3ff}|\x{26f9}\x{1f3fb}|\x{1f64f}\x{1f3fe}|\x{1f1f5}\x{1f1ec}|\x{1f1f3}\x{1f1e8}|\x{1f485}\x{1f3fc}|\x{1f44a}\x{1f3fc}|\x{1f44a}\x{1f3fd}|\x{1f3c7}\x{1f3ff}|\x{1f3c4}\x{1f3fe}|\x{1f3c7}\x{1f3fe}|\x{1f3c4}\x{1f3ff}|\x{1f9d4}\x{1f3fb}|\x{270a}\x{1f3ff}|\x{1f1f2}\x{1f1fc}|\x{1f44a}\x{1f3fb}|\x{1f3c7}\x{1f3fd}|\x{1f1f8}\x{1f1e9}|\x{1f44f}\x{1f3ff}|\x{1f3c7}\x{1f3fc}|\x{1f3c7}\x{1f3fb}|\x{1f3c4}\x{1f3fc}|\x{1f44a}\x{1f3fe}|\x{1f1f8}\x{1f1f2}|\x{1f1f8}\x{1f1f3}|\x{1f9d3}\x{1f3fd}|\x{1f44a}\x{1f3ff}|\x{1f468}\x{1f3ff}|\x{1f6b5}\x{1f3ff}|\x{1f9d3}\x{1f3fe}|\x{1f468}\x{1f3fe}|\x{1f6b5}\x{1f3fe}|\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3fb}|\x{1f3c4}\x{1f3fd}|\x{1f3c4}\x{1f3fb}|\x{1f1f8}\x{1f1f1}|\x{1f9d3}\x{1f3fc}|\x{1f3c2}\x{1f3fb}|\x{1f3c2}\x{1f3fc}|\x{1f3c2}\x{1f3fd}|\x{1f3c2}\x{1f3fe}|\x{1f3c2}\x{1f3ff}|\x{1f3cc}\x{fe0f}|\x{1f1f8}\x{1f1ef}|\x{1f3cc}\x{1f3fb}|\x{1f3cc}\x{1f3fc}|\x{1f3cc}\x{1f3fd}|\x{1f3cc}\x{1f3fe}|\x{1f3cc}\x{1f3ff}|\x{26f7}\x{fe0f}|\x{1f1f8}\x{1f1ea}|\x{1f9d3}\x{1f3fb}|\x{1f1f8}\x{1f1ee}|\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fc}|\x{1f1f8}\x{1f1ed}|\x{1f469}\x{1f3fb}|\x{1f1f8}\x{1f1ec}|\x{1f9d4}\x{1f3ff}|\x{1f9d4}\x{1f3fe}|\x{1f9d4}\x{1f3fd}|\x{1f9d4}\x{1f3fc}|\x{1f6b5}\x{1f3fd}|\x{1f9d3}\x{1f3ff}|\x{1f6b5}\x{1f3fc}|\x{1f475}\x{1f3fd}|\x{1f91c}\x{1f3fd}|\x{1f91c}\x{1f3fe}|\x{1f91c}\x{1f3ff}|\x{1f474}\x{1f3fe}|\x{1f474}\x{1f3ff}|\x{1f1f3}\x{1f1e6}|\x{1f1f8}\x{1f1f7}|\x{1f9d1}\x{1f3fb}|\x{1f475}\x{1f3fb}|\x{1f1f8}\x{1f1e6}|\x{1f44f}\x{1f3fb}|\x{1f475}\x{1f3fc}|\x{1f475}\x{1f3fe}|\x{1f1f8}\x{1f1f4}|\x{1f467}\x{1f3ff}|\x{1f44f}\x{1f3fc}|\x{1f467}\x{1f3fe}|\x{1f475}\x{1f3ff}|\x{1f1f8}\x{1f1f8}|\x{1f64d}\x{1f3fb}|\x{1f64d}\x{1f3fc}|\x{1f467}\x{1f3fd}|\x{1f44f}\x{1f3fd}|\x{1f467}\x{1f3fc}|\x{1f44f}\x{1f3fe}|\x{1f1f7}\x{1f1fc}|\x{1f64d}\x{1f3fd}|\x{1f91c}\x{1f3fc}|\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fd}|\x{1f91b}\x{1f3fc}|\x{1f1f8}\x{1f1e8}|\x{1f6b5}\x{1f3fb}|\x{1f471}\x{1f3ff}|\x{1f1f2}\x{1f1fd}|\x{1f474}\x{1f3fb}|\x{1f1f2}\x{1f1fe}|\x{1f471}\x{1f3fe}|\x{1f471}\x{1f3fd}|\x{1f91b}\x{1f3fb}|\x{1f471}\x{1f3fc}|\x{1f91c}\x{1f3fb}|\x{1f471}\x{1f3fb}|\x{1f1f8}\x{1f1f0}|\x{1f474}\x{1f3fd}|\x{1f9d1}\x{1f3fe}|\x{1f91b}\x{1f3fd}|\x{1f9d1}\x{1f3ff}|\x{1f91b}\x{1f3fe}|\x{1f474}\x{1f3fc}|\x{1f1f8}\x{1f1e7}|\x{1f1f2}\x{1f1ff}|\x{1f91b}\x{1f3ff}|\x{1f4c5}|\x{1f58b}|\x{1f5c2}|\x{1f58a}|\x{1f4dd}|\x{1f4c1}|\x{1f4c2}|\x{1f4bc}|\x{1f58d}|\x{1f58c}|\x{2702}|\x{1f4c6}|\x{1f4ce}|\x{1f5dd}|\x{1f4cb}|\x{1f511}|\x{1f510}|\x{1f4cc}|\x{1f4cd}|\x{1f50f}|\x{1fa93}|\x{1f587}|\x{1f4cf}|\x{1f513}|\x{1f512}|\x{1f5d1}|\x{1f5c4}|\x{1f5c3}|\x{1f528}|\x{26cf}|\x{1f5d2}|\x{1f527}|\x{1f5d3}|\x{2696}|\x{1f4c7}|\x{1f5dc}|\x{2699}|\x{1f4c8}|\x{1f529}|\x{1f6e1}|\x{1f4ca}|\x{1f3f9}|\x{1f52b}|\x{2694}|\x{1f4c9}|\x{1f5e1}|\x{1f6e0}|\x{2692}|\x{1f4d0}|\x{1f4d7}|\x{2712}|\x{1f3bb}|\x{1f3b5}|\x{1f3b6}|\x{1f601}|\x{1f399}|\x{1f39a}|\x{1f39b}|\x{1f3a4}|\x{1f3a7}|\x{1f4fb}|\x{1f3b7}|\x{1f3b8}|\x{1f3b9}|\x{1f3ba}|\x{1fa95}|\x{1f515}|\x{1f941}|\x{1f4f1}|\x{1f4f2}|\x{260e}|\x{1f4de}|\x{1f4df}|\x{1f4e0}|\x{1f50b}|\x{1f50c}|\x{1f4bb}|\x{1f5a5}|\x{1f5a8}|\x{2328}|\x{1f3bc}|\x{1f514}|\x{1f5b1}|\x{1f3a9}|\x{1f45d}|\x{1f6cd}|\x{1f392}|\x{1f45e}|\x{1f45f}|\x{1f97e}|\x{1f97f}|\x{1f460}|\x{1f461}|\x{1fa70}|\x{1f462}|\x{1f451}|\x{1f452}|\x{1f393}|\x{1f4ef}|\x{1f9e2}|\x{26d1}|\x{1f9af}|\x{1f484}|\x{1f48d}|\x{1f48e}|\x{1f507}|\x{1f604}|\x{1f508}|\x{1f509}|\x{1f50a}|\x{1f4e2}|\x{1f4e3}|\x{1f45c}|\x{1f5b2}|\x{270f}|\x{1f4b1}|\x{1f5de}|\x{1f4d1}|\x{1f516}|\x{1f3f7}|\x{1f4b0}|\x{1f4b4}|\x{1f4b5}|\x{1f4b6}|\x{1f4b7}|\x{1f4b8}|\x{1f4b3}|\x{1f9fe}|\x{1f4b9}|\x{1f4b2}|\x{1f4c4}|\x{2709}|\x{1f4e7}|\x{1f4e8}|\x{1f4e9}|\x{1f4e4}|\x{1f4e5}|\x{1f4e6}|\x{1f4eb}|\x{1f4ea}|\x{1f4ec}|\x{1f4ed}|\x{1f4ee}|\x{1f5f3}|\x{1f4f0}|\x{1f4dc}|\x{1f4bd}|\x{1f50d}|\x{1f4be}|\x{1f4bf}|\x{1f4c0}|\x{1f9ee}|\x{1f3a5}|\x{1f39e}|\x{1f4fd}|\x{1f3ac}|\x{1f4fa}|\x{1f4f7}|\x{1f4f8}|\x{1f4f9}|\x{1f4fc}|\x{1f50e}|\x{1f4c3}|\x{1f56f}|\x{1f4a1}|\x{1f526}|\x{1f3ee}|\x{1fa94}|\x{1f4d4}|\x{1f4d5}|\x{1f4d6}|\x{1f4d8}|\x{1f4d9}|\x{1f4da}|\x{1f4d3}|\x{1f4d2}|\x{1f4ff}|\x{2795}|\x{1f517}|\x{1f521}|\x{263a}|\x{1f617}|\x{1f618}|\x{1f929}|\x{1f60d}|\x{1f970}|\x{1f607}|\x{1f60a}|\x{1f609}|\x{1f643}|\x{1f642}|\x{1f51f}|\x{1f520}|\x{1f522}|\x{00ae}|\x{1f523}|\x{1f524}|\x{1f170}|\x{1f18e}|\x{1f171}|\x{1f191}|\x{1f192}|\x{1f193}|\x{2139}|\x{1f194}|\x{24c2}|\x{1f195}|\x{1f196}|\x{1f17e}|\x{2122}|\x{00a9}|\x{1f17f}|\x{274c}|\x{2642}|\x{2695}|\x{267e}|\x{267b}|\x{269c}|\x{1f531}|\x{1f4db}|\x{1f530}|\x{2b55}|\x{2705}|\x{2611}|\x{2714}|\x{2716}|\x{274e}|\x{3030}|\x{2796}|\x{2797}|\x{27b0}|\x{27bf}|\x{303d}|\x{2733}|\x{2734}|\x{2747}|\x{203c}|\x{2049}|\x{2753}|\x{2754}|\x{2755}|\x{2757}|\x{1f197}|\x{1f198}|\x{1f4f4}|\x{1f53a}|\x{1f7eb}|\x{2b1b}|\x{2b1c}|\x{25fc}|\x{25fb}|\x{25fe}|\x{25fd}|\x{25aa}|\x{25ab}|\x{1f536}|\x{1f537}|\x{1f538}|\x{1f539}|\x{1f53b}|\x{1f7e6}|\x{1f4a0}|\x{1f518}|\x{1f533}|\x{1f532}|\x{1f3c1}|\x{1f6a9}|\x{1f38c}|\x{1f3f4}|\x{1f3f3}|\x{1f602}|\x{1f923}|\x{1f605}|\x{1f606}|\x{1f45a}|\x{1f7ea}|\x{1f7e9}|\x{1f199}|\x{1f233}|\x{1f19a}|\x{1f201}|\x{1f202}|\x{1f237}|\x{1f236}|\x{1f22f}|\x{1f250}|\x{1f239}|\x{1f21a}|\x{1f232}|\x{1f251}|\x{1f238}|\x{1f234}|\x{3297}|\x{1f7e8}|\x{3299}|\x{1f23a}|\x{1f235}|\x{1f534}|\x{1f7e0}|\x{1f7e1}|\x{1f7e2}|\x{1f535}|\x{1f7e3}|\x{1f7e4}|\x{26ab}|\x{26aa}|\x{1f7e5}|\x{1f7e7}|\x{2640}|\x{1f4f3}|\x{26d3}|\x{1f6c4}|\x{26b1}|\x{1f5ff}|\x{1f3e7}|\x{1f6ae}|\x{1f6b0}|\x{267f}|\x{1f6b9}|\x{1f6ba}|\x{1f6bb}|\x{1f6bc}|\x{1f6be}|\x{1f6c2}|\x{1f6c3}|\x{1f6c5}|\x{1f6ac}|\x{26a0}|\x{1f6b8}|\x{26d4}|\x{1f6ab}|\x{1f6b3}|\x{1f6ad}|\x{1f6af}|\x{1f6b1}|\x{1f6b7}|\x{1f4f5}|\x{1f51e}|\x{2622}|\x{2623}|\x{2b06}|\x{26b0}|\x{1f6d2}|\x{27a1}|\x{1fa7a}|\x{1f9f0}|\x{1f9f2}|\x{2697}|\x{1f9ea}|\x{1f9eb}|\x{1f9ec}|\x{1f52c}|\x{1f52d}|\x{1f4e1}|\x{1f489}|\x{1fa78}|\x{1f48a}|\x{1fa79}|\x{1f6aa}|\x{1f9ef}|\x{1f6cf}|\x{1f6cb}|\x{1fa91}|\x{1f6bd}|\x{1f6bf}|\x{1f6c1}|\x{1fa92}|\x{1f9f4}|\x{1f9f7}|\x{1f9f9}|\x{1f9fa}|\x{1f9fb}|\x{1f9fc}|\x{1f9fd}|\x{2197}|\x{2198}|\x{1f4f6}|\x{23ed}|\x{264d}|\x{264e}|\x{264f}|\x{2650}|\x{2651}|\x{2652}|\x{2653}|\x{26ce}|\x{1f500}|\x{1f501}|\x{1f502}|\x{25b6}|\x{23e9}|\x{23ef}|\x{264b}|\x{25c0}|\x{23ea}|\x{23ee}|\x{1f53c}|\x{23eb}|\x{1f53d}|\x{23ec}|\x{23f8}|\x{23f9}|\x{23fa}|\x{23cf}|\x{1f3a6}|\x{1f505}|\x{1f506}|\x{264c}|\x{264a}|\x{2b07}|\x{1f51b}|\x{2199}|\x{2b05}|\x{2196}|\x{2195}|\x{2194}|\x{21a9}|\x{21aa}|\x{2934}|\x{2935}|\x{1f503}|\x{1f504}|\x{1f519}|\x{1f51a}|\x{1f51c}|\x{2649}|\x{1f51d}|\x{1f6d0}|\x{269b}|\x{1f549}|\x{2721}|\x{2638}|\x{262f}|\x{271d}|\x{2626}|\x{262a}|\x{262e}|\x{1f54e}|\x{1f52f}|\x{2648}|\x{1f45b}|\x{1f942}|\x{1f459}|\x{1f9b0}|\x{1f9ae}|\x{1f415}|\x{1f436}|\x{1f9a7}|\x{1f98d}|\x{1f412}|\x{1f435}|\x{1f9b2}|\x{1f9b3}|\x{1f9b1}|\x{1f3ff}|\x{1f429}|\x{1f3fe}|\x{1f3fd}|\x{1f3fc}|\x{1f3fb}|\x{1f463}|\x{1f465}|\x{1f464}|\x{1f5e3}|\x{1f619}|\x{1f60b}|\x{1f61a}|\x{1f43a}|\x{1f61c}|\x{1f98c}|\x{1f411}|\x{1f40f}|\x{1f43d}|\x{1f417}|\x{1f416}|\x{1f437}|\x{1f404}|\x{1f403}|\x{1f402}|\x{1f42e}|\x{1f993}|\x{1f98a}|\x{1f984}|\x{1f40e}|\x{1f434}|\x{1f406}|\x{1f405}|\x{1f42f}|\x{1f981}|\x{1f408}|\x{1f431}|\x{1f99d}|\x{1f61b}|\x{1f92a}|\x{1f42a}|\x{1f60e}|\x{1f491}|\x{1f927}|\x{1f975}|\x{1f976}|\x{1f974}|\x{1f635}|\x{1f92f}|\x{1f48f}|\x{1f920}|\x{1f973}|\x{1f913}|\x{1f922}|\x{1f9d0}|\x{1f615}|\x{1f61f}|\x{1f641}|\x{2639}|\x{1f62e}|\x{1f62f}|\x{1f632}|\x{1f633}|\x{1f97a}|\x{1f92e}|\x{1f915}|\x{1f61d}|\x{1f60f}|\x{1f911}|\x{1f917}|\x{1f92d}|\x{1f92b}|\x{1f914}|\x{1f910}|\x{1f928}|\x{1f610}|\x{1f611}|\x{1f636}|\x{1f612}|\x{1f912}|\x{1f644}|\x{1f62c}|\x{1f925}|\x{1f60c}|\x{1f614}|\x{1f62a}|\x{1f924}|\x{1f46a}|\x{1f634}|\x{1f637}|\x{1f410}|\x{1f42b}|\x{1f627}|\x{1f577}|\x{1f940}|\x{1f339}|\x{1f3f5}|\x{1f4ae}|\x{1f338}|\x{1f490}|\x{1f9a0}|\x{1f99f}|\x{1f982}|\x{1f578}|\x{1f997}|\x{1f33b}|\x{1f41e}|\x{1f41d}|\x{1f41c}|\x{1f41b}|\x{1f98b}|\x{1f40c}|\x{1f41a}|\x{1f419}|\x{1f988}|\x{1f421}|\x{1f33a}|\x{1f33c}|\x{1f41f}|\x{1f343}|\x{1f34f}|\x{1f34e}|\x{1f96d}|\x{1f34d}|\x{1f34c}|\x{1f34b}|\x{1f34a}|\x{1f349}|\x{1f348}|\x{1f347}|\x{1f342}|\x{1f337}|\x{1f341}|\x{1f340}|\x{2618}|\x{1f33f}|\x{1f33e}|\x{1f335}|\x{1f334}|\x{1f333}|\x{1f332}|\x{1f331}|\x{1f420}|\x{1f42c}|\x{1f999}|\x{1f994}|\x{1f43e}|\x{1f9a1}|\x{1f998}|\x{1f9a8}|\x{1f9a6}|\x{1f9a5}|\x{1f43c}|\x{1f428}|\x{1f43b}|\x{1f987}|\x{1f43f}|\x{1f414}|\x{1f407}|\x{1f430}|\x{1f439}|\x{1f400}|\x{1f401}|\x{1f42d}|\x{1f99b}|\x{1f98f}|\x{1f418}|\x{1f992}|\x{1f983}|\x{1f413}|\x{1f40b}|\x{1f99c}|\x{1f433}|\x{1f996}|\x{1f995}|\x{1f409}|\x{1f432}|\x{1f40d}|\x{1f98e}|\x{1f422}|\x{1f40a}|\x{1f438}|\x{1f99a}|\x{1f423}|\x{1f9a9}|\x{1f989}|\x{1f9a2}|\x{1f986}|\x{1f985}|\x{1f54a}|\x{1f427}|\x{1f426}|\x{1f425}|\x{1f424}|\x{1f626}|\x{1f628}|\x{1f351}|\x{1f467}|\x{1f9b7}|\x{1f9b4}|\x{1f440}|\x{1f3ca}|\x{1f441}|\x{1f445}|\x{1f444}|\x{1f476}|\x{1f9d2}|\x{1f466}|\x{1f6a3}|\x{1f443}|\x{1f9d1}|\x{1f471}|\x{1f468}|\x{1f9d4}|\x{1f3c4}|\x{1f469}|\x{1f603}|\x{1f9d3}|\x{1f3cc}|\x{1f3c2}|\x{1f9e0}|\x{1f9bb}|\x{1f3c7}|\x{1f91d}|\x{270a}|\x{1f44a}|\x{1f6b5}|\x{1f91b}|\x{1f91c}|\x{1f44f}|\x{1f64c}|\x{1f6b4}|\x{1f450}|\x{1f932}|\x{1f64f}|\x{1f442}|\x{270d}|\x{1f485}|\x{1f3cb}|\x{1f933}|\x{1f4aa}|\x{1f9be}|\x{1f9bf}|\x{1f9b5}|\x{1f9b6}|\x{26f9}|\x{26f7}|\x{1f93a}|\x{1f44d}|\x{1f385}|\x{1f473}|\x{1f472}|\x{1f6b6}|\x{1f9d5}|\x{1f935}|\x{1f470}|\x{1f930}|\x{1f487}|\x{1f931}|\x{1f47c}|\x{1f936}|\x{1f9cd}|\x{1f486}|\x{1f9b8}|\x{1f9df}|\x{1f9de}|\x{1f9b9}|\x{1f9d9}|\x{1f9da}|\x{1f9dd}|\x{1f9db}|\x{1f9dc}|\x{1f478}|\x{1f934}|\x{1f474}|\x{1f57a}|\x{1f475}|\x{1f64d}|\x{1f64e}|\x{1f9d7}|\x{1f645}|\x{1f646}|\x{1f481}|\x{1f9d6}|\x{1f46f}|\x{1f574}|\x{1f483}|\x{1f477}|\x{1f64b}|\x{1f9cf}|\x{1f647}|\x{1f3c3}|\x{1f926}|\x{1f937}|\x{1f46e}|\x{1f575}|\x{1f9ce}|\x{1f482}|\x{1f44e}|\x{1f938}|\x{1f630}|\x{1f63f}|\x{1f47d}|\x{1f47e}|\x{1f916}|\x{1f63a}|\x{1f638}|\x{1f639}|\x{1f63b}|\x{1f63c}|\x{1f63d}|\x{1f640}|\x{1f63e}|\x{1f47a}|\x{1f648}|\x{1f649}|\x{1f64a}|\x{1f48b}|\x{1f46d}|\x{1f48c}|\x{1f498}|\x{1f49d}|\x{1f496}|\x{1f497}|\x{1f47b}|\x{1f479}|\x{1f49e}|\x{1f62b}|\x{1f625}|\x{1f46c}|\x{1f622}|\x{1f62d}|\x{1f631}|\x{1f616}|\x{1f623}|\x{1f61e}|\x{1f613}|\x{1f629}|\x{1f971}|\x{1f921}|\x{1f624}|\x{1f621}|\x{1f620}|\x{1f92c}|\x{1f608}|\x{1f47f}|\x{1f480}|\x{2620}|\x{1f4a9}|\x{1f46b}|\x{1f493}|\x{1f495}|\x{261d}|\x{1f91e}|\x{1f44b}|\x{1f91a}|\x{1f9d8}|\x{1f590}|\x{270b}|\x{1f596}|\x{1f44c}|\x{1f939}|\x{1f90f}|\x{270c}|\x{1f91f}|\x{1f4ad}|\x{1f93e}|\x{1f918}|\x{1f919}|\x{1f448}|\x{1f449}|\x{1f93d}|\x{1f446}|\x{1f93c}|\x{1f595}|\x{1f447}|\x{1f4a4}|\x{1f5ef}|\x{1f49f}|\x{1f90d}|\x{2763}|\x{1f494}|\x{2764}|\x{1f9e1}|\x{1f49b}|\x{1f49a}|\x{1f499}|\x{1f49c}|\x{1f90e}|\x{1f5a4}|\x{1f4af}|\x{1f5e8}|\x{1f4a2}|\x{1f4a5}|\x{1f4ab}|\x{1f6cc}|\x{1f6c0}|\x{1f4a6}|\x{1f4a8}|\x{1f573}|\x{1f4a3}|\x{1f4ac}|\x{1f350}|\x{1f352}|\x{1fa73}|\x{1f313}|\x{1f321}|\x{1f31c}|\x{1f31b}|\x{1f31a}|\x{1f319}|\x{1f318}|\x{1f317}|\x{1f316}|\x{1f315}|\x{1f314}|\x{1f312}|\x{1f31d}|\x{1f311}|\x{1f600}|\x{1f55a}|\x{1f565}|\x{1f559}|\x{1f564}|\x{1f558}|\x{1f563}|\x{1f557}|\x{1f562}|\x{2600}|\x{1f31e}|\x{1f561}|\x{1f328}|\x{26f1}|\x{2614}|\x{2602}|\x{1f302}|\x{1f308}|\x{1f300}|\x{1f32c}|\x{1f32b}|\x{1f32a}|\x{1f329}|\x{1f327}|\x{1fa90}|\x{1f326}|\x{1f325}|\x{1f324}|\x{26c8}|\x{26c5}|\x{2601}|\x{1f30c}|\x{1f320}|\x{1f31f}|\x{2b50}|\x{1f556}|\x{1f555}|\x{2744}|\x{1f6f3}|\x{1f681}|\x{1f4ba}|\x{1fa82}|\x{1f6ec}|\x{1f6eb}|\x{1f6e9}|\x{2708}|\x{1f6a2}|\x{1f6e5}|\x{26f4}|\x{1f6a4}|\x{1f6a0}|\x{1f6f6}|\x{26f5}|\x{2693}|\x{1f6a7}|\x{1f6d1}|\x{1f6a6}|\x{1f6a5}|\x{1f6a8}|\x{26fd}|\x{1f6e2}|\x{1f69f}|\x{1f6a1}|\x{1f560}|\x{1f55b}|\x{1f554}|\x{1f55f}|\x{1f553}|\x{1f55e}|\x{1f552}|\x{1f55d}|\x{1f551}|\x{1f55c}|\x{1f550}|\x{1f567}|\x{1f570}|\x{1f6f0}|\x{23f2}|\x{23f1}|\x{23f0}|\x{231a}|\x{23f3}|\x{231b}|\x{1f9f3}|\x{1f6ce}|\x{1f6f8}|\x{1f680}|\x{26a1}|\x{2603}|\x{1f6e3}|\x{1f9ff}|\x{2663}|\x{2666}|\x{2665}|\x{2660}|\x{1f9f8}|\x{1f9e9}|\x{1f3b2}|\x{1f3b0}|\x{1f579}|\x{1f3ae}|\x{1f52e}|\x{1f0cf}|\x{1f3b1}|\x{1fa81}|\x{1fa80}|\x{1f3af}|\x{1f94c}|\x{1f6f7}|\x{1f3bf}|\x{1f3bd}|\x{1f93f}|\x{1f3a3}|\x{265f}|\x{1f004}|\x{26f3}|\x{1f455}|\x{1fa72}|\x{1fa71}|\x{1f97b}|\x{1f458}|\x{1f457}|\x{1f9e6}|\x{1f9e5}|\x{1f9e4}|\x{1f9e3}|\x{1f456}|\x{1f454}|\x{1f3b4}|\x{1f9ba}|\x{1f97c}|\x{1f97d}|\x{1f576}|\x{1f453}|\x{1f9f6}|\x{1f9f5}|\x{1f3a8}|\x{1f5bc}|\x{1f3ad}|\x{26f8}|\x{1f945}|\x{26c4}|\x{1f389}|\x{1f381}|\x{1f380}|\x{1f9e7}|\x{1f391}|\x{1f390}|\x{1f38f}|\x{1f38e}|\x{1f38d}|\x{1f38b}|\x{1f38a}|\x{1f388}|\x{1f39f}|\x{2728}|\x{1f9e8}|\x{1f387}|\x{1f386}|\x{1f384}|\x{1f383}|\x{1f30a}|\x{1f4a7}|\x{1f525}|\x{2604}|\x{1f397}|\x{1f3ab}|\x{1f94b}|\x{1f3c9}|\x{1f94a}|\x{1f3f8}|\x{1f3d3}|\x{1f94d}|\x{1f3d2}|\x{1f3d1}|\x{1f3cf}|\x{1f3b3}|\x{1f94f}|\x{1f3be}|\x{1f3c8}|\x{1f396}|\x{1f3d0}|\x{1f3c0}|\x{1f94e}|\x{26be}|\x{26bd}|\x{1f949}|\x{1f948}|\x{1f947}|\x{1f3c5}|\x{1f3c6}|\x{1f6e4}|\x{1f68f}|\x{1f353}|\x{1f960}|\x{1f369}|\x{1f368}|\x{1f367}|\x{1f366}|\x{1f9aa}|\x{1f991}|\x{1f990}|\x{1f99e}|\x{1f980}|\x{1f961}|\x{1f95f}|\x{1f382}|\x{1f361}|\x{1f96e}|\x{1f365}|\x{1f364}|\x{1f363}|\x{1f362}|\x{1f360}|\x{1f35d}|\x{1f35c}|\x{1f35b}|\x{1f36a}|\x{1f370}|\x{1f359}|\x{1f37e}|\x{1f9ca}|\x{1f9c9}|\x{1f9c3}|\x{1f964}|\x{1f943}|\x{1f37b}|\x{1f37a}|\x{1f379}|\x{1f378}|\x{1f377}|\x{1f376}|\x{1f9c1}|\x{1f375}|\x{2615}|\x{1f95b}|\x{1f37c}|\x{1f36f}|\x{1f36e}|\x{1f36d}|\x{1f36c}|\x{1f36b}|\x{1f967}|\x{1f35a}|\x{1f358}|\x{1f37d}|\x{1f966}|\x{1f96f}|\x{1f968}|\x{1f956}|\x{1f950}|\x{1f35e}|\x{1f330}|\x{1f95c}|\x{1f344}|\x{1f9c5}|\x{1f9c4}|\x{1f96c}|\x{1f9c7}|\x{1f952}|\x{1f336}|\x{1f33d}|\x{1f955}|\x{1f954}|\x{1f346}|\x{1f951}|\x{1f965}|\x{1f345}|\x{1f95d}|\x{1f95e}|\x{1f9c0}|\x{1f371}|\x{1f9c6}|\x{1f96b}|\x{1f9c2}|\x{1f9c8}|\x{1f37f}|\x{1f957}|\x{1f963}|\x{1f372}|\x{1f958}|\x{1f373}|\x{1f95a}|\x{1f959}|\x{1f356}|\x{1f32f}|\x{1f32e}|\x{1f96a}|\x{1f32d}|\x{1f355}|\x{1f35f}|\x{1f354}|\x{1f953}|\x{1f969}|\x{1f357}|\x{1f962}|\x{1f374}|\x{1f6f9}|\x{1f3aa}|\x{1f69d}|\x{1f68a}|\x{1f689}|\x{1f688}|\x{1f687}|\x{1f686}|\x{1f685}|\x{1f684}|\x{1f683}|\x{1f682}|\x{1f488}|\x{1f68b}|\x{1f3a2}|\x{1f3a1}|\x{1f3a0}|\x{2668}|\x{1f309}|\x{1f307}|\x{1f306}|\x{1f305}|\x{1f304}|\x{1f3d9}|\x{1f69e}|\x{1f68c}|\x{1f301}|\x{1f69a}|\x{1f6f4}|\x{1f6b2}|\x{1f6fa}|\x{1f9bc}|\x{1f9bd}|\x{1f6f5}|\x{1f3cd}|\x{1f3ce}|\x{1f69c}|\x{1f69b}|\x{1f699}|\x{1f68d}|\x{1f698}|\x{1f697}|\x{1f696}|\x{1f695}|\x{1f694}|\x{1f693}|\x{1f692}|\x{1f691}|\x{1f690}|\x{1f68e}|\x{1f303}|\x{26fa}|\x{1f944}|\x{1f30b}|\x{1f9f1}|\x{1f3d7}|\x{1f3db}|\x{1f3df}|\x{1f3de}|\x{1f3dd}|\x{1f3dc}|\x{1f3d6}|\x{1f3d5}|\x{1f5fb}|\x{26f0}|\x{1f3da}|\x{1f3d4}|\x{1f9ed}|\x{1f5fe}|\x{1f5fa}|\x{1f310}|\x{1f30f}|\x{1f30e}|\x{1f30d}|\x{1f3fa}|\x{1f52a}|\x{1f3d8}|\x{1f3e0}|\x{26f2}|\x{1f3ef}|\x{1f54b}|\x{26e9}|\x{1f54d}|\x{1f6d5}|\x{1f54c}|\x{26ea}|\x{1f5fd}|\x{1f5fc}|\x{1f492}|\x{1f3f0}|\x{1f3ed}|\x{1f3e1}|\x{1f3ec}|\x{1f3eb}|\x{1f3ea}|\x{1f3e9}|\x{1f3e8}|\x{1f3e6}|\x{1f3e5}|\x{1f3e4}|\x{1f3e3}|\x{1f3e2}|\x{1f566}/u';
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php
new file mode 100644
index 00000000..71cce110
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php
@@ -0,0 +1,572 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Extractor Class
+ *
+ * Parses tweets and extracts URLs, usernames, username/list pairs and
+ * hashtags.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Extractor
+{
+
+ /**
+ * The maximum url length that the Twitter backend supports.
+ */
+ const MAX_URL_LENGTH = 4096;
+
+ /**
+ * The backend adds http:// for normal links and https to *.twitter.com URLs (it also rewrites http to https for
+ * URLs matching *.twitter.com). We're better off adding https:// all the time.
+ * By making the assumption that URL_GROUP_PROTOCOL_LENGTH is https, the trade off is we'll disallow a http URL
+ * that is 4096 characters.
+ */
+ const URL_GROUP_PROTOCOL_LENGTH = 4104; // https:// + MAX_URL_LENGTH
+
+ /**
+ * The maximum t.co path length that the Twitter backend supports.
+ */
+ const MAX_TCO_SLUG_LENGTH = 40;
+
+ /**
+ * The maximum hostname length that the ASCII domain.
+ */
+ const MAX_ASCII_HOSTNAME_LENGTH = 63;
+
+ /**
+ * @var boolean
+ */
+ protected $extractURLWithoutProtocol = true;
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @see __construct()
+ *
+ * @return Extractor
+ */
+ public static function create()
+ {
+ return new self();
+ }
+
+ /**
+ * Reads in a tweet to be parsed and extracts elements from it.
+ *
+ * Extracts various parts of a tweet including URLs, usernames, hashtags...
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Extracts all parts of a tweet and returns an associative array containing
+ * the extracted elements.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The elements in the tweet.
+ */
+ public function extract($tweet)
+ {
+ return array(
+ 'hashtags' => $this->extractHashtags($tweet),
+ 'cashtags' => $this->extractCashtags($tweet),
+ 'urls' => $this->extractURLs($tweet),
+ 'mentions' => $this->extractMentionedScreennames($tweet),
+ 'replyto' => $this->extractReplyScreenname($tweet),
+ 'hashtags_with_indices' => $this->extractHashtagsWithIndices($tweet),
+ 'urls_with_indices' => $this->extractURLsWithIndices($tweet),
+ 'mentions_with_indices' => $this->extractMentionedScreennamesWithIndices($tweet),
+ );
+ }
+
+ /**
+ * Extract URLs, @mentions, lists and #hashtag from a given text/tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array list of extracted entities
+ */
+ public function extractEntitiesWithIndices($tweet)
+ {
+ $entities = array();
+ $entities = array_merge($entities, $this->extractURLsWithIndices($tweet));
+ $entities = array_merge($entities, $this->extractHashtagsWithIndices($tweet, false));
+ $entities = array_merge($entities, $this->extractMentionsOrListsWithIndices($tweet));
+ $entities = array_merge($entities, $this->extractCashtagsWithIndices($tweet));
+ $entities = $this->removeOverlappingEntities($entities);
+ return $entities;
+ }
+
+ /**
+ * Extracts all the hashtags from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The hashtag elements in the tweet.
+ */
+ public function extractHashtags($tweet)
+ {
+ $hashtagsOnly = array();
+ $hashtagsWithIndices = $this->extractHashtagsWithIndices($tweet);
+
+ foreach ($hashtagsWithIndices as $hashtagWithIndex) {
+ $hashtagsOnly[] = $hashtagWithIndex['hashtag'];
+ }
+ return $hashtagsOnly;
+ }
+
+ /**
+ * Extracts all the cashtags from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The cashtag elements in the tweet.
+ */
+ public function extractCashtags($tweet)
+ {
+ $cashtagsOnly = array();
+ $cashtagsWithIndices = $this->extractCashtagsWithIndices($tweet);
+
+ foreach ($cashtagsWithIndices as $cashtagWithIndex) {
+ $cashtagsOnly[] = $cashtagWithIndex['cashtag'];
+ }
+ return $cashtagsOnly;
+ }
+
+ /**
+ * Extracts all the URLs from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The URL elements in the tweet.
+ */
+ public function extractURLs($tweet)
+ {
+ $urlsOnly = array();
+ $urlsWithIndices = $this->extractURLsWithIndices($tweet);
+
+ foreach ($urlsWithIndices as $urlWithIndex) {
+ $urlsOnly[] = $urlWithIndex['url'];
+ }
+ return $urlsOnly;
+ }
+
+ /**
+ * Extract all the usernames from the tweet.
+ *
+ * A mention is an occurrence of a username anywhere in a tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The usernames elements in the tweet.
+ */
+ public function extractMentionedScreennames($tweet)
+ {
+ $usernamesOnly = array();
+ $mentionsWithIndices = $this->extractMentionsOrListsWithIndices($tweet);
+
+ foreach ($mentionsWithIndices as $mentionWithIndex) {
+ if (empty($mentionWithIndex['screen_name'])) {
+ continue;
+ }
+ $usernamesOnly[] = $mentionWithIndex['screen_name'];
+ }
+ return $usernamesOnly;
+ }
+
+ /**
+ * Extract all the usernames replied to from the tweet.
+ *
+ * A reply is an occurrence of a username at the beginning of a tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The usernames replied to in a tweet.
+ */
+ public function extractReplyScreenname($tweet)
+ {
+ $matched = preg_match(Regex::getValidReplyMatcher(), $tweet, $matches);
+ # Check username ending in
+ if ($matched && preg_match(Regex::getEndMentionMatcher(), $matches[2])) {
+ $matched = false;
+ }
+ return $matched ? $matches[1] : null;
+ }
+
+ /**
+ * Extracts all the emoji and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The emoji chars in the tweet.
+ */
+ public function extractEmojiWithIndices($tweet)
+ {
+ preg_match_all(EmojiRegex::VALID_EMOJI_PATTERN, $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $entities = array();
+
+ foreach ($matches as $match) {
+ list($emoji) = $match;
+ list($emojiChar, $offset) = $emoji;
+ $startPosition = StringUtils::strlen(substr($tweet, 0, $offset));
+ $endPosition = $startPosition + StringUtils::strlen($emojiChar) - 1;
+
+ $entities[] = array(
+ 'emoji' => $emoji[0],
+ 'indices' => array($startPosition, $endPosition)
+ );
+ }
+
+ return $entities;
+ }
+
+ /**
+ * Extracts all the hashtags and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @param boolean $checkUrlOverlap if true, check if extracted hashtags overlap URLs and remove overlapping ones
+ * @return array The hashtag elements in the tweet.
+ */
+ public function extractHashtagsWithIndices($tweet, $checkUrlOverlap = true)
+ {
+ if (!preg_match('/[##]/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidHashtagMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $tags = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $hash, $hashtag, $outer) = array_pad($match, 3, array('', 0));
+ $start_position = $hash[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $hash[1])) : $hash[1];
+ $end_position = $start_position + StringUtils::strlen($hash[0] . $hashtag[0]);
+
+ if (preg_match(Regex::getEndHashtagMatcher(), $outer[0])) {
+ continue;
+ }
+
+ $tags[] = array(
+ 'hashtag' => $hashtag[0],
+ 'indices' => array($start_position, $end_position)
+ );
+ }
+
+ if (!$checkUrlOverlap) {
+ return $tags;
+ }
+
+ # check url overlap
+ $urls = $this->extractURLsWithIndices($tweet);
+ $entities = $this->removeOverlappingEntities(array_merge($tags, $urls));
+
+ $validTags = array();
+ foreach ($entities as $entity) {
+ if (empty($entity['hashtag'])) {
+ continue;
+ }
+ $validTags[] = $entity;
+ }
+
+ return $validTags;
+ }
+
+ /**
+ * Extracts all the cashtags and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The cashtag elements in the tweet.
+ */
+ public function extractCashtagsWithIndices($tweet)
+ {
+ if (!preg_match('/\$/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidCashtagMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $tags = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $dollar, $cash_text, $outer) = array_pad($match, 3, array('', 0));
+ $start_position = $dollar[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $dollar[1])) : $dollar[1];
+ $end_position = $start_position + StringUtils::strlen($dollar[0] . $cash_text[0]);
+
+ if (preg_match(Regex::getEndHashtagMatcher(), $outer[0])) {
+ continue;
+ }
+
+ $tags[] = array(
+ 'cashtag' => $cash_text[0],
+ 'indices' => array($start_position, $end_position)
+ );
+ }
+
+ return $tags;
+ }
+
+ /**
+ * Extracts all the URLs and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The URLs elements in the tweet.
+ */
+ public function extractURLsWithIndices($tweet)
+ {
+ $needle = $this->extractURLWithoutProtocol() ? '.' : ':';
+ if (strpos($tweet, $needle) === false) {
+ return array();
+ }
+
+ $urls = array();
+ preg_match_all(Regex::getValidUrlMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+
+ foreach ($matches as $match) {
+ list($all, $before, $url, $protocol, $domain, $port, $path, $query) = array_pad($match, 8, array(''));
+ $start_position = $url[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $url[1])) : $url[1];
+ $end_position = $start_position + StringUtils::strlen($url[0]);
+
+ $all = $all[0];
+ $before = $before[0];
+ $url = $url[0];
+ $protocol = $protocol[0];
+ $domain = $domain[0];
+ $port = $port[0];
+ $path = $path[0];
+ $query = $query[0];
+
+ // If protocol is missing and domain contains non-ASCII characters,
+ // extract ASCII-only domains.
+ if (empty($protocol)) {
+ if (
+ !$this->extractURLWithoutProtocol
+ || preg_match(Regex::getInvalidUrlWithoutProtocolPrecedingCharsMatcher(), $before)
+ ) {
+ continue;
+ }
+
+ $last_url = null;
+ $ascii_end_position = 0;
+
+ if (preg_match(Regex::getValidAsciiDomainMatcher(), $domain, $asciiDomain)) {
+ // check hostname length
+ if (
+ isset($asciiDomain[1])
+ && strlen(rtrim($asciiDomain[1], '.')) > static::MAX_ASCII_HOSTNAME_LENGTH
+ ) {
+ continue;
+ }
+
+ $asciiDomain[0] = preg_replace('/' . preg_quote($domain, '/') . '/u', $asciiDomain[0], $url);
+ $ascii_start_position = StringUtils::strpos($domain, $asciiDomain[0], $ascii_end_position);
+ $ascii_end_position = $ascii_start_position + StringUtils::strlen($asciiDomain[0]);
+ $last_url = array(
+ 'url' => $asciiDomain[0],
+ 'indices' => array(
+ $start_position + $ascii_start_position,
+ $start_position + $ascii_end_position
+ ),
+ );
+ if (
+ !empty($path)
+ || preg_match(Regex::getValidSpecialShortDomainMatcher(), $asciiDomain[0])
+ || !preg_match(Regex::getInvalidCharactersMatcher(), $asciiDomain[0])
+ ) {
+ $urls[] = $last_url;
+ }
+ }
+
+ // no ASCII-only domain found. Skip the entire URL
+ if (empty($last_url)) {
+ continue;
+ }
+
+ // $last_url only contains domain. Need to add path and query if they exist.
+ if (!empty($path)) {
+ // last_url was not added. Add it to urls here.
+ $last_url['url'] = preg_replace('/' . preg_quote($domain, '/') . '/u', $last_url['url'], $url);
+ $last_url['indices'][1] = $end_position;
+ }
+ } else {
+ // In the case of t.co URLs, don't allow additional path characters
+ if (preg_match(Regex::getValidTcoUrlMatcher(), $url, $tcoUrlMatches)) {
+ list($url, $tcoUrlSlug) = $tcoUrlMatches;
+ $end_position = $start_position + StringUtils::strlen($url);
+
+ // In the case of t.co URLs, don't allow additional path characters and
+ // ensure that the slug is under 40 chars.
+ if (strlen($tcoUrlSlug) > static::MAX_TCO_SLUG_LENGTH) {
+ continue;
+ }
+ }
+ if ($this->isValidHostAndLength(StringUtils::strlen($url), $protocol, $domain)) {
+ $urls[] = array(
+ 'url' => $url,
+ 'indices' => array($start_position, $end_position),
+ );
+ }
+ }
+ }
+
+ return $urls;
+ }
+
+ /**
+ * Verifies that the host name adheres to RFC 3490 and 1035
+ * Also, verifies that the entire url (including protocol) doesn't exceed MAX_URL_LENGTH
+ *
+ * @param int $originalUrlLength The length of the entire URL, including protocol if any
+ * @param string $protocol The protocol used
+ * @param string $host The hostname to check validity of
+ * @return bool true if the host is valid
+ */
+ public function isValidHostAndLength($originalUrlLength, $protocol, $host)
+ {
+ if (empty($host)) {
+ return false;
+ }
+
+ $originalHostLength = StringUtils::strlen($host);
+
+ // Use IDN for all host names, if the host is all ASCII, it returns unchanged.
+ // It comes with an added benefit of checking the host length to be between 1 to 63 characters.
+ $encodedHost = StringUtils::idnToAscii($host);
+ if ($encodedHost === false || empty($encodedHost)) {
+ return false;
+ }
+
+ $punycodeEncodedHostLength = StringUtils::strlen($encodedHost);
+ if ($punycodeEncodedHostLength === 0) {
+ return false;
+ }
+
+ // The punycodeEncoded host length might be different now, offset that length from the URL.
+ $encodedUrlLength = $originalUrlLength + $punycodeEncodedHostLength - $originalHostLength;
+ // Add the protocol to our length check, if there isn't one, to ensure it doesn't go over the limit.
+ $urlLengthWithProtocol = $encodedUrlLength + (empty($protocol) ? self::URL_GROUP_PROTOCOL_LENGTH : 0);
+
+ return $urlLengthWithProtocol <= self::MAX_URL_LENGTH;
+ }
+
+ /**
+ * Extracts all the usernames and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The username elements in the tweet.
+ */
+ public function extractMentionedScreennamesWithIndices($tweet)
+ {
+ $usernamesOnly = array();
+ $mentions = $this->extractMentionsOrListsWithIndices($tweet);
+ foreach ($mentions as $mention) {
+ if (isset($mention['list_slug'])) {
+ unset($mention['list_slug']);
+ }
+ $usernamesOnly[] = $mention;
+ }
+ return $usernamesOnly;
+ }
+
+ /**
+ * Extracts all the usernames and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The username elements in the tweet.
+ */
+ public function extractMentionsOrListsWithIndices($tweet)
+ {
+ if (!preg_match('/[@@]/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidMentionsOrListsMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $results = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $at, $username, $list_slug, $outer) = array_pad($match, 6, array('', 0));
+ $start_position = $at[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $at[1])) : $at[1];
+ $end_position = $start_position + StringUtils::strlen($at[0]) + StringUtils::strlen($username[0]);
+ $entity = array(
+ 'screen_name' => $username[0],
+ 'list_slug' => $list_slug[0],
+ 'indices' => array($start_position, $end_position),
+ );
+
+ if (preg_match(Regex::getEndMentionMatcher(), $outer[0])) {
+ continue;
+ }
+
+ if (!empty($list_slug[0])) {
+ $entity['indices'][1] = $end_position + StringUtils::strlen($list_slug[0]);
+ }
+
+ $results[] = $entity;
+ }
+
+ return $results;
+ }
+
+ /**
+ * setter/getter for extractURLWithoutProtocol
+ *
+ * @param boolean $flag
+ * @return bool|Extractor
+ */
+ public function extractURLWithoutProtocol($flag = null)
+ {
+ if ($flag === null) {
+ return $this->extractURLWithoutProtocol;
+ }
+ $this->extractURLWithoutProtocol = (bool) $flag;
+ return $this;
+ }
+
+ /**
+ * Remove overlapping entities.
+ * This returns a new array with no overlapping entities.
+ *
+ * @param array $entities
+ * @return array
+ */
+ public function removeOverlappingEntities($entities)
+ {
+ $result = array();
+ usort($entities, array($this, 'sortEntities'));
+
+ $prev = null;
+ foreach ($entities as $entity) {
+ if ($prev !== null && $entity['indices'][0] < $prev['indices'][1]) {
+ continue;
+ }
+ $prev = $entity;
+ $result[] = $entity;
+ }
+ return $result;
+ }
+
+ /**
+ * sort by entity start index
+ *
+ * @param array $a
+ * @param array $b
+ * @return int
+ */
+ protected function sortEntities($a, $b)
+ {
+ if ($a['indices'][0] === $b['indices'][0]) {
+ return 0;
+ }
+ return ($a['indices'][0] < $b['indices'][0]) ? -1 : 1;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php
new file mode 100644
index 00000000..97bad521
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter HitHighlighter Class
+ *
+ * Performs "hit highlighting" on tweets that have been auto-linked already.
+ * Useful with the results returned from the search API.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class HitHighlighter
+{
+
+ /**
+ * The tag to surround hits with.
+ *
+ * @var string
+ */
+ protected $tag = 'em';
+
+ /**
+ * The tweet to be used in parsing.
+ *
+ * @var string
+ * @deprecated will be removed
+ */
+ protected $tweet = '';
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param string $tweet [deprecated] The tweet to be hit highlighted.
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ *
+ * @see __construct()
+ *
+ * @return HitHighlighter
+ */
+ public static function create($tweet = null, $full_encode = false)
+ {
+ return new self($tweet, $full_encode);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and hit highlighted.
+ *
+ * We take this opportunity to ensure that we escape user input.
+ *
+ * @see htmlspecialchars()
+ *
+ * @param string $tweet [deprecated] The tweet to be hit highlighted.
+ * @param bool $escape [deprecated] Whether to escape the tweet (default: true).
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ */
+ public function __construct($tweet = null, $escape = true, $full_encode = false)
+ {
+ if (!empty($tweet) && $escape) {
+ if ($full_encode) {
+ $this->tweet = htmlentities($tweet, ENT_QUOTES, 'UTF-8', false);
+ } else {
+ $this->tweet = htmlspecialchars($tweet, ENT_QUOTES, 'UTF-8', false);
+ }
+ } else {
+ $this->tweet = $tweet;
+ }
+ }
+
+ /**
+ * Set the highlighting tag to surround hits with. The default tag is 'em'.
+ *
+ * @return string The tag name.
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ /**
+ * Set the highlighting tag to surround hits with. The default tag is 'em'.
+ *
+ * @param string $v The tag name.
+ *
+ * @return HitHighlighter Fluid method chaining.
+ */
+ public function setTag($v)
+ {
+ $this->tag = $v;
+ return $this;
+ }
+
+ /**
+ * Hit highlights the tweet.
+ *
+ * @param string $tweet The tweet to be hit highlighted.
+ * @param array $hits An array containing the start and end index pairs
+ * for the highlighting.
+ *
+ * @return string The hit highlighted tweet.
+ */
+ public function highlight($tweet = null, array $hits = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ if (empty($hits)) {
+ return $tweet;
+ }
+ $highlightTweet = '';
+ $tags = array('<' . $this->tag . '>', '</' . $this->tag . '>');
+ # Check whether we can simply replace or whether we need to chunk...
+ if (strpos($tweet, '<') === false) {
+ $ti = 0; // tag increment (for added tags)
+ $highlightTweet = $tweet;
+ foreach ($hits as $hit) {
+ $highlightTweet = StringUtils::substrReplace($highlightTweet, $tags[0], $hit[0] + $ti, 0);
+ $ti += StringUtils::strlen($tags[0]);
+ $highlightTweet = StringUtils::substrReplace($highlightTweet, $tags[1], $hit[1] + $ti, 0);
+ $ti += StringUtils::strlen($tags[1]);
+ }
+ } else {
+ $chunks = preg_split('/[<>]/iu', $tweet);
+ $chunk = $chunks[0];
+ $chunk_index = 0;
+ $chunk_cursor = 0;
+ $offset = 0;
+ $start_in_chunk = false;
+ # Flatten the multidimensional hits array:
+ $hits_flat = call_user_func_array('array_merge', array_values($hits));
+ $hits_flat_count = count($hits_flat);
+ # Loop over the hit indices:
+ for ($index = 0; $index < $hits_flat_count; $index++) {
+ $hit = $hits_flat[$index];
+ $tag = $tags[$index % 2];
+ $placed = false;
+ while ($chunk !== null && $hit >= ($i = $offset + StringUtils::strlen($chunk))) {
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor);
+ if ($start_in_chunk && $hit === $i) {
+ $highlightTweet .= $tag;
+ $placed = true;
+ }
+ if (isset($chunks[$chunk_index + 1])) {
+ $highlightTweet .= '<' . $chunks[$chunk_index + 1] . '>';
+ }
+ $offset += StringUtils::strlen($chunk);
+ $chunk_cursor = 0;
+ $chunk_index += 2;
+ $chunk = (isset($chunks[$chunk_index]) ? $chunks[$chunk_index] : null);
+ $start_in_chunk = false;
+ }
+ if (!$placed && $chunk !== null) {
+ $hit_spot = $hit - $offset;
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor, $hit_spot - $chunk_cursor) . $tag;
+ $chunk_cursor = $hit_spot;
+ $start_in_chunk = ($index % 2 === 0);
+ $placed = true;
+ }
+ # Ultimate fallback - hits that run off the end get a closing tag:
+ if (!$placed) {
+ $highlightTweet .= $tag;
+ }
+ }
+ if ($chunk !== null) {
+ if ($chunk_cursor < StringUtils::strlen($chunk)) {
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor);
+ }
+ $chunks_count = count($chunks);
+ for ($index = $chunk_index + 1; $index < $chunks_count; $index++) {
+ $highlightTweet .= ($index % 2 === 0 ? $chunks[$index] : '<' . $chunks[$index] . '>');
+ }
+ }
+ }
+ return $highlightTweet;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php
new file mode 100644
index 00000000..c24f985c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php
@@ -0,0 +1,203 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text ParseResults
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ *
+ * @property int $weightedLength The overall length of the tweet with code points weighted per the ranges defined
+ * in the configuration file.
+ * @property int $permillage Indicates the proportion (per thousand) of the weighted length in comparison to
+ * the max weighted length. A value > 1000 indicates input text that is longer than
+ * the allowable maximum.
+ * @property bool $valid Indicates if input text length corresponds to a valid result.
+ * @property int $displayRangeStart
+ * @property int $displayRangeEnd
+ * @property int $validRangeStart
+ * @property int $validRangeEnd
+ */
+class ParseResults
+{
+
+ /**
+ * A pair of unicode code point indices identifying the inclusive start and exclusive end of
+ * the displayable content of the Tweet.
+ *
+ * @var array
+ * @link https://developer.twitter.com/en/docs/tweets/tweet-updates
+ */
+ protected $displayTextRange = array(0, 0);
+
+ /**
+ * A pair of unicode code point indices identifying the inclusive start and exclusive end of
+ * the valid content of the Tweet.
+ *
+ * @var array
+ * @link https://developer.twitter.com/en/docs/tweets/tweet-updates
+ */
+ protected $validTextRange = array(0, 0);
+
+ /**
+ * @var array
+ */
+ protected $result = array(
+ 'weightedLength' => 0,
+ 'valid' => false,
+ 'permillage' => 0,
+ );
+
+ /**
+ * Tweet parsed results
+ *
+ * @param int $weightedLength
+ * @param int $permillage
+ * @param bool $isValid
+ * @param array $displayTextRange
+ * @param array $validTextRange
+ */
+ public function __construct(
+ $weightedLength = 0,
+ $permillage = 0,
+ $isValid = false,
+ array $displayTextRange = array(0, 0),
+ array $validTextRange = array(0, 0)
+ ) {
+ $this->weightedLength = $weightedLength;
+ $this->permillage = $permillage;
+ $this->valid = $isValid;
+ $this->displayRangeEnd = $displayTextRange[1];
+ $this->displayRangeStart = $displayTextRange[0];
+ $this->validRangeEnd = $validTextRange[1];
+ $this->validRangeStart = $validTextRange[0];
+ }
+
+ /**
+ * property accessor
+ *
+ * @param string $name
+ * @return mixed
+ */
+ public function __get($name)
+ {
+ if ($name === 'displayRangeStart') {
+ return $this->displayTextRange[0];
+ }
+
+ if ($name === 'displayRangeEnd') {
+ return $this->displayTextRange[1];
+ }
+
+ if ($name === 'validRangeStart') {
+ return $this->validTextRange[0];
+ }
+
+ if ($name === 'validRangeEnd') {
+ return $this->validTextRange[1];
+ }
+
+ return isset($this->result[$name]) ? $this->result[$name] : null;
+ }
+
+ /**
+ * property setter
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return void
+ */
+ public function __set($name, $value)
+ {
+ if (
+ $name === 'displayRangeStart'
+ && $this->lte($value, $this->displayTextRange[1], $name, 'displayRangeEnd')
+ ) {
+ $this->displayTextRange[0] = (int)$value;
+ } elseif (
+ $name === 'displayRangeEnd'
+ && $this->gte($value, $this->displayTextRange[0], $name, 'displayRangeStart')
+ ) {
+ $this->displayTextRange[1] = (int)$value;
+ } elseif (
+ $name === 'validRangeStart'
+ && $this->lte($value, $this->validTextRange[1], $name, 'validRangeEnd')
+ ) {
+ $this->validTextRange[0] = (int)$value;
+ } elseif (
+ $name === 'validRangeEnd'
+ && $this->gte($value, $this->validTextRange[0], $name, 'validRangeStart')
+ ) {
+ $this->validTextRange[1] = (int)$value;
+ } elseif ($name === 'valid') {
+ $this->result[$name] = (bool)$value;
+ } elseif (isset($this->result[$name])) {
+ $this->result[$name] = (int)$value;
+ }
+ }
+
+ /**
+ * check value less than equals
+ *
+ * @param int $lessValue
+ * @param int $greaterValue
+ * @param string $lessValueLabel
+ * @param string $greaterValueLabel
+ * @return bool
+ * @throws \RangeException
+ */
+ private function lte($lessValue, $greaterValue, $lessValueLabel, $greaterValueLabel)
+ {
+ if ($lessValue > $greaterValue) {
+ throw new \RangeException("$lessValueLabel should be less than equals $greaterValueLabel: "
+ . "[$lessValue, $greaterValue]");
+ }
+
+ return true;
+ }
+
+ /**
+ * check value less than equals
+ *
+ * @param int $greaterValue
+ * @param int $lessValue
+ * @param string $greaterValueLabel
+ * @param string $lessValueLabel
+ * @return bool
+ * @throws \RangeException
+ */
+ private function gte($greaterValue, $lessValue, $greaterValueLabel, $lessValueLabel)
+ {
+ if ($lessValue > $greaterValue) {
+ throw new \RangeException("$greaterValueLabel should be greater than equals $lessValueLabel: "
+ . "[$lessValue, $greaterValue]");
+ }
+
+ return true;
+ }
+
+ /**
+ * convert to array
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ return array_merge($this->result, array(
+ 'displayRangeStart' => $this->displayRangeStart,
+ 'displayRangeEnd' => $this->displayRangeEnd,
+ 'validRangeStart' => $this->validRangeStart,
+ 'validRangeEnd' => $this->validRangeEnd,
+ ));
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php
new file mode 100644
index 00000000..34ead6c6
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text Parser
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Parser
+{
+ /**
+ * @var Configuration
+ */
+ private $config;
+
+ /**
+ * Create a Parser
+ *
+ * @param Configuration $config
+ * @return Parser
+ */
+ public static function create(Configuration $config = null)
+ {
+ return new self($config);
+ }
+
+ /**
+ * construct
+ *
+ * @param Configuration $config
+ */
+ public function __construct(Configuration $config = null)
+ {
+ if ($config === null) {
+ $config = new Configuration();
+ }
+
+ $this->config = $config;
+ }
+
+ /**
+ * Parses a given tweet text with the weighted character count configuration
+ *
+ * @param string $tweet which is to be parsed
+ * @return ParseResults
+ */
+ public function parseTweet($tweet)
+ {
+ if ($tweet === null || '' === $tweet) {
+ return new ParseResults();
+ }
+
+ $normalizedTweet = StringUtils::normalizeFromNFC($tweet);
+ $normalizedTweetLength = StringUtils::strlen($normalizedTweet);
+
+ $emojiParsingEnabled = $this->config->getEmojiParsingEnabled();
+ $maxWeightedTweetLength = $this->config->getScaledMaxWeightedTweetLength();
+ $transformedUrlWeight = $this->config->getScaledTransformedURLLength();
+
+ $extractor = new Extractor();
+ $urlEntitiesMap = $this->transformEntitiesToHash($extractor->extractURLsWithIndices($normalizedTweet));
+ $emojiEntitiesMap = $emojiParsingEnabled
+ ? $this->transformEntitiesToHash($extractor->extractEmojiWithIndices($normalizedTweet))
+ : array();
+
+ $hasInvalidCharacters = false;
+ $weightedCount = 0;
+ $offset = 0;
+ $displayOffset = 0;
+ $validOffset = 0;
+
+ while ($offset < $normalizedTweetLength) {
+ if (isset($urlEntitiesMap[$offset])) {
+ list($urlStart, $urlEnd) = $urlEntitiesMap[$offset]['indices'];
+ $urlLength = $urlEnd - $urlStart;
+
+ $weightedCount += $transformedUrlWeight;
+ $offset += $urlLength;
+ $displayOffset += $urlLength;
+ if ($weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $urlLength;
+ }
+ } elseif ($emojiParsingEnabled && isset($emojiEntitiesMap[$offset])) {
+ $emoji = $emojiEntitiesMap[$offset]['emoji'];
+ $emojiLength = StringUtils::strlen($emoji);
+ $charCount = StringUtils::charCount($emoji);
+
+ $weightedCount += $this->config->defaultWeight;
+ $offset += $emojiLength;
+ $displayOffset += $charCount;
+ if ($weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $charCount;
+ }
+ } else {
+ $char = StringUtils::substr($normalizedTweet, $offset, 1);
+
+ $hasInvalidCharacters = $hasInvalidCharacters || $this->hasInvalidCharacters($char);
+ $charCount = StringUtils::strlen($char);
+ $charWidth = StringUtils::isSurrogatePair($char) ? 2 : 1;
+
+ $weightedCount += $this->getCharacterWeight($char, $this->config);
+ $offset += $charCount;
+ $displayOffset += $charWidth;
+
+ if (!$hasInvalidCharacters && $weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $charWidth;
+ }
+ }
+ }
+
+ $scaledWeightedLength = $weightedCount / $this->config->scale;
+ $permillage = $scaledWeightedLength * 1000 / $this->config->maxWeightedTweetLength;
+ $isValid = !$hasInvalidCharacters && $weightedCount <= $maxWeightedTweetLength;
+
+ $normalizedTweetOffset = StringUtils::strlen($tweet) - $normalizedTweetLength;
+ $displayTextRange = array(0, $displayOffset + $normalizedTweetOffset - 1);
+ $validTextRange = array(0, $validOffset + $normalizedTweetOffset - 1);
+
+ return new ParseResults($scaledWeightedLength, $permillage, $isValid, $displayTextRange, $validTextRange);
+ }
+
+ /**
+ * Convert to Hash by indices start
+ *
+ * @param array $entities
+ * @return array
+ */
+ private function transformEntitiesToHash(array $entities)
+ {
+ return array_reduce($entities, function ($map, $entity) {
+ $map[$entity['indices'][0]] = $entity;
+
+ return $map;
+ }, array());
+ }
+
+ /**
+ * Get the character weight from ranges
+ *
+ * @param string $char the Character
+ * @param Configuration $config the parse configuration
+ * @return int
+ */
+ private function getCharacterWeight($char, Configuration $config)
+ {
+ $codePoint = StringUtils::ord($char);
+
+ foreach ($config->ranges as $range) {
+ if ($this->inRange($codePoint, $range)) {
+ return $range['weight'];
+ }
+ }
+
+ return $config->defaultWeight;
+ }
+
+ /**
+ * check codepoint in range
+ *
+ * @param int $codePoint
+ * @param array $range
+ * @return boolean
+ */
+ private function inRange($codePoint, array $range)
+ {
+ return ($codePoint >= $range['start'] && $codePoint <= $range['end']);
+ }
+
+ /**
+ * check has invalid characters
+ *
+ * @param string $char
+ * @return bool
+ */
+ private function hasInvalidCharacters($char)
+ {
+ return preg_match(Regex::getInvalidCharactersMatcher(), $char);
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php
new file mode 100644
index 00000000..8ac66832
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php
@@ -0,0 +1,838 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Regex Abstract Class
+ *
+ * Used by subclasses that need to parse tweets.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter
+ */
+class Regex
+{
+ /**
+ * Expression to match whitespace characters.
+ *
+ * 0x0009-0x000D Cc # <control-0009>..<control-000D>
+ * 0x0020 Zs # SPACE
+ * 0x0085 Cc # <control-0085>
+ * 0x00A0 Zs # NO-BREAK SPACE
+ * 0x1680 Zs # OGHAM SPACE MARK
+ * 0x180E Zs # MONGOLIAN VOWEL SEPARATOR
+ * 0x2000-0x200A Zs # EN QUAD..HAIR SPACE
+ * 0x2028 Zl # LINE SEPARATOR
+ * 0x2029 Zp # PARAGRAPH SEPARATOR
+ * 0x202F Zs # NARROW NO-BREAK SPACE
+ * 0x205F Zs # MEDIUM MATHEMATICAL SPACE
+ * 0x3000 Zs # IDEOGRAPHIC SPACE
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $spaces = '\x{0009}-\x{000D}\x{0020}\x{0085}\x{00a0}\x{1680}\x{180E}\x{2000}-\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}'; // @codingStandardsIgnoreEnd
+
+ /**
+ * Expression to match latin accented characters.
+ *
+ * 0x00C0-0x00D6
+ * 0x00D8-0x00F6
+ * 0x00F8-0x00FF
+ * 0x0100-0x024f
+ * 0x0253-0x0254
+ * 0x0256-0x0257
+ * 0x0259
+ * 0x025b
+ * 0x0263
+ * 0x0268
+ * 0x026f
+ * 0x0272
+ * 0x0289
+ * 0x028b
+ * 0x02bb
+ * 0x0300-0x036f
+ * 0x1e00-0x1eff
+ *
+ * Excludes 0x00D7 - multiplication sign (confusable with 'x').
+ * Excludes 0x00F7 - division sign.
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $latinAccents = '\x{00c0}-\x{00d6}\x{00d8}-\x{00f6}\x{00f8}-\x{00ff}\x{0100}-\x{024f}\x{0253}-\x{0254}\x{0256}-\x{0257}\x{0259}\x{025b}\x{0263}\x{0268}\x{026f}\x{0272}\x{0289}\x{028b}\x{02bb}\x{0300}-\x{036f}\x{1e00}-\x{1eff}'; // @codingStandardsIgnoreEnd
+
+ /**
+ * Invalid Characters
+ *
+ * 0xFFFE,0xFEFF # BOM
+ * 0xFFFF # Special
+ * 0x202A-0x202E # Directional change
+ */
+ private static $invalidCharacters = '\x{202a}-\x{202e}\x{feff}\x{fffe}\x{ffff}';
+
+ /**
+ * Directional Characters
+ *
+ * 0x061C ARABIC LETTER MARK (ALM)
+ * 0x200E LEFT-TO-RIGHT MARK (LRM)
+ * 0x200F RIGHT-TO-LEFT MARK (RLM)
+ * 0x202A LEFT-TO-RIGHT EMBEDDING (LRE)
+ * 0x202B RIGHT-TO-LEFT EMBEDDING (RLE)
+ * 0x202C POP DIRECTIONAL FORMATTING (PDF)
+ * 0x202D LEFT-TO-RIGHT OVERRIDE (LRO)
+ * 0x202E RIGHT-TO-LEFT OVERRIDE (RLO)
+ * 0x2066 LEFT-TO-RIGHT ISOLATE (LRI)
+ * 0x2067 RIGHT-TO-LEFT ISOLATE (RLI)
+ * 0x2068 FIRST STRONG ISOLATE (FSI)
+ * 0x2069 POP DIRECTIONAL ISOLATE (PDI)
+ */
+ private static $directionalCharacters = '\x{061c}\x{200e}\x{200f}\x{202a}\x{202e}\x{2066}\x{2069}';
+
+ /**
+ * Expression to match RTL characters.
+ *
+ * 0x0600-0x06FF Arabic
+ * 0x0750-0x077F Arabic Supplement
+ * 0x08A0-0x08FF Arabic Extended-A
+ * 0x0590-0x05FF Hebrew
+ * 0xFB50-0xFDFF Arabic Presentation Forms-A
+ * 0xFE70-0xFEFF Arabic Presentation Forms-B
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $rtlChars = '\x{0600}-\x{06ff}\x{0750}-\x{077f}\x{08a0}-\x{08ff}\x{0590}-\x{05ff}\x{fb50}-\x{fdff}\x{fe70}-\x{feff}'; // @codingStandardsIgnoreEnd
+
+ # Expression to match at and hash sign characters:
+ private static $atSigns = '@@';
+
+ private static $hashSigns = '##';
+
+ # cash tags
+ private static $cashSigns = '\$';
+
+ private static $cashtag = '[a-z]{1,6}(?:[._][a-z]{1,2})?';
+
+ # These URL validation pattern strings are based on the ABNF from RFC 3986
+ private static $validateUrlUnreserved = '[a-z\p{Cyrillic}0-9\-._~]';
+
+ private static $validateUrlPctEncoded = '(?:%[0-9a-f]{2})';
+
+ private static $validateUrlSubDelims = '[!$&\'()*+,;=]';
+
+ private static $validUrlQueryChars = '[a-z0-9!?\*\'\(\);:&=\+\$\/%#\[\]\-_\.,~|@]';
+
+ private static $validUrlQueryEndingChars = '[a-z0-9_&=#\/\-]';
+
+ // @codingStandardsIgnoreStart
+ private static $validateUrlIpv4 = '(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3})'; // @codingStandardsIgnoreEnd
+
+ private static $validateUrlIpv6 = '(?:\[[a-f0-9:\.]+\])';
+
+ private static $validateUrlPort = '[0-9]{1,5}';
+
+ # URL related hash regex collection
+ private static $validSpecialCcTLD = '(?:(?:co|tv)(?=[^0-9a-z@]|$))';
+
+ private static $validPunycode = '(?:xn--[0-9a-z]+)';
+
+ /**
+ * Get invalid characters matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidCharactersMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[' . static::$invalidCharacters . ']/u';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get RTL characters matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getRtlCharsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[' . static::$rtlChars . ']/iu';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get valid ascii domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidAsciiDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/' . static::getValidSubdomain() . '*(' . static::getValidDomainName()
+ . ')(?:' . TldLists::getValidGTLD() . '|' . TldLists::getValidCcTLD()
+ . '|' . static::$validPunycode . ')/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid tco url matcher
+ *
+ * Used by the extractor for stricter t.co URL extraction
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidTcoUrlMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/^https?:\/\/t\.co\/([a-z0-9]+)'
+ . '(?:\?' . static::$validUrlQueryChars . '*' . static::$validUrlQueryEndingChars . ')?/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get invalid short domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidShortDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A' . static::getValidDomainName() . TldLists::getValidCcTLD() . '\Z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid special short domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidSpecialShortDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A' . static::getValidDomainName() . static::$validSpecialCcTLD . '\Z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get invalid url without protocol preceding chars matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidUrlWithoutProtocolPrecedingCharsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[\-_.\/]\z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidUrlMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $validUrlPrecedingChars = '(?:[^a-z0-9_@@\$##' . static::$invalidCharacters . ']|[' . static::$directionalCharacters . ']|^)';
+ $validPortNumber = '[0-9]+';
+
+ $regexp = '/(?:' # $1 Complete match (preg_match() already matches everything.)
+ . '(' . $validUrlPrecedingChars . ')' # $2 Preceding characters
+ . '(' # $3 Complete URL
+ . '(https?:\/\/)?' # $4 Protocol (optional)
+ . '(' . static::getValidDomain() . ')' # $5 Domain(s)
+ . '(?::(' . $validPortNumber . '))?' # $6 Port number (optional)
+ . '(\/' . static::getValidUrlPath() . '*)?' # $7 URL Path
+ . '(\?' . static::$validUrlQueryChars . '*' . static::$validUrlQueryEndingChars . ')?' # $8 Query String
+ . ')'
+ . ')/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid domain chars
+ *
+ * @return string
+ */
+ private static function getValidDomainChars()
+ {
+ return '0-9a-z' . static::$latinAccents;
+ }
+
+ /**
+ * Get valid subdomain
+ *
+ * @return string
+ */
+ private static function getValidSubdomain()
+ {
+ $domainValidChars = static::getValidDomainChars();
+
+ return '(?>(?:[' . $domainValidChars . '][' . $domainValidChars . '\-_]*)?[' . $domainValidChars . ']\.)';
+ }
+
+ /**
+ * Get valid domain name
+ *
+ * @return string
+ */
+ private static function getValidDomainName()
+ {
+ $domainValidChars = static::getValidDomainChars();
+
+ return '(?:(?:[' . $domainValidChars . '][' . $domainValidChars . '\-]*)?[' . $domainValidChars . ']\.)';
+ }
+
+ /**
+ * Get valid unicode domain chars
+ *
+ * @return string
+ */
+ private static function getValidUnicodeDomainChars()
+ {
+ return '[^\p{P}\p{Z}\p{C}' . static::$invalidCharacters . static::$spaces . ']';
+ }
+
+ /**
+ * Get valid unicode domain name
+ *
+ * @return string
+ */
+ private static function getValidUnicodeDomainName()
+ {
+ $domainValidChars = static::getValidUnicodeDomainChars();
+
+ return '(?:(?:' . $domainValidChars . '(?:' . $domainValidChars . '|[\-])*)?' . $domainValidChars . '\.)';
+ }
+
+ /**
+ * Get valid domain
+ *
+ * @return string
+ */
+ private static function getValidDomain()
+ {
+ $validSubdomain = static::getValidSubdomain();
+ $validDomainName = static::getValidDomainName();
+ $validUnicodeDomainName = static::getValidUnicodeDomainName();
+ $validGTLD = TldLists::getValidGTLD();
+ $validCcTLD = TldLists::getValidCcTLD();
+
+ return ''
+ // optional sub-domain + domain + TLD
+ // e.g. twitter.com, foo.co.jp, bar.co.uk
+ . '(?:' . $validSubdomain . '*' . $validDomainName
+ . '(?:' . $validGTLD . '|' . $validCcTLD . '|' . static::$validPunycode . '))'
+ // domain + gTLD | protocol + unicode domain + gTLD
+ . '|(?:'
+ . '(?:' . $validSubdomain . '+' . $validDomainName
+ . '|' . $validDomainName
+ . '|(?:(?<=http:\/\/|https:\/\/)' . $validUnicodeDomainName . ')'
+ . ')'
+ . $validGTLD
+ . ')'
+ // protocol + (domain | unicode domain) + ccTLD
+ . '|(?:(?<=http:\/\/|https:\/\/)'
+ . '(?:' . $validDomainName . '|' . $validUnicodeDomainName . ')'
+ . $validCcTLD . ')'
+ // domain + ccTLD + '/'
+ // e.g. t.co/
+ . '|(?:' . $validDomainName . $validCcTLD . '(?=\/))';
+ }
+
+ /**
+ * Get valid url path
+ *
+ * @return string
+ */
+ private static function getValidUrlPath()
+ {
+ $validGeneralUrlPathChars = '[a-z0-9' . preg_quote("!*';:=+,.$/%#[]–\x{2013}_~", '/')
+ . '|&@' . static::$latinAccents . '\p{Cyrillic}]';
+
+ # Allow URL paths to contain up to two nested levels of balanced parentheses:
+ # 1. Used in Wikipedia URLs, e.g. /Primer_(film)
+ # 2. Used in IIS sessions, e.g. /S(dfd346)/
+ # 3. Used in Rdio URLs like /track/We_Up_(Album_Version_(Edited))/
+ $validUrlBalancedParens = '(?:\('
+ . '(?:' . $validGeneralUrlPathChars . '+'
+ . '|'
+ // allow one nested level of balanced parentheses
+ . '(?:'
+ . $validGeneralUrlPathChars . '*'
+ . '\(' . $validGeneralUrlPathChars . '+' . '\)'
+ . $validGeneralUrlPathChars . '*'
+ . ')'
+ . ')'
+ . '\))';
+ # Valid end-of-path characters (so /foo. does not gobble the period).
+ # 1. Allow =&# for empty URL parameters and other URL-join artifacts.
+ $validUrlPathEndingChars = '[a-z0-9=_#\/\+\-' . static::$latinAccents . '\p{Cyrillic}]'
+ . '|(?:' . $validUrlBalancedParens . ')';
+
+ return '(?:(?:'
+ . $validGeneralUrlPathChars . '*(?:'
+ . $validUrlBalancedParens . ' '
+ . $validGeneralUrlPathChars . '*)*'
+ . $validUrlPathEndingChars . ')|(?:@'
+ . $validGeneralUrlPathChars . '+\/))';
+ }
+
+ // =================================================================================================================
+
+ # NOTE: PHP doesn't have Ruby's $' (dollar apostrophe) so we have to capture
+ # $after in the following regular expression. Note that we only use a
+ # look-ahead capture here and don't append $after when we return.
+
+ /**
+ * Get valid mentions or lists matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidMentionsOrListsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $mentionPrecedingChars = '([^a-z0-9_!#\$%&*@@\/]|^|(?:^|[^a-z0-9_+~.-])RT:?)';
+ $regexp = '/' . $mentionPrecedingChars
+ . '([' . static::$atSigns . '])([a-z0-9_]{1,20})(\/[a-z][a-z0-9_\-]{0,24})?(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidReplyMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/^(?:[' . static::$spaces . static::$directionalCharacters . '])*[' . static::$atSigns . ']([a-z0-9_]{1,20})(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndMentionMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$atSigns . ']|[' . static::$latinAccents . ']|:\/\/)/iu';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get hashtag matcher
+ *
+ * @return string matcher
+ */
+ private static function getHashtagPattern()
+ {
+ $hashtag_letters = '\p{L}\p{M}';
+ $hashtag_numerals = '\p{Nd}';
+ # Hashtag special chars
+ #
+ # _ underscore
+ # 0x200c ZERO WIDTH NON-JOINER (ZWNJ)
+ # 0x200d ZERO WIDTH JOINER (ZWJ)
+ # 0xa67e CYRILLIC KAVYKA
+ # 0x05be HEBREW PUNCTUATION MAQAF
+ # 0x05f3 HEBREW PUNCTUATION GERESH
+ # 0x05f4 HEBREW PUNCTUATION GERSHAYIM
+ # 0xff5e FULLWIDTH TILDE
+ # 0x301c WAVE DASH
+ # 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
+ # 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ # 0x30a0 KATAKANA-HIRAGANA DOUBLE HYPHEN
+ # 0x30fb KATAKANA MIDDLE DOT
+ # 0x3003 DITTO MARK
+ # 0x0f0b TIBETAN MARK INTERSYLLABIC TSHEG
+ # 0x0f0c TIBETAN MARK DELIMITER TSHEG BSTAR
+ # 0x00b7 MIDDLE DOT
+ $hashtag_special_chars = '_\x{200c}\x{200d}\x{a67e}\x{05be}\x{05f3}\x{05f4}'
+ . '\x{ff5e}\x{301c}\x{309b}\x{309c}\x{30a0}\x{30fb}\x{3003}\x{0f0b}\x{0f0c}\x{00b7}';
+ $hashtag_letters_numerals_set = '[' . $hashtag_letters . $hashtag_numerals . $hashtag_special_chars . ']';
+ $hashtag_letters_set = '[' . $hashtag_letters . ']';
+ $hashtag_boundary = '(?:\A|\x{fe0e}|\x{fe0f}|[^&'
+ . $hashtag_letters . $hashtag_numerals . $hashtag_special_chars . '])';
+
+ return '(' . $hashtag_boundary . ')(#|\x{ff03})(?!\x{fe0f}|\x{20e3})('
+ . $hashtag_letters_numerals_set . '*' . $hashtag_letters_set . $hashtag_letters_numerals_set . '*)';
+ }
+
+ /**
+ * Get valid hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidHashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/' . static::getHashtagPattern() . '(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndHashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$hashSigns . ']|:\/\/)/u';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get valid cachtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidCashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(^|[' . static::$spaces . static::$directionalCharacters . '])([' . static::$cashSigns . '])'
+ . '(' . static::$cashtag . ')(?=($|\s|[[:punct:]]))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of cachtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndCashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$cashSigns . ']|:\/\/)/u';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get url matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlUnencodedMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ # Modified version of RFC 3986 Appendix B
+ $regexp = '/\A' # Full URL
+ . '(?:'
+ . '([^:\/?#]+):\/\/' # $1 Scheme
+ . ')?'
+ . '([^\/?#]*)' # $2 Authority
+ . '([^?#]*)' # $3 Path
+ . '(?:'
+ . '\?([^#]*)' # $4 Query
+ . ')?'
+ . '(?:'
+ . '\#(.*)' # $5 Fragment
+ . ')?\z/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url ip
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlIp()
+ {
+ return '(?:' . static::$validateUrlIpv4 . '|' . static::$validateUrlIpv6 . ')'; #/iox
+ }
+
+ /**
+ * Get valid url domain
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlDomain()
+ {
+ $subdomain = '(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)'; #/i
+ $domain = '(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)'; #/i
+ $tld = '(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)'; #/i
+
+ return '(?:(?:' . $subdomain . '\.)*(?:' . $domain . '\.)' . $tld . ')'; #/iox
+ }
+
+ /**
+ * Get valid url host
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlHost()
+ {
+ return '(?:' . static::getValidateUrlIp() . '|' . static::getValidateUrlDomain() . ')'; #/iox
+ }
+
+ /**
+ * Get valid url unicode domain
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUnicodeDomain()
+ {
+ $subdomain = '(?:(?:[a-z0-9]|[^\x00-\x7f])(?:(?:[a-z0-9_\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+ $domain = '(?:(?:[a-z0-9]|[^\x00-\x7f])(?:(?:[a-z0-9\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+ $tld = '(?:(?:[a-z]|[^\x00-\x7f])(?:(?:[a-z0-9\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+
+ return '(?:(?:' . $subdomain . '\.)*(?:' . $domain . '\.)' . $tld . ')'; #/iox
+ }
+
+ /**
+ * Get valid url unicode host
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUnicodeHost()
+ {
+ return '(?:' . static::getValidateUrlIp() . '|' . static::getValidateUrlUnicodeDomain() . ')'; #/iox
+ }
+
+ /**
+ * Get valid url userinfo
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUserinfo()
+ {
+ return '(?:' . static::$validateUrlUnreserved
+ . '|' . static::$validateUrlPctEncoded
+ . '|' . static::$validateUrlSubDelims
+ . '|:)*'; #/iox
+ }
+
+ /**
+ * Get url unicode authority matcher
+ *
+ * Unencoded internationalized domains - this doesn't check for invalid UTF-8 sequences
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlUnicodeAuthorityMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/'
+ . '(?:(' . static::getValidateUrlUserinfo() . ')@)?' # $1 userinfo
+ . '(' . static::getValidateUrlUnicodeHost() . ')' # $2 host
+ . '(?::(' . static::$validateUrlPort . '))?' # $3 port
+ . '/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url authority matcher
+ *
+ * This is more strict than the rfc specifies
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlAuthorityMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/'
+ . '(?:(' . static::getValidateUrlUserinfo() . ')@)?' # $1 userinfo
+ . '(' . static::getValidateUrlHost() . ')' # $2 host
+ . '(?::(' . static::$validateUrlPort . '))?' # $3 port
+ . '/ix';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url scheme matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlSchemeMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(?:[a-z][a-z0-9+\-.]*)/i';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url charactors
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlPchar()
+ {
+ return '(?:' . static::$validateUrlUnreserved
+ . '|' . static::$validateUrlPctEncoded
+ . '|' . static::$validateUrlSubDelims
+ . '|[:\|@])'; #/iox
+ }
+
+ /**
+ * Get url path matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlPathMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(\/' . static::getValidateUrlPchar() . '*)*/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url query matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlQueryMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(' . static::getValidateUrlPchar() . '|\/|\?)*/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url flagment matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlFragmentMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(' . static::getValidateUrlPchar() . '|\/|\?)*/iu';
+ }
+
+ return $regexp;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php
new file mode 100644
index 00000000..b7af156c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php
@@ -0,0 +1,191 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2014, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * String utility
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2014, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter
+ */
+class StringUtils
+{
+
+ /**
+ * alias of mb_substr
+ *
+ * @param string $str
+ * @param integer $start (character)
+ * @param integer $length (character)
+ * @param string $encoding
+ * @return string
+ */
+ public static function substr($str, $start, $length = null, $encoding = 'UTF-8')
+ {
+ if ($length === null) {
+ // for PHP <= 5.4.7
+ $length = mb_strlen($str, $encoding);
+ }
+ return mb_substr($str, $start, $length, $encoding);
+ }
+
+ /**
+ * alias of mb_strlen
+ *
+ * @param string $str
+ * @param string $encoding
+ * @return integer
+ */
+ public static function strlen($str, $encoding = 'UTF-8')
+ {
+ return mb_strlen($str, $encoding);
+ }
+
+ /**
+ * alias of mb_strpos
+ *
+ * @param string $haystack
+ * @param string $needle
+ * @param integer $offset
+ * @param string $encoding
+ * @return integer
+ */
+ public static function strpos($haystack, $needle, $offset = 0, $encoding = 'UTF-8')
+ {
+ return mb_strpos($haystack, $needle, $offset, $encoding);
+ }
+
+ /**
+ * A multibyte-aware substring replacement function.
+ *
+ * @param string $string The string to modify.
+ * @param string $replacement The replacement string.
+ * @param int $start The start of the replacement.
+ * @param int $length The number of characters to replace.
+ * @param string $encoding The encoding of the string.
+ *
+ * @return string The modified string.
+ *
+ * @see http://www.php.net/manual/en/function.substr-replace.php#90146
+ */
+ public static function substrReplace($string, $replacement, $start, $length = null, $encoding = 'UTF-8')
+ {
+ $string_length = static::strlen($string, $encoding);
+ if ($start < 0) {
+ $start = max(0, $string_length + $start);
+ } elseif ($start > $string_length) {
+ $start = $string_length;
+ }
+ if ($length < 0) {
+ $length = max(0, $string_length - $start + $length);
+ } elseif (($length === null) || ($length > $string_length)) {
+ $length = $string_length;
+ }
+ if (($start + $length) > $string_length) {
+ $length = $string_length - $start;
+ }
+
+ $suffixOffset = $start + $length;
+ $suffixLength = $string_length - $start - $length;
+
+ return static::substr($string, 0, $start, $encoding)
+ . $replacement
+ . static::substr($string, $suffixOffset, $suffixLength, $encoding);
+ }
+
+ /**
+ * idn_to_ascii wrapper
+ *
+ * @param string $domain as utf8
+ * @return string
+ */
+ public static function idnToAscii($domain)
+ {
+ // INTL_IDNA_VARIANT_UTS46 defined PHP 5.4.0 or later
+ if (defined('INTL_IDNA_VARIANT_UTS46')) {
+ return idn_to_ascii($domain, IDNA_ALLOW_UNASSIGNED, INTL_IDNA_VARIANT_UTS46);
+ }
+
+ return idn_to_ascii($domain, IDNA_ALLOW_UNASSIGNED);
+ }
+
+ /**
+ * normalize text from NFC
+ *
+ * @param string $text
+ * @return string
+ */
+ public static function normalizeFromNFC($text)
+ {
+ return normalizer_normalize($text);
+ }
+
+ /**
+ * get code point
+ *
+ * @param string $char
+ * @param string $encoding
+ * @return int
+ */
+ public static function ord($char, $encoding = 'UTF-8')
+ {
+ if (mb_strlen($char, $encoding) > 1) {
+ $char = mb_substr($char, 0, 1, $encoding);
+ }
+
+ return current(unpack('N', mb_convert_encoding($char, 'UCS-4BE', $encoding)));
+ }
+
+ /**
+ * get code point at
+ *
+ * @param string $str
+ * @param int $offset
+ * @param string $encoding
+ * @return int
+ */
+ public static function codePointAt($str, $offset, $encoding = 'UTF-8')
+ {
+ return static::ord(mb_substr($str, $offset, 1, $encoding), $encoding);
+ }
+
+ /**
+ * is surrogate pair char
+ *
+ * @param string $char
+ * @return bool
+ */
+ public static function isSurrogatePair($char)
+ {
+ return preg_match('/[\\x{10000}-\\x{10FFFF}]/u', $char);
+ }
+
+ /**
+ * get the character code count
+ *
+ * @param $string
+ * @param string $encoding
+ * @return int
+ */
+ public static function charCount($string, $encoding = 'UTF-8')
+ {
+ $count = 0;
+ $strlen = static::strlen($string);
+
+ for ($offset = 0; $offset < $strlen; $offset++) {
+ $char = static::substr($string, $offset, 1, $encoding);
+ $count += static::isSurrogatePair($char) ? 2 : 1;
+ }
+
+ return $count;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php
new file mode 100644
index 00000000..276bc17f
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php
@@ -0,0 +1,1646 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2020, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * TLD Lists
+ */
+final class TldLists
+{
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $gTLDs = array(
+ '삼성',
+ '닷컴',
+ '닷넷',
+ '香格里拉',
+ '餐厅',
+ '食品',
+ '飞利浦',
+ '電訊盈科',
+ '集团',
+ '通販',
+ '购物',
+ '谷歌',
+ '诺基亚',
+ '联通',
+ '网络',
+ '网站',
+ '网店',
+ '网址',
+ '组织机构',
+ '移动',
+ '珠宝',
+ '点看',
+ '游戏',
+ '淡马锡',
+ '机构',
+ '書籍',
+ '时尚',
+ '新闻',
+ '政府',
+ '政务',
+ '招聘',
+ '手表',
+ '手机',
+ '我爱你',
+ '慈善',
+ '微博',
+ '广东',
+ '工行',
+ '家電',
+ '娱乐',
+ '天主教',
+ '大拿',
+ '大众汽车',
+ '在线',
+ '嘉里大酒店',
+ '嘉里',
+ '商标',
+ '商店',
+ '商城',
+ '公益',
+ '公司',
+ '八卦',
+ '健康',
+ '信息',
+ '佛山',
+ '企业',
+ '中文网',
+ '中信',
+ '世界',
+ 'ポイント',
+ 'ファッション',
+ 'セール',
+ 'ストア',
+ 'コム',
+ 'グーグル',
+ 'クラウド',
+ 'みんな',
+ 'คอม',
+ 'संगठन',
+ 'नेट',
+ 'कॉम',
+ 'همراه',
+ 'موقع',
+ 'موبايلي',
+ 'كوم',
+ 'كاثوليك',
+ 'عرب',
+ 'شبكة',
+ 'بيتك',
+ 'بازار',
+ 'العليان',
+ 'ارامكو',
+ 'اتصالات',
+ 'ابوظبي',
+ 'קום',
+ 'сайт',
+ 'рус',
+ 'орг',
+ 'онлайн',
+ 'москва',
+ 'ком',
+ 'католик',
+ 'дети',
+ 'zuerich',
+ 'zone',
+ 'zippo',
+ 'zip',
+ 'zero',
+ 'zara',
+ 'zappos',
+ 'yun',
+ 'youtube',
+ 'you',
+ 'yokohama',
+ 'yoga',
+ 'yodobashi',
+ 'yandex',
+ 'yamaxun',
+ 'yahoo',
+ 'yachts',
+ 'xyz',
+ 'xxx',
+ 'xperia',
+ 'xin',
+ 'xihuan',
+ 'xfinity',
+ 'xerox',
+ 'xbox',
+ 'wtf',
+ 'wtc',
+ 'wow',
+ 'world',
+ 'works',
+ 'work',
+ 'woodside',
+ 'wolterskluwer',
+ 'wme',
+ 'winners',
+ 'wine',
+ 'windows',
+ 'win',
+ 'williamhill',
+ 'wiki',
+ 'wien',
+ 'whoswho',
+ 'weir',
+ 'weibo',
+ 'wedding',
+ 'wed',
+ 'website',
+ 'weber',
+ 'webcam',
+ 'weatherchannel',
+ 'weather',
+ 'watches',
+ 'watch',
+ 'warman',
+ 'wanggou',
+ 'wang',
+ 'walter',
+ 'walmart',
+ 'wales',
+ 'vuelos',
+ 'voyage',
+ 'voto',
+ 'voting',
+ 'vote',
+ 'volvo',
+ 'volkswagen',
+ 'vodka',
+ 'vlaanderen',
+ 'vivo',
+ 'viva',
+ 'vistaprint',
+ 'vista',
+ 'vision',
+ 'visa',
+ 'virgin',
+ 'vip',
+ 'vin',
+ 'villas',
+ 'viking',
+ 'vig',
+ 'video',
+ 'viajes',
+ 'vet',
+ 'versicherung',
+ 'vermögensberatung',
+ 'vermögensberater',
+ 'verisign',
+ 'ventures',
+ 'vegas',
+ 'vanguard',
+ 'vana',
+ 'vacations',
+ 'ups',
+ 'uol',
+ 'uno',
+ 'university',
+ 'unicom',
+ 'uconnect',
+ 'ubs',
+ 'ubank',
+ 'tvs',
+ 'tushu',
+ 'tunes',
+ 'tui',
+ 'tube',
+ 'trv',
+ 'trust',
+ 'travelersinsurance',
+ 'travelers',
+ 'travelchannel',
+ 'travel',
+ 'training',
+ 'trading',
+ 'trade',
+ 'toys',
+ 'toyota',
+ 'town',
+ 'tours',
+ 'total',
+ 'toshiba',
+ 'toray',
+ 'top',
+ 'tools',
+ 'tokyo',
+ 'today',
+ 'tmall',
+ 'tkmaxx',
+ 'tjx',
+ 'tjmaxx',
+ 'tirol',
+ 'tires',
+ 'tips',
+ 'tiffany',
+ 'tienda',
+ 'tickets',
+ 'tiaa',
+ 'theatre',
+ 'theater',
+ 'thd',
+ 'teva',
+ 'tennis',
+ 'temasek',
+ 'telefonica',
+ 'telecity',
+ 'tel',
+ 'technology',
+ 'tech',
+ 'team',
+ 'tdk',
+ 'tci',
+ 'taxi',
+ 'tax',
+ 'tattoo',
+ 'tatar',
+ 'tatamotors',
+ 'target',
+ 'taobao',
+ 'talk',
+ 'taipei',
+ 'tab',
+ 'systems',
+ 'symantec',
+ 'sydney',
+ 'swiss',
+ 'swiftcover',
+ 'swatch',
+ 'suzuki',
+ 'surgery',
+ 'surf',
+ 'support',
+ 'supply',
+ 'supplies',
+ 'sucks',
+ 'style',
+ 'study',
+ 'studio',
+ 'stream',
+ 'store',
+ 'storage',
+ 'stockholm',
+ 'stcgroup',
+ 'stc',
+ 'statoil',
+ 'statefarm',
+ 'statebank',
+ 'starhub',
+ 'star',
+ 'staples',
+ 'stada',
+ 'srt',
+ 'srl',
+ 'spreadbetting',
+ 'spot',
+ 'sport',
+ 'spiegel',
+ 'space',
+ 'soy',
+ 'sony',
+ 'song',
+ 'solutions',
+ 'solar',
+ 'sohu',
+ 'software',
+ 'softbank',
+ 'social',
+ 'soccer',
+ 'sncf',
+ 'smile',
+ 'smart',
+ 'sling',
+ 'skype',
+ 'sky',
+ 'skin',
+ 'ski',
+ 'site',
+ 'singles',
+ 'sina',
+ 'silk',
+ 'shriram',
+ 'showtime',
+ 'show',
+ 'shouji',
+ 'shopping',
+ 'shop',
+ 'shoes',
+ 'shiksha',
+ 'shia',
+ 'shell',
+ 'shaw',
+ 'sharp',
+ 'shangrila',
+ 'sfr',
+ 'sexy',
+ 'sex',
+ 'sew',
+ 'seven',
+ 'ses',
+ 'services',
+ 'sener',
+ 'select',
+ 'seek',
+ 'security',
+ 'secure',
+ 'seat',
+ 'search',
+ 'scot',
+ 'scor',
+ 'scjohnson',
+ 'science',
+ 'schwarz',
+ 'schule',
+ 'school',
+ 'scholarships',
+ 'schmidt',
+ 'schaeffler',
+ 'scb',
+ 'sca',
+ 'sbs',
+ 'sbi',
+ 'saxo',
+ 'save',
+ 'sas',
+ 'sarl',
+ 'sapo',
+ 'sap',
+ 'sanofi',
+ 'sandvikcoromant',
+ 'sandvik',
+ 'samsung',
+ 'samsclub',
+ 'salon',
+ 'sale',
+ 'sakura',
+ 'safety',
+ 'safe',
+ 'saarland',
+ 'ryukyu',
+ 'rwe',
+ 'run',
+ 'ruhr',
+ 'rugby',
+ 'rsvp',
+ 'room',
+ 'rogers',
+ 'rodeo',
+ 'rocks',
+ 'rocher',
+ 'rmit',
+ 'rip',
+ 'rio',
+ 'ril',
+ 'rightathome',
+ 'ricoh',
+ 'richardli',
+ 'rich',
+ 'rexroth',
+ 'reviews',
+ 'review',
+ 'restaurant',
+ 'rest',
+ 'republican',
+ 'report',
+ 'repair',
+ 'rentals',
+ 'rent',
+ 'ren',
+ 'reliance',
+ 'reit',
+ 'reisen',
+ 'reise',
+ 'rehab',
+ 'redumbrella',
+ 'redstone',
+ 'red',
+ 'recipes',
+ 'realty',
+ 'realtor',
+ 'realestate',
+ 'read',
+ 'raid',
+ 'radio',
+ 'racing',
+ 'qvc',
+ 'quest',
+ 'quebec',
+ 'qpon',
+ 'pwc',
+ 'pub',
+ 'prudential',
+ 'pru',
+ 'protection',
+ 'property',
+ 'properties',
+ 'promo',
+ 'progressive',
+ 'prof',
+ 'productions',
+ 'prod',
+ 'pro',
+ 'prime',
+ 'press',
+ 'praxi',
+ 'pramerica',
+ 'post',
+ 'porn',
+ 'politie',
+ 'poker',
+ 'pohl',
+ 'pnc',
+ 'plus',
+ 'plumbing',
+ 'playstation',
+ 'play',
+ 'place',
+ 'pizza',
+ 'pioneer',
+ 'pink',
+ 'ping',
+ 'pin',
+ 'pid',
+ 'pictures',
+ 'pictet',
+ 'pics',
+ 'piaget',
+ 'physio',
+ 'photos',
+ 'photography',
+ 'photo',
+ 'phone',
+ 'philips',
+ 'phd',
+ 'pharmacy',
+ 'pfizer',
+ 'pet',
+ 'pccw',
+ 'pay',
+ 'passagens',
+ 'party',
+ 'parts',
+ 'partners',
+ 'pars',
+ 'paris',
+ 'panerai',
+ 'panasonic',
+ 'pamperedchef',
+ 'page',
+ 'ovh',
+ 'ott',
+ 'otsuka',
+ 'osaka',
+ 'origins',
+ 'orientexpress',
+ 'organic',
+ 'org',
+ 'orange',
+ 'oracle',
+ 'open',
+ 'ooo',
+ 'onyourside',
+ 'online',
+ 'onl',
+ 'ong',
+ 'one',
+ 'omega',
+ 'ollo',
+ 'oldnavy',
+ 'olayangroup',
+ 'olayan',
+ 'okinawa',
+ 'office',
+ 'off',
+ 'observer',
+ 'obi',
+ 'nyc',
+ 'ntt',
+ 'nrw',
+ 'nra',
+ 'nowtv',
+ 'nowruz',
+ 'now',
+ 'norton',
+ 'northwesternmutual',
+ 'nokia',
+ 'nissay',
+ 'nissan',
+ 'ninja',
+ 'nikon',
+ 'nike',
+ 'nico',
+ 'nhk',
+ 'ngo',
+ 'nfl',
+ 'nexus',
+ 'nextdirect',
+ 'next',
+ 'news',
+ 'newholland',
+ 'new',
+ 'neustar',
+ 'network',
+ 'netflix',
+ 'netbank',
+ 'net',
+ 'nec',
+ 'nba',
+ 'navy',
+ 'natura',
+ 'nationwide',
+ 'name',
+ 'nagoya',
+ 'nadex',
+ 'nab',
+ 'mutuelle',
+ 'mutual',
+ 'museum',
+ 'mtr',
+ 'mtpc',
+ 'mtn',
+ 'msd',
+ 'movistar',
+ 'movie',
+ 'mov',
+ 'motorcycles',
+ 'moto',
+ 'moscow',
+ 'mortgage',
+ 'mormon',
+ 'mopar',
+ 'montblanc',
+ 'monster',
+ 'money',
+ 'monash',
+ 'mom',
+ 'moi',
+ 'moe',
+ 'moda',
+ 'mobily',
+ 'mobile',
+ 'mobi',
+ 'mma',
+ 'mls',
+ 'mlb',
+ 'mitsubishi',
+ 'mit',
+ 'mint',
+ 'mini',
+ 'mil',
+ 'microsoft',
+ 'miami',
+ 'metlife',
+ 'merckmsd',
+ 'meo',
+ 'menu',
+ 'men',
+ 'memorial',
+ 'meme',
+ 'melbourne',
+ 'meet',
+ 'media',
+ 'med',
+ 'mckinsey',
+ 'mcdonalds',
+ 'mcd',
+ 'mba',
+ 'mattel',
+ 'maserati',
+ 'marshalls',
+ 'marriott',
+ 'markets',
+ 'marketing',
+ 'market',
+ 'map',
+ 'mango',
+ 'management',
+ 'man',
+ 'makeup',
+ 'maison',
+ 'maif',
+ 'madrid',
+ 'macys',
+ 'luxury',
+ 'luxe',
+ 'lupin',
+ 'lundbeck',
+ 'ltda',
+ 'ltd',
+ 'lplfinancial',
+ 'lpl',
+ 'love',
+ 'lotto',
+ 'lotte',
+ 'london',
+ 'lol',
+ 'loft',
+ 'locus',
+ 'locker',
+ 'loans',
+ 'loan',
+ 'llp',
+ 'llc',
+ 'lixil',
+ 'living',
+ 'live',
+ 'lipsy',
+ 'link',
+ 'linde',
+ 'lincoln',
+ 'limo',
+ 'limited',
+ 'lilly',
+ 'like',
+ 'lighting',
+ 'lifestyle',
+ 'lifeinsurance',
+ 'life',
+ 'lidl',
+ 'liaison',
+ 'lgbt',
+ 'lexus',
+ 'lego',
+ 'legal',
+ 'lefrak',
+ 'leclerc',
+ 'lease',
+ 'lds',
+ 'lawyer',
+ 'law',
+ 'latrobe',
+ 'latino',
+ 'lat',
+ 'lasalle',
+ 'lanxess',
+ 'landrover',
+ 'land',
+ 'lancome',
+ 'lancia',
+ 'lancaster',
+ 'lamer',
+ 'lamborghini',
+ 'ladbrokes',
+ 'lacaixa',
+ 'kyoto',
+ 'kuokgroup',
+ 'kred',
+ 'krd',
+ 'kpn',
+ 'kpmg',
+ 'kosher',
+ 'komatsu',
+ 'koeln',
+ 'kiwi',
+ 'kitchen',
+ 'kindle',
+ 'kinder',
+ 'kim',
+ 'kia',
+ 'kfh',
+ 'kerryproperties',
+ 'kerrylogistics',
+ 'kerryhotels',
+ 'kddi',
+ 'kaufen',
+ 'juniper',
+ 'juegos',
+ 'jprs',
+ 'jpmorgan',
+ 'joy',
+ 'jot',
+ 'joburg',
+ 'jobs',
+ 'jnj',
+ 'jmp',
+ 'jll',
+ 'jlc',
+ 'jio',
+ 'jewelry',
+ 'jetzt',
+ 'jeep',
+ 'jcp',
+ 'jcb',
+ 'java',
+ 'jaguar',
+ 'iwc',
+ 'iveco',
+ 'itv',
+ 'itau',
+ 'istanbul',
+ 'ist',
+ 'ismaili',
+ 'iselect',
+ 'irish',
+ 'ipiranga',
+ 'investments',
+ 'intuit',
+ 'international',
+ 'intel',
+ 'int',
+ 'insure',
+ 'insurance',
+ 'institute',
+ 'ink',
+ 'ing',
+ 'info',
+ 'infiniti',
+ 'industries',
+ 'inc',
+ 'immobilien',
+ 'immo',
+ 'imdb',
+ 'imamat',
+ 'ikano',
+ 'iinet',
+ 'ifm',
+ 'ieee',
+ 'icu',
+ 'ice',
+ 'icbc',
+ 'ibm',
+ 'hyundai',
+ 'hyatt',
+ 'hughes',
+ 'htc',
+ 'hsbc',
+ 'how',
+ 'house',
+ 'hotmail',
+ 'hotels',
+ 'hoteles',
+ 'hot',
+ 'hosting',
+ 'host',
+ 'hospital',
+ 'horse',
+ 'honeywell',
+ 'honda',
+ 'homesense',
+ 'homes',
+ 'homegoods',
+ 'homedepot',
+ 'holiday',
+ 'holdings',
+ 'hockey',
+ 'hkt',
+ 'hiv',
+ 'hitachi',
+ 'hisamitsu',
+ 'hiphop',
+ 'hgtv',
+ 'hermes',
+ 'here',
+ 'helsinki',
+ 'help',
+ 'healthcare',
+ 'health',
+ 'hdfcbank',
+ 'hdfc',
+ 'hbo',
+ 'haus',
+ 'hangout',
+ 'hamburg',
+ 'hair',
+ 'guru',
+ 'guitars',
+ 'guide',
+ 'guge',
+ 'gucci',
+ 'guardian',
+ 'group',
+ 'grocery',
+ 'gripe',
+ 'green',
+ 'gratis',
+ 'graphics',
+ 'grainger',
+ 'gov',
+ 'got',
+ 'gop',
+ 'google',
+ 'goog',
+ 'goodyear',
+ 'goodhands',
+ 'goo',
+ 'golf',
+ 'goldpoint',
+ 'gold',
+ 'godaddy',
+ 'gmx',
+ 'gmo',
+ 'gmbh',
+ 'gmail',
+ 'globo',
+ 'global',
+ 'gle',
+ 'glass',
+ 'glade',
+ 'giving',
+ 'gives',
+ 'gifts',
+ 'gift',
+ 'ggee',
+ 'george',
+ 'genting',
+ 'gent',
+ 'gea',
+ 'gdn',
+ 'gbiz',
+ 'gay',
+ 'garden',
+ 'gap',
+ 'games',
+ 'game',
+ 'gallup',
+ 'gallo',
+ 'gallery',
+ 'gal',
+ 'fyi',
+ 'futbol',
+ 'furniture',
+ 'fund',
+ 'fun',
+ 'fujixerox',
+ 'fujitsu',
+ 'ftr',
+ 'frontier',
+ 'frontdoor',
+ 'frogans',
+ 'frl',
+ 'fresenius',
+ 'free',
+ 'fox',
+ 'foundation',
+ 'forum',
+ 'forsale',
+ 'forex',
+ 'ford',
+ 'football',
+ 'foodnetwork',
+ 'food',
+ 'foo',
+ 'fly',
+ 'flsmidth',
+ 'flowers',
+ 'florist',
+ 'flir',
+ 'flights',
+ 'flickr',
+ 'fitness',
+ 'fit',
+ 'fishing',
+ 'fish',
+ 'firmdale',
+ 'firestone',
+ 'fire',
+ 'financial',
+ 'finance',
+ 'final',
+ 'film',
+ 'fido',
+ 'fidelity',
+ 'fiat',
+ 'ferrero',
+ 'ferrari',
+ 'feedback',
+ 'fedex',
+ 'fast',
+ 'fashion',
+ 'farmers',
+ 'farm',
+ 'fans',
+ 'fan',
+ 'family',
+ 'faith',
+ 'fairwinds',
+ 'fail',
+ 'fage',
+ 'extraspace',
+ 'express',
+ 'exposed',
+ 'expert',
+ 'exchange',
+ 'everbank',
+ 'events',
+ 'eus',
+ 'eurovision',
+ 'etisalat',
+ 'esurance',
+ 'estate',
+ 'esq',
+ 'erni',
+ 'ericsson',
+ 'equipment',
+ 'epson',
+ 'epost',
+ 'enterprises',
+ 'engineering',
+ 'engineer',
+ 'energy',
+ 'emerck',
+ 'email',
+ 'education',
+ 'edu',
+ 'edeka',
+ 'eco',
+ 'eat',
+ 'earth',
+ 'dvr',
+ 'dvag',
+ 'durban',
+ 'dupont',
+ 'duns',
+ 'dunlop',
+ 'duck',
+ 'dubai',
+ 'dtv',
+ 'drive',
+ 'download',
+ 'dot',
+ 'doosan',
+ 'domains',
+ 'doha',
+ 'dog',
+ 'dodge',
+ 'doctor',
+ 'docs',
+ 'dnp',
+ 'diy',
+ 'dish',
+ 'discover',
+ 'discount',
+ 'directory',
+ 'direct',
+ 'digital',
+ 'diet',
+ 'diamonds',
+ 'dhl',
+ 'dev',
+ 'design',
+ 'desi',
+ 'dentist',
+ 'dental',
+ 'democrat',
+ 'delta',
+ 'deloitte',
+ 'dell',
+ 'delivery',
+ 'degree',
+ 'deals',
+ 'dealer',
+ 'deal',
+ 'dds',
+ 'dclk',
+ 'day',
+ 'datsun',
+ 'dating',
+ 'date',
+ 'data',
+ 'dance',
+ 'dad',
+ 'dabur',
+ 'cyou',
+ 'cymru',
+ 'cuisinella',
+ 'csc',
+ 'cruises',
+ 'cruise',
+ 'crs',
+ 'crown',
+ 'cricket',
+ 'creditunion',
+ 'creditcard',
+ 'credit',
+ 'cpa',
+ 'courses',
+ 'coupons',
+ 'coupon',
+ 'country',
+ 'corsica',
+ 'coop',
+ 'cool',
+ 'cookingchannel',
+ 'cooking',
+ 'contractors',
+ 'contact',
+ 'consulting',
+ 'construction',
+ 'condos',
+ 'comsec',
+ 'computer',
+ 'compare',
+ 'company',
+ 'community',
+ 'commbank',
+ 'comcast',
+ 'com',
+ 'cologne',
+ 'college',
+ 'coffee',
+ 'codes',
+ 'coach',
+ 'clubmed',
+ 'club',
+ 'cloud',
+ 'clothing',
+ 'clinique',
+ 'clinic',
+ 'click',
+ 'cleaning',
+ 'claims',
+ 'cityeats',
+ 'city',
+ 'citic',
+ 'citi',
+ 'citadel',
+ 'cisco',
+ 'circle',
+ 'cipriani',
+ 'church',
+ 'chrysler',
+ 'chrome',
+ 'christmas',
+ 'chloe',
+ 'chintai',
+ 'cheap',
+ 'chat',
+ 'chase',
+ 'charity',
+ 'channel',
+ 'chanel',
+ 'cfd',
+ 'cfa',
+ 'cern',
+ 'ceo',
+ 'center',
+ 'ceb',
+ 'cbs',
+ 'cbre',
+ 'cbn',
+ 'cba',
+ 'catholic',
+ 'catering',
+ 'cat',
+ 'casino',
+ 'cash',
+ 'caseih',
+ 'case',
+ 'casa',
+ 'cartier',
+ 'cars',
+ 'careers',
+ 'career',
+ 'care',
+ 'cards',
+ 'caravan',
+ 'car',
+ 'capitalone',
+ 'capital',
+ 'capetown',
+ 'canon',
+ 'cancerresearch',
+ 'camp',
+ 'camera',
+ 'cam',
+ 'calvinklein',
+ 'call',
+ 'cal',
+ 'cafe',
+ 'cab',
+ 'bzh',
+ 'buzz',
+ 'buy',
+ 'business',
+ 'builders',
+ 'build',
+ 'bugatti',
+ 'budapest',
+ 'brussels',
+ 'brother',
+ 'broker',
+ 'broadway',
+ 'bridgestone',
+ 'bradesco',
+ 'box',
+ 'boutique',
+ 'bot',
+ 'boston',
+ 'bostik',
+ 'bosch',
+ 'boots',
+ 'booking',
+ 'book',
+ 'boo',
+ 'bond',
+ 'bom',
+ 'bofa',
+ 'boehringer',
+ 'boats',
+ 'bnpparibas',
+ 'bnl',
+ 'bmw',
+ 'bms',
+ 'blue',
+ 'bloomberg',
+ 'blog',
+ 'blockbuster',
+ 'blanco',
+ 'blackfriday',
+ 'black',
+ 'biz',
+ 'bio',
+ 'bingo',
+ 'bing',
+ 'bike',
+ 'bid',
+ 'bible',
+ 'bharti',
+ 'bet',
+ 'bestbuy',
+ 'best',
+ 'berlin',
+ 'bentley',
+ 'beer',
+ 'beauty',
+ 'beats',
+ 'bcn',
+ 'bcg',
+ 'bbva',
+ 'bbt',
+ 'bbc',
+ 'bayern',
+ 'bauhaus',
+ 'basketball',
+ 'baseball',
+ 'bargains',
+ 'barefoot',
+ 'barclays',
+ 'barclaycard',
+ 'barcelona',
+ 'bar',
+ 'bank',
+ 'band',
+ 'bananarepublic',
+ 'banamex',
+ 'baidu',
+ 'baby',
+ 'azure',
+ 'axa',
+ 'aws',
+ 'avianca',
+ 'autos',
+ 'auto',
+ 'author',
+ 'auspost',
+ 'audio',
+ 'audible',
+ 'audi',
+ 'auction',
+ 'attorney',
+ 'athleta',
+ 'associates',
+ 'asia',
+ 'asda',
+ 'arte',
+ 'art',
+ 'arpa',
+ 'army',
+ 'archi',
+ 'aramco',
+ 'arab',
+ 'aquarelle',
+ 'apple',
+ 'app',
+ 'apartments',
+ 'aol',
+ 'anz',
+ 'anquan',
+ 'android',
+ 'analytics',
+ 'amsterdam',
+ 'amica',
+ 'amfam',
+ 'amex',
+ 'americanfamily',
+ 'americanexpress',
+ 'alstom',
+ 'alsace',
+ 'ally',
+ 'allstate',
+ 'allfinanz',
+ 'alipay',
+ 'alibaba',
+ 'alfaromeo',
+ 'akdn',
+ 'airtel',
+ 'airforce',
+ 'airbus',
+ 'aigo',
+ 'aig',
+ 'agency',
+ 'agakhan',
+ 'africa',
+ 'afl',
+ 'afamilycompany',
+ 'aetna',
+ 'aero',
+ 'aeg',
+ 'adult',
+ 'ads',
+ 'adac',
+ 'actor',
+ 'active',
+ 'aco',
+ 'accountants',
+ 'accountant',
+ 'accenture',
+ 'academy',
+ 'abudhabi',
+ 'abogado',
+ 'able',
+ 'abc',
+ 'abbvie',
+ 'abbott',
+ 'abb',
+ 'abarth',
+ 'aarp',
+ 'aaa',
+ 'onion',
+ );
+
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $ccTLDs = array(
+ '한국',
+ '香港',
+ '澳門',
+ '新加坡',
+ '台灣',
+ '台湾',
+ '中國',
+ '中国',
+ 'გე',
+ 'ລາວ',
+ 'ไทย',
+ 'ලංකා',
+ 'ഭാരതം',
+ 'ಭಾರತ',
+ 'భారత్',
+ 'சிங்கப்பூர்',
+ 'இலங்கை',
+ 'இந்தியா',
+ 'ଭାରତ',
+ 'ભારત',
+ 'ਭਾਰਤ',
+ 'ভাৰত',
+ 'ভারত',
+ 'বাংলা',
+ 'भारोत',
+ 'भारतम्',
+ 'भारत',
+ 'ڀارت',
+ 'پاکستان',
+ 'موريتانيا',
+ 'مليسيا',
+ 'مصر',
+ 'قطر',
+ 'فلسطين',
+ 'عمان',
+ 'عراق',
+ 'سورية',
+ 'سودان',
+ 'تونس',
+ 'بھارت',
+ 'بارت',
+ 'ایران',
+ 'امارات',
+ 'المغرب',
+ 'السعودية',
+ 'الجزائر',
+ 'البحرين',
+ 'الاردن',
+ 'հայ',
+ 'қаз',
+ 'укр',
+ 'срб',
+ 'рф',
+ 'мон',
+ 'мкд',
+ 'ею',
+ 'бел',
+ 'бг',
+ 'ευ',
+ 'ελ',
+ 'zw',
+ 'zm',
+ 'za',
+ 'yt',
+ 'ye',
+ 'ws',
+ 'wf',
+ 'vu',
+ 'vn',
+ 'vi',
+ 'vg',
+ 've',
+ 'vc',
+ 'va',
+ 'uz',
+ 'uy',
+ 'us',
+ 'um',
+ 'uk',
+ 'ug',
+ 'ua',
+ 'tz',
+ 'tw',
+ 'tv',
+ 'tt',
+ 'tr',
+ 'tp',
+ 'to',
+ 'tn',
+ 'tm',
+ 'tl',
+ 'tk',
+ 'tj',
+ 'th',
+ 'tg',
+ 'tf',
+ 'td',
+ 'tc',
+ 'sz',
+ 'sy',
+ 'sx',
+ 'sv',
+ 'su',
+ 'st',
+ 'ss',
+ 'sr',
+ 'so',
+ 'sn',
+ 'sm',
+ 'sl',
+ 'sk',
+ 'sj',
+ 'si',
+ 'sh',
+ 'sg',
+ 'se',
+ 'sd',
+ 'sc',
+ 'sb',
+ 'sa',
+ 'rw',
+ 'ru',
+ 'rs',
+ 'ro',
+ 're',
+ 'qa',
+ 'py',
+ 'pw',
+ 'pt',
+ 'ps',
+ 'pr',
+ 'pn',
+ 'pm',
+ 'pl',
+ 'pk',
+ 'ph',
+ 'pg',
+ 'pf',
+ 'pe',
+ 'pa',
+ 'om',
+ 'nz',
+ 'nu',
+ 'nr',
+ 'np',
+ 'no',
+ 'nl',
+ 'ni',
+ 'ng',
+ 'nf',
+ 'ne',
+ 'nc',
+ 'na',
+ 'mz',
+ 'my',
+ 'mx',
+ 'mw',
+ 'mv',
+ 'mu',
+ 'mt',
+ 'ms',
+ 'mr',
+ 'mq',
+ 'mp',
+ 'mo',
+ 'mn',
+ 'mm',
+ 'ml',
+ 'mk',
+ 'mh',
+ 'mg',
+ 'mf',
+ 'me',
+ 'md',
+ 'mc',
+ 'ma',
+ 'ly',
+ 'lv',
+ 'lu',
+ 'lt',
+ 'ls',
+ 'lr',
+ 'lk',
+ 'li',
+ 'lc',
+ 'lb',
+ 'la',
+ 'kz',
+ 'ky',
+ 'kw',
+ 'kr',
+ 'kp',
+ 'kn',
+ 'km',
+ 'ki',
+ 'kh',
+ 'kg',
+ 'ke',
+ 'jp',
+ 'jo',
+ 'jm',
+ 'je',
+ 'it',
+ 'is',
+ 'ir',
+ 'iq',
+ 'io',
+ 'in',
+ 'im',
+ 'il',
+ 'ie',
+ 'id',
+ 'hu',
+ 'ht',
+ 'hr',
+ 'hn',
+ 'hm',
+ 'hk',
+ 'gy',
+ 'gw',
+ 'gu',
+ 'gt',
+ 'gs',
+ 'gr',
+ 'gq',
+ 'gp',
+ 'gn',
+ 'gm',
+ 'gl',
+ 'gi',
+ 'gh',
+ 'gg',
+ 'gf',
+ 'ge',
+ 'gd',
+ 'gb',
+ 'ga',
+ 'fr',
+ 'fo',
+ 'fm',
+ 'fk',
+ 'fj',
+ 'fi',
+ 'eu',
+ 'et',
+ 'es',
+ 'er',
+ 'eh',
+ 'eg',
+ 'ee',
+ 'ec',
+ 'dz',
+ 'do',
+ 'dm',
+ 'dk',
+ 'dj',
+ 'de',
+ 'cz',
+ 'cy',
+ 'cx',
+ 'cw',
+ 'cv',
+ 'cu',
+ 'cr',
+ 'co',
+ 'cn',
+ 'cm',
+ 'cl',
+ 'ck',
+ 'ci',
+ 'ch',
+ 'cg',
+ 'cf',
+ 'cd',
+ 'cc',
+ 'ca',
+ 'bz',
+ 'by',
+ 'bw',
+ 'bv',
+ 'bt',
+ 'bs',
+ 'br',
+ 'bq',
+ 'bo',
+ 'bn',
+ 'bm',
+ 'bl',
+ 'bj',
+ 'bi',
+ 'bh',
+ 'bg',
+ 'bf',
+ 'be',
+ 'bd',
+ 'bb',
+ 'ba',
+ 'az',
+ 'ax',
+ 'aw',
+ 'au',
+ 'at',
+ 'as',
+ 'ar',
+ 'aq',
+ 'ao',
+ 'an',
+ 'am',
+ 'al',
+ 'ai',
+ 'ag',
+ 'af',
+ 'ae',
+ 'ad',
+ 'ac',
+ );
+
+ /**
+ * get valid gTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidGTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $gTLD = implode('|', static::$gTLDs);
+ $regex = '(?:(?:' . $gTLD . ')(?=[^0-9a-z@+-]|$))';
+
+ return $regex;
+ }
+
+ /**
+ * get valid ccTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidCcTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $ccTLD = implode('|', static::$ccTLDs);
+ $regex = '(?:(?:' . $ccTLD . ')(?=[^0-9a-z@+-]|$))';
+
+ return $regex;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php
new file mode 100644
index 00000000..50dea27c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php
@@ -0,0 +1,258 @@
+<?php
+
+/**
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Validator Class
+ *
+ * Performs "validation" on tweets.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Validator
+{
+ /**
+ *
+ * @var Extractor
+ */
+ protected $extractor;
+
+ /**
+ *
+ * @var Configuration
+ */
+ protected $config;
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param Configuration $config A Twitter Text Configuration
+ *
+ * @see __construct()
+ *
+ * @return Validator
+ */
+ public static function create(Configuration $config = null)
+ {
+ return new self($config);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and validates it.
+ *
+ * @param Configuration $config A Twitter Text Configuration
+ */
+ public function __construct(Configuration $config = null)
+ {
+ $this->setConfiguration($config);
+ $this->extractor = Extractor::create();
+ }
+
+ /**
+ * Setup configuration
+ *
+ * @see Configuration
+ *
+ * @param Configuration $config
+ * @return Validator
+ * @throws \InvalidArgumentException
+ */
+ public function setConfiguration(Configuration $config = null)
+ {
+ if ($config === null) {
+ // default use v2 config
+ $this->config = new Configuration();
+ } elseif (is_a($config, '\Twitter\Text\Configuration')) {
+ $this->config = $config;
+ } else {
+ throw new \InvalidArgumentException('Invalid Configuration');
+ }
+
+ return $this;
+ }
+
+ /**
+ * Get current configuration
+ *
+ * @return Configuration
+ */
+ public function getConfiguration()
+ {
+ return $this->config;
+ }
+
+ /**
+ * Check whether a tweet is valid.
+ *
+ * @param string $tweet The tweet to validate.
+ * @param Configuration $config using configuration
+ * @return boolean Whether the tweet is valid.
+ * @deprecated instead use \Twitter\Text\Parser::parseText()
+ */
+ public function isValidTweetText($tweet, Configuration $config = null)
+ {
+
+ return $this->parseTweet($tweet, $config)->valid;
+ }
+
+ /**
+ * Check whether a username is valid.
+ *
+ * @param string $username The username to validate.
+ * @return boolean Whether the username is valid.
+ */
+ public function isValidUsername($username)
+ {
+ $length = StringUtils::strlen($username);
+ if (empty($username) || !$length) {
+ return false;
+ }
+ $extracted = $this->extractor->extractMentionedScreennames($username);
+ return count($extracted) === 1 && $extracted[0] === substr($username, 1);
+ }
+
+ /**
+ * Check whether a list is valid.
+ *
+ * @param string $list The list name to validate.
+ * @return boolean Whether the list is valid.
+ */
+ public function isValidList($list)
+ {
+ $length = StringUtils::strlen($list);
+ if (empty($list) || !$length) {
+ return false;
+ }
+
+ if (preg_match(Regex::getValidMentionsOrListsMatcher(), $list, $matches)) {
+ $matches = array_pad($matches, 5, '');
+
+ return $matches[1] === '' && !empty($matches[4]) && $matches[4] && $matches[5] === '';
+ }
+
+ return false;
+ }
+
+ /**
+ * Check whether a hashtag is valid.
+ *
+ * @param string $hashtag The hashtag to validate.
+ * @return boolean Whether the hashtag is valid.
+ */
+ public function isValidHashtag($hashtag)
+ {
+ $length = StringUtils::strlen($hashtag);
+ if (empty($hashtag) || !$length) {
+ return false;
+ }
+ $extracted = $this->extractor->extractHashtags($hashtag);
+ return count($extracted) === 1 && $extracted[0] === substr($hashtag, 1);
+ }
+
+ /**
+ * Check whether a URL is valid.
+ *
+ * @param string $url The url to validate.
+ * @param boolean $unicode_domains Consider the domain to be unicode.
+ * @param boolean $require_protocol Require a protocol for valid domain?
+ *
+ * @return boolean Whether the URL is valid.
+ */
+ public function isValidURL($url, $unicode_domains = true, $require_protocol = true)
+ {
+ $length = StringUtils::strlen($url);
+ if (empty($url) || !$length) {
+ return false;
+ }
+
+ preg_match(Regex::getValidateUrlUnencodedMatcher(), $url, $matches);
+ $match = array_shift($matches);
+ if (!$matches || $match !== $url) {
+ return false;
+ }
+
+ list($scheme, $authority, $path, $query, $fragment) = array_pad($matches, 5, '');
+
+ # Check scheme, path, query, fragment:
+ if (
+ ($require_protocol && !(
+ self::isValidMatch($scheme, Regex::getValidateUrlSchemeMatcher())
+ && preg_match('/^https?$/i', $scheme)
+ ))
+ || !self::isValidMatch($path, Regex::getValidateUrlPathMatcher())
+ || !self::isValidMatch($query, Regex::getValidateUrlQueryMatcher(), true)
+ || !self::isValidMatch($fragment, Regex::getValidateUrlFragmentMatcher(), true)
+ ) {
+ return false;
+ }
+
+ # Check authority:
+ $authorityPattern = $unicode_domains ?
+ Regex::getValidateUrlUnicodeAuthorityMatcher() :
+ Regex::getValidateUrlAuthorityMatcher();
+
+ return self::isValidMatch($authority, $authorityPattern);
+ }
+
+ /**
+ * Determines the length of a tweet. Takes shortening of URLs into account.
+ *
+ * @param string $tweet The tweet to validate.
+ * @param Configuration $config using configuration
+ * @return int the length of a tweet.
+ * @deprecated instead use \Twitter\Text\Parser::parseTweet()
+ */
+ public function getTweetLength($tweet, Configuration $config = null)
+ {
+ return $this->parseTweet($tweet, $config)->weightedLength;
+ }
+
+ /**
+ * A helper function to check for a valid match. Used in URL validation.
+ *
+ * @param string $string The subject string to test.
+ * @param string $pattern The pattern to match against.
+ * @param boolean $optional Whether a match is compulsory or not.
+ *
+ * @return boolean Whether an exact match was found.
+ */
+ protected static function isValidMatch($string, $pattern, $optional = false)
+ {
+ $found = preg_match($pattern, $string, $matches);
+ if (!$optional) {
+ return (($string || $string === '') && $found && $matches[0] === $string);
+ }
+
+ return !(($string || $string === '') && (!$found || $matches[0] !== $string));
+ }
+
+ /**
+ * Parse tweet
+ *
+ * @param string $tweet The tweet to parse.
+ * @param Configuration|null $config using configuration
+ * @return ParseResults
+ */
+ private function parseTweet($tweet, Configuration $config = null)
+ {
+ if ($config === null) {
+ $config = $this->config;
+ }
+
+ return Parser::create($config)->parseTweet($tweet);
+ }
+}